diff -Nur uClibc-0.9.32.1/libc/signal/Makefile.in uClibc.new/libc/signal/Makefile.in --- uClibc-0.9.32.1/libc/signal/Makefile.in 2011-12-30 12:11:07.000000000 +0100 +++ uClibc.new/libc/signal/Makefile.in 2012-02-17 15:13:33.000000000 +0100 @@ -17,7 +17,7 @@ CSRC-$(UCLIBC_SUSV4_LEGACY) += sigintr.c ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y) -CSRC-y:=$(filter-out raise.c sigaction.c,$(CSRC-y)) +CSRC-y:=$(filter-out raise.c,$(CSRC-y)) endif ifneq ($(strip $(ARCH_OBJS)),) diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/arm/Makefile.arch uClibc.new/libc/sysdeps/linux/arm/Makefile.arch --- uClibc-0.9.32.1/libc/sysdeps/linux/arm/Makefile.arch 2011-12-30 12:11:07.000000000 +0100 +++ uClibc.new/libc/sysdeps/linux/arm/Makefile.arch 2012-02-17 15:13:33.000000000 +0100 @@ -5,11 +5,7 @@ # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. # -CSRC := brk.c ioperm.c iopl.c mmap.c __syscall_error.c - -ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y) -CSRC += sigaction.c -endif +CSRC := brk.c ioperm.c iopl.c mmap.c __syscall_error.c sigaction.c SSRC := \ __longjmp.S setjmp.S bsd-setjmp.S \ diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/i386/Makefile.arch uClibc.new/libc/sysdeps/linux/i386/Makefile.arch --- uClibc-0.9.32.1/libc/sysdeps/linux/i386/Makefile.arch 2011-12-30 12:11:07.000000000 +0100 +++ uClibc.new/libc/sysdeps/linux/i386/Makefile.arch 2012-02-17 15:13:33.000000000 +0100 @@ -5,11 +5,7 @@ # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. # -CSRC := brk.c __syscall_error.c - -ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y) -CSRC += sigaction.c -endif +CSRC := brk.c __syscall_error.c sigaction.c SSRC := \ __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \ diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/mips/Makefile.arch uClibc.new/libc/sysdeps/linux/mips/Makefile.arch --- uClibc-0.9.32.1/libc/sysdeps/linux/mips/Makefile.arch 2011-12-30 12:11:07.000000000 +0100 +++ uClibc.new/libc/sysdeps/linux/mips/Makefile.arch 2012-02-17 15:13:33.000000000 +0100 @@ -7,7 +7,7 @@ CSRC := \ __longjmp.c brk.c setjmp_aux.c mmap.c \ - cacheflush.c pread_write.c sysmips.c _test_and_set.c \ + cacheflush.c pread_write.c sigaction.c sysmips.c _test_and_set.c \ readahead.c SSRC := bsd-_setjmp.S bsd-setjmp.S setjmp.S syscall.S pipe.S syscall_error.S @@ -17,7 +17,6 @@ endif ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y) -CSRC += sigaction.c SSRC += vfork.S clone.S endif diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/sparc/Makefile.arch uClibc.new/libc/sysdeps/linux/sparc/Makefile.arch --- uClibc-0.9.32.1/libc/sysdeps/linux/sparc/Makefile.arch 2011-12-30 12:11:07.000000000 +0100 +++ uClibc.new/libc/sysdeps/linux/sparc/Makefile.arch 2012-02-17 15:14:20.000000000 +0100 @@ -5,15 +5,14 @@ # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. # -CSRC := brk.c __syscall_error.c +CSRC := brk.c __syscall_error.c sigaction.c SSRC := \ __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \ syscall.S urem.S udiv.S umul.S sdiv.S rem.S pipe.S ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y) -CSRC += sigaction.c -SSRC += fork.S vfork.S +SSRC += fork.S vfork.S clone.S endif # check weather __LONG_DOUBLE_128__ is defined (long double support) diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/x86_64/Makefile.arch uClibc.new/libc/sysdeps/linux/x86_64/Makefile.arch --- uClibc-0.9.32.1/libc/sysdeps/linux/x86_64/Makefile.arch 2011-12-30 12:11:07.000000000 +0100 +++ uClibc.new/libc/sysdeps/linux/x86_64/Makefile.arch 2012-02-17 15:13:33.000000000 +0100 @@ -5,11 +5,7 @@ # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. # -CSRC := brk.c __syscall_error.c mmap.c - -ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y) -CSRC += sigaction.c -endif +CSRC := brk.c __syscall_error.c sigaction.c mmap.c SSRC := \ __longjmp.S setjmp.S syscall.S bsd-setjmp.S bsd-_setjmp.S diff -Nur uClibc-0.9.32.1/libpthread/nptl/.gitignore uClibc.new/libpthread/nptl/.gitignore --- uClibc-0.9.32.1/libpthread/nptl/.gitignore 2011-12-30 12:11:07.000000000 +0100 +++ uClibc.new/libpthread/nptl/.gitignore 2012-02-17 15:13:33.000000000 +0100 @@ -24,6 +24,5 @@ # # symlinks # -sysdeps/pthread/pt-sigaction.c sysdeps/pthread/pt-sigfillset.c sysdeps/pthread/pt-sigprocmask.c diff -Nur uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/Makefile.in uClibc.new/libpthread/nptl/sysdeps/pthread/Makefile.in --- uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/Makefile.in 2011-12-30 12:11:07.000000000 +0100 +++ uClibc.new/libpthread/nptl/sysdeps/pthread/Makefile.in 2012-02-17 15:13:33.000000000 +0100 @@ -42,8 +42,6 @@ CFLAGS-pthread_spin_destroy.c = -D_GNU_SOURCE CFLAGS-pthread_spin_init.c = -D_GNU_SOURCE CFLAGS-pthread_spin_unlock.c = -D_GNU_SOURCE -CFLAGS-pt-sigaction.c = -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH) \ - -I$(top_srcdir)libc/signal CFLAGS-pt-sigfillset.c = -I$(top_srcdir)libc/signal CFLAGS-pt-sigprocmask.c = -I$(top_srcdir)libc/sysdeps/linux/common CFLAGS-unwind-forcedunwind.c = -fexceptions -fasynchronous-unwind-tables @@ -58,10 +56,6 @@ libpthread-so-y += $(patsubst %,$(libpthread_pthread_OUT)/%.oS, \ pt-sigaction pt-sigprocmask unwind-forcedunwind) -CFLAGS-OMIT-sigaction.c = $(CFLAGS-pthread) -CFLAGS-sigaction.c = -I$(top_srcdir)libc/signal -libc-y += $(libpthread_pthread_OUT)/sigaction.o - librt-pt-routines-y = librt-cancellation.c librt-pt-shared-only-routines-y = rt-unwind-resume.c @@ -114,7 +108,7 @@ # impl, but ok. # Special rules needed since we do objdir->objdir compilation for these 3. # First symlink them, then build them. Rob would freak out on these. Sheesh! ;) -pthread-lc-fwd = sigaction sigfillset sigprocmask +pthread-lc-fwd = sigfillset sigprocmask $(patsubst %,$(libpthread_pthread_OUT)/pt-%.c,$(pthread-lc-fwd)): | $(libpthread_pthread_OUT) $(do_ln) $(call rel_srcdir)$(patsubst pt-%,$(libpthread_pthread_DIR)/%,$(@F)) $@ $(patsubst %,$(libpthread_pthread_OUT)/pt-%.oS,$(pthread-lc-fwd)): $(libpthread_pthread_OUT)/pt-%.oS: $(libpthread_pthread_OUT)/pt-%.c @@ -131,5 +125,5 @@ CLEAN_libpthread/nptl/sysdeps/pthread: $(do_rm) $(addprefix $(libpthread_pthread_OUT)/*., o os oS s S) \ $(libpthread_pthread_OUT)/defs.h \ - $(addprefix $(libpthread_pthread_DIR)/,pt-sigaction.c \ + $(addprefix $(libpthread_pthread_DIR)/, \ pt-sigfillset.c pt-sigprocmask.c) diff -Nur uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/pt-sigaction.c uClibc.new/libpthread/nptl/sysdeps/pthread/pt-sigaction.c --- uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/pt-sigaction.c 1970-01-01 01:00:00.000000000 +0100 +++ uClibc.new/libpthread/nptl/sysdeps/pthread/pt-sigaction.c 2012-02-17 15:13:33.000000000 +0100 @@ -0,0 +1,40 @@ +/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2002. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* We use the libc implementation but we tell it to not allow + SIGCANCEL or SIGTIMER to be handled. */ + +extern __typeof(sigaction) __libc_sigaction; +int +__sigaction (int sig, const struct sigaction *act, struct sigaction *oact) +{ + if (unlikely (sig == SIGCANCEL || sig == SIGSETXID)) + { + __set_errno (EINVAL); + return -1; + } + + return __libc_sigaction (sig, act, oact); +} +libc_hidden_proto(sigaction) +weak_alias (__sigaction, sigaction) +libc_hidden_weak(sigaction) diff -Nur uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/sigaction.c uClibc.new/libpthread/nptl/sysdeps/pthread/sigaction.c --- uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/sigaction.c 2011-12-30 12:11:07.000000000 +0100 +++ uClibc.new/libpthread/nptl/sysdeps/pthread/sigaction.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,49 +0,0 @@ -/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 2002. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef LIBC_SIGACTION - -#include - -/* We use the libc implementation but we tell it to not allow - SIGCANCEL or SIGTIMER to be handled. */ -#define LIBC_SIGACTION 1 -#include - -extern __typeof(sigaction) __sigaction; -int -__sigaction (int sig, const struct sigaction *act, struct sigaction *oact) -{ - if (__builtin_expect (sig == SIGCANCEL || sig == SIGSETXID, 0)) - { - __set_errno (EINVAL); - return -1; - } - - return __libc_sigaction (sig, act, oact); -} -libc_hidden_proto(sigaction) -weak_alias (__sigaction, sigaction) -libc_hidden_weak(sigaction) - -#else - -# include_next - -#endif /* LIBC_SIGACTION */