patches/gcc/4.3.1/220-noteGNUstack-01.patch
author "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
Wed Dec 14 16:55:22 2011 +0100 (2011-12-14)
branch1.13
changeset 2848 1ff89596dab0
parent 746 b150d6f590fc
permissions -rw-r--r--
libc/eglibc: fix localedef 2.14 build

The localedef of eglibc 2.14 requires NOT_IN_libc to be defined in order to
compile intl/l10nflist.c.

This is because localedef is built separately from eglibc and uses some parts of
eglibc that don't compile in standalone without this preprocessor definition.

This fixes the following error:

[ALL ] gcc -g -O2 -DNO_SYSCONF -DNO_UNCOMPRESS
-DLOCALE_PATH='"/usr/lib/locale:/usr/share/i18n"'
-DLOCALEDIR='"/usr/lib/locale"' -DLOCALE_ALIAS_PATH='"/usr/share/locale"'
-DCHARMAP_PATH='"/usr/share/i18n/charmaps"'
-DREPERTOIREMAP_PATH='"/usr/share/i18n/repertoiremaps"'
-DLOCSRCDIR='"/usr/share/i18n/locales"' -Iglibc/locale/programs -Iglibc/locale
-I/<snip>/.build/src/eglibc-localedef-2_14/include
-I/<snip>/.build/src/eglibc-localedef-2_14 -I.
-include /<snip>/.build/src/eglibc-localedef-2_14/include/always.h -Wall
-Wno-format -c -o locarchive.o glibc/locale/programs/locarchive.c
[ALL ] glibc/locale/programs/locarchive.c: In function 'enlarge_archive':
[ALL ] glibc/locale/programs/locarchive.c:303:21: warning: variable
'oldlocrectab' set but not used [-Wunused-but-set-variable]
[ALL ] In file included from glibc/locale/programs/locarchive.c:651:0:
[ALL ] glibc/locale/programs/../../intl/l10nflist.c: In function
'_nl_normalize_codeset':
[ERROR] glibc/locale/programs/../../intl/l10nflist.c:342:9: error:
'_nl_C_locobj_ptr' undeclared (first use in this function)
[ALL ] glibc/locale/programs/../../intl/l10nflist.c:342:9: note: each
undeclared identifier is reported only once for each function it appears in
[ALL ] glibc/locale/programs/locarchive.c: In function
'add_locales_to_archive':
[ALL ] glibc/locale/programs/locarchive.c:1450:7: warning: passing argument
1 of '__xpg_basename' discards 'const' qualifier from pointer target type
[enabled by default]
[ALL ] /usr/include/libgen.h:35:14: note: expected 'char *' but argument is
of type 'const char *'
[ERROR] make[1]: *** [locarchive.o] Error 1

Signed-off-by: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
(transplanted from 4cd9134739b594451794cf61a6e1b137422cdafd)
yann@552
     1
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/62_all_gcc4-noteGNUstack.patch
yann@552
     2
2005-02-08  Jakub Jelinek  <jakub@redhat.com>
yann@552
     3
yann@552
     4
	* src/alpha/osf.S: Add .note.GNU-stack on Linux.
yann@552
     5
	* src/s390/sysv.S: Likewise.
yann@552
     6
	* src/powerpc/linux64.S: Likewise.
yann@552
     7
	* src/powerpc/linux64_closure.S: Likewise.
yann@552
     8
	* src/powerpc/ppc_closure.S: Likewise.
yann@552
     9
	* src/powerpc/sysv.S: Likewise.
yann@552
    10
	* src/x86/unix64.S: Likewise.
yann@552
    11
	* src/x86/sysv.S: Likewise.
yann@552
    12
	* src/sparc/v8.S: Likewise.
yann@552
    13
	* src/sparc/v9.S: Likewise.
yann@552
    14
	* src/m68k/sysv.S: Likewise.
yann@552
    15
	* src/ia64/unix.S: Likewise.
yann@552
    16
	* src/arm/sysv.S: Likewise.
yann@552
    17
yann@552
    18
	* ia64_save_regs_in_stack.s: Moved to...
yann@552
    19
	* ia64_save_regs_in_stack.S: ... this.  Add .note.GNU-stack
yann@552
    20
	on Linux.
yann@552
    21
yann@552
    22
diff -durN gcc-4.3.1.orig/boehm-gc/ia64_save_regs_in_stack.S gcc-4.3.1/boehm-gc/ia64_save_regs_in_stack.S
yann@552
    23
--- gcc-4.3.1.orig/boehm-gc/ia64_save_regs_in_stack.S	1970-01-01 01:00:00.000000000 +0100
yann@552
    24
