This is the mail archive of the libc-alpha@sourceware.cygnus.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Recommending gcc 2.95.1


   Date: Tue, 11 Jan 2000 14:32:21 +0100
   From: Thorsten Kukuk <kukuk@suse.de>

   Now we have again the problem with __register_frame_info and glibc,
   this time on Alpha.

Argh...

   New binaries compiled with a gcc 2.95.x will not run on systems
   where the same glibc is compiled with egcs :(

Programs that do not use exception handling (for example ordinary C
programs) should not depend on __register_frame_info.  On ELF systems,
programs should only contain a weak reference to
__register_frame_info.  Could you check if this is indeed the case?

For programs that do use exception handling you'll lose.  If you
compile them with gcc-2.95 and link them with a glibc built with
gcc-2.95 you cannot run them on a system with a glibc built with egcs.
This seems to be unavoidable.  Some modules in glibc need to be
compiled with exception handling enabled so we need the exception
handling functions in glibc.  Since glibc and your program have to use
exactly the same functions we must export them from glibc.  Maybe
something neat can be done with even more weak symbols, but I don't
know how.  And if you want to remain compatible with Debian (see
below), you cannot do this at all.

   Only Debian has already a glibc on Alpha with __register_frame_info.
   Does Debian ignore the binary incompatibility ?

I believe the DWARF 2 frame unwind info support wasn't enabled on
Alpha in the official egcs releases but was enabled in the Debian
release.  So Debian broke binary compatibility with other
distributions back then.  They might have less problems now DWARF 2
frame unwind info support is enabled by default in GCC 2.95.

Mark

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]