diff -Nur uClibc-0.9.32.1.orig/libc/sysdeps/linux/common/sigprocmask.c uClibc-0.9.32.1/libc/sysdeps/linux/common/sigprocmask.c
--- uClibc-0.9.32.1.orig/libc/sysdeps/linux/common/sigprocmask.c	2011-12-30 12:11:07.000000000 +0100
+++ uClibc-0.9.32.1/libc/sysdeps/linux/common/sigprocmask.c	2012-02-18 11:40:09.000000000 +0100
@@ -23,7 +23,7 @@
 _syscall4(int, __rt_sigprocmask, int, how, const sigset_t *, set,
 		  sigset_t *, oldset, size_t, size)
 
-int sigprocmask(int how, const sigset_t * set, sigset_t * oldset)
+int weak_function sigprocmask(int how, const sigset_t * set, sigset_t * oldset)
 {
 #ifdef SIGCANCEL
 	sigset_t local_newmask;
@@ -58,7 +58,7 @@
 _syscall3(int, __syscall_sigprocmask, int, how, const sigset_t *, set,
 		  sigset_t *, oldset)
 
-int sigprocmask(int how, const sigset_t * set, sigset_t * oldset)
+int weak_function sigprocmask(int how, const sigset_t * set, sigset_t * oldset)
 {
 #ifdef SIGCANCEL
 	sigset_t local_newmask;
