delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2014/08/24/11:06:28

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
X-Recipient: djgpp AT delorie DOT com
Date: Sun, 24 Aug 2014 18:06:11 +0300
From: Eli Zaretskii <eliz AT gnu DOT org>
Subject: Re: Emacs pretest 24.3.93
In-reply-to: <53F90C05.3070503@gmx.de>
X-012-Sender: halo1 AT inter DOT net DOT il
To: djgpp AT delorie DOT com
Message-id: <83y4uekjvg.fsf@gnu.org>
References: <83egwim872 DOT fsf AT gnu DOT org> <53EF1E40 DOT 6050004 AT gmx DOT de> <83k368ekyk DOT fsf AT gnu DOT org> <53EFAF05 DOT 2010005 AT gmx DOT de> <834mxcdyde DOT fsf AT gnu DOT org> <53F0FB1E DOT 8070706 AT gmx DOT de> <83d2brmx4x DOT fsf AT gnu DOT org> <53F90C05 DOT 3070503 AT gmx DOT de>
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

> Date: Sat, 23 Aug 2014 23:47:49 +0200
> From: Juan Manuel Guerrero <juan DOT guerrero AT gmx DOT de>
> 
> > Any news on the problems you saw with the djdev204 build?
> 
> The situation is disappointing.

Thank you for your efforts.

>     - If the sources are configured without --no-debug and -O0 flag then the
>       build process aborts with the following error message:
> 
> gcc -Demacs  -I. -I../lib           -O0 -gcoff    \
>    -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    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 unexcoff.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 profiler.o decompress.o dosfns.o msdos.o w16select.o termcap.o tparam.o lastfile.o gmalloc.o ralloc.o ../lib/libgnu.a                                     -lm
> sysdep.o: In function `emacs_backtrace':
> sysdep.c:2115: undefined reference to `backtrace'
> sysdep.c:2121: undefined reference to `backtrace_symbols_fd'

These functions are in lib/execinfo.h, but I see that lib/execinfo.c
is not compiled in the DJGPP build.  That's a real bug, I will fix it
soon.

I guess the optimized build succeeds in optimizing out the code that
calls these 2 functions, so the link succeeds.

>     - If the sources are configured without --no-debug and -O2 flag then the
>       build fails with the following error message:
> [snip]
> ./temacs -batch -l loadup dump
> Cannot open load file: Value too large (EOVERFLOW), loadup.el
> openp:  (fstat call)  fn = d:/emacs-24.3.93-debug-O2-490/lisp/loadup.el  fd = 7  err = 40 <-- I have added this printf() line in openp.
> Makefile:192: recipe for target '../lisp/leim/leim-list.el' failed
> make.exe[1]: *** [../lisp/leim/leim-list.el] Error -1
> make.exe[1]: Leaving directory 'd:/emacs-24.3.93-debug-O2-490/src'
> Makefile:105: recipe for target 'src' failed
> make.exe: *** [src] Error 2
> 
>       As can be seen, this time temacs.exe is successfully build but it did
>       not work.  The reason for the failure is that fstat sets errno = EOVERFLOW.
>       fstat is called in openp() of lread.c at line 1621.
>       Tomorrow I will compile a debug version of libc.a and check why fstat
>       behavior is different on WinXP/Win98SE and on MSDOS.

Yes, it is IMO very important to understand why.

> 3) On MSDOS 6.22 with DOSLFN 0.41c using gcc334, bnu224br2 and djdev204.
>     It is not possible to compile the sources at all.  Compiling without
>     --no-debug and with -O0 or -O2 flag aborts the compilation with the
>     following error message:
> [snip]
> C:/DJGPP-2.04/BIN/make.exe  all-am
> make.exe[2]: Entering directory 'd:/emacs-24.3.93-debug-O2-344/lib'
> gcc  -I. -Id:/emacs-24.3.93-debug-O2-344/lib -I../src -Id:/emacs-24.3.93-debug-O2-344/src       -g -O2 -MT c-ctype.o -MD -MP -MF deps/c-ctype.Tpo -c -o c-ctype.o c-ctype.c
> cc1.exe: c-ctype.c: Value too large (EOVERFLOW)
> Makefile:1562: recipe for target 'c-ctype.o' failed
> make.exe[2]: *** [c-ctype.o] Error 1
> make.exe[2]: Leaving directory 'd:/emacs-24.3.93-debug-O2-344/lib'
> Makefile:1463: recipe for target 'all' failed
> make.exe[1]: *** [all] Error 2
> make.exe[1]: Leaving directory 'd:/emacs-24.3.93-debug-O2-344/lib'
> Makefile:86: recipe for target 'lib' failed
> make.exe: *** [lib] Error 2

FWIW, I use GCC is 3.4.4 and Binutils 2.19.

> The bottom line is that debugging emacs becomes really difficult due to the COFF
> debug format issues.

The problem with going to DWARF-2 debug info is that last time I tried
the dumped Emacs crashed at startup.  If you try it now and it works
for you, or of you (or someone else) finds and fixes the problem that
causes the crash, I have no problems supporting the DWARF-2 build.
Otherwise, we are stuck with COFF.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019