patches/uClibc/0.9.32/120-ctor-dtor-nptl-Fix-init-and-fini-function-compilation.patch
author "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
Thu Aug 18 16:05:48 2011 +0200 (2011-08-18)
changeset 2612 a52574521bea
permissions -rw-r--r--
debug/gdb: update GDB revisions

Update GDB with the latest available revisions.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
yann@2518
     1
commit f9e311d11c374e68736c741ede1845bdc8091627
yann@2518
     2
Author: Khem Raj <raj.khem@gmail.com>
yann@2518
     3
Date:   Mon Jun 13 16:30:55 2011 -0700
yann@2518
     4
yann@2518
     5
    ctor/dtor nptl: Fix init and fini function compilation
yann@2518
     6
    
yann@2518
     7
    We need to define the rules for .S files so it
yann@2518
     8
    gets the include paths some architectures like mips
yann@2518
     9
    include headers
yann@2518
    10
    
yann@2518
    11
    Some architectures e.g. SH have their own version
yann@2518
    12
    of pt-initfini.c so look for that first before resorting
yann@2518
    13
    to generic version of pt-initfini.c
yann@2518
    14
    
yann@2518
    15
    Signed-off-by: Khem Raj <raj.khem@gmail.com>
yann@2518
    16
    Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
yann@2518
    17
yann@2518
    18
diff --git a/libc/sysdeps/linux/mips/crtn.S b/libc/sysdeps/linux/mips/crtn.S
yann@2518
    19
index cedd593..f3756a2 100644
yann@2518
    20
--- a/libc/sysdeps/linux/mips/crtn.S
yann@2518
    21
+++ b/libc/sysdeps/linux/mips/crtn.S
yann@2518
    22
@@ -10,7 +10,6 @@
yann@2518
    23
 #NO_APP
yann@2518
    24
 	.align	2
yann@2518
    25
 	.globl	_init
yann@2518
    26
-	.ent	_init
yann@2518
    27
 	.type	_init, @function
yann@2518
    28
 #NO_APP
yann@2518
    29
 	lw	$31,28($sp)
yann@2518
    30
@@ -22,14 +21,12 @@
yann@2518
    31
 	.set	macro
yann@2518
    32
 	.set	reorder
yann@2518
    33
 
yann@2518
    34
-	.end	_init
yann@2518
    35
 #APP
yann@2518
    36
 	
yann@2518
    37
 	.section .fini
yann@2518
    38
 #NO_APP
yann@2518
    39
 	.align	2
yann@2518
    40
 	.globl	_fini
yann@2518
    41
-	.ent	_fini
yann@2518
    42
 	.type	_fini, @function
yann@2518
    43
 #NO_APP
yann@2518
    44
 	lw	$31,28($sp)
yann@2518
    45
@@ -41,7 +38,6 @@
yann@2518
    46
 	.set	macro
yann@2518
    47
 	.set	reorder
yann@2518
    48
 
yann@2518
    49
-	.end	_fini
yann@2518
    50
 #APP
yann@2518
    51
 	
yann@2518
    52
 	.ident	"GCC: (GNU) 3.3.2"
yann@2518
    53
@@ -54,10 +50,8 @@
yann@2518
    54
 	
yann@2518
    55
 	.section .init
yann@2518
    56
 #NO_APP
yann@2518
    57
-	.align	2
yann@2518
    58
 	.align	3
yann@2518
    59
 	.globl	_init
yann@2518
    60
-	.ent	_init
yann@2518
    61
 	.type	_init, @function
yann@2518
    62
 #NO_APP
yann@2518
    63
 	ld	$31,8($sp)
yann@2518
    64
@@ -68,16 +62,12 @@
yann@2518
    65
 	addiu	$sp,$sp,16
yann@2518
    66
 	.set	macro
yann@2518
    67
 	.set	reorder
yann@2518
    68
-
yann@2518
    69
-	.end	_init
yann@2518
    70
 #APP
yann@2518
    71
 	
yann@2518
    72
 	.section .fini
yann@2518
    73
 #NO_APP
yann@2518
    74
-	.align	2
yann@2518
    75
 	.align	3
yann@2518
    76
 	.globl	_fini
yann@2518
    77
