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