Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > b5e52bbfb4bb11a6cbed452927fba979 > files > 28

gcc-4.1.2-50.el5.src.rpm

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-06-27 12:10:19.000000000 +0200
+++ gcc/config/rs6000/rs6000.c	2007-08-27 19:27:24.000000000 +0200
@@ -638,6 +638,7 @@ static void rs6000_file_start (void);
 static unsigned int rs6000_elf_section_type_flags (tree, const char *, int);
 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_select_section (tree, int, unsigned HOST_WIDE_INT);
 static void rs6000_elf_unique_section (tree, int);
 static void rs6000_elf_select_rtx_section (enum machine_mode, rtx,
@@ -18896,6 +18897,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	2006-11-08 17:53:15.000000000 +0100
+++ gcc/config/rs6000/linux64.h	2007-08-27 19:25:09.000000000 +0200
@@ -549,7 +549,7 @@ while (0)
 #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	2006-07-14 18:00:58.000000000 +0200
+++ gcc/config/ia64/linux.h	2007-08-27 19:21:12.000000000 +0200
@@ -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-01-05 23:54:11.000000000 +0100
+++ gcc/config/ia64/ia64.c	2007-08-27 19:21:43.000000000 +0200
@@ -246,6 +246,8 @@ static void ia64_hpux_add_extern_decl (t
      ATTRIBUTE_UNUSED;
 static void ia64_hpux_file_end (void)
      ATTRIBUTE_UNUSED;
+static void ia64_linux_file_end (void)
+     ATTRIBUTE_UNUSED;
 static void ia64_init_libfuncs (void)
      ATTRIBUTE_UNUSED;
 static void ia64_hpux_init_libfuncs (void)
@@ -9096,4 +9098,13 @@ ia64_invalid_binary_op (int op ATTRIBUTE
   return NULL;
 }
 
+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"