diff options
Diffstat (limited to 'ld/emultempl/aarch64elf.em')
-rw-r--r-- | ld/emultempl/aarch64elf.em | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/ld/emultempl/aarch64elf.em b/ld/emultempl/aarch64elf.em index bb58901..42e8056 100644 --- a/ld/emultempl/aarch64elf.em +++ b/ld/emultempl/aarch64elf.em @@ -30,6 +30,7 @@ fragment <<EOF static int no_enum_size_warning = 0; static int no_wchar_size_warning = 0; static int pic_veneer = 0; +static int fix_erratum_835769 = 0; static void gld${EMULATION_NAME}_before_parse (void) @@ -302,7 +303,7 @@ aarch64_elf_create_output_section_statements (void) bfd_elf${ELFSIZE}_aarch64_set_options (link_info.output_bfd, &link_info, no_enum_size_warning, no_wchar_size_warning, - pic_veneer); + pic_veneer, fix_erratum_835769); stub_file = lang_add_input_file ("linker stubs", lang_input_file_is_fake_enum, @@ -351,6 +352,7 @@ PARSE_AND_LIST_PROLOGUE=' #define OPTION_PIC_VENEER 310 #define OPTION_STUBGROUP_SIZE 311 #define OPTION_NO_WCHAR_SIZE_WARNING 312 +#define OPTION_FIX_ERRATUM_835769 313 ' PARSE_AND_LIST_SHORTOPTS=p @@ -361,6 +363,7 @@ PARSE_AND_LIST_LONGOPTS=' { "pic-veneer", no_argument, NULL, OPTION_PIC_VENEER}, { "stub-group-size", required_argument, NULL, OPTION_STUBGROUP_SIZE }, { "no-wchar-size-warning", no_argument, NULL, OPTION_NO_WCHAR_SIZE_WARNING}, + { "fix-cortex-a53-835769", no_argument, NULL, OPTION_FIX_ERRATUM_835769}, ' PARSE_AND_LIST_OPTIONS=' @@ -378,6 +381,7 @@ PARSE_AND_LIST_OPTIONS=' after each stub section. Values of +/-1 indicate\n\ the linker should choose suitable defaults.\n" )); + fprintf (file, _(" --fix-cortex-a53-835769 Fix erratum 835769\n")); ' PARSE_AND_LIST_ARGS_CASES=' @@ -397,6 +401,10 @@ PARSE_AND_LIST_ARGS_CASES=' pic_veneer = 1; break; + case OPTION_FIX_ERRATUM_835769: + fix_erratum_835769 = 1; + break; + case OPTION_STUBGROUP_SIZE: { const char *end; |