ERRNO handling in linuxthreads.old (broken build)(not solved)

Sergei Poselenov sposelenov at emcraft.com
Sun Mar 24 09:04:11 UTC 2013


Hello Bernhard,

On Чт., 2013-03-21 at 19:50 +0100, Bernhard Reutner-Fischer wrote:
> On 19 March 2013 16:47, Sergei Poselenov <sposelenov at emcraft.com> wrote:
> > Hello all,
> >
> > As it turned out, uncommenting the "!STATIC" condition in
> > include/libc-symbols.h breaks the "libc_hidden_proto()" for config_read().
> > I'm building busybox with its own version of config_read() and resolver gets
> > linked with the busybox version. It's the same issue as
> > http://lists.uclibc.org/pipermail/uclibc/2010-November/044488.html
> >
> > Anyone willing to help? How can build linuxthreads.old in static configuration
> > so that the errno could be correctly initialized?
> 
> Can you reproduce the problem on master?
> If not,
> cherry-pick 87936cd0130414cccc8a7427498dd5491ec2664f and
> f418f52701de02954c90341e5c9ccdd3f07ccd33 unto the 0.9.33 branch ?

I tried but master (with my patches for thumb/testandset()) doesn't work
for me. A simple MT application just exits after ptrhead_create(). The
same with the 0.9.33 (patched) with these two commits cherry-picked.
Plain 0.9.33 (patched) creates the thread but it has the original
problem referencing to the correct errno location.

Anyway, thanks for the hint.

I finally found and applied to 0.9.32 the patch by Peter Korsgaard
https://github.com/twobob/buildroot-kindle/blob/master/toolchain/uClibc/uClibc-0.9.31.1-linuxthreads-errno-fix.patch.

With the patch applied all works as expected. My tests included:
 - errno location is correct for the thread
 - busybox nslookup simple test to ensure config_read() linked to
resolver is of the libc version, not from busybox (otherwise SEGV-ed).

 As I learned, the patch wasn't applied to uClibc master because it
breaks NPTL build on SPARC, correct?

And BTW when do you expect 0.9.33 released? 

Regards,
Sergei



More information about the uClibc mailing list