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]
Other format: [Raw text]

symbol clarification please?


Ulrich,
  Sorry if this is a stupid question, but what is the difference between
the "objdump --dynamic-sym" output of...

000266b0 g    DF .text	000000c8  GLIBC_2.0   __divdi3

and

00026680 g    DF .text	000000c8 (GLIBC_2.0)  __divdi3

Are the ()'s for .hidden or what? I ask because the first symbol
comes from the glibc built from libgcc-compat code in current
glibc-2-2-branch.whereas the second one comes from Franz Sirl's 
proposed replacement patch for the symbol fix-up. Ignoring
whether the fixup goes into gcc 3.2 or not, I am perplexed by
this difference because the second case tickled the binutils
bug that HJ Lu just fixed. 

http://sources.redhat.com/ml/binutils/2002-08/msg00175.html

This is all against current gcc 2.95.4 which has...

00002628 g    DF .text	000000dc  GLIBC_2.0   __divdi3

in /lib/libgcc_so.1. 

I am perplexed why the original libgcc-compat patch didn't tickle
this binutils problem whereas the revised libgcc-compat patch
did...generating link errors like...

> gcc -g -O2 -o .libs/check-program check-program.o  ./.libs/libeel-2.so
-L/usr/X11R6/lib /usr/lib/libgailutil.so /usr/lib/libgnomeui-2.so
-L/usr/lib -lSM -lICE /usr/lib/libbonoboui-2.so
/usr/lib/libgnomecanvas-2.so /usr/lib/libgnome-2.so /usr/lib/libesd.so
> /lib/libgcc_s.so.1(*IND*+0x0): multiple definition of
`__divdi3@GLIBC_2.0'
> /lib/libc.so.6(.text+0xa40): first defined here
> /lib/libgcc_s.so.1(*IND*+0x0): multiple definition of
`__umoddi3@GLIBC_2.0'
> /lib/libc.so.6(.text+0xbac): first defined here
> /lib/libgcc_s.so.1(*IND*+0x0): multiple definition of
`__udivdi3@GLIBC_2.0'
> /lib/libc.so.6(.text+0xb88): first defined here
> /lib/libgcc_s.so.1(*IND*+0x0): multiple definition of
`__moddi3@GLIBC_2.0'
> /lib/libc.so.6(.text+0xb08): first defined here

...with stock binutils 2.13.90.0.3.

So, the (GLIBC_2.0) in libc.so.6 tickled the binutils bug
causing conflicting symbols with the GLIBC_2.0 versioned
symbol in libgcc.so.1. However the original libgcc-compat
patch has a GLIBC_2.0 versioned symbol which doesn't tickle 
the binutils bug.
  I have attached the original glibc-libgcc-compat-ppc-5a patch, 
currently in glibc-2-2-branch and the revised one,
glibc-libgcc-compat-ppc-8-2_2d.

Thanks in advance for any clarifications between the differences in
the symbols handling in these two patches.
                                   Jack
ps I ask because it looks like Franz's proposed fixup for symbol
handling in gcc 3.2 may get rejected but I am unclear if we still 
would want his revised libgcc-compat patch instead of what currently 
is in glibc-2-2-branch. Before the binutils fix, use of the revised
patch would not have been possible because of the symbol conflict
errors on linking against such a glibc. 



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