Trying to link custom software (same code links on 2011.05 with same config). Output: /home/zicada/buildroot-2011.08/output/host/usr/lib/gcc/arm-unknown-linux-uclibcgnueabi/4.3.6/libgcc_eh.a(unwind-arm.o): In function `__aeabi_unwind_cpp_pr0': /home/zicada/buildroot-2011.08/output/toolchain/gcc-4.3.6/libgcc/../gcc/config/arm/unwind-arm.c:1251: multiple definition of `__aeabi_unwind_cpp_pr0' /home/zicada/buildroot-2011.08/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/lib/librt.a(aeabi_unwind_cpp_pr1.os):aeabi_unwind_cpp_pr1.c:(.text+0x0): first defined here /home/zicada/buildroot-2011.08/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/lib/libc.a(sigprocmask.os): In function `sigprocmask': sigprocmask.c:(.text+0x0): multiple definition of `sigprocmask' /home/zicada/buildroot-2011.08/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/lib/libpthread.a(pt-sigprocmask.os):pt-sigprocmask.c:(.text+0x0): first defined here /home/zicada/buildroot-2011.08/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/lib/libc.a(sigaction.os): In function `__libc_sigaction': sigaction.c:(.text+0x0): multiple definition of `__libc_sigaction' /home/zicada/buildroot-2011.08/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/lib/libpthread.a(pt-sigaction.os):pt-sigaction.c:(.text+0x0): first defined here /home/zicada/buildroot-2011.08/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/lib/libc.a(sigaction.os): In function `sigaction': sigaction.c:(.text+0x84): multiple definition of `__sigaction' /home/zicada/buildroot-2011.08/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/lib/libpthread.a(pt-sigaction.os):pt-sigaction.c:(.text+0x84): first defined here collect2: ld returned 1 exit status make: *** [target/dist/jottaembedded] Error 1
I confirm this bug. arm-linux-gcc test.c -o test -lpthread -static /home/dl3/src/buildroot-2011.08_test/output/host/usr/lib/gcc/arm-unknown-linux-uclibcgnueabi/4.3.6/libgcc_eh.a(unwind-arm.o): In function `__aeabi_unwind_cpp_pr0': /home/dl3/src/buildroot-2011.08_test/output/toolchain/gcc-4.3.6/libgcc/../gcc/config/arm/unwind-arm.c:1251: multiple definition of `__aeabi_unwind_cpp_pr0' /home/dl3/src/buildroot-2011.08_test/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/lib/libpthread.a(aeabi_unwind_cpp_pr1.os):/home/dl3/src/buildroot-2011.08_test/output/toolchain/uClibc-0.9.32/./libc/sysdeps/linux/arm/../../../../libc/sysdeps/linux/arm/aeabi_unwind_cpp_pr1.c:29: first defined here /home/dl3/src/buildroot-2011.08_test/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/lib/libc.a(sigprocmask.os): In function `*__GI_sigprocmask': /home/dl3/src/buildroot-2011.08_test/output/toolchain/uClibc-0.9.32/libc/sysdeps/linux/common/sigprocmask.c:27: multiple definition of `sigprocmask' /home/dl3/src/buildroot-2011.08_test/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/lib/libpthread.a(pt-sigprocmask.os):/home/dl3/src/buildroot-2011.08_test/output/toolchain/uClibc-0.9.32/./libc/sysdeps/linux/arm/../../../../libc/sysdeps/linux/common/sigprocmask.c:27: first defined here /home/dl3/src/buildroot-2011.08_test/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/lib/libc.a(sigaction.os): In function `__libc_sigaction': /home/dl3/src/buildroot-2011.08_test/output/toolchain/uClibc-0.9.32/./libc/sysdeps/linux/arm/sigaction.c:50: multiple definition of `__libc_sigaction' /home/dl3/src/buildroot-2011.08_test/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/lib/libpthread.a(pt-sigaction.os):/home/dl3/src/buildroot-2011.08_test/output/toolchain/uClibc-0.9.32/./libc/sysdeps/linux/arm/sigaction.c:50: first defined here /home/dl3/src/buildroot-2011.08_test/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/lib/libc.a(sigaction.os): In function `__sigaction': /home/dl3/src/buildroot-2011.08_test/output/toolchain/uClibc-0.9.32/libpthread/nptl/sysdeps/pthread/sigaction.c:32: multiple definition of `__sigaction' /home/dl3/src/buildroot-2011.08_test/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/lib/libpthread.a(pt-sigaction.os):/home/dl3/src/buildroot-2011.08_test/output/toolchain/uClibc-0.9.32/libpthread/nptl/sysdeps/pthread/pt-sigaction.c:32: first defined here collect2: ld returned 1 exit status
Can you please provide your Buildroot .config + source code of the test program ?
Created attachment 3619 [details] Buildroot configuration file.
System: Linux apps 2.6.38-11-generic #48-Ubuntu SMP Fri Jul 29 19:02:55 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux Buildroot: buildroot-2011.08.tar.bz2 arm/arm926t Config file attached. Test program: http://blog.superpat.com/2010/07/14/semaphores-on-linux-sem_init-vs-sem_open/ If this program is build with dynamic library it fail when run on sem_init() with error: "Function not implemented". Semaphores on my system works, for example, when I use semget(). Program can be linked as static or dynamic executable. Example program from: http://www.cs.uregina.ca/Links/class-info/330/Semaphore/semaphore.html program7_1.cpp AWa.
*** Bug 4249 has been marked as a duplicate of this bug. ***
The original problem is that statically linking with pthread doesn't work with uClibc. It is a known problem, which has been discussed on the uClibc mailing-list already: http://lists.uclibc.org/pipermail/uclibc/2011-March/045109.html. I haven't heard of it being fixed, though. As it is not a Buildroot bug, but a uClibc bug, I will be closing this bug, and I encourage you to report the problem to the uClibc people.