Why is a __strtol_internal defined in dlfcn/eval.c?

H . J . Lu hjl@lucon.org
Fri Sep 7 10:11:00 GMT 2001


On Fri, Sep 07, 2001 at 10:06:56AM -0700, H . J . Lu wrote:
> On Fri, Sep 07, 2001 at 09:58:48AM -0700, Ulrich Drepper wrote:
> > "H . J . Lu" <hjl@lucon.org> writes:
> > 
> > > The linker honors the strong definition from a DSO, but preserves the
> > > weak binding. Can someone check what Solaris does?
> > 
> > Solaris does just what you expect: it creates a weak definition.
> > Nothing is undefined.
> 
> Can you find out what the Solaris linker does for a weak definition,
> foo, in foo1.o when
> 
> 1. There is a strong definition in another relocatable file, foo2.o,
> before it.
> 
> # gcc -shared -o libfoo.so foo1.o foo2.o
> 
> 2. There is a strong definition in another relocatable file, foo2,o,
> after it.
> 
> # gcc -shared -o libfoo.so foo2.o foo1.o
> 
> 3. There is a strong definition in a DSO, libfoo2.so, before it.
> 
> # gcc -shared -o libfoo.so foo1.o libfoo2.so
> 
> 4. There is a strong definition in a DSO, libfoo2.so, after it.
> 
> # gcc -shared -o libfoo.so libfoo2.so foo1.o
> 
> I'd like to see
> 
> # objdump --dynamic-sym libfoo.so | grep foo
> 
> in each case.
> 

One more thing, when foo is verioned in libfoo2.so, what happens to
foo in libfoo.so? If foo in libfoo.so is weak, defined and unversioned,
will it be a potential problem since ld.so will match it to the base
version in libfoo2.so?


H.J.



More information about the Libc-alpha mailing list