0.9.29, somethings wrong with linker or threading

Joakim Tjernlund joakim.tjernlund at transmode.se
Wed May 16 08:12:29 UTC 2007


On Tue, 2007-05-15 at 18:27 -0600, Kevin Day wrote:
> On 5/15/07, Kevin Day <thekevinday at gmail.com> wrote:
> > On 5/15/07, Joakim Tjernlund <joakim.tjernlund at transmode.se> wrote:
> > > On Mon, 2007-05-14 at 21:03 -0600, Kevin Day wrote:
> > > > First off, good job with this version, for the most part it is
> > > > noticably working better than the previous versions.
> > > >
> > > > I just ran into a problem with either posix threads (stable)
> > > > (LINUXTHREADS_OLD=y) or something weird going on with the dynamic
> > > > linker.
> > >
> > > The dynamic linker hasn't received much updates lately, I suspect
> > > toolchain. Maybe a if you compile uClibc with SUPPORT_LD_DEBUG=y
> > > and run your test app with
> > >   LD_DEBUG=all ./a.out
> > > can tell us more.
> > >
> >
> okay, with all debug optiosn except LD_DEBUG_EARLY, things compiled as
> they did before.
> 
> Now that I have a debuggability, I performed two tests.
> I used perl for my tests as it also produces the same errors and..well
> just about all things using pthread.
> first was 'gcc -lperl -lpthread test.c'
> i then logged 'LD_DEBUG=all ./a.out'
> 
> the second was 'gcc -lperl test.c'
> i then logged 'LD_DEBUG=all ./a.out'
> 
> To see what is going on differently between the two, I made a diff of
> the two logs.
> I called it log.patch so vim would use syntax highlighting (.patch extension).
> 
> The diff of the two tests is attached.
> 

Its a bit hard to make out what is going on from a diff only, but it
appears that the INIT processing in libpthread is SEGV, but only if
libpthread is loadead after libc. Perhaps commenting stuff out
in pthread_initialize() will pinpoint the error.
Maybe it is an uncommon CONFIG option thats causing it(LOCALE?)

 Jocke





More information about the uClibc mailing list