mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-28 16:48:52 +00:00
b7e9cbb06c
The patchset was obtained by dumping each changeset on the upstream 0.9.32 branch since the release: git log v0.9.32..origin/0.9.32 |sed -r -e '/^commit/!d; s/.* //;' |tac and then creating a patch from each changeset. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
183 lines
5.0 KiB
Diff
183 lines
5.0 KiB
Diff
commit f9e311d11c374e68736c741ede1845bdc8091627
|
|
Author: Khem Raj <raj.khem@gmail.com>
|
|
Date: Mon Jun 13 16:30:55 2011 -0700
|
|
|
|
ctor/dtor nptl: Fix init and fini function compilation
|
|
|
|
We need to define the rules for .S files so it
|
|
gets the include paths some architectures like mips
|
|
include headers
|
|
|
|
Some architectures e.g. SH have their own version
|
|
of pt-initfini.c so look for that first before resorting
|
|
to generic version of pt-initfini.c
|
|
|
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
|
|
diff --git a/libc/sysdeps/linux/mips/crtn.S b/libc/sysdeps/linux/mips/crtn.S
|
|
index cedd593..f3756a2 100644
|
|
--- a/libc/sysdeps/linux/mips/crtn.S
|
|
+++ b/libc/sysdeps/linux/mips/crtn.S
|
|
@@ -10,7 +10,6 @@
|
|
#NO_APP
|
|
.align 2
|
|
.globl _init
|
|
- .ent _init
|
|
.type _init, @function
|
|
#NO_APP
|
|
lw $31,28($sp)
|
|
@@ -22,14 +21,12 @@
|
|
.set macro
|
|
.set reorder
|
|
|
|
- .end _init
|
|
#APP
|
|
|
|
.section .fini
|
|
#NO_APP
|
|
.align 2
|
|
.globl _fini
|
|
- .ent _fini
|
|
.type _fini, @function
|
|
#NO_APP
|
|
lw $31,28($sp)
|
|
@@ -41,7 +38,6 @@
|
|
.set macro
|
|
.set reorder
|
|
|
|
- .end _fini
|
|
#APP
|
|
|
|
.ident "GCC: (GNU) 3.3.2"
|
|
@@ -54,10 +50,8 @@
|
|
|
|
.section .init
|
|
#NO_APP
|
|
- .align 2
|
|
.align 3
|
|
.globl _init
|
|
- .ent _init
|
|
.type _init, @function
|
|
#NO_APP
|
|
ld $31,8($sp)
|
|
@@ -68,16 +62,12 @@
|
|
addiu $sp,$sp,16
|
|
.set macro
|
|
.set reorder
|
|
-
|
|
- .end _init
|
|
#APP
|
|
|
|
.section .fini
|
|
#NO_APP
|
|
- .align 2
|
|
.align 3
|
|
.globl _fini
|
|
- .ent _fini
|
|
.type _fini, @function
|
|
#NO_APP
|
|
ld $31,8($sp)
|
|
@@ -89,7 +79,6 @@
|
|
.set macro
|
|
.set reorder
|
|
|
|
- .end _fini
|
|
#APP
|
|
|
|
.ident "GCC: (GNU) 3.4.3"
|
|
@@ -105,7 +94,6 @@
|
|
#NO_APP
|
|
.align 2
|
|
.globl _init
|
|
- .ent _init
|
|
.type _init, @function
|
|
#NO_APP
|
|
ld $31,24($sp)
|
|
@@ -118,14 +106,12 @@
|
|
.set macro
|
|
.set reorder
|
|
|
|
- .end _init
|
|
#APP
|
|
|
|
.section .fini
|
|
#NO_APP
|
|
.align 2
|
|
.globl _fini
|
|
- .ent _fini
|
|
.type _fini, @function
|
|
#NO_APP
|
|
ld $31,24($sp)
|
|
@@ -138,7 +124,6 @@
|
|
.set macro
|
|
.set reorder
|
|
|
|
- .end _fini
|
|
#APP
|
|
|
|
.ident "GCC: (GNU) 3.3.2"
|
|
diff --git a/libpthread/nptl/Makefile.in b/libpthread/nptl/Makefile.in
|
|
index 92d72a6..849bd59 100644
|
|
--- a/libpthread/nptl/Makefile.in
|
|
+++ b/libpthread/nptl/Makefile.in
|
|
@@ -64,8 +64,8 @@ endif
|
|
librt-so-y += $(librt_OBJS:.o=.oS) $(librt-pt-shared-only-routines-y:.o=.oS)
|
|
|
|
ifeq ($(UCLIBC_CTOR_DTOR),y)
|
|
-START_FILE-libpthread.so := $(top_builddir)libpthread/nptl/sysdeps/pthread/crti.o
|
|
-END_FILE-libpthread.so := $(top_builddir)libpthread/nptl/sysdeps/pthread/crtn.o
|
|
+START_FILE-libpthread.so := $(top_builddir)libpthread/nptl/sysdeps/pthread/pt-crti.o
|
|
+END_FILE-libpthread.so := $(top_builddir)libpthread/nptl/sysdeps/pthread/pt-crtn.o
|
|
LDFLAGS-libpthread.so += -nostartfiles
|
|
$(top_builddir)lib/libpthread.so: | $(START_FILE-libpthread.so) $(END_FILE-libpthread.so)
|
|
endif
|
|
diff --git a/libpthread/nptl/sysdeps/pthread/Makefile.in b/libpthread/nptl/sysdeps/pthread/Makefile.in
|
|
index d93b3a5..398eaea 100644
|
|
--- a/libpthread/nptl/sysdeps/pthread/Makefile.in
|
|
+++ b/libpthread/nptl/sysdeps/pthread/Makefile.in
|
|
@@ -73,23 +73,37 @@ CFLAGS-pt-initfini.c = -S -g0 $(PICFLAG) -fno-inline-functions \
|
|
-finhibit-size-directive \
|
|
-fno-asynchronous-unwind-tables -fno-unwind-tables \
|
|
$(patsubst -f%,-fno-%,$(call check_gcc,-fexceptions,))
|
|
-ASFLAGS-crti.S = -g0
|
|
-ASFLAGS-crtn.S = -g0
|
|
|
|
-$(libpthread_pthread_OUT)/pt-initfini.s: $(libpthread_pthread_DIR)/pt-initfini.c
|
|
+#ASFLAGS += $(PICFLAG) -I$(top_srcdir)include -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)
|
|
+ifneq ($(wildcard $(libpthread_DIR)/sysdeps/linux/$(TARGET_ARCH)/pt-initfini.c),)
|
|
+PTHREAD_INITFINI := $(libpthread_DIR)/sysdeps/linux/$(TARGET_ARCH)/pt-initfini.c
|
|
+else
|
|
+PTHREAD_INITFINI := $(libpthread_pthread_DIR)/pt-initfini.c
|
|
+endif
|
|
+
|
|
+ASFLAGS-pt-crti.S = $(PICFLAG)
|
|
+ASFLAGS-pt-crtn.S = $(PICFLAG)
|
|
+
|
|
+$(libpthread_pthread_OUT)/pt-crti.o: $(libpthread_pthread_OUT)/pt-crti.S
|
|
+ $(compile.S)
|
|
+
|
|
+$(libpthread_pthread_OUT)/pt-crtn.o: $(libpthread_pthread_OUT)/pt-crtn.S
|
|
+ $(compile.S)
|
|
+
|
|
+$(libpthread_pthread_OUT)/pt-initfini.s: $(PTHREAD_INITFINI)
|
|
$(compile.c)
|
|
-$(libpthread_pthread_OUT)/defs.h: $(libpthread_pthread_DIR)/pt-initfini.c
|
|
+$(libpthread_pthread_OUT)/defs.h: $(PTHREAD_INITFINI)
|
|
$(do_sed) -n -e '/@TESTS_BEGIN/,/@TESTS_END/p' $< | \
|
|
$(AWK) -f $(top_srcdir)extra/scripts/defs.awk > $@.tmp
|
|
$(Q)mv $@.tmp $@
|
|
|
|
-$(libpthread_pthread_OUT)/crti.S: $(libpthread_pthread_OUT)/pt-initfini.s $(libpthread_pthread_OUT)/defs.h
|
|
+$(libpthread_pthread_OUT)/pt-crti.S: $(libpthread_pthread_OUT)/pt-initfini.s $(libpthread_pthread_OUT)/defs.h
|
|
$(do_sed) -n -e '/[ ]*\.file/d' \
|
|
-e '1,/@HEADER_ENDS/p' \
|
|
-e '/@_.*_PROLOG_BEGINS/,/@_.*_PROLOG_ENDS/p' \
|
|
-e '/@TRAILER_BEGINS/,$$p' $< > $@.tmp
|
|
$(Q)mv $@.tmp $@
|
|
-$(libpthread_pthread_OUT)/crtn.S: $(libpthread_pthread_OUT)/pt-initfini.s $(libpthread_pthread_OUT)/defs.h
|
|
+$(libpthread_pthread_OUT)/pt-crtn.S: $(libpthread_pthread_OUT)/pt-initfini.s $(libpthread_pthread_OUT)/defs.h
|
|
$(do_sed) -n -e '/[ ]*\.file/d' \
|
|
-e '1,/@HEADER_ENDS/p' \
|
|
-e '/@_.*_EPILOG_BEGINS/,/@_.*_EPILOG_ENDS/p' \
|