+++ gcc-4.3.1/boehm-gc/ia64_save_regs_in_stack.S	2008-06-10 14:58:21.000000000 +0200
yann@552
    25
@@ -0,0 +1,15 @@
yann@552
    26
+        .text
yann@552
    27
+        .align 16
yann@552
    28
+        .global GC_save_regs_in_stack
yann@552
    29
+        .proc GC_save_regs_in_stack
yann@552
    30
+GC_save_regs_in_stack:
yann@552
    31
+        .bodyfoo.mpg
yann@552
    32
+        flushrs
yann@552
    33
+        ;;
yann@552
    34
+        mov r8=ar.bsp
yann@552
    35
+        br.ret.sptk.few rp
yann@552
    36
+        .endp GC_save_regs_in_stack
yann@552
    37
+
yann@552
    38
+#ifdef __linux__
yann@552
    39
+	.section .note.GNU-stack,"",@progbits
yann@552
    40
+#endif
yann@552
    41
diff -durN gcc-4.3.1.orig/boehm-gc/ia64_save_regs_in_stack.s gcc-4.3.1/boehm-gc/ia64_save_regs_in_stack.s
yann@552
    42
--- gcc-4.3.1.orig/boehm-gc/ia64_save_regs_in_stack.s	2001-10-15 06:57:59.000000000 +0200
yann@552
    43
+++ gcc-4.3.1/boehm-gc/ia64_save_regs_in_stack.s	2008-06-10 14:58:21.000000000 +0200
yann@552
    44
@@ -1,12 +0,0 @@
yann@552
    45
-        .text
yann@552
    46
-        .align 16
yann@552
    47
-        .global GC_save_regs_in_stack
yann@552
    48
-        .proc GC_save_regs_in_stack
yann@552
    49
-GC_save_regs_in_stack:
yann@552
    50
-        .body
yann@552
    51
-        flushrs
yann@552
    52
-        ;;
yann@552
    53
-        mov r8=ar.bsp
yann@552
    54
-        br.ret.sptk.few rp
yann@552
    55
-        .endp GC_save_regs_in_stack
yann@552
    56
-
yann@552
    57
diff -durN gcc-4.3.1.orig/libffi/src/alpha/osf.S gcc-4.3.1/libffi/src/alpha/osf.S
yann@552
    58
--- gcc-4.3.1.orig/libffi/src/alpha/osf.S	2007-04-06 18:24:16.000000000 +0200
yann@552
    59
+++ gcc-4.3.1/libffi/src/alpha/osf.S	2008-06-10 14:58:21.000000000 +0200
yann@552
    60
@@ -358,4 +358,8 @@
yann@552
    61
 	.byte	16		# uleb128 offset 16*-8
yann@552
    62
 	.align 3
yann@552
    63
 $LEFDE3:
yann@552
    64
+
yann@552
    65
+#ifdef __linux__
yann@552
    66
+	.section	.note.GNU-stack,"",@progbits
yann@552
    67
+#endif
yann@552
    68
 #endif
yann@552
    69
diff -durN gcc-4.3.1.orig/libffi/src/arm/sysv.S gcc-4.3.1/libffi/src/arm/sysv.S
yann@552
    70
--- gcc-4.3.1.orig/libffi/src/arm/sysv.S	2007-09-04 19:52:45.000000000 +0200
yann@552
    71
+++ gcc-4.3.1/libffi/src/arm/sysv.S	2008-06-10 14:58:21.000000000 +0200
yann@552
    72
@@ -293,3 +293,6 @@
yann@552
    73
 	UNWIND .fnend
yann@552
    74
         .size    CNAME(ffi_closure_SYSV),.ffi_closure_SYSV_end-CNAME(ffi_closure_SYSV)
yann@552
    75
 
yann@552
    76
+#if defined __ELF__ && defined __linux__
yann@552
    77
+	.section	.note.GNU-stack,"",%progbits
yann@552
    78
+#endif
yann@552
    79
diff -durN gcc-4.3.1.orig/libffi/src/ia64/unix.S gcc-4.3.1/libffi/src/ia64/unix.S
yann@552
    80
--- gcc-4.3.1.orig/libffi/src/ia64/unix.S	2005-03-30 23:49:19.000000000 +0200
yann@552
    81
+++ gcc-4.3.1/libffi/src/ia64/unix.S	2008-06-10 14:58:21.000000000 +0200
yann@552
    82
@@ -553,3 +553,7 @@
yann@552
    83
 	data8	@pcrel(.Lld_hfa_float)		// FFI_IA64_TYPE_HFA_FLOAT
