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