-	.ent	_fini
yann@2518
    78
 	.type	_fini, @function
yann@2518
    79
 #NO_APP
yann@2518
    80
 	ld	$31,8($sp)
yann@2518
    81
@@ -89,7 +79,6 @@
yann@2518
    82
 	.set	macro
yann@2518
    83
 	.set	reorder
yann@2518
    84
 
yann@2518
    85
-	.end	_fini
yann@2518
    86
 #APP
yann@2518
    87
 	
yann@2518
    88
 	.ident	"GCC: (GNU) 3.4.3"
yann@2518
    89
@@ -105,7 +94,6 @@
yann@2518
    90
 #NO_APP
yann@2518
    91
 	.align	2
yann@2518
    92
 	.globl	_init
yann@2518
    93
-	.ent	_init
yann@2518
    94
 	.type	_init, @function
yann@2518
    95
 #NO_APP
yann@2518
    96
 	ld	$31,24($sp)
yann@2518
    97
@@ -118,14 +106,12 @@
yann@2518
    98
 	.set	macro
yann@2518
    99
 	.set	reorder
yann@2518
   100
 
yann@2518
   101
-	.end	_init
yann@2518
   102
 #APP
yann@2518
   103
 	
yann@2518
   104
 	.section .fini
yann@2518
   105
 #NO_APP
yann@2518
   106
 	.align	2
yann@2518
   107
 	.globl	_fini
yann@2518
   108
-	.ent	_fini
yann@2518
   109
 	.type	_fini, @function
yann@2518
   110
 #NO_APP
yann@2518
   111
 	ld	$31,24($sp)
yann@2518
   112
@@ -138,7 +124,6 @@
yann@2518
   113
 	.set	macro
yann@2518
   114
 	.set	reorder
yann@2518
   115
 
yann@2518
   116
-	.end	_fini
yann@2518
   117
 #APP
yann@2518
   118
 	
yann@2518
   119
 	.ident	"GCC: (GNU) 3.3.2"
yann@2518
   120
diff --git a/libpthread/nptl/Makefile.in b/libpthread/nptl/Makefile.in
yann@2518
   121
index 92d72a6..849bd59 100644
yann@2518
   122
--- a/libpthread/nptl/Makefile.in
yann@2518
   123
+++ b/libpthread/nptl/Makefile.in
yann@2518
   124
@@ -64,8 +64,8 @@ endif
yann@2518
   125
 librt-so-y += $(librt_OBJS:.o=.oS) $(librt-pt-shared-only-routines-y:.o=.oS)
yann@2518
   126
 
yann@2518
   127
 ifeq ($(UCLIBC_CTOR_DTOR),y)
yann@2518
   128
-START_FILE-libpthread.so := $(top_builddir)libpthread/nptl/sysdeps/pthread/crti.o
yann@2518
   129
-END_FILE-libpthread.so := $(top_builddir)libpthread/nptl/sysdeps/pthread/crtn.o
yann@2518
   130
+START_FILE-libpthread.so := $(top_builddir)libpthread/nptl/sysdeps/pthread/pt-crti.o
yann@2518
   131
+END_FILE-libpthread.so := $(top_builddir)libpthread/nptl/sysdeps/pthread/pt-crtn.o
yann@2518
   132
 LDFLAGS-libpthread.so += -nostartfiles
yann@2518
   133
 $(top_builddir)lib/libpthread.so: | $(START_FILE-libpthread.so) $(END_FILE-libpthread.so)
yann@2518
   134
 endif
yann@2518
   135
diff --git a/libpthread/nptl/sysdeps/pthread/Makefile.in b/libpthread/nptl/sysdeps/pthread/Makefile.in
yann@2518
   136
index d93b3a5..398eaea 100644
yann@2518
   137
--- a/libpthread/nptl/sysdeps/pthread/Makefile.in
yann@2518
   138
+++ b/libpthread/nptl/sysdeps/pthread/Makefile.in
yann@2518
   139
@@ -73,23 +73,37 @@ CFLAGS-pt-initfini.c = -S -g0 $(PICFLAG) -fno-inline-functions	\
yann@2518
   140
 			-finhibit-size-directive			\
