--- Begin Message ---
Subject: |
Build broken on 64-bit Cygwin starting with bzr revision 113315 |
Date: |
Mon, 08 Jul 2013 11:47:36 -0400 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130107 Thunderbird/17.0.2 |
Starting with bzr revision 113315, the build on 64-bit Cygwin fails as
follows:
gcc -std=gnu99 -Demacs -I. -I/c/src/emacs/64testt/src -I../lib
-I/c/src/emacs/64testt/src/../lib -D_REENTRANT -I/usr/include/gtk-3.0
-I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0
-I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/
-I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
-I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1
-I/usr/include/libpng15 -DGDK_DISABLE_DEPRECATION_WARNINGS
-DGLIB_DISABLE_DEPRECATION_WARNINGS -I/usr/include/freetype2
-D_REENTRANT -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/gdk-pixbuf-2.0
-I/usr/include/cairo -I/usr/include/libpng15 -I/usr/include/pixman-1
-I/usr/include/freetype2 -fopenmp -I/usr/include/ImageMagick
-I/usr/include/libxml2 -I/usr/include/dbus-1.0
-I/usr/lib/dbus-1.0/include -D_REENTRANT -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -D_REENTRANT -I/usr/include/gconf/2
-I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
-I/usr/include/freetype2 -MMD -MF deps/.d -MP
-I/usr/include/p11-kit-1 -D_REENTRANT -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -O0 -ggdb \
-o temacs vm-limit.o dispnew.o frame.o scroll.o xdisp.o menu.o
xmenu.o window.o charset.o coding.o category.o ccl.o character.o
chartab.o bidi.o cm.o term.o terminal.o xfaces.o xterm.o xfns.o
xselect.o xrdb.o xsmfns.o xsettings.o gtkutil.o emacsgtkfixed.o
dbusbind.o emacs.o keyboard.o macros.o keymap.o sysdep.o buffer.o
filelock.o insdel.o marker.o minibuf.o fileio.o dired.o cmds.o
casetab.o casefiddle.o indent.o search.o regex.o undo.o alloc.o data.o
doc.o editfns.o callint.o eval.o floatfns.o fns.o font.o print.o
lread.o syntax.o unexcw.o bytecode.o process.o gnutls.o callproc.o
region-cache.o sound.o atimer.o doprnt.o intervals.o textprop.o
composite.o xml.o gfilenotify.o profiler.o sheap.o cygw32.o xfont.o
ftfont.o xftfont.o ftxfont.o fontset.o fringe.o image.o xgselect.o
terminfo.o gmalloc.o lastfile.o ../lib/libgnu.a -ltiff -ljpeg
-lpng -lz -lm -lgif -lXpm -lgtk-3 -latk-bridge-2.0 -lgdk-3 -latk-1.0
-lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage
-lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lgio-2.0 -lXfixes
-lpangoft2-1.0 -lharfbuzz -lpango-1.0 -lcairo -lpixman-1 -lfontconfig
-lexpat -lfreetype -lbz2 -lxcb-shm -lxcb-render -lXrender -lXext -lX11
-lxcb -lXau -lXdmcp -lpng15 -lm -lz -lgmodule-2.0 -lgobject-2.0 -lffi
-lglib-2.0 -lintl -liconv -lpcre -lSM -lICE -lX11 -lXrender -lXft
-lXrender -lfontconfig -lexpat -lfreetype -lz -lbz2 -lX11 -lxcb -lXau
-lXdmcp -lrsvg-2 -lgio-2.0 -lgdk_pixbuf-2.0 -lcairo -lgmodule-2.0
-lgobject-2.0 -lffi -lpixman-1 -lfontconfig -lexpat -lfreetype -lbz2
-lpng15 -lm -lz -lxcb-shm -lxcb-render -lXrender -lXext -lglib-2.0
-lintl -liconv -lpcre -lX11 -lxcb -lXau -lXdmcp -lMagickWand
-lMagickCore -ldbus-1 -lpthread -lrt -lXrandr -lXext
-lXrender -lX11 -lxcb -lXau -lXdmcp -lXinerama -lXext -lX11 -lxcb
-lXau -lXdmcp -lxml2 -lz -liconv -lm -lncurses -lgio-2.0 -lz
-lgmodule-2.0 -lgobject-2.0 -lffi -lglib-2.0 -lintl -liconv -lpcre
-lgconf-2 -ldbus-1 -lpthread -lrt -lgio-2.0 -lz -lgmodule-2.0
-lgobject-2.0 -lffi -lglib-2.0 -lintl -liconv -lpcre -lgobject-2.0
-lffi -lglib-2.0 -lintl -liconv -lpcre -lfreetype -lz -lbz2
-lfontconfig -lexpat -lfreetype -lz -lbz2 -lgnutls -lnettle
-lhogweed -lgmp -lintl -liconv -ltasn1 -lp11-kit -lz -lpthread
-lgio-2.0 -lz -lgmodule-2.0 -lgobject-2.0 -lffi -lglib-2.0 -lintl
-liconv -lpcre
../lib/libgnu.a(pipe2.o): In function `rpl_pipe2':
/c/src/emacs/64testt/lib/pipe2.c:144: undefined reference to `setmode'
I think the issue here is that pipe2.c shouldn't be compiled on Cygwin.
Ken
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#14821: Build broken on 64-bit Cygwin starting with bzr revision 113315 |
Date: |
Tue, 09 Jul 2013 15:52:43 -0400 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130107 Thunderbird/17.0.2 |
On 7/9/2013 1:29 PM, Paul Eggert wrote:
On 07/09/13 10:13, Ken Brown wrote:
Paul just submitted a patch to Gnulib that should fix it in a better way than
what I suggested.
One problem was that I tried too hard to not use Gnulib
in Emacs, so I mistakenly avoided Gnulib's binary-io module.
There appears to be another issue, though -- a porting bug in Gnulib when
using the accept4 or pipe2 modules on Cygwin. As Ken notes I
have tried to fix that problem in Gnulib, and propagated the
fix to Emacs while I was fixing the binary-io issue.
Please try trunk bzr 113348 to see whether these two changes
solve the problem.
Yes, that fixes it. Thanks.
For the record, the problem I reported was due to the fact that Cygwin
defines setmode as a macro that expands to _setmode. (So I was wrong
when I said that setmode shouldn't be used on Cygwin.) But this
definition is in <io.h>, which wasn't being #included. The problem
showed up only in the 64-bit build because underscores are automatically
prepended in the 32-bit build.
I'm closing the bug.
Ken
--- End Message ---