[PATCH] fix errno location for non-TLS case
Andrew.Rybchenko at oktetlabs.ru
Thu Dec 1 15:52:37 UTC 2011
On 12/01/2011 07:36 PM, Peter Korsgaard wrote:
>>>>>> "Andrew" == Andrew Rybchenko<Andrew.Rybchenko at oktetlabs.ru> writes:
> Andrew> linuxthreads.old implementation just wraps libc socket calls like
> Andrew> recv() which set errno.
> Andrew> Since errno is set from libc call and libc_hidden_proto() is used for
> Andrew> __errno_location(),
> Andrew> libc version of the function is called and provides pointer to global
> Andrew> errno variable (not
> Andrew> thread-specific location).
> Andrew> Also it is important here that linuxthreads.old does not use
> Andrew> TLS. That's why I use
> Andrew> __UCLIBC_HAS_TLS__ conditional.
> Andrew> There is no such bug in 0.9.30.x.
> Sounds related to:
Yes, it is definitely related. I don't understand why the bug is RESOLVED
as WONTFIX. Of course it is nice that it is not an issue with NPTL, but as
far as I can see in Config.in NPTL is still considered unstable/immature.
IMHO, suggested patch is short, fix exactly what was broken, does
not touch code for NPTL (TLS) case.
The bug makes uClibc 0.9.32 as well as 0.9.31 unusable with
linuxthreads.old. I've not checked linuxthreads. IMHO, it would be
really nice if it is finally fixed in upcoming releases.
OKTET Labs, St.-Petersburg, Russia Web: www.oktetlabs.ru
Office: +7 812 7832191 Fax: +7 812 7846591 Mobile: +7 921 7479683
More information about the uClibc