[git commit] buildsys: fixup sigaction handling
Carmelo AMOROSO
carmelo.amoroso at st.com
Mon Jan 30 14:14:33 UTC 2012
On 28/01/2012 21.28, Bernhard Reutner-Fischer wrote:
> commit: http://git.uclibc.org/uClibc/commit/?id=83ce0cc4d5e93549f0a9447a9bd6b051f5f1b62f
> branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/master
>
> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
Thanks Bernhard,
I couldn't complete my patch last Friday. I was doing something similar.
Few comments inlined:
> ---
> libc/signal/Makefile.in | 2 +-
> libc/sysdeps/linux/arm/Makefile.arch | 6 +-----
> libc/sysdeps/linux/i386/Makefile.arch | 6 +-----
> libc/sysdeps/linux/mips/Makefile.arch | 3 +--
> libc/sysdeps/linux/sparc/Makefile.arch | 3 +--
> libc/sysdeps/linux/x86_64/Makefile.arch | 6 +-----
> libpthread/nptl/.gitignore | 1 -
> libpthread/nptl/sysdeps/pthread/Makefile.in | 10 ++--------
> .../pthread/{sigaction.c => pt-sigaction.c} | 15 +++------------
> 9 files changed, 11 insertions(+), 41 deletions(-)
>
> diff --git a/libc/signal/Makefile.in b/libc/signal/Makefile.in
> index bb5ba8f..46c2af7 100644
> --- a/libc/signal/Makefile.in
> +++ b/libc/signal/Makefile.in
> @@ -17,7 +17,7 @@ CSRC-$(UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL) += sysv_signal.c
> 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 --git a/libc/sysdeps/linux/arm/Makefile.arch b/libc/sysdeps/linux/arm/Makefile.arch
> index ddd104d..cd1710a 100644
> --- a/libc/sysdeps/linux/arm/Makefile.arch
> +++ b/libc/sysdeps/linux/arm/Makefile.arch
> @@ -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 --git a/libc/sysdeps/linux/i386/Makefile.arch b/libc/sysdeps/linux/i386/Makefile.arch
> index 668cca7..966f8b5 100644
> --- a/libc/sysdeps/linux/i386/Makefile.arch
> +++ b/libc/sysdeps/linux/i386/Makefile.arch
> @@ -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 --git a/libc/sysdeps/linux/mips/Makefile.arch b/libc/sysdeps/linux/mips/Makefile.arch
> index 8bbc0bc..738cdd0 100644
> --- a/libc/sysdeps/linux/mips/Makefile.arch
> +++ b/libc/sysdeps/linux/mips/Makefile.arch
> @@ -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 @@ CSRC += posix_fadvise.c posix_fadvise64.c
> endif
>
> ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
> -CSRC += sigaction.c
> SSRC += vfork.S clone.S
> endif
>
> diff --git a/libc/sysdeps/linux/sparc/Makefile.arch b/libc/sysdeps/linux/sparc/Makefile.arch
> index 820b2fa..aa58756 100644
> --- a/libc/sysdeps/linux/sparc/Makefile.arch
> +++ b/libc/sysdeps/linux/sparc/Makefile.arch
> @@ -5,14 +5,13 @@
> # 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 clone.S
> endif
>
> diff --git a/libc/sysdeps/linux/x86_64/Makefile.arch b/libc/sysdeps/linux/x86_64/Makefile.arch
> index 0d14650..3243d86 100644
> --- a/libc/sysdeps/linux/x86_64/Makefile.arch
> +++ b/libc/sysdeps/linux/x86_64/Makefile.arch
> @@ -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 --git a/libpthread/nptl/.gitignore b/libpthread/nptl/.gitignore
> index 0a86898..6565dcd 100644
> --- a/libpthread/nptl/.gitignore
> +++ b/libpthread/nptl/.gitignore
> @@ -26,6 +26,5 @@ sysdeps/pthread/pt-crtn.S
> #
> # symlinks
> #
> -sysdeps/pthread/pt-sigaction.c
> sysdeps/pthread/pt-sigfillset.c
> sysdeps/pthread/pt-sigprocmask.c
> diff --git a/libpthread/nptl/sysdeps/pthread/Makefile.in b/libpthread/nptl/sysdeps/pthread/Makefile.in
> index be5c022..79765e9 100644
> --- a/libpthread/nptl/sysdeps/pthread/Makefile.in
> +++ b/libpthread/nptl/sysdeps/pthread/Makefile.in
> @@ -42,8 +42,6 @@ CFLAGS-pthread_barrier_wait.c = -D_GNU_SOURCE
> 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 @@ CFLAGS-rt-unwind-resume.c = -DIS_IN_librt \
> 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 @@ endif
> # 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 @@ objclean-y += CLEAN_libpthread/nptl/sysdeps/pthread
> 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 --git a/libpthread/nptl/sysdeps/pthread/sigaction.c b/libpthread/nptl/sysdeps/pthread/pt-sigaction.c
> similarity index 84%
> rename from libpthread/nptl/sysdeps/pthread/sigaction.c
> rename to libpthread/nptl/sysdeps/pthread/pt-sigaction.c
I wouldn't have renamed to pt-sigaction, as it seems to me that the pt-
prefix is used for implementation within libpthread.
> index e004a39..8b34cd9 100644
> --- a/libpthread/nptl/sysdeps/pthread/sigaction.c
> +++ b/libpthread/nptl/sysdeps/pthread/pt-sigaction.c
> @@ -17,20 +17,17 @@
> Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> 02111-1307 USA. */
>
> -#ifndef LIBC_SIGACTION
> -
> #include <pthreadP.h>
> +#include <signal.h>
>
> /* We use the libc implementation but we tell it to not allow
> SIGCANCEL or SIGTIMER to be handled. */
> -#define LIBC_SIGACTION 1
> -#include <sigaction.c>
>
> -extern __typeof(sigaction) __sigaction;
> +extern __typeof(sigaction) __libc_sigaction;
> int
> __sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
> {
> - if (__builtin_expect (sig == SIGCANCEL || sig == SIGSETXID, 0))
> + if (unlikely (sig == SIGCANCEL || sig == SIGSETXID))
> {
> __set_errno (EINVAL);
> return -1;
> @@ -41,9 +38,3 @@ __sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
> libc_hidden_proto(sigaction)
> weak_alias (__sigaction, sigaction)
> libc_hidden_weak(sigaction)
> -
> -#else
> -
> -# include_next <sigaction.c>
> -
> -#endif /* LIBC_SIGACTION */
what about removing the __sigaction symbol, and use a plain sigation ?
further libc_hidden_proto could be removed as well as we are now
including signal.h
Cheers,
Carmelo
> _______________________________________________
> uClibc-cvs mailing list
> uClibc-cvs at uclibc.org
> http://lists.busybox.net/mailman/listinfo/uclibc-cvs
>
More information about the uClibc
mailing list