Subject: bug#13818: 24.3.50; Bootstrap failed on Cygwin due to revno: 111870

From: Katsumi Yamaoka <[email-masked]>
Date: Wed, 27 Feb 2013 07:59:24 +0900

Paul Eggert wrote:
> On 02/26/13 04:42, Ken Brown wrote:
>> On 2/26/2013 2:23 AM, Katsumi Yamaoka wrote:
>>> In GNU Emacs 24.3.50.1 (i686-pc-cygwin, X toolkit, Xaw3d scroll bars)
>>>   of 2013-02-26 on localhost
>>> Bzr revision: 111880 [email-masked]
>>> Windowing system distributor `The Cygwin/X Project', version 11.0.11302000
>>> Configured using:
>>>   `configure --verbose --with-x-toolkit=lucid --without-imagemagick
>>>   --without-dbus --without-gconf --without-gsettings'
>>>
>>> When dumping temacs it stops by the following error:
>>>
>>> vm-limit.o: In function `memory_warnings':
>>> src/vm-limit.c:239: undefined reference to `_data_start'

> Can you please give the full shell command that
> generated that line?  I assume it's something like
> "gcc ... -o temacs ..." but would like the details.

Here it is:
--8<---------------cut here---------------start------------->8---
gcc -std=gnu99 -Demacs  -I. -I/Work/emacs/src  -I../lib -I/Work/emacs/src/../lib    -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     -I/usr/include/libxml2      -I/usr/include/freetype2       -MMD -MF deps/.d -MP   -I/usr/include/p11-kit-1      -g3 -O2    \
  -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 xgselect.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 inotify.o  profiler.o     sheap.o cygw32.o xfont.o ftfont.o xftfont.o ftxfont.o   fontset.o fringe.o image.o  terminfo.o  gmalloc.o   lastfile.o widget.o  ../lib/libgnu.a    ../lwlib/liblw.a  -ltiff -ljpeg -lpng -lz -lm -lgif -lXpm  -lXaw3d -lXmu -lXt -lSM -lICE -lXext -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            -lxml2 -lz -liconv -lm       -lncurses -lelf     -lfreetype -lz -lbz2   -lfontconfig -lexpat -lfreetype -lz -lbz2       -L/usr/bin -lgnutls -lnettle -lhogweed -lgmp -ltasn1 -lp11-kit -lz   -lpthread    \
  
vm-limit.o: In function `memory_warnings':
/Work/emacs/src/vm-limit.c:239: undefined reference to `_data_start'
collect2: ld returned 1 exit status
Makefile:632: recipe for target `temacs.exe' failed
--8<---------------cut here---------------end--------------->8---

>> data_start used to be defined in pre-crt0.c on Cygwin,
>> but this file was removed.

> data_start is now supposed to be defined in vm-limit.c,
> on hosts where the linker does not define it for you.

> Is there some significance to the leading underscore
> in that diagnostic?  (Is "_" automatically prepended
> to external symbols on Cygwin?)

> What does config.log say, after it says
> "checking for data_start"?

`configure options...` says:
checking for data_start... yes

(There's nothing about data_start in config.log .)

> What is the value of HAVE_DATA_START in src/config.h?

#define HAVE_DATA_START 1

> Also, please examine the output of "gcc -E ... vm-limit.c",
> where "..." contains the same flags as used for compiling
> vm-limit.c, to see how data_start was declared and defined
> in the preprocessor output.

Nothing is returned.  What `make' does then is:
gcc -std=gnu99 -c  -Demacs  -I. -I/Work/emacs/src  -I../lib -I/Work/emacs/src/../lib    -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     -I/usr/include/libxml2      -I/usr/include/freetype2       -MMD -MF deps/vm-limit.d -MP   -I/usr/include/p11-kit-1      -g3 -O2 vm-limit.c

Letting `configure' label Cygwin as it doesn't have data_start
might be one solution.

Thanks.