On 26/07/2012 20.41, Scott Moore wrote: > Hi all, > I'm trying to compile uClibc 0.9.33.2 with NPTL support, but I keep > encountering build failures (possibly related to ldso). I have > successfully built uClibc in with no thread support or with > linuxthreads.old. I appreciate any help you can offer. Please let me > know if there are additional details I can provide. > Thanks, > Scott > > Some specs: > > $ uname -a > Linux ubuntu 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC > 2012 x86_64 x86_64 x86_64 GNU/Linux > > $ gcc -v > Using built-in specs. > COLLECT_GCC=gcc > COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.5.3/lto-wrapper > Target: x86_64-linux-gnu > Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro > 4.5.3-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs > --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr > --program-suffix=-4.5 --enable-shared --enable-linker-build-id > --with-system-zlib --libexecdir=/usr/lib --without-included-gettext > --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.5 > --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu > --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin > --enable-gold --enable-ld=default --with-plugin-ld=ld.gold > --enable-objc-gc --disable-werror --with-arch-32=i686 > --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu > --host=x86_64-linux-gnu --target=x86_64-linux-gnu > Thread model: posix > gcc version 4.5.3 (Ubuntu/Linaro 4.5.3-12ubuntu2) > > $ ld -v > GNU ld (GNU Binutils for Ubuntu) 2.22 > > > > > Here are all of the errors or warnings that appear during compilation, > followed by the command that fails and something that seem like it might > help: > > $ make > . > . > . > CC ldso/ldso/ldso.oS > ldso/ldso/ldso.c: In function '_dl_get_ready_to_run': > ldso/ldso/ldso.c:750:22: warning: cast from pointer to integer of > different size > ldso/ldso/ldso.c:750:16: warning: unused variable 'tmp' > . > . > . > make[1]: `lib/ld64-uClibc.so' is up to date. > CC ldso/libdl/libdl.oS > ldso/libdl/libdl.c: In function 'do_dlsym': > ldso/libdl/libdl.c:738:59: warning: cast from pointer to integer of > different size > . > . > . > CC libc/stdio/popen.os > libc/stdio/popen.c:136:2: warning: #warning is pclose correct wrt the > new mutex semantics? > . > . > . > CC libc/stdio/_stdio.os > libc/stdio/_stdio.c: In function '_stdio_term': > libc/stdio/_stdio.c:199:2: warning: #warning check > . > . > . > CC libc/stdio/_vfprintf_internal.os > In file included from libc/stdio/_vfprintf_internal.c:9:0: > libc/stdio/_vfprintf.c: In function '_vfprintf_internal': > libc/stdio/_vfprintf.c:1448:15: warning: 'argptr$' may be used > uninitialized in this function > . > . > . > CC libc/stdio/fflush_unlocked.os > In file included from libc/stdio/fflush_unlocked.c:9:0: > libc/stdio/fflush.c: In function 'fflush_unlocked': > libc/stdio/fflush.c:100:2: warning: #warning fix for nonatomic > libc/stdio/fflush.c:101:2: warning: #warning unnecessary check if no > threads > . > . > . > CC libpthread/nptl/forward.oS > libpthread/nptl/forward.c: In function '__pthread_unwind': > libpthread/nptl/forward.c:158:1: warning: 'noreturn' function does return > . > . > . > CC libpthread/nptl/sysdeps/pthread/pt-longjmp.oS > libpthread/nptl/sysdeps/pthread/pt-longjmp.c: In function 'longjmp': > libpthread/nptl/sysdeps/pthread/pt-longjmp.c:27:3: warning: implicit > declaration of function '__libc_longjmp' > libpthread/nptl/sysdeps/pthread/pt-longjmp.c:28:1: warning: 'noreturn' > function does return > . > . > . > CC libpthread/nptl/pt-cleanup.oS > libpthread/nptl/pt-cleanup.c:27:1: warning: redeclaration of > '__pthread_cleanup_upto' with different visibility (old visibility > preserved) > libpthread/nptl/pthreadP.h:357:1: note: previous declaration of > '__pthread_cleanup_upto' was here > . > . > . > CC libpthread/nptl/pthread_getspecific.oS > libpthread/nptl/pthread_getspecific.c:27:1: warning: 'visibility' > attribute ignored on non-class types > . > . > . > CC libpthread/nptl/unwind.oS > libpthread/nptl/unwind.c: In function 'unwind_stop': > libpthread/nptl/unwind.c:96:5: warning: implicit declaration of function > '__libc_longjmp' > libpthread/nptl/unwind.c: At top level: > libpthread/nptl/unwind.c:123:1: warning: redeclaration of > '__pthread_unwind' with different visibility (old visibility preserved) > libpthread/nptl/pthreadP.h:250:1: note: previous declaration of > '__pthread_unwind' was here > CC libpthread/nptl/vars.oS > AR cr libpthread/nptl/libpthread_so.a > STRIP -x -R .note -R .comment libpthread/nptl/libpthread_so.a > CC libpthread/nptl/pthread_atfork.oS > AR cr lib/libpthread_nonshared.a > STRIP -x -R .note -R .comment lib/libpthread_nonshared.a > CC libpthread/nptl/sysdeps/pthread/pt-initfini.s > GEN libpthread/nptl/sysdeps/pthread/defs.h > GEN libpthread/nptl/sysdeps/pthread/pt-crti.S > AS libpthread/nptl/sysdeps/pthread/pt-crti.o > GEN libpthread/nptl/sysdeps/pthread/pt-crtn.S > AS libpthread/nptl/sysdeps/pthread/pt-crtn.o > LD libpthread-0.9.33.2.so > libpthread/nptl/libpthread_so.a(unwind-forcedunwind.oS): In function > `pthread_cancel_init': > unwind-forcedunwind.c:(.text+0x26): undefined reference to `dlopen' > unwind-forcedunwind.c:(.text+0x3d): undefined reference to `dlsym' > libpthread/nptl/libpthread_so.a(unwind-forcedunwind.oS): In function > `__unwind_freeres': > unwind-forcedunwind.c:(__libc_freeres_fn+0x18): undefined reference to > `dlclose' > collect2: ld returned 1 exit status > make: *** [lib/libpthread.so] Error 1 > > > > The LD command that fails here is: > gcc -nostartfiles -Wl,-EL -shared -Wl,--warn-common -Wl,--warn-once > -Wl,-z,combreloc -Wl,-z,relro -Wl,-z,defs -Wl,-s > ./lib/ld64-uClibc-0.9.33.2.so ./lib/libdl-0.9.33.2.so > -Wl,-z,nodelete,-z,initfirst,-init=__pthread_initialize_minimal_internal > -Wl,-soname=libpthread.so.0 -nostdlib -o lib/libpthread-0.9.33.2.so > ./libpthread/nptl/sysdeps/pthread/pt-crti.o -Wl,--whole-archive > libpthread/nptl/libpthread_so.a -Wl,--no-whole-archive ./lib/interp.os > -L./lib ./lib/libc.so /usr/lib/gcc/x86_64-linux-gnu/4.5.3/libgcc.a > ./libpthread/nptl/sysdeps/pthread/pt-crtn.o > > > Adding -Wl,--no-as-needed makes this command complete successfully, but > restarting make deletes the file and tries again. I couldn't find away > to have this option passed to this command automatically, and I'm not > sure that is the right fix anyway.
I'd like to reproduce it... could you share you're .config ? carmelo > _______________________________________________ > uClibc mailing list > uClibc@uclibc.org > http://lists.busybox.net/mailman/listinfo/uclibc > > _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc