------- Comment #21 from pluto at agmk dot net 2005-12-06 20:55 ------- ok, I hope this ppc-elf-linux fix for pr20218-x86-32_64.patch is correct. with this both testcases work.
diff -uNrp a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h --- a/gcc/config/rs6000/linux.h 2005-11-30 11:15:31.000000000 +0000 +++ b/gcc/config/rs6000/linux.h 2005-12-06 20:02:14.949860336 +0000 @@ -108,7 +108,8 @@ #define RELOCATABLE_NEEDS_FIXUP \ (target_flags & target_flags_explicit & MASK_RELOCATABLE) -#define TARGET_ASM_FILE_END file_end_indicate_exec_stack +#undef TARGET_ASM_FILE_END +#define TARGET_ASM_FILE_END rs6000_elf_file_end #define TARGET_POSIX_IO diff -uNrp a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h --- a/gcc/config/rs6000/linux64.h 2005-11-30 11:15:31.000000000 +0000 +++ b/gcc/config/rs6000/linux64.h 2005-12-06 20:02:03.882542824 +0000 @@ -543,7 +543,8 @@ while (0) #undef DRAFT_V4_STRUCT_RET #define DRAFT_V4_STRUCT_RET (!TARGET_64BIT) -#define TARGET_ASM_FILE_END rs6000_elf_end_indicate_exec_stack +#undef TARGET_ASM_FILE_END +#define TARGET_ASM_FILE_END rs6000_elf_file_end #define TARGET_POSIX_IO diff -uNrp a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c --- a/gcc/config/rs6000/rs6000.c 2005-11-30 11:15:31.000000000 +0000 +++ b/gcc/config/rs6000/rs6000.c 2005-12-06 20:17:39.014381176 +0000 @@ -611,7 +611,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_file_end (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, @@ -18060,10 +18060,11 @@ rs6000_elf_declare_function_name (FILE * } static void -rs6000_elf_end_indicate_exec_stack (void) +rs6000_elf_file_end (void) { if (TARGET_32BIT) file_end_indicate_exec_stack (); + default_elf_asm_file_end (); } #endif -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20218