> > The x86 and MIPS ABIs are very different though.
> I notice that the debian mipsel libpthread.so.0 in
> http://ftp.debian.org/pool/main/g/glibc/libc6_2.2.5-11.5_mipsel.deb has
> st_value == 0 for every UND FUNC, just like my x86 debian libraries. This
> is very different than the uClibc libpthread.so where every UND FUNC has
> st_value != 0. Interestingly if I link glibc's libpthread with uClibc's
> libc.so I see that most UND FUNCs then have st_value != 0.
> I would like to see how uClibc ld.so behaves I could somehow get ld to not
> generate any stubs in libpthread. Any idea why libpthread gets full stubs
> when linked with uClibc libc.so but no stubs when linked with glibc libc.so?
This looks like the problem we had with dlopen() and friends when introducing
the new WEAK symbol handling.
in libc/misc/pthread/weaks.c you have stuff like:
where __phtread_return_0 is non NULL: