This is the mail archive of the libc-alpha@sources.redhat.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]

Running old apps (glibc 2.0.7 compiled) against current glibc


Well, I fought with this all day, thinking it was a toolchain problem
(it may still be, but it isn't fixed in any of them, if so).

Basically I've run down this problem with two compilers:

gcc-2.95.4 (CVS 08-10) + dso_handle patch + atexit patch (in CVS)
gcc-3.0.1 (CVS 08-01)

Using binutils 2.11.90.0.25. Both compilers build glibc fine. The
problem comes when you then try to run a program built against glibc
2.0.7, it fails as such:

./foo: error while loading shared libraries: ./foo: undefined symbol: atexit

This is from current glibc CVS (as of today):

honken:~# objdump --dynamic-syms /lib/libc-2.2.4.so | grep atexit
00019784 l    d  .rel__libc_atexit      00000000
00111ccc l    d  __libc_atexit  00000000
000301d8 g    DF .text  00000030 (GLIBC_2.0)  atexit
00030020 g    DF .text  00000040  GLIBC_2.1.3 __cxa_atexit

This is from CVS, about 2.5 weeks ago (7-22)

hiccup:~# objdump --dynamic-syms /lib/libc-2.2.3.so | grep atexit
00019624 l    d  .rel__libc_atexit      00000000
0011792c l    d  __libc_atexit  00000000
0002fcf0 g    DF .text  00000034 (GLIBC_2.0)  atexit
0002fb30 g    DF .text  00000048  GLIBC_2.1.3 __cxa_atexit

The latter works fine with the old app. I've no idea why the former is
broken.

Can someone shed some light on this for me?

-- 
 .----------=======-=-======-=========-----------=====------------=-=-----.
/  Ben Collins  --  ...on that fantastic voyage...  --  Debian GNU/Linux   \
`  bcollins@debian.org  --  bcollins@openldap.org  --  bcollins@linux.com  '
 `---=========------=======-------------=-=-----=-===-======-------=--=---'


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