87 lines
3.0 KiB
Diff
87 lines
3.0 KiB
Diff
2007-08-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
* config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
|
|
* config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use
|
|
rs6000_elf_end_indicate_exec_stack.
|
|
* config/ia64/ia64.c (ia64_linux_file_end): new.
|
|
* config/ia64/linux.h (TARGET_ASM_FILE_END): Use ia64_linux_file_end.
|
|
|
|
--- gcc/config/rs6000/rs6000.c.jj 2007-12-07 18:41:08.000000000 +0100
|
|
+++ gcc/config/rs6000/rs6000.c 2007-12-07 18:42:12.000000000 +0100
|
|
@@ -746,6 +746,7 @@ static void rs6000_file_start (void);
|
|
static int rs6000_elf_reloc_rw_mask (void);
|
|
static void rs6000_elf_asm_out_constructor (rtx, int);
|
|
static void rs6000_elf_asm_out_destructor (rtx, int);
|
|
+static void rs6000_elf_end_indicate_exec_stack (void) ATTRIBUTE_UNUSED;
|
|
static void rs6000_elf_asm_init_sections (void);
|
|
static section *rs6000_elf_select_rtx_section (enum machine_mode, rtx,
|
|
unsigned HOST_WIDE_INT);
|
|
@@ -20418,6 +20419,20 @@ rs6000_elf_declare_function_name (FILE *
|
|
}
|
|
ASM_OUTPUT_LABEL (file, name);
|
|
}
|
|
+
|
|
+static void
|
|
+rs6000_elf_end_indicate_exec_stack (void)
|
|
+{
|
|
+ if (TARGET_32BIT)
|
|
+ file_end_indicate_exec_stack ();
|
|
+ else
|
|
+ {
|
|
+ int saved_trampolines_created = trampolines_created;
|
|
+ trampolines_created = 0;
|
|
+ file_end_indicate_exec_stack ();
|
|
+ trampolines_created = saved_trampolines_created;
|
|
+ }
|
|
+}
|
|
#endif
|
|
|
|
#if TARGET_XCOFF
|
|
--- gcc/config/rs6000/linux64.h.jj 2007-12-07 17:18:06.000000000 +0100
|
|
+++ gcc/config/rs6000/linux64.h 2007-12-07 18:41:21.000000000 +0100
|
|
@@ -504,7 +504,7 @@ extern int dot_symbols;
|
|
#undef DRAFT_V4_STRUCT_RET
|
|
#define DRAFT_V4_STRUCT_RET (!TARGET_64BIT)
|
|
|
|
-#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
|
|
+#define TARGET_ASM_FILE_END rs6000_elf_end_indicate_exec_stack
|
|
|
|
#define TARGET_POSIX_IO
|
|
|
|
--- gcc/config/ia64/linux.h.jj 2007-12-07 18:17:43.000000000 +0100
|
|
+++ gcc/config/ia64/linux.h 2007-12-07 18:41:21.000000000 +0100
|
|
@@ -5,7 +5,7 @@
|
|
|
|
#define TARGET_VERSION fprintf (stderr, " (IA-64) Linux");
|
|
|
|
-#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
|
|
+#define TARGET_ASM_FILE_END ia64_linux_file_end
|
|
|
|
/* This is for -profile to use -lc_p instead of -lc. */
|
|
#undef CC1_SPEC
|
|
--- gcc/config/ia64/ia64.c.jj 2007-12-07 15:41:58.000000000 +0100
|
|
+++ gcc/config/ia64/ia64.c 2007-12-07 18:43:18.000000000 +0100
|
|
@@ -262,6 +262,8 @@ static section *ia64_select_rtx_section
|
|
static void ia64_output_dwarf_dtprel (FILE *, int, rtx)
|
|
ATTRIBUTE_UNUSED;
|
|
static unsigned int ia64_section_type_flags (tree, const char *, int);
|
|
+static void ia64_linux_file_end (void)
|
|
+ ATTRIBUTE_UNUSED;
|
|
static void ia64_init_libfuncs (void)
|
|
ATTRIBUTE_UNUSED;
|
|
static void ia64_hpux_init_libfuncs (void)
|
|
@@ -9957,4 +9959,13 @@ ia64_c_mode_for_suffix (char suffix)
|
|
return VOIDmode;
|
|
}
|
|
|
|
+static void
|
|
+ia64_linux_file_end (void)
|
|
+{
|
|
+ int saved_trampolines_created = trampolines_created;
|
|
+ trampolines_created = 0;
|
|
+ file_end_indicate_exec_stack ();
|
|
+ trampolines_created = saved_trampolines_created;
|
|
+}
|
|
+
|
|
#include "gt-ia64.h"
|