summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-4.3.3/gcc43-ppc64-ia64-GNU-stack.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.3.3/gcc43-ppc64-ia64-GNU-stack.patch')
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.3.3/gcc43-ppc64-ia64-GNU-stack.patch86
1 files changed, 86 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.3.3/gcc43-ppc64-ia64-GNU-stack.patch b/meta/recipes-devtools/gcc/gcc-4.3.3/gcc43-ppc64-ia64-GNU-stack.patch
new file mode 100644
index 0000000000..d49f2b9855
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.3.3/gcc43-ppc64-ia64-GNU-stack.patch
@@ -0,0 +1,86 @@
12007-08-27 Jakub Jelinek <jakub@redhat.com>
2
3 * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
4 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use
5 rs6000_elf_end_indicate_exec_stack.
6 * config/ia64/ia64.c (ia64_linux_file_end): new.
7 * config/ia64/linux.h (TARGET_ASM_FILE_END): Use ia64_linux_file_end.
8
9--- gcc/config/rs6000/rs6000.c.jj 2007-12-07 18:41:08.000000000 +0100
10+++ gcc/config/rs6000/rs6000.c 2007-12-07 18:42:12.000000000 +0100
11@@ -746,6 +746,7 @@ static void rs6000_file_start (void);
12 static int rs6000_elf_reloc_rw_mask (void);
13 static void rs6000_elf_asm_out_constructor (rtx, int);
14 static void rs6000_elf_asm_out_destructor (rtx, int);
15+static void rs6000_elf_end_indicate_exec_stack (void) ATTRIBUTE_UNUSED;
16 static void rs6000_elf_asm_init_sections (void);
17 static section *rs6000_elf_select_rtx_section (enum machine_mode, rtx,
18 unsigned HOST_WIDE_INT);
19@@ -20418,6 +20419,20 @@ rs6000_elf_declare_function_name (FILE *
20 }
21 ASM_OUTPUT_LABEL (file, name);
22 }
23+
24+static void
25+rs6000_elf_end_indicate_exec_stack (void)
26+{
27+ if (TARGET_32BIT)
28+ file_end_indicate_exec_stack ();
29+ else
30+ {
31+ int saved_trampolines_created = trampolines_created;
32+ trampolines_created = 0;
33+ file_end_indicate_exec_stack ();
34+ trampolines_created = saved_trampolines_created;
35+ }
36+}
37 #endif
38
39 #if TARGET_XCOFF
40--- gcc/config/rs6000/linux64.h.jj 2007-12-07 17:18:06.000000000 +0100
41+++ gcc/config/rs6000/linux64.h 2007-12-07 18:41:21.000000000 +0100
42@@ -504,7 +504,7 @@ extern int dot_symbols;
43 #undef DRAFT_V4_STRUCT_RET
44 #define DRAFT_V4_STRUCT_RET (!TARGET_64BIT)
45
46-#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
47+#define TARGET_ASM_FILE_END rs6000_elf_end_indicate_exec_stack
48
49 #define TARGET_POSIX_IO
50
51--- gcc/config/ia64/linux.h.jj 2007-12-07 18:17:43.000000000 +0100
52+++ gcc/config/ia64/linux.h 2007-12-07 18:41:21.000000000 +0100
53@@ -5,7 +5,7 @@
54
55 #define TARGET_VERSION fprintf (stderr, " (IA-64) Linux");
56
57-#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
58+#define TARGET_ASM_FILE_END ia64_linux_file_end
59
60 /* This is for -profile to use -lc_p instead of -lc. */
61 #undef CC1_SPEC
62--- gcc/config/ia64/ia64.c.jj 2007-12-07 15:41:58.000000000 +0100
63+++ gcc/config/ia64/ia64.c 2007-12-07 18:43:18.000000000 +0100
64@@ -262,6 +262,8 @@ static section *ia64_select_rtx_section
65 static void ia64_output_dwarf_dtprel (FILE *, int, rtx)
66 ATTRIBUTE_UNUSED;
67 static unsigned int ia64_section_type_flags (tree, const char *, int);
68+static void ia64_linux_file_end (void)
69+ ATTRIBUTE_UNUSED;
70 static void ia64_init_libfuncs (void)
71 ATTRIBUTE_UNUSED;
72 static void ia64_hpux_init_libfuncs (void)
73@@ -9957,4 +9959,13 @@ ia64_c_mode_for_suffix (char suffix)
74 return VOIDmode;
75 }
76
77+static void
78+ia64_linux_file_end (void)
79+{
80+ int saved_trampolines_created = trampolines_created;
81+ trampolines_created = 0;
82+ file_end_indicate_exec_stack ();
83+ trampolines_created = saved_trampolines_created;
84+}
85+
86 #include "gt-ia64.h"