@GLIBC_2.0 and @@GLIBC_2.1 suffixes

George Kraft gk4@us.ibm.com
Tue Nov 9 10:13:00 GMT 1999


While trying to determine the APIs and libraries used by applications
such as StarOffice51 and WordPerfect8 I have stumbled across some
redundant APIs with @GLIBC_2.0 and @@GLIBC_2.1 suffixes on RedHat 6.0.
So, for example, if I look at Netscape Communicator 4.7 I see that
"fdopen" is undefined and needs to be resolved.

[gk4@act5 gk4]$ nm -D -g /usr/local/netscape/netscape | grep fdopen
         U fdopen

Looking at what libraries are dynamically linked, I see libc.so.6 is
linked to netscape to resolve "fdopen".

[gk4@act5 gk4]$ ldd /usr/local/netscape/netscape
        libBrokenLocale.so.1 => /lib/libBrokenLocale.so.1 (0x40018000)
        libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x4001a000)
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40064000)
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x4006e000)
        libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x40083000)
        libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0x40095000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x400a2000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x400ad000)
        libdl.so.2 => /lib/libdl.so.2 (0x4014a000)
        libstdc++-libc6.1-1.so.2 => /usr/lib/libstdc++-libc6.1-1.so.2
(0x4014d000)
        libm.so.6 => /lib/libm.so.6 (0x40190000)
        libc.so.6 => /lib/libc.so.6 (0x401ac000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

However, when I look in libc.so.6 I see two "fdopen" definitions with
either a @GLIBC_2.0 or @@GLIBC_2.1 suffix!

[gk4@act5 gk4]$ nm -g /lib/libc.so.6 | grep fdopen
00050ae0 T _IO_fdopen@@GLIBC_2.1
00053410 T _IO_fdopen@GLIBC_2.0
00050ae0 T fdopen@@GLIBC_2.1
00053410 T fdopen@GLIBC_2.0

How is "fdopen" being resolved?  What is the purpose of the @GLIBC_2.0
or @@GLIBC_2.1 suffixes?  How can I determine which one the application
wants?  I want to know if the system has the prerequisite libraries for
my application to work...

Thanks,

George Kraft IV
gk4@us.ibm.com



More information about the Gcc-help mailing list