uclibc ld.so and LD_BIND_NOW

Michael Hunold hunold at linuxtv.org
Mon Sep 4 14:28:52 UTC 2006


Hello all,

I'm using binutils 2.16.1, gcc 4.0.3 and uclibc 0.9.28 on a MIPS
big-endian system.

I have created a shared library with functions foo() (which prints out
"foo") and bar() (which prints out "bar").

I can link my application dynamically and call foo() and bar() without
problems.

Now I removed bar() from the library and run the application again.

# ./a.out
foo()
./a.out: can't resolve symbol 'bar'

Ok, that's fine. Now I do an "export LD_BIND_NOW=1" and try again:
# ./a.out
foo()
Segmentation fault

Huh? I was expecting that the "can't resolve symbol" mesaage would
appear immediately and that the application won't start up at all.

Is the segmentation fault expected and can this behaviour be explained?

Best regards
Michael.



More information about the uClibc mailing list