git : errno and thread weirdness
matthieu castet
castet.matthieu at free.fr
Sun Dec 20 00:39:21 UTC 2009
Hi,
when building git master branch with libpthread.old and I got very weird behavior with errno :
- static link with thread crash in __uClibc_main. This seems to be due to the libc_hidden_proto, that make think gcc the "if (likely(__h_errno_location!=NULL))" is always true, but for an unknown reason it is false. Also the libpthread can't override the hidden symbol
- dynamic link with thread produce a mix of call to weak errno_location and libthread errno_location. Again this this because libpthread can't override the hidden symbol
Removing the libc_hidden_weak/libc_hidden_proto for __errno_location and __h_errno_location make the things work. [1]
Is that normal ?
Thanks
Matthieu
[1] there other issue. Work example a static link of [2], crash because _stdio_init is NULL, but because _stdio_init is HIDDEN, gcc remove the check.
making not hidden make it crash on _stdio_term that is also hidden.
I am missing something or uclibc git doesn't work at all ?
[2]
int main(){
return 0;
}
More information about the uClibc
mailing list