yann@2518
   141
 			-fno-asynchronous-unwind-tables -fno-unwind-tables \
yann@2518
   142
 			$(patsubst -f%,-fno-%,$(call check_gcc,-fexceptions,))
yann@2518
   143
-ASFLAGS-crti.S = -g0
yann@2518
   144
-ASFLAGS-crtn.S = -g0
yann@2518
   145
 
yann@2518
   146
-$(libpthread_pthread_OUT)/pt-initfini.s: $(libpthread_pthread_DIR)/pt-initfini.c
yann@2518
   147
+#ASFLAGS += $(PICFLAG) -I$(top_srcdir)include -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)
yann@2518
   148
+ifneq ($(wildcard $(libpthread_DIR)/sysdeps/linux/$(TARGET_ARCH)/pt-initfini.c),)
yann@2518
   149
+PTHREAD_INITFINI := $(libpthread_DIR)/sysdeps/linux/$(TARGET_ARCH)/pt-initfini.c
yann@2518
   150
+else
yann@2518
   151
+PTHREAD_INITFINI := $(libpthread_pthread_DIR)/pt-initfini.c
yann@2518
   152
+endif
yann@2518
   153
+
yann@2518
   154
+ASFLAGS-pt-crti.S =  $(PICFLAG)
yann@2518
   155
+ASFLAGS-pt-crtn.S =  $(PICFLAG)
yann@2518
   156
+
yann@2518
   157
+$(libpthread_pthread_OUT)/pt-crti.o: $(libpthread_pthread_OUT)/pt-crti.S
yann@2518
   158
+	$(compile.S)
yann@2518
   159
+
yann@2518
   160
+$(libpthread_pthread_OUT)/pt-crtn.o: $(libpthread_pthread_OUT)/pt-crtn.S
yann@2518
   161
+	$(compile.S)
yann@2518
   162
+
yann@2518
   163
+$(libpthread_pthread_OUT)/pt-initfini.s: $(PTHREAD_INITFINI)
yann@2518
   164
 	$(compile.c)
yann@2518
   165
-$(libpthread_pthread_OUT)/defs.h: $(libpthread_pthread_DIR)/pt-initfini.c
yann@2518
   166
+$(libpthread_pthread_OUT)/defs.h: $(PTHREAD_INITFINI)
yann@2518
   167
 	$(do_sed) -n -e '/@TESTS_BEGIN/,/@TESTS_END/p' $< | \
yann@2518
   168
 		$(AWK) -f $(top_srcdir)extra/scripts/defs.awk > $@.tmp
yann@2518
   169
 	$(Q)mv $@.tmp $@
yann@2518
   170
 
yann@2518
   171
-$(libpthread_pthread_OUT)/crti.S: $(libpthread_pthread_OUT)/pt-initfini.s $(libpthread_pthread_OUT)/defs.h
yann@2518
   172
+$(libpthread_pthread_OUT)/pt-crti.S: $(libpthread_pthread_OUT)/pt-initfini.s $(libpthread_pthread_OUT)/defs.h
yann@2518
   173
 	$(do_sed) -n -e '/[ 	]*\.file/d' \
yann@2518
   174
 		-e '1,/@HEADER_ENDS/p' \
yann@2518
   175
 		-e '/@_.*_PROLOG_BEGINS/,/@_.*_PROLOG_ENDS/p' \
yann@2518
   176
 		-e '/@TRAILER_BEGINS/,$$p' $< > $@.tmp
yann@2518
   177
 	$(Q)mv $@.tmp $@
yann@2518
   178
-$(libpthread_pthread_OUT)/crtn.S: $(libpthread_pthread_OUT)/pt-initfini.s $(libpthread_pthread_OUT)/defs.h
yann@2518
   179
+$(libpthread_pthread_OUT)/pt-crtn.S: $(libpthread_pthread_OUT)/pt-initfini.s $(libpthread_pthread_OUT)/defs.h
yann@2518
   180
 	$(do_sed) -n -e '/[ 	]*\.file/d' \
yann@2518
   181
 		-e '1,/@HEADER_ENDS/p' \
yann@2518
   182
 		-e '/@_.*_EPILOG_BEGINS/,/@_.*_EPILOG_ENDS/p' \