yann@552
    84
 	data8	@pcrel(.Lld_hfa_double)		// FFI_IA64_TYPE_HFA_DOUBLE
yann@552
    85
 	data8	@pcrel(.Lld_hfa_ldouble)	// FFI_IA64_TYPE_HFA_LDOUBLE
yann@552
    86
+
yann@552
    87
+#if defined __ELF__ && defined __linux__
yann@552
    88
+	.section	.note.GNU-stack,"",@progbits
yann@552
    89
+#endif
yann@552
    90
diff -durN gcc-4.3.1.orig/libffi/src/m68k/sysv.S gcc-4.3.1/libffi/src/m68k/sysv.S
yann@552
    91
--- gcc-4.3.1.orig/libffi/src/m68k/sysv.S	2007-05-10 23:29:04.000000000 +0200
yann@552
    92
+++ gcc-4.3.1/libffi/src/m68k/sysv.S	2008-06-10 14:58:21.000000000 +0200
yann@552
    93
@@ -207,3 +207,7 @@
yann@552
    94
 	rts
yann@552
    95
 	CFI_ENDPROC()
yann@552
    96
 	.size	ffi_closure_struct_SYSV,.-ffi_closure_struct_SYSV
yann@552
    97
+
yann@552
    98
+#if defined __ELF__ && defined __linux__
yann@552
    99
+	.section	.note.GNU-stack,"",@progbits
yann@552
   100
+#endif
yann@552
   101
diff -durN gcc-4.3.1.orig/libffi/src/powerpc/linux64.S gcc-4.3.1/libffi/src/powerpc/linux64.S
yann@552
   102
--- gcc-4.3.1.orig/libffi/src/powerpc/linux64.S	2007-11-17 00:24:53.000000000 +0100
yann@552
   103
+++ gcc-4.3.1/libffi/src/powerpc/linux64.S	2008-06-10 14:58:21.000000000 +0200
yann@552
   104
@@ -179,3 +179,7 @@
yann@552
   105
 	.align 3
yann@552
   106
 .LEFDE1:
yann@552
   107
 #endif
yann@552
   108
+
yann@552
   109
+#if defined __ELF__ && defined __linux__
yann@552
   110
+	.section	.note.GNU-stack,"",@progbits
yann@552
   111
+#endif
yann@552
   112
diff -durN gcc-4.3.1.orig/libffi/src/powerpc/linux64_closure.S gcc-4.3.1/libffi/src/powerpc/linux64_closure.S
yann@552
   113
--- gcc-4.3.1.orig/libffi/src/powerpc/linux64_closure.S	2005-08-11 23:18:24.000000000 +0200
yann@552
   114
+++ gcc-4.3.1/libffi/src/powerpc/linux64_closure.S	2008-06-10 14:58:21.000000000 +0200
yann@552
   115
@@ -204,3 +204,7 @@
yann@552
   116
 	.align 3
yann@552
   117
 .LEFDE1:
yann@552
   118
 #endif
yann@552
   119
+
yann@552
   120
+#if defined __ELF__ && defined __linux__
yann@552
   121
+	.section	.note.GNU-stack,"",@progbits
yann@552
   122
+#endif
yann@552
   123
diff -durN gcc-4.3.1.orig/libffi/src/powerpc/ppc_closure.S gcc-4.3.1/libffi/src/powerpc/ppc_closure.S
yann@552
   124
--- gcc-4.3.1.orig/libffi/src/powerpc/ppc_closure.S	2007-12-01 22:00:04.000000000 +0100
yann@552
   125
+++ gcc-4.3.1/libffi/src/powerpc/ppc_closure.S	2008-06-10 14:58:21.000000000 +0200
yann@552
   126
@@ -295,3 +295,7 @@
yann@552
   127
 .LEFDE1:
yann@552
   128
 
yann@552
   129
 #endif
yann@552
   130
+
yann@552
   131
+#if defined __ELF__ && defined __linux__
yann@552
   132
+	.section	.note.GNU-stack,"",@progbits
yann@552
   133
+#endif
yann@552
   134
diff -durN gcc-4.3.1.orig/libffi/src/powerpc/sysv.S gcc-4.3.1/libffi/src/powerpc/sysv.S
yann@552
   135
--- gcc-4.3.1.orig/libffi/src/powerpc/sysv.S	2007-12-01 22:00:04.000000000 +0100
yann@552
   136
+++ gcc-4.3.1/libffi/src/powerpc/sysv.S	2008-06-10 14:58:21.000000000 +0200
yann@552
   137
