diff options
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/microblaze/linux.h | 2 | ||||
-rw-r--r-- | gcc/config/pa/pa-linux.h | 3 | ||||
-rw-r--r-- | gcc/config/pa/pa.c | 21 | ||||
-rw-r--r-- | gcc/config/pa/pa.h | 2 |
4 files changed, 18 insertions, 10 deletions
diff --git a/gcc/config/microblaze/linux.h b/gcc/config/microblaze/linux.h index 41aa898..d715f45 100644 --- a/gcc/config/microblaze/linux.h +++ b/gcc/config/microblaze/linux.h @@ -57,3 +57,5 @@ /* For the microblaze-*-linux* subtarget. */ #undef TARGET_OS_CPP_BUILTINS #define TARGET_OS_CPP_BUILTINS() GNU_USER_TARGET_OS_CPP_BUILTINS() + +#define TARGET_ASM_FILE_END file_end_indicate_exec_stack diff --git a/gcc/config/pa/pa-linux.h b/gcc/config/pa/pa-linux.h index a304c72..811e697 100644 --- a/gcc/config/pa/pa-linux.h +++ b/gcc/config/pa/pa-linux.h @@ -141,3 +141,6 @@ along with GCC; see the file COPYING3. If not see #define HAVE_sync_compare_and_swaphi 1 #define HAVE_sync_compare_and_swapsi 1 #define HAVE_sync_compare_and_swapdi 1 + +#undef NEED_INDICATE_EXEC_STACK +#define NEED_INDICATE_EXEC_STACK 1 diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 2586f92..5e945fc 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -159,9 +159,7 @@ static void pa_hpux64_gas_file_start (void) ATTRIBUTE_UNUSED; static void pa_hpux64_hpas_file_start (void) ATTRIBUTE_UNUSED; static void output_deferred_plabels (void); static void output_deferred_profile_counters (void) ATTRIBUTE_UNUSED; -#ifdef ASM_OUTPUT_EXTERNAL_REAL -static void pa_hpux_file_end (void); -#endif +static void pa_file_end (void); static void pa_init_libfuncs (void); static rtx pa_struct_value_rtx (tree, int); static bool pa_pass_by_reference (cumulative_args_t, machine_mode, @@ -301,11 +299,7 @@ static size_t n_deferred_plabels = 0; #define TARGET_ASM_CAN_OUTPUT_MI_THUNK default_can_output_mi_thunk_no_vcall #undef TARGET_ASM_FILE_END -#ifdef ASM_OUTPUT_EXTERNAL_REAL -#define TARGET_ASM_FILE_END pa_hpux_file_end -#else -#define TARGET_ASM_FILE_END output_deferred_plabels -#endif +#define TARGET_ASM_FILE_END pa_file_end #undef TARGET_ASM_RELOC_RW_MASK #define TARGET_ASM_RELOC_RW_MASK pa_reloc_rw_mask @@ -9979,22 +9973,26 @@ pa_hpux_asm_output_external (FILE *file, tree decl, const char *name) extern_symbol p = {decl, name}; vec_safe_push (extern_symbols, p); } +#endif /* Output text required at the end of an assembler file. This includes deferred plabels and .import directives for all external symbols that were actually referenced. */ static void -pa_hpux_file_end (void) +pa_file_end (void) { +#ifdef ASM_OUTPUT_EXTERNAL_REAL unsigned int i; extern_symbol *p; if (!NO_DEFERRED_PROFILE_COUNTERS) output_deferred_profile_counters (); +#endif output_deferred_plabels (); +#ifdef ASM_OUTPUT_EXTERNAL_REAL for (i = 0; vec_safe_iterate (extern_symbols, i, &p); i++) { tree decl = p->decl; @@ -10005,9 +10003,12 @@ pa_hpux_file_end (void) } vec_free (extern_symbols); -} #endif + if (NEED_INDICATE_EXEC_STACK) + file_end_indicate_exec_stack (); +} + /* Implement TARGET_CAN_CHANGE_MODE_CLASS. */ static bool diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index fbfbe48..cf95789 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -1306,3 +1306,5 @@ do { \ seven and four instructions, respectively. */ #define MAX_PCREL17F_OFFSET \ (flag_pic ? (TARGET_HPUX ? 198164 : 221312) : 240000) + +#define NEED_INDICATE_EXEC_STACK 0 |