uClibc-0.9.33: ARM NPTL static link failure with sigprocmask vs. setjmp

Johannes Stezenbach js at sig21.net
Mon Feb 20 14:55:24 UTC 2012


Hi,

while my simple test cases all worked a more complicated application
fails to link.  I distilled this small test case:

#include <stddef.h>
#include <signal.h>
#include <setjmp.h>

int main()
{
        sigset_t set;
        jmp_buf env;
        sigemptyset(&set);
        sigprocmask(SIG_BLOCK, &set, NULL);
        setjmp(env);
        return 0;
}

$ arm-unknown-linux-uclibcgnueabi-gcc -Wall sig.c -static -lpthread
.../arm-unknown-linux-uclibcgnueabi/sysroot/usr/lib/libc.a(sigprocmask.o): In function `__GI_sigprocmask':
.../arm-unknown-linux-uclibcgnueabi/build/build-libc/libc/sysdeps/linux/common/sigprocmask.c:27: multiple definition of `sigprocmask'
.../arm-unknown-linux-uclibcgnueabi/sysroot/usr/lib/libpthread.a(pt-sigprocmask.o):.../arm-unknown-linux-uclibcgnueabi/build/build-libc/./libc/sysdeps/linux/arm/../../../../libc/sysdeps/linux/common/sigprocmask.c:27: first defined here
collect2: ld returned 1 exit status


I'm not sure what is the right fix.
Just remove libpthread/nptl/sysdeps/pthread/sigprocmask.c ?


Johannes


More information about the uClibc mailing list