NPTL MIPS, current git head, programs block on startup
Andreas Schultz
andreas.schultz at gmail.com
Tue Apr 27 09:41:03 UTC 2010
Hi,
With the current git head (00891d9cf07efd992023f255164bba93d657ece4)
NPTL no longer works on MIPS. It did work with
a501a33e9761f32b3d38ab9f113892abe7cef3f1.
The problem is somewhere in the _pthread_cleanup_push_defer:
Program terminated with signal 5, Trace/breakpoint trap.
#0 _pthread_cleanup_push_defer (buffer=<value optimized out>,
routine=<value optimized out>, arg=<value optimized out>) at
libpthread/nptl/forward.c:148
148 FORWARD2(_pthread_cleanup_push_defer,
(gdb) bt
#0 _pthread_cleanup_push_defer (buffer=<value optimized out>,
routine=<value optimized out>, arg=<value optimized out>) at
libpthread/nptl/forward.c:148
#1 0x2ac90ef0 in *__GI_openlog (ident=0x7fc74f48 "hotplug",
logstat=3, logfac=24) at libc/misc/syslog/syslog.c:176
#2 0x004027cc in main (argc=2, argv=0x7fc74454) at ctrl.c:932
It seems that it is stuck in a endless loop, where the FORWARD2
wrapper calls itself instead of the real implementation.
Looking at init.c my best guess would be that
.ptr__pthread_cleanup_push_defer should be initialized with
__pthread_cleanup_push_defer and not with _pthread_cleanup_push_defer
(two undelines instead of one).
Andreas
More information about the uClibc
mailing list