From bb1a6cbd0ef6965e7a3eb65a4d8284c38be2fc19 Mon Sep 17 00:00:00 2001 From: Roman I Khimov Date: Fri, 30 Apr 2010 18:18:31 +0400 Subject: nptl: use arch-specific cancellation routines for x86_64 They were present in sources, but not compiled in. Generic routines are broken badly on x86_64, even basic threading test like pthread/ex1 didn't work with them. Signed-off-by: Roman I Khimov Signed-off-by: Austin Foxley --- libpthread/nptl/Makefile.in | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'libpthread/nptl/Makefile.in') diff --git a/libpthread/nptl/Makefile.in b/libpthread/nptl/Makefile.in index 9d3e393c0..c229673c5 100644 --- a/libpthread/nptl/Makefile.in +++ b/libpthread/nptl/Makefile.in @@ -103,6 +103,10 @@ libpthread-routines = init vars events version \ libpthread-shared-only-routines = version pt-allocrtsig unwind-forcedunwind +ifeq ($(TARGET_ARCH),x86_64) +libpthread-routines := $(filter-out cancellation,$(libpthread-routines)) +endif + CFLAGS-pthread_atfork.c = -DNOT_IN_libc # Since cancellation handling is in large parts handled using exceptions @@ -245,10 +249,16 @@ libpthread_so_SRC = $(patsubst %, $(PTHREAD_DIR)/%.c, \ $(filter-out $(libpthread-os-routines) \ $(libpthread-misc-routines), $(libpthread-routines))) +ifeq ($(TARGET_ARCH),x86_64) +libc-static-y += $(patsubst %.c, $(PTHREAD_OUT)/%.o, alloca_cutoff.c) +libc-shared-y += $(patsubst %.c, $(PTHREAD_OUT)/%.oS, forward.c) +else libc-static-y += $(patsubst %.c, $(PTHREAD_OUT)/%.o, alloca_cutoff.c \ libc-cancellation.c) libc-shared-y += $(patsubst %.c, $(PTHREAD_OUT)/%.oS, forward.c \ libc-cancellation.c) +endif + libpthread-nonshared-y += $(patsubst %,$(PTHREAD_OUT)/%.oS,$(libpthread_static_SRC)) -- cgit v1.2.3