@@ -223,3 +223,7 @@
yann@552
   138
       .align 2
yann@552
   139
 .LEFDE1:
yann@552
   140
 #endif
yann@552
   141
+
yann@552
   142
+#if defined __ELF__ && defined __linux__
yann@552
   143
+	.section	.note.GNU-stack,"",@progbits
yann@552
   144
+#endif
yann@552
   145
diff -durN gcc-4.3.1.orig/libffi/src/s390/sysv.S gcc-4.3.1/libffi/src/s390/sysv.S
yann@552
   146
--- gcc-4.3.1.orig/libffi/src/s390/sysv.S	2003-10-21 21:01:58.000000000 +0200
yann@552
   147
+++ gcc-4.3.1/libffi/src/s390/sysv.S	2008-06-10 14:58:21.000000000 +0200
yann@552
   148
@@ -427,3 +427,6 @@
yann@552
   149
 
yann@552
   150
 #endif
yann@552
   151
 
yann@552
   152
+#if defined __ELF__ && defined __linux__
yann@552
   153
+	.section	.note.GNU-stack,"",@progbits
yann@552
   154
+#endif
yann@552
   155
diff -durN gcc-4.3.1.orig/libffi/src/sparc/v8.S gcc-4.3.1/libffi/src/sparc/v8.S
yann@552
   156
--- gcc-4.3.1.orig/libffi/src/sparc/v8.S	2004-11-22 19:35:16.000000000 +0100
yann@552
   157
+++ gcc-4.3.1/libffi/src/sparc/v8.S	2008-06-10 14:58:21.000000000 +0200
yann@552
   158
@@ -265,3 +265,7 @@
yann@552
   159
 	.byte	0x1f	! uleb128 0x1f
yann@552
   160
 	.align	WS
yann@552
   161
 .LLEFDE2:
yann@552
   162
+
yann@552
   163
+#if defined __ELF__ && defined __linux__
yann@552
   164
+	.section	.note.GNU-stack,"",@progbits
yann@552
   165
+#endif
yann@552
   166
diff -durN gcc-4.3.1.orig/libffi/src/sparc/v9.S gcc-4.3.1/libffi/src/sparc/v9.S
yann@552
   167
--- gcc-4.3.1.orig/libffi/src/sparc/v9.S	2004-01-25 07:58:33.000000000 +0100
yann@552
   168
+++ gcc-4.3.1/libffi/src/sparc/v9.S	2008-06-10 14:58:21.000000000 +0200
yann@552
   169
@@ -300,3 +300,7 @@
yann@552
   170
 	.align 8
yann@552
   171
 .LLEFDE2:
yann@552
   172
 #endif
yann@552
   173
+
yann@552
   174
+#ifdef __linux__
yann@552
   175
+	.section	.note.GNU-stack,"",@progbits
yann@552
   176
+#endif
yann@552
   177
diff -durN gcc-4.3.1.orig/libffi/src/x86/sysv.S gcc-4.3.1/libffi/src/x86/sysv.S
yann@552
   178
--- gcc-4.3.1.orig/libffi/src/x86/sysv.S	2008-01-30 15:36:58.000000000 +0100
yann@552
   179
+++ gcc-4.3.1/libffi/src/x86/sysv.S	2008-06-10 14:58:21.000000000 +0200
yann@552
   180
@@ -430,3 +430,7 @@
yann@552
   181
 #endif
yann@552
   182
 
yann@552
   183
 #endif /* ifndef __x86_64__ */
yann@552
   184
+
yann@552
   185
+#if defined __ELF__ && defined __linux__
yann@552
   186
+	.section	.note.GNU-stack,"",@progbits
yann@552
   187
+#endif
yann@552
   188
diff -durN gcc-4.3.1.orig/libffi/src/x86/unix64.S gcc-4.3.1/libffi/src/x86/unix64.S
yann@552
   189
--- gcc-4.3.1.orig/libffi/src/x86/unix64.S	2005-05-05 06:06:38.000000000 +0200
yann@552
   190
+++ gcc-4.3.1/libffi/src/x86/unix64.S	2008-06-10 14:58:21.000000000 +0200
yann@552
   191
@@ -410,3 +410,7 @@
yann@552
   192
 .LEFDE3:
yann@552
   193
 
yann@552
   194
 #endif /* __x86_64__ */
yann@552
   195
+
yann@552
   196
+#if defined __ELF__ && defined __linux__
yann@552
   197
+	.section	.note.GNU-stack,"",@progbits
yann@552
   198
+#endif