From acd43bcc00878e5304bd14804da7ba3615924a22 Mon Sep 17 00:00:00 2001 From: David Howells Date: Mar 15 2017 14:03:02 +0000 Subject: Sync with binutils-2.28-4 --- diff --git a/binutils-2.23.52.0.1-addr2line-dynsymtab.patch b/binutils-2.23.52.0.1-addr2line-dynsymtab.patch deleted file mode 100644 index 6abaf53..0000000 --- a/binutils-2.23.52.0.1-addr2line-dynsymtab.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- a/bfd/opncls.c 2013-03-14 11:25:30.338306122 +0000 -+++ b/bfd/opncls.c 2013-03-14 12:20:21.686397360 +0000 -@@ -1297,6 +1297,8 @@ - bfd_malloc (strlen (debug_file_directory) + 1 - + (canon_dirlen > dirlen ? canon_dirlen : dirlen) - + strlen (".debug/") -+#define FEDORA_LIB_DEBUG_DIR "/usr/lib/debug" -+ + strlen (FEDORA_LIB_DEBUG_DIR) + strlen ("usr/") - + strlen (base) - + 1); - if (debugfile == NULL) -@@ -1332,6 +1334,26 @@ - if (check_func (debugfile, crc32)) - goto found; - -+ /* Then try in the global debug dir for Fedora libraries. */ -+ sprintf (debugfile, "%s%s%s", FEDORA_LIB_DEBUG_DIR, dir, base); -+ if (separate_debug_file_exists (debugfile, crc32)) -+ { -+ free (base); -+ free (dir); -+ free (canon_dir); -+ return debugfile; -+ } -+ -+ /* Then try in the usr subdirectory of the global debug dir for Fedora libraries. */ -+ sprintf (debugfile, "%s/usr%s%s", FEDORA_LIB_DEBUG_DIR, dir, base); -+ if (separate_debug_file_exists (debugfile, crc32)) -+ { -+ free (base); -+ free (dir); -+ free (canon_dir); -+ return debugfile; -+ } -+ - /* Then try in the global debugfile directory. */ - strcpy (debugfile, debug_file_directory); - dirlen = strlen (debug_file_directory) - 1; diff --git a/binutils-2.26-lto.patch b/binutils-2.26-lto.patch index 567f909..3334912 100644 --- a/binutils-2.26-lto.patch +++ b/binutils-2.26-lto.patch @@ -76,16 +76,6 @@ diff -rup binutils-2.26.orig/bfd/bfd.c binutils-2.26/bfd/bfd.c diff -rup binutils-2.26.orig/bfd/bfd-in2.h binutils-2.26/bfd/bfd-in2.h --- binutils-2.26.orig/bfd/bfd-in2.h 2016-02-19 09:35:36.280000903 +0000 +++ binutils-2.26/bfd/bfd-in2.h 2016-02-19 09:35:54.900106492 +0000 -@@ -1089,6 +1089,9 @@ struct bfd_section *bfd_create_gnu_debug - bfd_boolean bfd_fill_in_gnu_debuglink_section - (bfd *abfd, struct bfd_section *sect, const char *filename); - -+const char *bfd_extract_object_only_section -+ (bfd *abfd); -+ - /* Extracted from libbfd.c. */ - - /* Byte swapping macros for user section data. */ @@ -1654,6 +1657,9 @@ extern asection _bfd_std_section[4]; #define BFD_COM_SECTION_NAME "*COM*" #define BFD_IND_SECTION_NAME "*IND*" @@ -233,79 +223,6 @@ diff -rup binutils-2.26.orig/bfd/format.c binutils-2.26/bfd/format.c /* File position has moved, BTW. */ return TRUE; } -diff -rup binutils-2.26.orig/bfd/opncls.c binutils-2.26/bfd/opncls.c ---- binutils-2.26.orig/bfd/opncls.c 2016-02-19 09:35:36.281000909 +0000 -+++ binutils-2.26/bfd/opncls.c 2016-02-19 09:35:54.905106520 +0000 -@@ -1717,3 +1717,69 @@ bfd_fill_in_gnu_debuglink_section (bfd * - - return TRUE; - } -+ -+/* -+FUNCTION -+ bfd_extract_object_only_section -+ -+SYNOPSIS -+ const char *bfd_extract_object_only_section -+ (bfd *abfd); -+ -+DESCRIPTION -+ -+ Takes a @var{ABFD} and extract the .gnu_object_only section into -+ a temporary file. -+ -+RETURNS -+ The name of the temporary file is returned if all is ok. -+ Otherwise <> is returned and bfd_error is set. -+*/ -+ -+const char * -+bfd_extract_object_only_section (bfd *abfd) -+{ -+ asection *sec = abfd->object_only_section; -+ const char *name; -+ FILE *file; -+ bfd_byte *memhunk = NULL; -+ size_t off, size; -+ bfd_error_type err; -+ -+ /* Get a temporary object-only file. */ -+ name = make_temp_file (".obj-only.o"); -+ -+ /* Open the object-only file. */ -+ file = real_fopen (name, FOPEN_WB); -+ if (!bfd_get_full_section_contents (abfd, sec, &memhunk)) -+ { -+ err = bfd_get_error (); -+ -+loser: -+ free (memhunk); -+ fclose (file); -+ unlink (name); -+ bfd_set_error (err); -+ return NULL; -+ } -+ -+ off = 0; -+ size = sec->size; -+ while (off != size) -+ { -+ size_t written, nwrite = size - off; -+ -+ written = fwrite (memhunk + off, 1, nwrite, file); -+ if (written < nwrite && ferror (file)) -+ { -+ err = bfd_error_system_call; -+ goto loser; -+ } -+ -+ off += written; -+ } -+ -+ free (memhunk); -+ fclose (file); -+ return name; -+} diff -rup binutils-2.26.orig/bfd/plugin.c binutils-2.26/bfd/plugin.c --- binutils-2.26.orig/bfd/plugin.c 2016-02-19 09:35:36.271000852 +0000 +++ binutils-2.26/bfd/plugin.c 2016-02-19 09:35:54.905106520 +0000 @@ -651,34 +568,6 @@ diff -rup binutils-2.26.orig/ld/emultempl/alphaelf.em binutils-2.26/ld/emultempl } EOF -diff -rup binutils-2.26.orig/ld/emultempl/armelf.em binutils-2.26/ld/emultempl/armelf.em ---- binutils-2.26.orig/ld/emultempl/armelf.em 2016-02-19 09:35:36.698003274 +0000 -+++ binutils-2.26/ld/emultempl/armelf.em 2016-02-19 09:35:54.914106571 +0000 -@@ -377,7 +377,7 @@ gld${EMULATION_NAME}_after_allocation (v - } - - static void --gld${EMULATION_NAME}_finish (void) -+arm_finish (void) - { - struct bfd_link_hash_entry * h; - -@@ -404,7 +404,7 @@ gld${EMULATION_NAME}_finish (void) - } - } - -- finish_default (); -+ gld${EMULATION_NAME}_finish (); - - if (thumb_entry_symbol) - { -@@ -730,5 +730,5 @@ LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS= - LDEMUL_BEFORE_PARSE=gld"${EMULATION_NAME}"_before_parse - LDEMUL_SET_SYMBOLS=gld"${EMULATION_NAME}"_set_symbols - - # Call the extra arm-elf function --LDEMUL_FINISH=gld${EMULATION_NAME}_finish -+LDEMUL_FINISH=arm_finish diff -rup binutils-2.26.orig/ld/emultempl/avrelf.em binutils-2.26/ld/emultempl/avrelf.em --- binutils-2.26.orig/ld/emultempl/avrelf.em 2016-02-19 09:35:36.698003274 +0000 +++ binutils-2.26/ld/emultempl/avrelf.em 2016-02-19 09:35:54.915106577 +0000 @@ -809,33 +698,6 @@ diff -rup binutils-2.26.orig/ld/emultempl/ppc32elf.em binutils-2.26/ld/emultempl } EOF -diff -rup binutils-2.26.orig/ld/emultempl/ppc64elf.em binutils-2.26/ld/emultempl/ppc64elf.em ---- binutils-2.26.orig/ld/emultempl/ppc64elf.em 2016-02-19 09:35:36.699003279 +0000 -+++ binutils-2.26/ld/emultempl/ppc64elf.em 2016-02-19 09:35:54.916106583 +0000 -@@ -562,7 +562,7 @@ gld${EMULATION_NAME}_after_allocation (v - /* Final emulation specific call. */ - - static void --gld${EMULATION_NAME}_finish (void) -+ppc_finish (void) - { - char *msg = NULL; - char *line, *endline; -@@ -594,7 +594,7 @@ gld${EMULATION_NAME}_finish (void) - free (msg); - - ppc64_elf_restore_symbols (&link_info); -- finish_default (); -+ gld${EMULATION_NAME}_finish (); - } - - -@@ -928,4 +928,4 @@ LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS= - LDEMUL_AFTER_OPEN=ppc_after_open - LDEMUL_BEFORE_ALLOCATION=ppc_before_allocation - LDEMUL_AFTER_ALLOCATION=gld${EMULATION_NAME}_after_allocation --LDEMUL_FINISH=gld${EMULATION_NAME}_finish -+LDEMUL_FINISH=ppc_finish diff -rup binutils-2.26.orig/ld/emultempl/spuelf.em binutils-2.26/ld/emultempl/spuelf.em --- binutils-2.26.orig/ld/emultempl/spuelf.em 2016-02-19 09:35:36.699003279 +0000 +++ binutils-2.26/ld/emultempl/spuelf.em 2016-02-19 09:35:54.916106583 +0000 @@ -2554,3 +2416,155 @@ diff -rup binutils-2.26.orig/ld/testsuite/ld-plugin/lto.exp binutils-2.26/ld/tes + printf ("hello\n"); + return 0; +} +--- binutils.orig/bfd/bfd-in2.h 2017-03-02 11:14:48.572979573 +0000 ++++ binutils-2.28/bfd/bfd-in2.h 2017-03-02 11:21:39.828458555 +0000 +@@ -1118,6 +1118,9 @@ bfd_boolean bfd_fill_in_gnu_debuglink_se + + char *bfd_follow_build_id_debuglink (bfd *abfd, const char *dir); + ++const char *bfd_extract_object_only_section ++ (bfd *abfd); ++ + /* Extracted from libbfd.c. */ + + /* Byte swapping macros for user section data. */ +--- binutils.orig/bfd/opncls.c 2017-03-02 11:14:48.586979385 +0000 ++++ binutils-2.28/bfd/opncls.c 2017-03-02 11:23:23.546065945 +0000 +@@ -1990,3 +1990,69 @@ bfd_follow_build_id_debuglink (bfd *abfd + get_build_id_name, + check_build_id_file); + } ++ ++/* ++FUNCTION ++ bfd_extract_object_only_section ++ ++SYNOPSIS ++ const char *bfd_extract_object_only_section ++ (bfd *abfd); ++ ++DESCRIPTION ++ ++ Takes a @var{ABFD} and extract the .gnu_object_only section into ++ a temporary file. ++ ++RETURNS ++ The name of the temporary file is returned if all is ok. ++ Otherwise <> is returned and bfd_error is set. ++*/ ++ ++const char * ++bfd_extract_object_only_section (bfd *abfd) ++{ ++ asection *sec = abfd->object_only_section; ++ const char *name; ++ FILE *file; ++ bfd_byte *memhunk = NULL; ++ size_t off, size; ++ bfd_error_type err; ++ ++ /* Get a temporary object-only file. */ ++ name = make_temp_file (".obj-only.o"); ++ ++ /* Open the object-only file. */ ++ file = real_fopen (name, FOPEN_WB); ++ if (!bfd_get_full_section_contents (abfd, sec, &memhunk)) ++ { ++ err = bfd_get_error (); ++ ++loser: ++ free (memhunk); ++ fclose (file); ++ unlink (name); ++ bfd_set_error (err); ++ return NULL; ++ } ++ ++ off = 0; ++ size = sec->size; ++ while (off != size) ++ { ++ size_t written, nwrite = size - off; ++ ++ written = fwrite (memhunk + off, 1, nwrite, file); ++ if (written < nwrite && ferror (file)) ++ { ++ err = bfd_error_system_call; ++ goto loser; ++ } ++ ++ off += written; ++ } ++ ++ free (memhunk); ++ fclose (file); ++ return name; ++} +--- binutils.orig/bfd/plugin.c 2017-03-02 11:37:31.572677260 +0000 ++++ binutils-2.28/bfd/plugin.c 2017-03-02 11:40:35.246209573 +0000 +@@ -132,10 +132,10 @@ register_claim_file (ld_plugin_claim_fil + } + + static asection bfd_plugin_fake_text_section +- = BFD_FAKE_SECTION (bfd_plugin_fake_text_section, 0, 0, ".text", 0); ++= BFD_FAKE_SECTION (bfd_plugin_fake_text_section, 0, ".text", 0, 0); + static asection bfd_plugin_fake_common_section +- = BFD_FAKE_SECTION (bfd_plugin_fake_common_section, SEC_IS_COMMON, 0, +- NULL, 0); ++ = BFD_FAKE_SECTION (bfd_plugin_fake_common_section, 0, ++ NULL, 0, SEC_IS_COMMON); + + /* Get symbols from object only section. */ + +--- binutils.orig/ld/emultempl/armelf.em 2017-03-02 11:58:14.632981042 +0000 ++++ binutils-2.28/ld/emultempl/armelf.em 2017-03-02 12:00:55.663819055 +0000 +@@ -414,7 +414,7 @@ gld${EMULATION_NAME}_after_allocation (v + } + + static void +-gld${EMULATION_NAME}_finish (void) ++arm_finish (void) + { + struct bfd_link_hash_entry * h; + +@@ -441,7 +441,7 @@ gld${EMULATION_NAME}_finish (void) + } + } + +- finish_default (); ++ gld${EMULATION_NAME}_finish (); + + if (params.thumb_entry_symbol) + { +@@ -790,4 +790,4 @@ LDEMUL_BEFORE_PARSE=gld"${EMULATION_NAME + LDEMUL_SET_SYMBOLS=gld"${EMULATION_NAME}"_set_symbols + + # Call the extra arm-elf function +-LDEMUL_FINISH=gld${EMULATION_NAME}_finish ++LDEMUL_FINISH=arm_finish +--- binutils.orig/ld/emultempl/ppc64elf.em 2017-03-02 11:58:14.632981042 +0000 ++++ binutils-2.28/ld/emultempl/ppc64elf.em 2017-03-02 12:01:40.961210895 +0000 +@@ -561,7 +561,7 @@ gld${EMULATION_NAME}_after_allocation (v + /* Final emulation specific call. */ + + static void +-gld${EMULATION_NAME}_finish (void) ++ppc_finish (void) + { + char *msg = NULL; + char *line, *endline; +@@ -592,7 +592,7 @@ gld${EMULATION_NAME}_finish (void) + if (msg != NULL) + free (msg); + +- finish_default (); ++ gld${EMULATION_NAME}_finish (); + } + + +@@ -926,4 +926,4 @@ LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS= + LDEMUL_AFTER_OPEN=ppc_after_open + LDEMUL_BEFORE_ALLOCATION=ppc_before_allocation + LDEMUL_AFTER_ALLOCATION=gld${EMULATION_NAME}_after_allocation +-LDEMUL_FINISH=gld${EMULATION_NAME}_finish ++LDEMUL_FINISH=ppc_finish diff --git a/binutils-2.27-arm-aarch64-default-relro.patch b/binutils-2.27-arm-aarch64-default-relro.patch deleted file mode 100644 index 296800e..0000000 --- a/binutils-2.27-arm-aarch64-default-relro.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- binutils-2.27.orig/ld/emultempl/aarch64elf.em 2016-08-19 11:53:37.647284625 +0100 -+++ binutils-2.27/ld/emultempl/aarch64elf.em 2016-08-19 11:54:41.916673347 +0100 -@@ -43,6 +43,7 @@ gld${EMULATION_NAME}_before_parse (void) - input_flags.dynamic = ${DYNAMIC_LINK-TRUE}; - config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`; - config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`; -+ link_info.relro = DEFAULT_LD_Z_RELRO; - } - - static void ---- binutils-2.27.orig/ld/emultempl/armelf.em 2016-08-19 11:53:37.647284625 +0100 -+++ binutils-2.27/ld/emultempl/armelf.em 2016-08-19 11:54:51.035728502 +0100 -@@ -52,6 +52,7 @@ gld${EMULATION_NAME}_before_parse (void) - input_flags.dynamic = ${DYNAMIC_LINK-TRUE}; - config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`; - config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`; -+ link_info.relro = DEFAULT_LD_Z_RELRO; - } - - static void diff --git a/binutils-2.27-dwarf-parse-speedup.patch b/binutils-2.27-dwarf-parse-speedup.patch deleted file mode 100644 index bab8e5e..0000000 --- a/binutils-2.27-dwarf-parse-speedup.patch +++ /dev/null @@ -1,380 +0,0 @@ ---- binutils-2.27.orig/bfd/dwarf2.c 2016-11-22 17:26:23.634699582 +0000 -+++ binutils-2.27/bfd/dwarf2.c 2016-11-22 17:26:49.849841652 +0000 -@@ -256,6 +256,12 @@ struct comp_unit - /* A list of the functions found in this comp. unit. */ - struct funcinfo *function_table; - -+ /* A table of function information references searchable by address. */ -+ struct lookup_funcinfo *lookup_funcinfo_table; -+ -+ /* Number of functions in the function_table and sorted_function_table. */ -+ bfd_size_type number_of_functions; -+ - /* A list of the variables found in this comp. unit. */ - struct varinfo *variable_table; - -@@ -1236,6 +1242,8 @@ struct line_sequence - bfd_vma low_pc; - struct line_sequence* prev_sequence; - struct line_info* last_line; /* Largest VMA. */ -+ struct line_info** line_info_lookup; -+ bfd_size_type num_lines; - }; - - struct line_info_table -@@ -1278,6 +1286,20 @@ struct funcinfo - asection *sec; - }; - -+struct lookup_funcinfo -+{ -+ /* Function information corresponding to this lookup table entry. */ -+ struct funcinfo *funcinfo; -+ -+ /* The lowest address for this specific function. */ -+ bfd_vma low_addr; -+ -+ /* The highest address of this function before the lookup table is sorted. -+ The highest address of all prior functions after the lookup table is sorted, -+ which is used for binary search. */ -+ bfd_vma high_addr; -+}; -+ - struct varinfo - { - /* Pointer to previous variable in list of all variables */ -@@ -1578,6 +1600,49 @@ compare_sequences (const void* a, const - return 0; - } - -+/* Construct the line information table for quick lookup. */ -+ -+static bfd_boolean -+build_line_info_table (struct line_info_table* table, struct line_sequence *seq) -+{ -+ bfd_size_type amt; -+ struct line_info** line_info_lookup; -+ struct line_info* each_line; -+ unsigned int num_lines; -+ unsigned int index; -+ -+ if (seq->line_info_lookup != NULL) -+ return TRUE; -+ -+ /* Count the number of line information entries. We could do this while -+ scanning the debug information, but some entries may be added via lcl_head -+ without having a sequence handy to increment the number of lines. */ -+ num_lines = 0; -+ for (each_line = seq->last_line; each_line; each_line = each_line->prev_line) -+ num_lines++; -+ -+ if (num_lines == 0) -+ return TRUE; -+ -+ /* Allocate space for the line information lookup table. */ -+ amt = sizeof (struct line_info*) * num_lines; -+ line_info_lookup = (struct line_info**) bfd_alloc (table->abfd, amt); -+ if (line_info_lookup == NULL) -+ return FALSE; -+ -+ /* Create the line information lookup table. */ -+ index = num_lines; -+ for (each_line = seq->last_line; each_line; each_line = each_line->prev_line) -+ line_info_lookup[--index] = each_line; -+ -+ BFD_ASSERT (index == 0); -+ -+ seq->num_lines = num_lines; -+ seq->line_info_lookup = line_info_lookup; -+ -+ return TRUE; -+} -+ - /* Sort the line sequences for quick lookup. */ - - static bfd_boolean -@@ -1609,6 +1674,8 @@ sort_line_sequences (struct line_info_ta - sequences[n].low_pc = seq->low_pc; - sequences[n].prev_sequence = NULL; - sequences[n].last_line = seq->last_line; -+ sequences[n].line_info_lookup = NULL; -+ sequences[n].num_lines = 0; - seq = seq->prev_sequence; - free (last_seq); - } -@@ -2089,7 +2156,7 @@ lookup_address_in_line_info_table (struc - unsigned int *discriminator_ptr) - { - struct line_sequence *seq = NULL; -- struct line_info *each_line; -+ struct line_info *info; - int low, high, mid; - - /* Binary search the array of sequences. */ -@@ -2107,26 +2174,43 @@ lookup_address_in_line_info_table (struc - break; - } - -- if (seq && addr >= seq->low_pc && addr < seq->last_line->address) -+ /* Check for a valid sequence. */ -+ if (!seq || addr < seq->low_pc || addr >= seq->last_line->address) -+ goto fail; -+ -+ if (!build_line_info_table (table, seq)) -+ goto fail; -+ -+ /* Binary search the array of line information. */ -+ low = 0; -+ high = seq->num_lines; -+ info = NULL; -+ while (low < high) - { -- /* Note: seq->last_line should be a descendingly sorted list. */ -- for (each_line = seq->last_line; -- each_line; -- each_line = each_line->prev_line) -- if (addr >= each_line->address) -- break; -+ mid = (low + high) / 2; -+ info = seq->line_info_lookup[mid]; -+ if (addr < info->address) -+ high = mid; -+ else if (addr >= seq->line_info_lookup[mid + 1]->address) -+ low = mid + 1; -+ else -+ break; -+ } - -- if (each_line -- && !(each_line->end_sequence || each_line == seq->last_line)) -- { -- *filename_ptr = each_line->filename; -- *linenumber_ptr = each_line->line; -- if (discriminator_ptr) -- *discriminator_ptr = each_line->discriminator; -- return seq->last_line->address - seq->low_pc; -- } -+ /* Check for a valid line information entry. */ -+ if (info -+ && addr >= info->address -+ && addr < seq->line_info_lookup[mid + 1]->address -+ && !(info->end_sequence || info == seq->last_line)) -+ { -+ *filename_ptr = info->filename; -+ *linenumber_ptr = info->line; -+ if (discriminator_ptr) -+ *discriminator_ptr = info->discriminator; -+ return seq->last_line->address - seq->low_pc; - } - -+fail: - *filename_ptr = NULL; - return 0; - } -@@ -2144,6 +2228,93 @@ read_debug_ranges (struct comp_unit *uni - - /* Function table functions. */ - -+static int -+compare_lookup_funcinfos (const void* a, const void* b) -+{ -+ const struct lookup_funcinfo *lookup1 = a; -+ const struct lookup_funcinfo *lookup2 = b; -+ int result; -+ -+ if (lookup1->low_addr < lookup2->low_addr) -+ result = -1; -+ else if (lookup1->low_addr > lookup2->low_addr) -+ result = 1; -+ else if (lookup1->high_addr < lookup2->high_addr) -+ result = -1; -+ else if (lookup1->high_addr > lookup1->high_addr) -+ result = 1; -+ else -+ result = 0; -+ -+ return result; -+} -+ -+static bfd_boolean -+build_lookup_funcinfo_table (struct comp_unit *unit) -+{ -+ struct lookup_funcinfo *lookup_funcinfo_table = unit->lookup_funcinfo_table; -+ unsigned int number_of_functions = unit->number_of_functions; -+ struct funcinfo *each; -+ struct lookup_funcinfo *entry; -+ size_t index; -+ struct arange *range; -+ bfd_vma low_addr, high_addr; -+ -+ if (lookup_funcinfo_table || number_of_functions == 0) -+ return TRUE; -+ -+ /* Create the function info lookup table. */ -+ lookup_funcinfo_table = (struct lookup_funcinfo *) -+ bfd_malloc (number_of_functions * sizeof (struct lookup_funcinfo)); -+ if (lookup_funcinfo_table == NULL) -+ return FALSE; -+ -+ /* Populate the function info lookup table. */ -+ index = number_of_functions; -+ for (each = unit->function_table; each; each = each->prev_func) -+ { -+ entry = &lookup_funcinfo_table[--index]; -+ entry->funcinfo = each; -+ -+ /* Calculate the lowest and highest address for this function entry. */ -+ low_addr = entry->funcinfo->arange.low; -+ high_addr = entry->funcinfo->arange.high; -+ -+ for (range = entry->funcinfo->arange.next; range; range = range->next) -+ { -+ if (range->low < low_addr) -+ low_addr = range->low; -+ if (range->high > high_addr) -+ high_addr = range->high; -+ } -+ -+ entry->low_addr = low_addr; -+ entry->high_addr = high_addr; -+ } -+ -+ BFD_ASSERT (index == 0); -+ -+ /* Sort the function by address. */ -+ qsort (lookup_funcinfo_table, -+ number_of_functions, -+ sizeof (struct lookup_funcinfo), -+ compare_lookup_funcinfos); -+ -+ /* Calculate the high watermark for each function in the lookup table. */ -+ high_addr = lookup_funcinfo_table[0].high_addr; -+ for (index = 1; index < number_of_functions; index++) -+ { -+ entry = &lookup_funcinfo_table[index]; -+ if (entry->high_addr > high_addr) -+ high_addr = entry->high_addr; -+ else -+ entry->high_addr = high_addr; -+ } -+ -+ unit->lookup_funcinfo_table = lookup_funcinfo_table; -+ return TRUE; -+} -+ - /* If ADDR is within UNIT's function tables, set FUNCTION_PTR, and return - TRUE. Note that we need to find the function that has the smallest range - that contains ADDR, to handle inlined functions without depending upon -@@ -2154,37 +2325,71 @@ lookup_address_in_function_table (struct - bfd_vma addr, - struct funcinfo **function_ptr) - { -- struct funcinfo* each_func; -+ unsigned int number_of_functions = unit->number_of_functions; -+ struct lookup_funcinfo* lookup_funcinfo = NULL; -+ struct funcinfo* funcinfo = NULL; - struct funcinfo* best_fit = NULL; - bfd_vma best_fit_len = 0; -+ bfd_size_type low, high, mid, first; - struct arange *arange; - -- for (each_func = unit->function_table; -- each_func; -- each_func = each_func->prev_func) -+ if (!build_lookup_funcinfo_table (unit)) -+ return FALSE; -+ -+ /* Find the first function in the lookup table which may contain the -+ specified address. */ -+ low = 0; -+ high = number_of_functions; -+ first = high; -+ while (low < high) - { -- for (arange = &each_func->arange; -- arange; -- arange = arange->next) -+ mid = (low + high) / 2; -+ lookup_funcinfo = &unit->lookup_funcinfo_table[mid]; -+ if (addr < lookup_funcinfo->low_addr) -+ high = mid; -+ else if (addr >= lookup_funcinfo->high_addr) -+ low = mid + 1; -+ else -+ high = first = mid; -+ } -+ -+ /* Find the 'best' match for the address. The prior algorithm defined the -+ best match as the function with the smallest address range containing -+ the specified address. This definition should probably be changed to the -+ innermost inline routine containing the address, but right now we want -+ to get the same results we did before. */ -+ while (first < number_of_functions) -+ { -+ if (addr < unit->lookup_funcinfo_table[first].low_addr) -+ break; -+ funcinfo = unit->lookup_funcinfo_table[first].funcinfo; -+ -+ for (arange = &funcinfo->arange; arange; arange = arange->next) - { -- if (addr >= arange->low && addr < arange->high) -+ if (addr < arange->low || addr >= arange->high) -+ continue; -+ -+ if (!best_fit -+ || arange->high - arange->low < best_fit_len -+ /* The following comparison is designed to return the same -+ match as the previous algorithm for routines which have the -+ same best fit length. */ -+ || (arange->high - arange->low == best_fit_len -+ && funcinfo > best_fit)) - { -- if (!best_fit -- || arange->high - arange->low < best_fit_len) -- { -- best_fit = each_func; -- best_fit_len = arange->high - arange->low; -- } -+ best_fit = funcinfo; -+ best_fit_len = arange->high - arange->low; - } - } -- } - -- if (best_fit) -- { -- *function_ptr = best_fit; -- return TRUE; -+ first++; - } -- return FALSE; -+ -+ if (!best_fit) -+ return FALSE; -+ -+ *function_ptr = best_fit; -+ return TRUE; - } - - /* If SYM at ADDR is within function table of UNIT, set FILENAME_PTR -@@ -2513,6 +2718,7 @@ scan_unit_for_symbols (struct comp_unit - func->tag = abbrev->tag; - func->prev_func = unit->function_table; - unit->function_table = func; -+ unit->number_of_functions++; - BFD_ASSERT (!unit->cached); - - if (func->tag == DW_TAG_inlined_subroutine) -@@ -4241,6 +4447,12 @@ _bfd_dwarf2_cleanup_debug_info (bfd *abf - function_table = function_table->prev_func; - } - -+ if (each->lookup_funcinfo_table) -+ { -+ free (each->lookup_funcinfo_table); -+ each->lookup_funcinfo_table = NULL; -+ } -+ - while (variable_table) - { - if (variable_table->file) diff --git a/binutils-2.27-filename-in-error-messages.patch b/binutils-2.27-filename-in-error-messages.patch new file mode 100644 index 0000000..19654c7 --- /dev/null +++ b/binutils-2.27-filename-in-error-messages.patch @@ -0,0 +1,84 @@ +--- binutils-2.27.orig/binutils/readelf.c 2017-01-16 11:51:05.043922264 +0000 ++++ binutils-2.27/binutils/readelf.c 2017-01-16 12:01:34.389053872 +0000 +@@ -16733,39 +16733,49 @@ process_archive (char * file_name, FILE + static int + process_file (char * file_name) + { ++ char * name; ++ char * saved_program_name; + FILE * file; + struct stat statbuf; + char armag[SARMAG]; +- int ret; ++ int ret = 1; ++ ++ /* Overload program_name to include file_name. Doing this means ++ that warning/error messages will positively identify the file ++ concerned even when multiple instances of readelf are running. */ ++ name = xmalloc (strlen (program_name) + strlen (file_name) + 3); ++ sprintf (name, "%s: %s", program_name, file_name); ++ saved_program_name = program_name; ++ program_name = name; + + if (stat (file_name, &statbuf) < 0) + { + if (errno == ENOENT) +- error (_("'%s': No such file\n"), file_name); ++ error (_("No such file\n")); + else +- error (_("Could not locate '%s'. System error message: %s\n"), +- file_name, strerror (errno)); +- return 1; ++ error (_("Could not locate file. System error message: %s\n"), ++ strerror (errno)); ++ goto done; + } + + if (! S_ISREG (statbuf.st_mode)) + { +- error (_("'%s' is not an ordinary file\n"), file_name); +- return 1; ++ error (_("Not an ordinary file\n")); ++ goto done; + } + + file = fopen (file_name, "rb"); + if (file == NULL) + { +- error (_("Input file '%s' is not readable.\n"), file_name); +- return 1; ++ error (_("Not readable\n")); ++ goto done; + } + + if (fread (armag, SARMAG, 1, file) != 1) + { +- error (_("%s: Failed to read file's magic number\n"), file_name); ++ error (_("Failed to read file's magic number\n")); + fclose (file); +- return 1; ++ goto done; + } + + current_file_size = (bfd_size_type) statbuf.st_size; +@@ -16777,8 +16787,7 @@ process_file (char * file_name) + else + { + if (do_archive_index) +- error (_("File %s is not an archive so its index cannot be displayed.\n"), +- file_name); ++ error (_("Not an archive so its index cannot be displayed\n")); + + rewind (file); + archive_file_size = archive_file_offset = 0; +@@ -16787,7 +16796,10 @@ process_file (char * file_name) + + fclose (file); + ++ done: + current_file_size = 0; ++ free (program_name); ++ program_name = saved_program_name; + return ret; + } + diff --git a/binutils-2.27-fix-xtensa-bug.patch b/binutils-2.27-fix-xtensa-bug.patch deleted file mode 100644 index 4b85b6f..0000000 --- a/binutils-2.27-fix-xtensa-bug.patch +++ /dev/null @@ -1,16 +0,0 @@ -## Fix to xg_reverse_shift_count typo bug in tc-xtensa.c -## Original upstream commit: -## https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=78fb7e37eb8bb08ae537d6c487996ff17c810332;hp=c5da193232ea0452f714dffee0d417d965590476 -diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c -index d062044..ca261ae 100644 ---- a/gas/config/tc-xtensa.c -+++ b/gas/config/tc-xtensa.c -@@ -2228,7 +2228,7 @@ xg_reverse_shift_count (char **cnt_argp) - cnt_arg = *cnt_argp; - - /* replace the argument with "31-(argument)" */ -- new_arg = concat ("31-(", cnt_argp, ")", (char *) NULL); -+ new_arg = concat ("31-(", cnt_arg, ")", (char *) NULL); - - free (cnt_arg); - *cnt_argp = new_arg; diff --git a/binutils-2.27-ld-buffer-overflow.patch b/binutils-2.27-ld-buffer-overflow.patch new file mode 100644 index 0000000..54eb649 --- /dev/null +++ b/binutils-2.27-ld-buffer-overflow.patch @@ -0,0 +1,35 @@ +diff -rup binutils.orig/ld/ldlang.c binutils-2.27/ld/ldlang.c +--- binutils.orig/ld/ldlang.c 2017-01-31 11:08:03.711398839 +0000 ++++ binutils-2.27/ld/ldlang.c 2017-01-31 11:09:31.411347584 +0000 +@@ -2034,14 +2034,11 @@ static void + lang_print_asneeded (void) + { + struct asneeded_minfo *m; +- char buf[100]; + + if (asneeded_list_head == NULL) + return; + +- sprintf (buf, _("\nAs-needed library included " +- "to satisfy reference by file (symbol)\n\n")); +- minfo ("%s", buf); ++ minfo (_("\nAs-needed library included to satisfy reference by file (symbol)\n\n")); + + for (m = asneeded_list_head; m != NULL; m = m->next) + { +diff -rup binutils.orig/ld/ldmain.c binutils-2.27/ld/ldmain.c +--- binutils.orig/ld/ldmain.c 2017-01-31 11:08:03.874396886 +0000 ++++ binutils-2.27/ld/ldmain.c 2017-01-31 11:09:01.393708155 +0000 +@@ -840,11 +840,7 @@ add_archive_element (struct bfd_link_inf + + if (!header_printed) + { +- char buf[100]; +- +- sprintf (buf, _("Archive member included " +- "to satisfy reference by file (symbol)\n\n")); +- minfo ("%s", buf); ++ minfo (_("Archive member included to satisfy reference by file (symbol)\n\n")); + header_printed = TRUE; + } + diff --git a/binutils-2.27-local-dynsym-count.patch b/binutils-2.27-local-dynsym-count.patch deleted file mode 100644 index 7b27255..0000000 --- a/binutils-2.27-local-dynsym-count.patch +++ /dev/null @@ -1,271 +0,0 @@ -diff -rup binutils-2.27.orig/bfd/ChangeLog binutils-2.27/bfd/ChangeLog ---- binutils-2.27.orig/bfd/ChangeLog 2016-08-12 17:14:07.621773233 +0100 -+++ binutils-2.27/bfd/ChangeLog 2016-08-12 17:17:32.408119156 +0100 -@@ -1,3 +1,9 @@ -+2016-08-12 Alan Modra -+ -+ * elf-bfd.h (struct elf_link_hash_table): Add local_dynsymcount. -+ * elflink.c (_bfd_elf_link_renumber_dynsyms): Set local_dynsymcount. -+ (bfd_elf_final_link): Set .dynsym sh_info from local_dynsymcount. -+ - 2016-08-03 Tristan Gingold - - * version.m4: Bump version to 2.27 -Only in binutils-2.27/bfd: ChangeLog.orig -Only in binutils-2.27/bfd: ChangeLog.rej -diff -rup binutils-2.27.orig/bfd/elf-bfd.h binutils-2.27/bfd/elf-bfd.h ---- binutils-2.27.orig/bfd/elf-bfd.h 2016-08-12 17:14:07.630773290 +0100 -+++ binutils-2.27/bfd/elf-bfd.h 2016-08-12 17:16:08.519549845 +0100 -@@ -524,6 +524,7 @@ struct elf_link_hash_table - /* The number of symbols found in the link which is intended for the - mandatory DT_SYMTAB tag (.dynsym section) in .dynamic section. */ - bfd_size_type dynsymcount; -+ bfd_size_type local_dynsymcount; - - /* The string table of dynamic symbols, which becomes the .dynstr - section. */ -diff -rup binutils-2.27.orig/bfd/elflink.c binutils-2.27/bfd/elflink.c ---- binutils-2.27.orig/bfd/elflink.c 2016-08-12 17:14:07.637773334 +0100 -+++ binutils-2.27/bfd/elflink.c 2016-08-12 17:16:08.521549858 +0100 -@@ -903,6 +903,7 @@ _bfd_elf_link_renumber_dynsyms (bfd *out - for (p = elf_hash_table (info)->dynlocal; p ; p = p->next) - p->dynindx = ++dynsymcount; - } -+ elf_hash_table (info)->local_dynsymcount = dynsymcount; - - elf_link_hash_traverse (elf_hash_table (info), - elf_link_renumber_hash_table_dynsyms, -@@ -11678,7 +11679,10 @@ bfd_elf_final_link (bfd *abfd, struct bf - { - Elf_Internal_Sym sym; - bfd_byte *dynsym = elf_hash_table (info)->dynsym->contents; -- long last_local = 0; -+ -+ o = elf_hash_table (info)->dynsym->output_section; -+ elf_section_data (o)->this_hdr.sh_info -+ = elf_hash_table (info)->local_dynsymcount + 1; - - /* Write out the section symbols for the output sections. */ - if (bfd_link_pic (info) -@@ -11708,8 +11712,6 @@ bfd_elf_final_link (bfd *abfd, struct bf - return FALSE; - sym.st_value = s->vma; - dest = dynsym + dynindx * bed->s->sizeof_sym; -- if (last_local < dynindx) -- last_local = dynindx; - bed->s->swap_symbol_out (abfd, &sym, dest, 0); - } - } -@@ -11742,16 +11744,10 @@ bfd_elf_final_link (bfd *abfd, struct bf - + e->isym.st_value); - } - -- if (last_local < e->dynindx) -- last_local = e->dynindx; -- - dest = dynsym + e->dynindx * bed->s->sizeof_sym; - bed->s->swap_symbol_out (abfd, &sym, dest, 0); - } - } -- -- elf_section_data (elf_hash_table (info)->dynsym->output_section)->this_hdr.sh_info = -- last_local + 1; - } - - /* We get the global symbols from the hash table. */ -Only in binutils-2.27/bfd: elflink.c.orig -diff -rup binutils-2.27.orig/ld/ChangeLog binutils-2.27/ld/ChangeLog ---- binutils-2.27.orig/ld/ChangeLog 2016-08-12 17:14:08.064776041 +0100 -+++ binutils-2.27/ld/ChangeLog 2016-08-12 17:17:00.166900351 +0100 -@@ -1,3 +1,19 @@ -+2016-08-12 Alan Modra -+ -+ * testsuite/ld-tic6x/shlib-1.rd: Correct expected .dynsym sh_info. -+ * testsuite/ld-tic6x/shlib-1b.rd: Likewise. -+ * testsuite/ld-tic6x/shlib-1r.rd: Likewise. -+ * testsuite/ld-tic6x/shlib-1rb.rd: Likewise. -+ * testsuite/ld-tic6x/shlib-app-1.rd: Likewise. -+ * testsuite/ld-tic6x/shlib-app-1b.rd: Likewise. -+ * testsuite/ld-tic6x/shlib-app-1r.rd: Likewise. -+ * testsuite/ld-tic6x/shlib-app-1rb.rd: Likewise. -+ * testsuite/ld-tic6x/shlib-noindex.rd: Likewise. -+ * testsuite/ld-tic6x/static-app-1.rd: Likewise. -+ * testsuite/ld-tic6x/static-app-1b.rd: Likewise. -+ * testsuite/ld-tic6x/static-app-1r.rd: Likewise. -+ * testsuite/ld-tic6x/static-app-1rb.rd: Likewise. -+ - 2016-08-03 Tristan Gingold - - * configure: Regenerate. -Only in binutils-2.27/ld: ChangeLog.orig -Only in binutils-2.27/ld: ChangeLog.rej -diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-1b.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-1b.rd ---- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-1b.rd 2016-08-12 17:14:08.200776903 +0100 -+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-1b.rd 2016-08-12 17:16:08.522549865 +0100 -@@ -4,7 +4,7 @@ Section Headers: - \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al - \[ 0\] NULL 00000000 000000 000000 00 0 0 0 - \[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4 -- \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4 -+ \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 7 4 - \[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1 - \[ 4\] \.rela\.got RELA 00008140 001140 000024 0c AI 2 10 4 - \[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c AI 2 11 4 -diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-1rb.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-1rb.rd ---- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-1rb.rd 2016-08-12 17:14:08.200776903 +0100 -+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-1rb.rd 2016-08-12 17:16:08.522549865 +0100 -@@ -4,7 +4,7 @@ Section Headers: - \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al - \[ 0\] NULL 00000000 000000 000000 00 0 0 0 - \[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4 -- \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4 -+ \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 7 4 - \[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1 - \[ 4\] \.rela\.got RELA 00008140 001140 000024 0c AI 2 10 4 - \[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c AI 2 11 4 -diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-1.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-1.rd ---- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-1.rd 2016-08-12 17:14:08.200776903 +0100 -+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-1.rd 2016-08-12 17:16:08.522549865 +0100 -@@ -4,7 +4,7 @@ Section Headers: - \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al - \[ 0\] NULL 00000000 000000 000000 00 0 0 0 - \[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4 -- \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4 -+ \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 7 4 - \[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1 - \[ 4\] \.rela\.got RELA 00008140 001140 000024 0c AI 2 10 4 - \[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c AI 2 11 4 -diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-1r.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-1r.rd ---- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-1r.rd 2016-08-12 17:14:08.200776903 +0100 -+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-1r.rd 2016-08-12 17:16:08.522549865 +0100 -@@ -4,7 +4,7 @@ Section Headers: - \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al - \[ 0\] NULL 00000000 000000 000000 00 0 0 0 - \[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4 -- \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4 -+ \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 7 4 - \[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1 - \[ 4\] \.rela\.got RELA 00008140 001140 000024 0c AI 2 10 4 - \[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c AI 2 11 4 -diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-app-1b.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-app-1b.rd ---- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-app-1b.rd 2016-08-12 17:14:08.200776903 +0100 -+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-app-1b.rd 2016-08-12 17:16:08.522549865 +0100 -@@ -4,7 +4,7 @@ Section Headers: - \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al - \[ 0\] NULL 00000000 000000 000000 00 0 0 0 - \[ 1\] \.hash HASH 00008000 001000 000044 04 A 2 0 4 -- \[ 2\] \.dynsym DYNSYM 00008044 001044 0000c0 10 A 3 6 4 -+ \[ 2\] \.dynsym DYNSYM 00008044 001044 0000c0 10 A 3 7 4 - \[ 3\] \.dynstr STRTAB 00008104 001104 000036 00 A 0 0 1 - \[ 4\] \.rela\.got RELA 0000813c 00113c 000018 0c AI 2 11 4 - \[ 5\] \.rela\.neardata RELA 00008154 001154 000018 0c AI 2 12 4 -diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-app-1rb.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-app-1rb.rd ---- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-app-1rb.rd 2016-08-12 17:14:08.201776909 +0100 -+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-app-1rb.rd 2016-08-12 17:16:08.522549865 +0100 -@@ -4,7 +4,7 @@ Section Headers: - \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al - \[ 0\] NULL 00000000 000000 000000 00 0 0 0 - \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4 -- \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 6 4 -+ \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 7 4 - \[ 3\] \.dynstr STRTAB 000080dc 0010dc 000031 00 A 0 0 1 - \[ 4\] \.rela\.got RELA 00008110 001110 000018 0c AI 2 10 4 - \[ 5\] \.rela\.bss RELA 00008128 001128 00000c 0c AI 2 12 4 -diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-app-1.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-app-1.rd ---- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-app-1.rd 2016-08-12 17:14:08.200776903 +0100 -+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-app-1.rd 2016-08-12 17:16:08.522549865 +0100 -@@ -4,7 +4,7 @@ Section Headers: - \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al - \[ 0\] NULL 00000000 000000 000000 00 0 0 0 - \[ 1\] \.hash HASH 00008000 001000 000044 04 A 2 0 4 -- \[ 2\] \.dynsym DYNSYM 00008044 001044 0000c0 10 A 3 6 4 -+ \[ 2\] \.dynsym DYNSYM 00008044 001044 0000c0 10 A 3 7 4 - \[ 3\] \.dynstr STRTAB 00008104 001104 000035 00 A 0 0 1 - \[ 4\] \.rela\.got RELA 0000813c 00113c 000018 0c AI 2 11 4 - \[ 5\] \.rela\.neardata RELA 00008154 001154 000018 0c AI 2 12 4 -diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-app-1r.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-app-1r.rd ---- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-app-1r.rd 2016-08-12 17:14:08.200776903 +0100 -+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-app-1r.rd 2016-08-12 17:16:08.522549865 +0100 -@@ -4,7 +4,7 @@ Section Headers: - \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al - \[ 0\] NULL 00000000 000000 000000 00 0 0 0 - \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4 -- \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 6 4 -+ \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 7 4 - \[ 3\] \.dynstr STRTAB 000080dc 0010dc 000030 00 A 0 0 1 - \[ 4\] \.rela\.got RELA 0000810c 00110c 000018 0c AI 2 10 4 - \[ 5\] \.rela\.bss RELA 00008124 001124 00000c 0c AI 2 12 4 -diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-noindex.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-noindex.rd ---- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-noindex.rd 2016-08-12 17:14:08.201776909 +0100 -+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-noindex.rd 2016-08-12 17:16:08.522549865 +0100 -@@ -4,7 +4,7 @@ Section Headers: - \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al - \[ 0\] NULL 00000000 000000 000000 00 0 0 0 - \[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4 -- \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4 -+ \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 7 4 - \[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1 - \[ 4\] \.rela\.text RELA 00008140 001140 00000c 0c AI 2 10 4 - \[ 5\] \.rela\.got RELA 0000814c 00114c 000024 0c AI 2 11 4 -diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/static-app-1b.rd binutils-2.27/ld/testsuite/ld-tic6x/static-app-1b.rd ---- binutils-2.27.orig/ld/testsuite/ld-tic6x/static-app-1b.rd 2016-08-12 17:14:08.201776909 +0100 -+++ binutils-2.27/ld/testsuite/ld-tic6x/static-app-1b.rd 2016-08-12 17:16:08.522549865 +0100 -@@ -4,7 +4,7 @@ Section Headers: - \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al - \[ 0\] NULL 00000000 000000 000000 00 0 0 0 - \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4 -- \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 5 4 -+ \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 7 4 - \[ 3\] \.dynstr STRTAB 000080dc 0010dc 00001d 00 A 0 0 1 - \[ 4\] \.rela\.got RELA 000080fc 0010fc 000024 0c AI 2 8 4 - \[ 5\] \.rela\.neardata RELA 00008120 001120 000030 0c AI 2 9 4 -diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/static-app-1rb.rd binutils-2.27/ld/testsuite/ld-tic6x/static-app-1rb.rd ---- binutils-2.27.orig/ld/testsuite/ld-tic6x/static-app-1rb.rd 2016-08-12 17:14:08.201776909 +0100 -+++ binutils-2.27/ld/testsuite/ld-tic6x/static-app-1rb.rd 2016-08-12 17:16:08.523549872 +0100 -@@ -4,7 +4,7 @@ Section Headers: - \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al - \[ 0\] NULL 00000000 000000 000000 00 0 0 0 - \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4 -- \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 5 4 -+ \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 7 4 - \[ 3\] \.dynstr STRTAB 000080dc 0010dc 00001d 00 A 0 0 1 - \[ 4\] \.rela\.got RELA 000080fc 0010fc 000024 0c AI 2 8 4 - \[ 5\] \.rela\.neardata RELA 00008120 001120 000018 0c AI 2 9 4 -diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/static-app-1.rd binutils-2.27/ld/testsuite/ld-tic6x/static-app-1.rd ---- binutils-2.27.orig/ld/testsuite/ld-tic6x/static-app-1.rd 2016-08-12 17:14:08.201776909 +0100 -+++ binutils-2.27/ld/testsuite/ld-tic6x/static-app-1.rd 2016-08-12 17:16:08.522549865 +0100 -@@ -4,7 +4,7 @@ Section Headers: - \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al - \[ 0\] NULL 00000000 000000 000000 00 0 0 0 - \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4 -- \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 5 4 -+ \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 7 4 - \[ 3\] \.dynstr STRTAB 000080dc 0010dc 00001d 00 A 0 0 1 - \[ 4\] \.rela\.got RELA 000080fc 0010fc 000024 0c AI 2 8 4 - \[ 5\] \.rela\.neardata RELA 00008120 001120 000030 0c AI 2 9 4 -diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/static-app-1r.rd binutils-2.27/ld/testsuite/ld-tic6x/static-app-1r.rd ---- binutils-2.27.orig/ld/testsuite/ld-tic6x/static-app-1r.rd 2016-08-12 17:14:08.201776909 +0100 -+++ binutils-2.27/ld/testsuite/ld-tic6x/static-app-1r.rd 2016-08-12 17:16:08.523549872 +0100 -@@ -4,7 +4,7 @@ Section Headers: - \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al - \[ 0\] NULL 00000000 000000 000000 00 0 0 0 - \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4 -- \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 5 4 -+ \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 7 4 - \[ 3\] \.dynstr STRTAB 000080dc 0010dc 00001d 00 A 0 0 1 - \[ 4\] \.rela\.got RELA 000080fc 0010fc 000024 0c AI 2 8 4 - \[ 5\] \.rela\.neardata RELA 00008120 001120 000018 0c AI 2 9 4 ---- binutils-2.27.orig/binutils/readelf.c 2016-08-12 17:14:07.717773841 +0100 -+++ binutils-2.27/binutils/readelf.c 2016-08-12 17:24:25.007897415 +0100 -@@ -11110,6 +11110,11 @@ process_symbol_table (FILE * file) - } - - putchar ('\n'); -+ -+ if (ELF_ST_BIND (psym->st_info) == STB_LOCAL -+ && si >= section->sh_info) -+ warn (_("local symbol %u found at index >= %s's sh_info value of %u\n"), -+ si, printable_section_name (section), section->sh_info); - } - - free (symtab); diff --git a/binutils-2.27-monotonic-section-offsets.patch b/binutils-2.27-monotonic-section-offsets.patch deleted file mode 100644 index 09df9f7..0000000 --- a/binutils-2.27-monotonic-section-offsets.patch +++ /dev/null @@ -1,2100 +0,0 @@ -diff --git a/bfd/elf.c b/bfd/elf.c -index 274cd53..c3630d2 100644 ---- a/bfd/elf.c -+++ b/bfd/elf.c -@@ -3093,7 +3093,7 @@ elf_fake_sections (bfd *abfd, asection *asect, void *fsarg) - compressed. */ - asect->flags |= SEC_ELF_COMPRESS; - -- /* If this section will be compressed, delay adding setion -+ /* If this section will be compressed, delay adding section - name to section name section after it is compressed in - _bfd_elf_assign_file_positions_for_non_load. */ - delay_st_name_p = TRUE; -@@ -3595,10 +3595,6 @@ assign_section_numbers (bfd *abfd, struct bfd_link_info *link_info) - d->rela.idx = 0; - } - -- elf_shstrtab_sec (abfd) = section_number++; -- _bfd_elf_strtab_addref (elf_shstrtab (abfd), t->shstrtab_hdr.sh_name); -- elf_elfheader (abfd)->e_shstrndx = elf_shstrtab_sec (abfd); -- - need_symtab = (bfd_get_symcount (abfd) > 0 - || (link_info == NULL - && ((abfd->flags & (EXEC_P | DYNAMIC | HAS_RELOC)) -@@ -3626,6 +3622,10 @@ assign_section_numbers (bfd *abfd, struct bfd_link_info *link_info) - _bfd_elf_strtab_addref (elf_shstrtab (abfd), t->strtab_hdr.sh_name); - } - -+ elf_shstrtab_sec (abfd) = section_number++; -+ _bfd_elf_strtab_addref (elf_shstrtab (abfd), t->shstrtab_hdr.sh_name); -+ elf_elfheader (abfd)->e_shstrndx = elf_shstrtab_sec (abfd); -+ - if (section_number >= SHN_LORESERVE) - { - _bfd_error_handler (_("%B: too many sections: %u"), -@@ -6028,7 +6028,7 @@ _bfd_elf_assign_file_positions_for_non_load (bfd *abfd) - return FALSE; - name = new_name; - } -- /* Add setion name to section name section. */ -+ /* Add section name to section name section. */ - if (shdrp->sh_name != (unsigned int) -1) - abort (); - shdrp->sh_name -@@ -6036,7 +6036,7 @@ _bfd_elf_assign_file_positions_for_non_load (bfd *abfd) - name, FALSE); - d = elf_section_data (sec); - -- /* Add reloc setion name to section name section. */ -+ /* Add reloc section name to section name section. */ - if (d->rel.hdr - && !_bfd_elf_set_reloc_sh_name (abfd, - d->rel.hdr, -diff --git a/binutils/testsuite/binutils-all/readelf.s b/binutils/testsuite/binutils-all/readelf.s -index fd62fda..5aae0ce 100644 ---- a/binutils/testsuite/binutils-all/readelf.s -+++ b/binutils/testsuite/binutils-all/readelf.s -@@ -14,8 +14,8 @@ Section Headers: - # MIPS targets put .reginfo, .mdebug, .MIPS.abiflags and .gnu.attributes here. - # v850 targets put .call_table_data and .call_table_text here. - #... -- +\[ .\] .shstrtab +STRTAB +00000000 0+.* 0+.* 00 .* +0 +0 +. - +\[..\] .symtab +SYMTAB +00000000 0+.* 0+.* 10 +.. +.+ +4 - +\[..\] .strtab +STRTAB +00000000 0+.* 0+.* 00 .* +0 +0 +1 -+ +\[..\] .shstrtab +STRTAB +00000000 0+.* 0+.* 00 .* +0 +0 +. - Key to Flags: - #... -diff --git a/binutils/testsuite/binutils-all/readelf.s-64 b/binutils/testsuite/binutils-all/readelf.s-64 -index d198300..622b314 100644 ---- a/binutils/testsuite/binutils-all/readelf.s-64 -+++ b/binutils/testsuite/binutils-all/readelf.s-64 -@@ -13,12 +13,12 @@ Section Headers: - +000000000000000[48] +0000000000000000 +WA +0 +0 +.* - +\[ 4\] .bss +NOBITS +0000000000000000 +000000(4c|50|54|58) - +0000000000000000 +0000000000000000 +WA +0 +0 +.* -- +\[ 5\] .shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ -- +00000000000000.. +0000000000000000 .* +0 +0 +.* -- +\[ 6\] .symtab +SYMTAB +0000000000000000 +0+.* -+ +\[ 5\] .symtab +SYMTAB +0000000000000000 +0+.* - # aarch64-elf targets have one more data symbol. -- +0+.* +0000000000000018 +7 +(6|7) +8 -- +\[ 7\] .strtab +STRTAB +0000000000000000 +0+.* -+ +0+.* +0000000000000018 +6 +(6|7) +8 -+ +\[ 6\] .strtab +STRTAB +0000000000000000 +0+.* - +0+.* +0000000000000000 .* +0 +0 +1 -+ +\[ 7\] .shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ -+ +00000000000000.. +0000000000000000 .* +0 +0 +.* - Key to Flags: - #... -diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d b/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d -index 5cea05e..5dc74d6 100644 ---- a/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d -+++ b/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d -@@ -11,8 +11,8 @@ Section Headers: - \[ 2\] .data PROGBITS 00000000 000034 000000 00 WA 0 0 1 - \[ 3\] .bss NOBITS 00000000 000034 000000 00 WA 0 0 1 - \[ 4\] .eh_frame X86_64_UNWIND 00000000 000034 000008 00 A 0 0 1 -- \[ 5\] .shstrtab STRTAB 00000000 [0-9a-f]+ 000036 00 . 0 0 1 -- \[ 6\] .symtab SYMTAB 00000000 [0-9a-f]+ 000050 10 7 5 4 -- \[ 7\] .strtab STRTAB 00000000 [0-9a-f]+ 000001 00 . 0 0 1 -+ \[ 5\] .symtab SYMTAB 00000000 [0-9a-f]+ 000050 10 6 5 4 -+ \[ 6\] .strtab STRTAB 00000000 [0-9a-f]+ 000001 00 . 0 0 1 -+ \[ 7\] .shstrtab STRTAB 00000000 [0-9a-f]+ 000036 00 . 0 0 1 - Key to Flags: - #pass -diff --git a/gas/testsuite/gas/i386/x86-64-unwind.d b/gas/testsuite/gas/i386/x86-64-unwind.d -index 7a4c64c..89f1a65 100644 ---- a/gas/testsuite/gas/i386/x86-64-unwind.d -+++ b/gas/testsuite/gas/i386/x86-64-unwind.d -@@ -16,11 +16,11 @@ Section Headers: - 0000000000000000 0000000000000000 WA 0 0 1 - \[ 4\] \.eh_frame X86_64_UNWIND 0000000000000000 00000040 - 0000000000000008 0000000000000000 A 0 0 1 -- \[ 5\] \.shstrtab STRTAB 0000000000000000 [0-9a-f]+ -- 0000000000000036 0000000000000000 . 0 0 1 -- \[ 6\] \.symtab SYMTAB 0000000000000000 [0-9a-f]+ -- 0000000000000078 0000000000000018 7 5 8 -- \[ 7\] \.strtab STRTAB 0000000000000000 [0-9a-f]+ -+ \[ 5\] \.symtab SYMTAB 0000000000000000 [0-9a-f]+ -+ 0000000000000078 0000000000000018 6 5 8 -+ \[ 6\] \.strtab STRTAB 0000000000000000 [0-9a-f]+ - 0000000000000001 0000000000000000 . 0 0 1 -+ \[ 7\] \.shstrtab STRTAB 0000000000000000 [0-9a-f]+ -+ 0000000000000036 0000000000000000 . 0 0 1 - Key to Flags: - #... -diff --git a/gas/testsuite/gas/ia64/alias-ilp32.d b/gas/testsuite/gas/ia64/alias-ilp32.d -index d882b3c..df05d36 100644 ---- a/gas/testsuite/gas/ia64/alias-ilp32.d -+++ b/gas/testsuite/gas/ia64/alias-ilp32.d -@@ -12,9 +12,9 @@ Section Headers: - +\[ 2\] .data +PROGBITS +00000000 000040 000000 00 +WA +0 +0 +1 - +\[ 3\] .bss +NOBITS +00000000 000040 000000 00 +WA +0 +0 +1 - +\[ 4\] 1234 +PROGBITS +00000000 000040 000005 00 +WA +0 +0 +1 -- +\[ 5\] .shstrtab +STRTAB +00000000 [0-9a-f]+ 000031 00 +0 +0 +1 -- +\[ 6\] .symtab +SYMTAB +00000000 [0-9a-f]+ 000060 10 +7 +6 +4 -- +\[ 7\] .strtab +STRTAB +00000000 [0-9a-f]+ 000006 00 +0 +0 +1 -+ +\[ 5\] .symtab +SYMTAB +00000000 [0-9a-f]+ 000060 10 +6 +6 +4 -+ +\[ 6\] .strtab +STRTAB +00000000 [0-9a-f]+ 000006 00 +0 +0 +1 -+ +\[ 7\] .shstrtab +STRTAB +00000000 [0-9a-f]+ 000031 00 +0 +0 +1 - Key to Flags: - #... - -diff --git a/gas/testsuite/gas/ia64/alias.d b/gas/testsuite/gas/ia64/alias.d -index 398bff4..23b9330 100644 ---- a/gas/testsuite/gas/ia64/alias.d -+++ b/gas/testsuite/gas/ia64/alias.d -@@ -16,12 +16,12 @@ Section Headers: - +0000000000000000 +0000000000000000 +WA +0 +0 +1 - +\[ 4\] 1234 +PROGBITS +0000000000000000 +00000040 - +0000000000000005 +0000000000000000 +WA +0 +0 +1 -- +\[ 5\] \.shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ -- +0000000000000031 +0000000000000000 +0 +0 +1 -- +\[ 6\] \.symtab +SYMTAB +0000000000000000 .* -- +0000000000000090 +0000000000000018 +7 +6 +8 -- +\[ 7\] \.strtab +STRTAB +0000000000000000 .* -+ +\[ 5\] \.symtab +SYMTAB +0000000000000000 .* -+ +0000000000000090 +0000000000000018 +6 +6 +8 -+ +\[ 6\] \.strtab +STRTAB +0000000000000000 .* - +0000000000000006 +0000000000000000 +0 +0 +1 -+ +\[ 7\] \.shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ -+ +0000000000000031 +0000000000000000 +0 +0 +1 - Key to Flags: - #... - -diff --git a/gas/testsuite/gas/ia64/group-1.d b/gas/testsuite/gas/ia64/group-1.d -index b4eab14..b90bd88 100644 ---- a/gas/testsuite/gas/ia64/group-1.d -+++ b/gas/testsuite/gas/ia64/group-1.d -@@ -18,12 +18,12 @@ Section Headers: - 0000000000000000 0000000000000000 WA 0 0 1 - \[ 5\] \.text PROGBITS 0000000000000000 00000050 - 0000000000000010 0000000000000000 AXG 0 0 16 -- \[ 6\] \.shstrtab STRTAB 0000000000000000 [0-9a-f]+ -- 0000000000000033 0000000000000000 0 0 1 -- \[ 7\] \.symtab SYMTAB 0000000000000000 .* -- 00000000000000c0 0000000000000018 8 8 8 -- \[ 8\] \.strtab STRTAB 0000000000000000 .* -+ \[ 6\] \.symtab SYMTAB 0000000000000000 .* -+ 00000000000000c0 0000000000000018 7 8 8 -+ \[ 7\] \.strtab STRTAB 0000000000000000 .* - 000000000000000[7c] 0000000000000000 0 0 1 -+ \[ 8\] \.shstrtab STRTAB 0000000000000000 [0-9a-f]+ -+ 0000000000000033 0000000000000000 0 0 1 - Key to Flags: - #... - -diff --git a/gas/testsuite/gas/ia64/group-2.d b/gas/testsuite/gas/ia64/group-2.d -index 7370367..cc8413f 100644 ---- a/gas/testsuite/gas/ia64/group-2.d -+++ b/gas/testsuite/gas/ia64/group-2.d -@@ -25,12 +25,12 @@ Section Headers: - 0000000000000018 0000000000000000 ALG 5 5 8 - \[ 8\] \.rela\.gnu\.linkonc RELA 0000000000000000 .* - 0000000000000048 0000000000000018 I 10 7 8 -- \[ 9\] \.shstrtab STRTAB 0000000000000000 [0-9a-f]+ -- 0000000000000081 0000000000000000 0 0 1 -- \[10\] \.symtab SYMTAB 0000000000000000 .* -- 00000000000000d8 0000000000000018 11 9 8 -- \[11\] \.strtab STRTAB 0000000000000000 .* -+ \[ 9\] \.symtab SYMTAB 0000000000000000 .* -+ 00000000000000d8 0000000000000018 10 9 8 -+ \[10\] \.strtab STRTAB 0000000000000000 .* - 0000000000000005 0000000000000000 0 0 1 -+ \[11\] \.shstrtab STRTAB 0000000000000000 [0-9a-f]+ -+ 0000000000000081 0000000000000000 0 0 1 - Key to Flags: - #... - -diff --git a/gas/testsuite/gas/ia64/secname-ilp32.d b/gas/testsuite/gas/ia64/secname-ilp32.d -index 4146307..0b8a771 100644 ---- a/gas/testsuite/gas/ia64/secname-ilp32.d -+++ b/gas/testsuite/gas/ia64/secname-ilp32.d -@@ -12,8 +12,8 @@ Section Headers: - \[ 2\] .data PROGBITS 00000000 000040 000000 00 WA 0 0 1 - \[ 3\] .bss NOBITS 00000000 000040 000000 00 WA 0 0 1 - \[ 4\] .foo PROGBITS 00000000 000040 000008 00 WA 0 0 8 -- \[ 5\] .shstrtab STRTAB 00000000 [0-9a-f]+ 000031 00 0 0 1 -- \[ 6\] .symtab SYMTAB 00000000 [0-9a-f]+ 000050 10 7 5 4 -- \[ 7\] .strtab STRTAB 00000000 [0-9a-f]+ 000001 00 0 0 1 -+ \[ 5\] .symtab SYMTAB 00000000 [0-9a-f]+ 000050 10 6 5 4 -+ \[ 6\] .strtab STRTAB 00000000 [0-9a-f]+ 000001 00 0 0 1 -+ \[ 7\] .shstrtab STRTAB 00000000 [0-9a-f]+ 000031 00 0 0 1 - Key to Flags: - #... -diff --git a/gas/testsuite/gas/ia64/secname.d b/gas/testsuite/gas/ia64/secname.d -index 79f1e33..9d02e1a 100644 ---- a/gas/testsuite/gas/ia64/secname.d -+++ b/gas/testsuite/gas/ia64/secname.d -@@ -16,11 +16,11 @@ Section Headers: - 0000000000000000 0000000000000000 WA 0 0 1 - \[ 4\] \.foo PROGBITS 0000000000000000 00000040 - 0000000000000008 0000000000000000 WA 0 0 8 -- \[ 5\] \.shstrtab STRTAB 0000000000000000 [0-9a-f]+ -- 0000000000000031 0000000000000000 0 0 1 -- \[ 6\] \.symtab SYMTAB 0000000000000000 .* -- 0000000000000078 0000000000000018 7 5 8 -- \[ 7\] \.strtab STRTAB 0000000000000000 .* -+ \[ 5\] \.symtab SYMTAB 0000000000000000 .* -+ 0000000000000078 0000000000000018 6 5 8 -+ \[ 6\] \.strtab STRTAB 0000000000000000 .* - 0000000000000001 0000000000000000 0 0 1 -+ \[ 7\] \.shstrtab STRTAB 0000000000000000 [0-9a-f]+ -+ 0000000000000031 0000000000000000 0 0 1 - Key to Flags: - #... -diff --git a/gas/testsuite/gas/ia64/unwind-ilp32.d b/gas/testsuite/gas/ia64/unwind-ilp32.d -index cd25b0d..e96f89b 100644 ---- a/gas/testsuite/gas/ia64/unwind-ilp32.d -+++ b/gas/testsuite/gas/ia64/unwind-ilp32.d -@@ -13,8 +13,8 @@ Section Headers: - \[ 3\] .bss NOBITS 00000000 000040 000000 00 WA 0 0 1 - \[ 4\] .IA_64.unwind_inf PROGBITS 00000000 000040 000008 00 A 0 0 8 - \[ 5\] .IA_64.unwind IA_64_UNWIND 00000000 000048 000008 00 AL 1 1 8 -- \[ 6\] .shstrtab STRTAB 00000000 [0-9a-f]+ 00004d 00 0 0 1 -- \[ 7\] .symtab SYMTAB 00000000 [0-9a-f]+ 000060 10 8 6 4 -- \[ 8\] .strtab STRTAB 00000000 [0-9a-f]+ 000001 00 0 0 1 -+ \[ 6\] .symtab SYMTAB 00000000 [0-9a-f]+ 000060 10 7 6 4 -+ \[ 7\] .strtab STRTAB 00000000 [0-9a-f]+ 000001 00 0 0 1 -+ \[ 8\] .shstrtab STRTAB 00000000 [0-9a-f]+ 00004d 00 0 0 1 - Key to Flags: - #... -diff --git a/gas/testsuite/gas/ia64/unwind.d b/gas/testsuite/gas/ia64/unwind.d -index ce71a7a..bdb7af8 100644 ---- a/gas/testsuite/gas/ia64/unwind.d -+++ b/gas/testsuite/gas/ia64/unwind.d -@@ -18,11 +18,11 @@ Section Headers: - 0000000000000008 0000000000000000 A 0 0 8 - \[ 5\] \.IA_64\.unwind IA_64_UNWIND 0000000000000000 00000048 - 0000000000000008 0000000000000000 AL 1 1 8 -- \[ 6\] \.shstrtab STRTAB 0000000000000000 [0-9a-f]+ -- 000000000000004d 0000000000000000 0 0 1 -- \[ 7\] \.symtab SYMTAB 0000000000000000 .* -- 0000000000000090 0000000000000018 8 6 8 -- \[ 8\] \.strtab STRTAB 0000000000000000 .* -+ \[ 6\] \.symtab SYMTAB 0000000000000000 .* -+ 0000000000000090 0000000000000018 7 6 8 -+ \[ 7\] \.strtab STRTAB 0000000000000000 .* - 0000000000000001 0000000000000000 0 0 1 -+ \[ 8\] \.shstrtab STRTAB 0000000000000000 [0-9a-f]+ -+ 000000000000004d 0000000000000000 0 0 1 - Key to Flags: - #... -diff --git a/gas/testsuite/gas/ia64/xdata-ilp32.d b/gas/testsuite/gas/ia64/xdata-ilp32.d -index 8c0bb30..e5dd507 100644 ---- a/gas/testsuite/gas/ia64/xdata-ilp32.d -+++ b/gas/testsuite/gas/ia64/xdata-ilp32.d -@@ -23,7 +23,7 @@ Section Headers: - \[13\] \.xreal\[4\] PROGBITS 00000000 [[:xdigit:]]+ 000020 00 A 0 0 16 - \[14\] \.xstr<1> PROGBITS 00000000 [[:xdigit:]]+ 000003 00 A 0 0 1 - \[15\] \.xstr\{2\} PROGBITS 00000000 [[:xdigit:]]+ 000004 00 A 0 0 1 -- \[16\] .shstrtab STRTAB 00000000 [[:xdigit:]]+ [[:xdigit:]]+ 00 0 0 1 -- \[17\] .symtab SYMTAB 00000000 [[:xdigit:]]+ [[:xdigit:]]+ 10 18 15 4 -- \[18\] .strtab STRTAB 00000000 [[:xdigit:]]+ [[:xdigit:]]+ 00 0 0 1 -+ \[16\] .symtab SYMTAB 00000000 [[:xdigit:]]+ [[:xdigit:]]+ 10 17 15 4 -+ \[17\] .strtab STRTAB 00000000 [[:xdigit:]]+ [[:xdigit:]]+ 00 0 0 1 -+ \[18\] .shstrtab STRTAB 00000000 [[:xdigit:]]+ [[:xdigit:]]+ 00 0 0 1 - #pass -diff --git a/gas/testsuite/gas/ia64/xdata.d b/gas/testsuite/gas/ia64/xdata.d -index dc23b78..eb12819 100644 ---- a/gas/testsuite/gas/ia64/xdata.d -+++ b/gas/testsuite/gas/ia64/xdata.d -@@ -38,10 +38,10 @@ Section Headers: - 0000000000000003 0000000000000000 A 0 0 1 - \[15\] \.xstr\{2\} PROGBITS 0000000000000000 [[:xdigit:]]+ - 0000000000000004 0000000000000000 A 0 0 1 -- \[16\] \.shstrtab STRTAB 0000000000000000 [[:xdigit:]]+ -+ \[16\] \.symtab SYMTAB 0000000000000000 [[:xdigit:]]+ -+ [[:xdigit:]]+ 0000000000000018 17 15 8 -+ \[17\] \.strtab STRTAB 0000000000000000 [[:xdigit:]]+ - [[:xdigit:]]+ 0000000000000000 0 0 1 -- \[17\] \.symtab SYMTAB 0000000000000000 [[:xdigit:]]+ -- [[:xdigit:]]+ 0000000000000018 18 15 8 -- \[18\] \.strtab STRTAB 0000000000000000 [[:xdigit:]]+ -+ \[18\] \.shstrtab STRTAB 0000000000000000 [[:xdigit:]]+ - [[:xdigit:]]+ 0000000000000000 0 0 1 - #pass -diff --git a/gas/testsuite/gas/mmix/bspec-1.d b/gas/testsuite/gas/mmix/bspec-1.d -index a18d242..4bbda8d 100644 ---- a/gas/testsuite/gas/mmix/bspec-1.d -+++ b/gas/testsuite/gas/mmix/bspec-1.d -@@ -4,7 +4,7 @@ There are 9 section headers, starting at offset .*: - +\[ 4\] \.MMIX\.spec_data\.2 +PROGBITS +0+ +0+44 - +0+4 +0+ +0 +0 +4 - +\[ 5\] \.rela\.MMIX\.spec_d +RELA +0+ +.* -- +0+18 +0+18 +I +7 +4 +8 -+ +0+18 +0+18 +I +6 +4 +8 - #... - Relocation section '\.rela\.MMIX\.spec_data\.2' at offset 0x[0-9a-f]+ contains 1 entries: - .* -diff --git a/gas/testsuite/gas/mmix/bspec-2.d b/gas/testsuite/gas/mmix/bspec-2.d -index a9ce03d..ab3afd3 100644 ---- a/gas/testsuite/gas/mmix/bspec-2.d -+++ b/gas/testsuite/gas/mmix/bspec-2.d -@@ -4,11 +4,11 @@ There are 11 section headers, starting at offset .*: - \[ 4\] \.MMIX\.spec_data\.2 PROGBITS 0+ 0+48 - 0+10 0+ 0 0 8 - \[ 5\] \.rela\.MMIX\.spec_d RELA 0+ .* -- +0+30 0+18 +I +9 +4 +8 -+ +0+30 0+18 +I +8 +4 +8 - \[ 6\] \.MMIX\.spec_data\.3 PROGBITS 0+ 0+58 - 0+8 0+ 0 0 8 - \[ 7\] \.rela\.MMIX\.spec_d RELA 0+ .* -- +0+18 +0+18 +I +9 +6 +8 -+ +0+18 +0+18 +I +8 +6 +8 - #... - Relocation section '\.rela\.MMIX\.spec_data\.2' at offset .* contains 2 entries: - .* -diff --git a/gas/testsuite/gas/mmix/byte-1.d b/gas/testsuite/gas/mmix/byte-1.d -index b6c2768..a77eb08 100644 ---- a/gas/testsuite/gas/mmix/byte-1.d -+++ b/gas/testsuite/gas/mmix/byte-1.d -@@ -12,12 +12,12 @@ Section Headers: - +0000000000000000 +0000000000000000 +WA +0 +0 +1 - +\[ 3\] \.bss +NOBITS +0000000000000000 +00000056 - +0000000000000000 +0000000000000000 +WA +0 +0 +1 -- +\[ 4\] \.shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ -- +000000000000002c +0000000000000000 +0 +0 +1 -- +\[ 5\] \.symtab +SYMTAB +0000000000000000 .* -- +00000000000000c0 +0000000000000018 +6 +7 +8 -- +\[ 6\] \.strtab +STRTAB +0000000000000000 .* -+ +\[ 4\] \.symtab +SYMTAB +0000000000000000 .* -+ +00000000000000c0 +0000000000000018 +5 +7 +8 -+ +\[ 5\] \.strtab +STRTAB +0000000000000000 .* - +0000000000000018 +0000000000000000 +0 +0 +1 -+ +\[ 6\] \.shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ -+ +000000000000002c +0000000000000000 +0 +0 +1 - Key to Flags: - #... - -diff --git a/gas/testsuite/gas/mmix/loc-1.d b/gas/testsuite/gas/mmix/loc-1.d -index e45b1d5..e46247d 100644 ---- a/gas/testsuite/gas/mmix/loc-1.d -+++ b/gas/testsuite/gas/mmix/loc-1.d -@@ -13,12 +13,12 @@ Section Headers: - +0000000000000004 +0000000000000000 +WA +0 +0 +4 - +\[ 3\] \.bss +NOBITS +0000000000000000 +00000064 - +0000000000000000 +0000000000000000 +WA +0 +0 +1 -- +\[ 4\] \.shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ -- +000000000000002c +0000000000000000 +0 +0 +1 -- +\[ 5\] \.symtab +SYMTAB +0000000000000000 .* -- +00000000000000c0 +0000000000000018 +6 +6 +8 -- +\[ 6\] \.strtab +STRTAB +0000000000000000 .* -+ +\[ 4\] \.symtab +SYMTAB +0000000000000000 .* -+ +00000000000000c0 +0000000000000018 +5 +6 +8 -+ +\[ 5\] \.strtab +STRTAB +0000000000000000 .* - +000000000000002a +0000000000000000 +0 +0 +1 -+ +\[ 6\] \.shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ -+ +000000000000002c +0000000000000000 +0 +0 +1 - Key to Flags: - #... - -diff --git a/gas/testsuite/gas/mmix/loc-2.d b/gas/testsuite/gas/mmix/loc-2.d -index b92cabb..8d7ec8b 100644 ---- a/gas/testsuite/gas/mmix/loc-2.d -+++ b/gas/testsuite/gas/mmix/loc-2.d -@@ -13,12 +13,12 @@ Section Headers: - +0000000000000000 +0000000000000000 +WA +0 +0 +1 - +\[ 3\] \.bss +NOBITS +0000000000000000 +00000048 - +0000000000000000 +0000000000000000 +WA +0 +0 +1 -- +\[ 4\] \.shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ -- +000000000000002c +0000000000000000 +0 +0 +1 -- +\[ 5\] \.symtab +SYMTAB +0000000000000000 .* -- +0000000000000090 +0000000000000018 +6 +4 +8 -- +\[ 6\] \.strtab +STRTAB +0000000000000000 .* -+ +\[ 4\] \.symtab +SYMTAB +0000000000000000 .* -+ +0000000000000090 +0000000000000018 +5 +4 +8 -+ +\[ 5\] \.strtab +STRTAB +0000000000000000 .* - +000000000000001a +0000000000000000 +0 +0 +1 -+ +\[ 6\] \.shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ -+ +000000000000002c +0000000000000000 +0 +0 +1 - Key to Flags: - #... - -diff --git a/gas/testsuite/gas/mmix/loc-3.d b/gas/testsuite/gas/mmix/loc-3.d -index 2c477db..14a68fa 100644 ---- a/gas/testsuite/gas/mmix/loc-3.d -+++ b/gas/testsuite/gas/mmix/loc-3.d -@@ -12,12 +12,12 @@ Section Headers: - +0000000000000008 +0000000000000000 +WA +0 +0 +4 - +\[ 3\] \.bss +NOBITS +0000000000000000 +00000054 - +0000000000000000 +0000000000000000 +WA +0 +0 +1 -- +\[ 4\] \.shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ -- +000000000000002c +0000000000000000 +0 +0 +1 -- +\[ 5\] \.symtab +SYMTAB +0000000000000000 .* -- +00000000000000c0 +0000000000000018 +6 +5 +8 -- +\[ 6\] \.strtab +STRTAB +0000000000000000 .* -+ +\[ 4\] \.symtab +SYMTAB +0000000000000000 .* -+ +00000000000000c0 +0000000000000018 +5 +5 +8 -+ +\[ 5\] \.strtab +STRTAB +0000000000000000 .* - +000000000000002e +0000000000000000 +0 +0 +1 -+ +\[ 6\] \.shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ -+ +000000000000002c +0000000000000000 +0 +0 +1 - Key to Flags: - #... - -diff --git a/gas/testsuite/gas/mmix/loc-4.d b/gas/testsuite/gas/mmix/loc-4.d -index 1efc084..935cc18 100644 ---- a/gas/testsuite/gas/mmix/loc-4.d -+++ b/gas/testsuite/gas/mmix/loc-4.d -@@ -12,12 +12,12 @@ Section Headers: - +0000000000000004 +0000000000000000 +WA +0 +0 +4 - +\[ 3\] \.bss +NOBITS +0000000000000000 +0000005c - +0000000000000000 +0000000000000000 +WA +0 +0 +1 -- +\[ 4\] \.shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ -- +000000000000002c +0000000000000000 +0 +0 +1 -- +\[ 5\] \.symtab +SYMTAB +0000000000000000 .* -- +00000000000000c0 +0000000000000018 +6 +5 +8 -- +\[ 6\] \.strtab +STRTAB +0000000000000000 .* -+ +\[ 4\] \.symtab +SYMTAB +0000000000000000 .* -+ +00000000000000c0 +0000000000000018 +5 +5 +8 -+ +\[ 5\] \.strtab +STRTAB +0000000000000000 .* - +000000000000003b +0000000000000000 +0 +0 +1 -+ +\[ 6\] \.shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ -+ +000000000000002c +0000000000000000 +0 +0 +1 - Key to Flags: - #... - -diff --git a/gas/testsuite/gas/mmix/loc-5.d b/gas/testsuite/gas/mmix/loc-5.d -index fa80a86..a8e7545 100644 ---- a/gas/testsuite/gas/mmix/loc-5.d -+++ b/gas/testsuite/gas/mmix/loc-5.d -@@ -12,12 +12,12 @@ Section Headers: - +0+24 +0+ +WA +0 +0 +4 - +\[ 3\] \.bss +NOBITS +0+ +0+6c - +0+ +0+ +WA +0 +0 +1 -- +\[ 4\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ -- +0+2c +0+ +0 +0 +1 -- +\[ 5\] \.symtab +SYMTAB +0+ .* -- +0+c0 +0+18 +6 +6 +8 -- +\[ 6\] \.strtab +STRTAB +0+ .* -+ +\[ 4\] \.symtab +SYMTAB +0+ .* -+ +0+c0 +0+18 +5 +6 +8 -+ +\[ 5\] \.strtab +STRTAB +0+ .* - +0+27 +0+ +0 +0 +1 -+ +\[ 6\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ -+ +0+2c +0+ +0 +0 +1 - Key to Flags: - #... - -diff --git a/gas/testsuite/gas/tic6x/scomm-directive-4.d b/gas/testsuite/gas/tic6x/scomm-directive-4.d -index 7822e8f..219673d 100644 ---- a/gas/testsuite/gas/tic6x/scomm-directive-4.d -+++ b/gas/testsuite/gas/tic6x/scomm-directive-4.d -@@ -12,9 +12,9 @@ Section Headers: - \[ 2\] \.data PROGBITS 00000000 000034 000000 00 WA 0 0 1 - \[ 3\] \.bss NOBITS 00000000 000034 000000 00 WA 0 0 1 - \[ 4\] \.c6xabi\.attribute C6000_ATTRIBUTE 00000000 000034 000013 00 0 0 1 -- \[ 5\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 00003f 00 0 0 1 -- \[ 6\] \.symtab SYMTAB 00000000 [0-9a-f]+ 0000d0 10 7 5 4 -- \[ 7\] \.strtab STRTAB 00000000 [0-9a-f]+ 00001d 00 0 0 1 -+ \[ 5\] \.symtab SYMTAB 00000000 [0-9a-f]+ 0000d0 10 6 5 4 -+ \[ 6\] \.strtab STRTAB 00000000 [0-9a-f]+ 00001d 00 0 0 1 -+ \[ 7\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 00003f 00 0 0 1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-alpha/tlsbin.rd b/ld/testsuite/ld-alpha/tlsbin.rd -index 2184e5e..21fb11a 100644 ---- a/ld/testsuite/ld-alpha/tlsbin.rd -+++ b/ld/testsuite/ld-alpha/tlsbin.rd -@@ -24,9 +24,9 @@ Section Headers: - +\[[ 0-9]+\] .tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 00 WAT +0 +0 +1 - +\[[ 0-9]+\] .dynamic +DYNAMIC +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 10 +WA +4 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 00 +WA +0 +0 +8 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - #... - - Elf file type is EXEC \(Executable file\) -diff --git a/ld/testsuite/ld-alpha/tlsbinr.rd b/ld/testsuite/ld-alpha/tlsbinr.rd -index 0329ba9..8b7b76a 100644 ---- a/ld/testsuite/ld-alpha/tlsbinr.rd -+++ b/ld/testsuite/ld-alpha/tlsbinr.rd -@@ -24,9 +24,9 @@ Section Headers: - +\[[ 0-9]+\] \.tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 0+ WAT +0 +0 +1 - +\[[ 0-9]+\] \.dynamic +DYNAMIC +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 10 +WA +4 +0 +8 - +\[[ 0-9]+\] \.got +PROGBITS +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 0+ +WA +0 +0 +8 -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - #... - - Elf file type is EXEC \(Executable file\) -diff --git a/ld/testsuite/ld-alpha/tlspic.rd b/ld/testsuite/ld-alpha/tlspic.rd -index 7a97847..f1fb974 100644 ---- a/ld/testsuite/ld-alpha/tlspic.rd -+++ b/ld/testsuite/ld-alpha/tlspic.rd -@@ -23,9 +23,9 @@ Section Headers: - +\[[ 0-9]+\] .tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 0+ WAT +0 +0 +1 - +\[[ 0-9]+\] .dynamic +DYNAMIC +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 10 +WA +3 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 0+ +WA +0 +0 +8 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - #... - - Elf file type is DYN \(Shared object file\) -diff --git a/ld/testsuite/ld-cris/libdso-2.d b/ld/testsuite/ld-cris/libdso-2.d -index 3b4777a..aa4a7c8 100644 ---- a/ld/testsuite/ld-cris/libdso-2.d -+++ b/ld/testsuite/ld-cris/libdso-2.d -@@ -21,9 +21,9 @@ There are 13 section headers.* - +\[ 7\] \.text +PROGBITS .* - +\[ 8\] \.dynamic +DYNAMIC +.* - +\[ 9\] \.got +PROGBITS .* -- +\[10\] \.shstrtab +STRTAB +.* -- +\[11\] \.symtab +SYMTAB +.* -- +\[12\] \.strtab +STRTAB +.* -+ +\[10\] \.symtab +SYMTAB +.* -+ +\[11\] \.strtab +STRTAB +.* -+ +\[12\] \.shstrtab +STRTAB +.* - #... - Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 1 entries: - #... -diff --git a/ld/testsuite/ld-i386/nogot1.d b/ld/testsuite/ld-i386/nogot1.d -index a6c8832..018c24d 100644 ---- a/ld/testsuite/ld-i386/nogot1.d -+++ b/ld/testsuite/ld-i386/nogot1.d -@@ -4,5 +4,6 @@ - - #... - [ ]*\[.*\][ ]+\.dynamic[ ]+DYNAMIC.* -+#... - [ ]*\[.*\][ ]+.*STRTAB.* - #pass -diff --git a/ld/testsuite/ld-i386/pr12718.d b/ld/testsuite/ld-i386/pr12718.d -index 87905c3..ec51540 100644 ---- a/ld/testsuite/ld-i386/pr12718.d -+++ b/ld/testsuite/ld-i386/pr12718.d -@@ -9,8 +9,8 @@ Section Headers: - +\[Nr\] Name +Type +Addr +Off +Size +ES +Flg +Lk +Inf +Al - +\[ 0\] +NULL +0+ +0+ +0+ +0+ +0 +0 +0 - +\[ 1\] +.text +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +000006 00 +AX +0 +0 +1 -- +\[ 2\] +.shstrtab +STRTAB +0+ +[0-9a-f]+ +[0-9a-f]+ +0+ +0 +0 +1 -- +\[ 3\] +.symtab +SYMTAB +0+ +[0-9a-f]+ +[0-9a-f]+ 10 +4 +[0-9] +4 -- +\[ 4\] +.strtab +STRTAB +0+ +[0-9a-f]+ +[0-9a-f]+ 00 +0 +0 +1 -+ +\[ 2\] +.symtab +SYMTAB +0+ +[0-9a-f]+ +[0-9a-f]+ 10 +3 +[0-9] +4 -+ +\[ 3\] +.strtab +STRTAB +0+ +[0-9a-f]+ +[0-9a-f]+ 00 +0 +0 +1 -+ +\[ 4\] +.shstrtab +STRTAB +0+ +[0-9a-f]+ +[0-9a-f]+ +0+ +0 +0 +1 - Key to Flags: - #pass -diff --git a/ld/testsuite/ld-i386/pr12921.d b/ld/testsuite/ld-i386/pr12921.d -index c72b04c..e49079b 100644 ---- a/ld/testsuite/ld-i386/pr12921.d -+++ b/ld/testsuite/ld-i386/pr12921.d -@@ -11,8 +11,8 @@ Section Headers: - +\[ 1\] .text +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+1 00 +AX +0 +0 +4096 - +\[ 2\] .data +PROGBITS +[0-9a-f]+ +[0-9a-f]+000 +0+20 +00 +WA +0 +0 +4096 - +\[ 3\] .bss +NOBITS +[0-9a-f]+ +[0-9a-f]+020 +0+10000 +00 +WA +0 +0 +4096 -- +\[ 4\] .shstrtab +STRTAB +0+ +[0-9a-f]+ +0+2c +00 +0 +0 +1 -- +\[ 5\] .symtab +SYMTAB +0+ +[0-9a-f]+ +[0-9a-f]+ +10 +6 +[0-9] +4 -- +\[ 6\] .strtab +STRTAB +0+ +[0-9a-f]+ +[0-9a-f]+ +00 +0 +0 +1 -+ +\[ 4\] .symtab +SYMTAB +0+ +[0-9a-f]+ +[0-9a-f]+ +10 +5 +[0-9] +4 -+ +\[ 5\] .strtab +STRTAB +0+ +[0-9a-f]+ +[0-9a-f]+ +00 +0 +0 +1 -+ +\[ 6\] .shstrtab +STRTAB +0+ +[0-9a-f]+ +0+2c +00 +0 +0 +1 - Key to Flags: - #pass -diff --git a/ld/testsuite/ld-i386/tlsbin-nacl.rd b/ld/testsuite/ld-i386/tlsbin-nacl.rd -index 1e1cf7c..89a0673 100644 ---- a/ld/testsuite/ld-i386/tlsbin-nacl.rd -+++ b/ld/testsuite/ld-i386/tlsbin-nacl.rd -@@ -23,9 +23,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +DYNAMIC +0*10031060 .* - +\[[ 0-9]+\] \.got +PROGBITS +0*10031100 .* - +\[[ 0-9]+\] \.got\.plt +PROGBITS +0*10031124 .* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-i386/tlsbin.rd b/ld/testsuite/ld-i386/tlsbin.rd -index 12b3e81..23fffd1 100644 ---- a/ld/testsuite/ld-i386/tlsbin.rd -+++ b/ld/testsuite/ld-i386/tlsbin.rd -@@ -23,9 +23,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +DYNAMIC +0+804a060 .* - +\[[ 0-9]+\] \.got +PROGBITS +0+804a100 .* - +\[[ 0-9]+\] \.got\.plt +PROGBITS +0+804a124 .* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-i386/tlsbin2-nacl.rd b/ld/testsuite/ld-i386/tlsbin2-nacl.rd -index b23bfe0..0011716 100644 ---- a/ld/testsuite/ld-i386/tlsbin2-nacl.rd -+++ b/ld/testsuite/ld-i386/tlsbin2-nacl.rd -@@ -21,9 +21,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +DYNAMIC +0*10031060 .* - +\[[ 0-9]+\] \.got +PROGBITS +0*100310e0 .* - +\[[ 0-9]+\] \.got\.plt +PROGBITS +0*10031108 .* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-i386/tlsbin2.rd b/ld/testsuite/ld-i386/tlsbin2.rd -index 05d4ddb..e34d167 100644 ---- a/ld/testsuite/ld-i386/tlsbin2.rd -+++ b/ld/testsuite/ld-i386/tlsbin2.rd -@@ -21,9 +21,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +DYNAMIC +0+804a060 .* - +\[[ 0-9]+\] \.got +PROGBITS +0+804a0e0 .* - +\[[ 0-9]+\] \.got\.plt +PROGBITS +0+804a108 .* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-i386/tlsbindesc-nacl.rd b/ld/testsuite/ld-i386/tlsbindesc-nacl.rd -index 51cffc0..39c60a5 100644 ---- a/ld/testsuite/ld-i386/tlsbindesc-nacl.rd -+++ b/ld/testsuite/ld-i386/tlsbindesc-nacl.rd -@@ -21,9 +21,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +DYNAMIC +0*10031060 .* - +\[[ 0-9]+\] \.got +PROGBITS +0*100310e0 .* - +\[[ 0-9]+\] \.got\.plt +PROGBITS +0*10031104 .* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-i386/tlsbindesc.rd b/ld/testsuite/ld-i386/tlsbindesc.rd -index 7f7194c..7cc85f1 100644 ---- a/ld/testsuite/ld-i386/tlsbindesc.rd -+++ b/ld/testsuite/ld-i386/tlsbindesc.rd -@@ -21,9 +21,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +DYNAMIC +0+804a060 .* - +\[[ 0-9]+\] \.got +PROGBITS +0+804a0e0 .* - +\[[ 0-9]+\] \.got\.plt +PROGBITS +0+804a104 .* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-i386/tlsdesc-nacl.rd b/ld/testsuite/ld-i386/tlsdesc-nacl.rd -index b28744f..20c8ea2 100644 ---- a/ld/testsuite/ld-i386/tlsdesc-nacl.rd -+++ b/ld/testsuite/ld-i386/tlsdesc-nacl.rd -@@ -21,9 +21,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +.* - +\[[ 0-9]+\] \.got +.* - +\[[ 0-9]+\] \.got.plt +.* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-i386/tlsdesc.rd b/ld/testsuite/ld-i386/tlsdesc.rd -index 68695ff..3486847 100644 ---- a/ld/testsuite/ld-i386/tlsdesc.rd -+++ b/ld/testsuite/ld-i386/tlsdesc.rd -@@ -21,9 +21,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +.* - +\[[ 0-9]+\] \.got +.* - +\[[ 0-9]+\] \.got.plt +.* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-i386/tlsgdesc-nacl.rd b/ld/testsuite/ld-i386/tlsgdesc-nacl.rd -index ba5fa62..407bf2c 100644 ---- a/ld/testsuite/ld-i386/tlsgdesc-nacl.rd -+++ b/ld/testsuite/ld-i386/tlsgdesc-nacl.rd -@@ -19,9 +19,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +.* - +\[[ 0-9]+\] \.got +.* - +\[[ 0-9]+\] \.got.plt +.* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-i386/tlsgdesc.rd b/ld/testsuite/ld-i386/tlsgdesc.rd -index 929ffa2..269cede 100644 ---- a/ld/testsuite/ld-i386/tlsgdesc.rd -+++ b/ld/testsuite/ld-i386/tlsgdesc.rd -@@ -19,9 +19,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +.* - +\[[ 0-9]+\] \.got +.* - +\[[ 0-9]+\] \.got.plt +.* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-i386/tlsnopic-nacl.rd b/ld/testsuite/ld-i386/tlsnopic-nacl.rd -index b14164a..15e7eea 100644 ---- a/ld/testsuite/ld-i386/tlsnopic-nacl.rd -+++ b/ld/testsuite/ld-i386/tlsnopic-nacl.rd -@@ -19,9 +19,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +DYNAMIC +0*10010284 .* - +\[[ 0-9]+\] \.got +PROGBITS +0*10010304 .* - +\[[ 0-9]+\] \.got.plt +PROGBITS +0*1001031c .* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-i386/tlsnopic.rd b/ld/testsuite/ld-i386/tlsnopic.rd -index b754158..b60fb1d 100644 ---- a/ld/testsuite/ld-i386/tlsnopic.rd -+++ b/ld/testsuite/ld-i386/tlsnopic.rd -@@ -19,9 +19,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +DYNAMIC +0+20f4 .* - +\[[ 0-9]+\] \.got +PROGBITS +0+2174 .* - +\[[ 0-9]+\] \.got.plt +PROGBITS +0+218c .* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-i386/tlspic-nacl.rd b/ld/testsuite/ld-i386/tlspic-nacl.rd -index b7d3e35..9645e35 100644 ---- a/ld/testsuite/ld-i386/tlspic-nacl.rd -+++ b/ld/testsuite/ld-i386/tlspic-nacl.rd -@@ -22,9 +22,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +.* - +\[[ 0-9]+\] \.got +.* - +\[[ 0-9]+\] \.got.plt +.* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-i386/tlspic.rd b/ld/testsuite/ld-i386/tlspic.rd -index f693760..6b915e5 100644 ---- a/ld/testsuite/ld-i386/tlspic.rd -+++ b/ld/testsuite/ld-i386/tlspic.rd -@@ -22,9 +22,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +.* - +\[[ 0-9]+\] \.got +.* - +\[[ 0-9]+\] \.got.plt +.* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-i386/tlspic2-nacl.rd b/ld/testsuite/ld-i386/tlspic2-nacl.rd -index 560e840..5fb6ba6 100644 ---- a/ld/testsuite/ld-i386/tlspic2-nacl.rd -+++ b/ld/testsuite/ld-i386/tlspic2-nacl.rd -@@ -20,9 +20,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +.* - +\[[ 0-9]+\] \.got +.* - +\[[ 0-9]+\] \.got.plt +.* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-i386/tlspic2.rd b/ld/testsuite/ld-i386/tlspic2.rd -index a135547..ab00063 100644 ---- a/ld/testsuite/ld-i386/tlspic2.rd -+++ b/ld/testsuite/ld-i386/tlspic2.rd -@@ -20,9 +20,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +.* - +\[[ 0-9]+\] \.got +.* - +\[[ 0-9]+\] \.got.plt +.* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-ia64/tlsbin.rd b/ld/testsuite/ld-ia64/tlsbin.rd -index ab2dacd..08c6a59 100644 ---- a/ld/testsuite/ld-ia64/tlsbin.rd -+++ b/ld/testsuite/ld-ia64/tlsbin.rd -@@ -25,9 +25,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +60+1[0-9a-f]+ 0+1[0-9a-f]+ 0+150 10 +WA +4 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +60+1318 0+1318 0+48 00 WAp +0 +0 +8 - +\[[ 0-9]+\] .IA_64.pltoff +.* -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - #... - - Elf file type is EXEC \(Executable file\) -diff --git a/ld/testsuite/ld-ia64/tlspic.rd b/ld/testsuite/ld-ia64/tlspic.rd -index 9666f86..cfcf8ed 100644 ---- a/ld/testsuite/ld-ia64/tlspic.rd -+++ b/ld/testsuite/ld-ia64/tlspic.rd -@@ -24,9 +24,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+11[0-9a-f]+ 0+1[0-9a-f]+ 0+140 10 +WA +3 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+112d8 0+12d8 0+50 00 WAp +0 +0 +8 - +\[[ 0-9]+\] .IA_64.pltoff +.* -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-10.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-10.d -index e3a1c9c..8827e41 100644 ---- a/ld/testsuite/ld-mips-elf/attr-gnu-4-10.d -+++ b/ld/testsuite/ld-mips-elf/attr-gnu-4-10.d -@@ -22,7 +22,7 @@ ELF Header: - Number of program headers: 0 - Size of section headers: 40 \(bytes\) - Number of section headers: 11 -- Section header string table index: 8 -+ Section header string table index: 10 - - Attribute Section: gnu - File Attributes -diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-50.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-50.d -index 5dc46d3..1fcab63 100644 ---- a/ld/testsuite/ld-mips-elf/attr-gnu-4-50.d -+++ b/ld/testsuite/ld-mips-elf/attr-gnu-4-50.d -@@ -22,7 +22,7 @@ ELF Header: - Number of program headers: 0 - Size of section headers: 40 \(bytes\) - Number of section headers: 11 -- Section header string table index: 8 -+ Section header string table index: 10 - Attribute Section: gnu - File Attributes - Tag_GNU_MIPS_ABI_FP: Hard float \(32-bit CPU, Any FPU\) -diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-60.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-60.d -index ea80c18..48a9839 100644 ---- a/ld/testsuite/ld-mips-elf/attr-gnu-4-60.d -+++ b/ld/testsuite/ld-mips-elf/attr-gnu-4-60.d -@@ -22,7 +22,7 @@ ELF Header: - Number of program headers: 0 - Size of section headers: 40 \(bytes\) - Number of section headers: 11 -- Section header string table index: 8 -+ Section header string table index: 10 - Attribute Section: gnu - File Attributes - Tag_GNU_MIPS_ABI_FP: Hard float \(32-bit CPU, 64-bit FPU\) -diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-70.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-70.d -index edbd61f..ca17421 100644 ---- a/ld/testsuite/ld-mips-elf/attr-gnu-4-70.d -+++ b/ld/testsuite/ld-mips-elf/attr-gnu-4-70.d -@@ -22,7 +22,7 @@ ELF Header: - Number of program headers: 0 - Size of section headers: 40 \(bytes\) - Number of section headers: 11 -- Section header string table index: 8 -+ Section header string table index: 10 - Attribute Section: gnu - File Attributes - Tag_GNU_MIPS_ABI_FP: Hard float compat \(32-bit CPU, 64-bit FPU\) -diff --git a/ld/testsuite/ld-mmix/bspec1.d b/ld/testsuite/ld-mmix/bspec1.d -index 6440bbe..3d07d2d 100644 ---- a/ld/testsuite/ld-mmix/bspec1.d -+++ b/ld/testsuite/ld-mmix/bspec1.d -@@ -14,12 +14,12 @@ Section Headers: - +0+4 +0+ +AX +0 +0 +4 - +\[ 2\] \.MMIX\.spec_data\.2 PROGBITS +0+ +0+7c - +0+4 +0+ +0 +0 +4 -- +\[ 3\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ -- +0+33 +0+ +0 +0 +1 -- +\[ 4\] \.symtab +SYMTAB +0+ .* -- +0+d8 +0+18 +5 +3 +8 -- +\[ 5\] \.strtab +STRTAB +0+ .* -+ +\[ 3\] \.symtab +SYMTAB +0+ .* -+ +0+d8 +0+18 +4 +3 +8 -+ +\[ 4\] \.strtab +STRTAB +0+ .* - +0+26 +0+ +0 +0 +1 -+ +\[ 5\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ -+ +0+33 +0+ +0 +0 +1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-mmix/bspec2.d b/ld/testsuite/ld-mmix/bspec2.d -index e881b08..b18fe47 100644 ---- a/ld/testsuite/ld-mmix/bspec2.d -+++ b/ld/testsuite/ld-mmix/bspec2.d -@@ -19,12 +19,12 @@ Section Headers: - +0+8 +0+ +0 +0 +4 - +\[ 3\] \.MMIX\.spec_data\.3 PROGBITS +0+ +0+84 - +0+4 +0+ +0 +0 +4 -- +\[ 4\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ -- +0+45 +0+ +0 +0 +1 -- +\[ 5\] \.symtab +SYMTAB +0+ .* -- +0+108 +0+18 +6 +4 +8 -- +\[ 6\] \.strtab +STRTAB +0+ .* -+ +\[ 4\] \.symtab +SYMTAB +0+ .* -+ +0+108 +0+18 +5 +4 +8 -+ +\[ 5\] \.strtab +STRTAB +0+ .* - +0+2b +0+ +0 +0 +1 -+ +\[ 6\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ -+ +0+45 +0+ +0 +0 +1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-mmix/local1.d b/ld/testsuite/ld-mmix/local1.d -index 478d17b..41a67c2 100644 ---- a/ld/testsuite/ld-mmix/local1.d -+++ b/ld/testsuite/ld-mmix/local1.d -@@ -21,12 +21,12 @@ Section Headers: - +0+8 +0+ +AX +0 +0 +4 - +\[ 2\] \.MMIX\.reg_content PROGBITS +0+7e8 +0+80 - +0+10 +0+ +W +0 +0 +1 -- +\[ 3\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ -- +0+34 +0+ +0 +0 +1 -- +\[ 4\] \.symtab +SYMTAB +0+ +[0-9a-f]+ -- +[0-9a-f]+ +0+18 +5 +[0-9] +8 -- +\[ 5\] \.strtab +STRTAB +0+ +[0-9a-f]+ -+ +\[ 3\] \.symtab +SYMTAB +0+ +[0-9a-f]+ -+ +[0-9a-f]+ +0+18 +4 +[0-9] +8 -+ +\[ 4\] \.strtab +STRTAB +0+ +[0-9a-f]+ - +[0-9a-f]+ +0+ +0 +0 +1 -+ +\[ 5\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ -+ +0+34 +0+ +0 +0 +1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-mmix/local3.d b/ld/testsuite/ld-mmix/local3.d -index 9b9001a..74840d3 100644 ---- a/ld/testsuite/ld-mmix/local3.d -+++ b/ld/testsuite/ld-mmix/local3.d -@@ -19,12 +19,12 @@ Section Headers: - +0+8 +0+ +AX +0 +0 +4 - +\[ 2\] \.MMIX\.reg_content PROGBITS +0+7e8 +0+80 - +0+10 +0+ +W +0 +0 +1 -- +\[ 3\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ -- +0+34 +0+ +0 +0 +1 -- +\[ 4\] \.symtab +SYMTAB +0+ +[0-9a-f]+ -- +[0-9a-f]+ +0+18 +5 +[0-9] +8 -- +\[ 5\] \.strtab +STRTAB +0+ +[0-9a-f]+ -+ +\[ 3\] \.symtab +SYMTAB +0+ +[0-9a-f]+ -+ +[0-9a-f]+ +0+18 +4 +[0-9] +8 -+ +\[ 4\] \.strtab +STRTAB +0+ +[0-9a-f]+ - +[0-9a-f]+ +0+ +0 +0 +1 -+ +\[ 5\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ -+ +0+34 +0+ +0 +0 +1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-mmix/local5.d b/ld/testsuite/ld-mmix/local5.d -index 93bacd3..ae81364 100644 ---- a/ld/testsuite/ld-mmix/local5.d -+++ b/ld/testsuite/ld-mmix/local5.d -@@ -20,12 +20,12 @@ Section Headers: - +0+c +0+ +AX +0 +0 +4 - +\[ 2\] \.MMIX\.reg_content PROGBITS +0+7e8 +0+84 - +0+10 +0+ +W +0 +0 +1 -- +\[ 3\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ -- +0+34 +0+ +0 +0 +1 -- +\[ 4\] \.symtab +SYMTAB +0+ +[0-9a-f]+ -- +[0-9a-f]+ +0+18 +5 +[0-9] +8 -- +\[ 5\] \.strtab +STRTAB +0+ +[0-9a-f]+ -+ +\[ 3\] \.symtab +SYMTAB +0+ +[0-9a-f]+ -+ +[0-9a-f]+ +0+18 +4 +[0-9] +8 -+ +\[ 4\] \.strtab +STRTAB +0+ +[0-9a-f]+ - +[0-9a-f]+ +0+ +0 +0 +1 -+ +\[ 5\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ -+ +0+34 +0+ +0 +0 +1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-mmix/local7.d b/ld/testsuite/ld-mmix/local7.d -index 1495bf1..6d80cc9 100644 ---- a/ld/testsuite/ld-mmix/local7.d -+++ b/ld/testsuite/ld-mmix/local7.d -@@ -21,12 +21,12 @@ Section Headers: - +0+c +0+ +AX +0 +0 +4 - +\[ 2\] \.MMIX\.reg_content PROGBITS +0+7e8 +0+84 - +0+10 +0+ +W +0 +0 +1 -- +\[ 3\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ -- +0+34 +0+ +0 +0 +1 -- +\[ 4\] \.symtab +SYMTAB +0+ +[0-9a-f]+ -- +[0-9a-f]+ +0+18 +5 +[0-9] +8 -- +\[ 5\] \.strtab +STRTAB +0+ +[0-9a-f]+ -+ +\[ 3\] \.symtab +SYMTAB +0+ +[0-9a-f]+ -+ +[0-9a-f]+ +0+18 +4 +[0-9] +8 -+ +\[ 4\] \.strtab +STRTAB +0+ +[0-9a-f]+ - +[0-9a-f]+ +0+ +0 +0 +1 -+ +\[ 5\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ -+ +0+34 +0+ +0 +0 +1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-mmix/undef-3.d b/ld/testsuite/ld-mmix/undef-3.d -index 94eeeaa..6afb52b 100644 ---- a/ld/testsuite/ld-mmix/undef-3.d -+++ b/ld/testsuite/ld-mmix/undef-3.d -@@ -11,11 +11,11 @@ Section Headers: - +0+ +0+ +0 +0 +0 - +\[ 1\] \.text +PROGBITS +0+ +0+78 - +0+4 +0+ +AX +0 +0 +4 -- +\[ 2\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ -+ +\[ 2\] \.symtab +SYMTAB +0+ .* -+ +0+a8 +0+18 +3 +2 +8 -+ +\[ 3\] \.strtab +STRTAB +0+ .* - +0+21 +0+ +0 +0 +1 -- +\[ 3\] \.symtab +SYMTAB +0+ .* -- +0+a8 +0+18 +4 +2 +8 -- +\[ 4\] \.strtab +STRTAB +0+ .* -+ +\[ 4\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ - +0+21 +0+ +0 +0 +1 - Key to Flags: - #... -diff --git a/ld/testsuite/ld-powerpc/tlsexe.r b/ld/testsuite/ld-powerpc/tlsexe.r -index db72ad7..11da4a8 100644 ---- a/ld/testsuite/ld-powerpc/tlsexe.r -+++ b/ld/testsuite/ld-powerpc/tlsexe.r -@@ -23,9 +23,9 @@ Section Headers: - +\[[ 0-9]+\] \.opd .* - +\[[ 0-9]+\] \.got +PROGBITS .* 0+30 08 +WA +0 +0 +256 - +\[[ 0-9]+\] \.plt +.* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - #... - - Elf file type is EXEC \(Executable file\) -diff --git a/ld/testsuite/ld-powerpc/tlsexe32.r b/ld/testsuite/ld-powerpc/tlsexe32.r -index a3304ec..baa3ee6 100644 ---- a/ld/testsuite/ld-powerpc/tlsexe32.r -+++ b/ld/testsuite/ld-powerpc/tlsexe32.r -@@ -22,9 +22,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +DYNAMIC +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 08 +WA +4 +0 +4 - +\[[ 0-9]+\] \.got +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000018 04 +WA +0 +0 +4 - +\[[ 0-9]+\] \.plt +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000004 00 +WA +0 +0 +4 -- +\[[ 0-9]+\] \.shstrtab +STRTAB +.* - +\[[ 0-9]+\] \.symtab +SYMTAB +.* - +\[[ 0-9]+\] \.strtab +STRTAB +.* -+ +\[[ 0-9]+\] \.shstrtab +STRTAB +.* - #... - - Elf file type is EXEC \(Executable file\) -diff --git a/ld/testsuite/ld-powerpc/tlsexetoc.r b/ld/testsuite/ld-powerpc/tlsexetoc.r -index 56716bb..5c4a490 100644 ---- a/ld/testsuite/ld-powerpc/tlsexetoc.r -+++ b/ld/testsuite/ld-powerpc/tlsexetoc.r -@@ -23,9 +23,9 @@ Section Headers: - +\[[ 0-9]+\] \.opd .* - +\[[ 0-9]+\] \.got +PROGBITS .* 0+58 08 +WA +0 +0 +256 - +\[[ 0-9]+\] \.plt +.* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - #... - - Elf file type is EXEC \(Executable file\) -diff --git a/ld/testsuite/ld-powerpc/tlsso.r b/ld/testsuite/ld-powerpc/tlsso.r -index fd3002b..4ba6173 100644 ---- a/ld/testsuite/ld-powerpc/tlsso.r -+++ b/ld/testsuite/ld-powerpc/tlsso.r -@@ -21,9 +21,9 @@ Section Headers: - +\[[ 0-9]+\] \.opd .* - +\[[ 0-9]+\] \.got .* - +\[[ 0-9]+\] \.plt .* -- +\[[ 0-9]+\] \.shstrtab .* - +\[[ 0-9]+\] \.symtab .* - +\[[ 0-9]+\] \.strtab .* -+ +\[[ 0-9]+\] \.shstrtab .* - #... - - Elf file type is DYN \(Shared object file\) -diff --git a/ld/testsuite/ld-powerpc/tlsso32.r b/ld/testsuite/ld-powerpc/tlsso32.r -index 4d12c48..bc3b7c0 100644 ---- a/ld/testsuite/ld-powerpc/tlsso32.r -+++ b/ld/testsuite/ld-powerpc/tlsso32.r -@@ -20,9 +20,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +DYNAMIC .* 08 +WA +3 +0 +4 - +\[[ 0-9]+\] \.got +PROGBITS .* 0+30 04 +WA +0 +0 +4 - +\[[ 0-9]+\] \.plt +PROGBITS .* 0+4 00 +WA +0 +0 +4 -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - #... - - Elf file type is DYN \(Shared object file\) -diff --git a/ld/testsuite/ld-powerpc/tlstocso.r b/ld/testsuite/ld-powerpc/tlstocso.r -index 765bf08..bf7cf84 100644 ---- a/ld/testsuite/ld-powerpc/tlstocso.r -+++ b/ld/testsuite/ld-powerpc/tlstocso.r -@@ -21,9 +21,9 @@ Section Headers: - +\[[ 0-9]+\] \.opd .* - +\[[ 0-9]+\] \.got .* - +\[[ 0-9]+\] \.plt .* -- +\[[ 0-9]+\] \.shstrtab .* - +\[[ 0-9]+\] \.symtab .* - +\[[ 0-9]+\] \.strtab .* -+ +\[[ 0-9]+\] \.shstrtab .* - #... - - Elf file type is DYN \(Shared object file\) -diff --git a/ld/testsuite/ld-s390/tlsbin.rd b/ld/testsuite/ld-s390/tlsbin.rd -index 32c883a..b45fc29 100644 ---- a/ld/testsuite/ld-s390/tlsbin.rd -+++ b/ld/testsuite/ld-s390/tlsbin.rd -@@ -22,9 +22,9 @@ Section Headers: - +\[[ 0-9]+\] .tbss +NOBITS .* 0+40 00 WAT +0 +0 +1 - +\[[ 0-9]+\] .dynamic +DYNAMIC .* - +\[[ 0-9]+\] .got +PROGBITS .* -- +\[[ 0-9]+\] .shstrtab .* - +\[[ 0-9]+\] .symtab .* - +\[[ 0-9]+\] .strtab .* -+ +\[[ 0-9]+\] .shstrtab .* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-s390/tlsbin_64.rd b/ld/testsuite/ld-s390/tlsbin_64.rd -index 38d5789..f7caa16 100644 ---- a/ld/testsuite/ld-s390/tlsbin_64.rd -+++ b/ld/testsuite/ld-s390/tlsbin_64.rd -@@ -22,9 +22,9 @@ Section Headers: - +\[[ 0-9]+\] .tbss +NOBITS .* 0+40 00 WAT +0 +0 +1 - +\[[ 0-9]+\] .dynamic +DYNAMIC .* - +\[[ 0-9]+\] .got +PROGBITS .* -- +\[[ 0-9]+\] .shstrtab .* - +\[[ 0-9]+\] .symtab .* - +\[[ 0-9]+\] .strtab .* -+ +\[[ 0-9]+\] .shstrtab .* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-s390/tlspic.rd b/ld/testsuite/ld-s390/tlspic.rd -index 07d29c2..5159863 100644 ---- a/ld/testsuite/ld-s390/tlspic.rd -+++ b/ld/testsuite/ld-s390/tlspic.rd -@@ -21,9 +21,9 @@ Section Headers: - +\[[ 0-9]+\] .tbss +NOBITS .* 0+20 00 WAT +0 +0 +1 - +\[[ 0-9]+\] .dynamic +DYNAMIC .* - +\[[ 0-9]+\] .got +PROGBITS .* -- +\[[ 0-9]+\] .shstrtab .* - +\[[ 0-9]+\] .symtab .* - +\[[ 0-9]+\] .strtab .* -+ +\[[ 0-9]+\] .shstrtab .* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-s390/tlspic_64.rd b/ld/testsuite/ld-s390/tlspic_64.rd -index 6197f8a..7f8dc1b 100644 ---- a/ld/testsuite/ld-s390/tlspic_64.rd -+++ b/ld/testsuite/ld-s390/tlspic_64.rd -@@ -21,9 +21,9 @@ Section Headers: - +\[[ 0-9]+\] .tbss +NOBITS .* 0+20 00 WAT +0 +0 +1 - +\[[ 0-9]+\] .dynamic +DYNAMIC .* - +\[[ 0-9]+\] .got +PROGBITS .* -- +\[[ 0-9]+\] .shstrtab .* - +\[[ 0-9]+\] .symtab .* - +\[[ 0-9]+\] .strtab .* -+ +\[[ 0-9]+\] .shstrtab .* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-sh/sh64/crange1.rd b/ld/testsuite/ld-sh/sh64/crange1.rd -index e22d502..83c1e9b 100644 ---- a/ld/testsuite/ld-sh/sh64/crange1.rd -+++ b/ld/testsuite/ld-sh/sh64/crange1.rd -@@ -7,9 +7,9 @@ Section Headers: - +\[ 2\] \.text +PROGBITS +00001004 000084 000018 00 AXp +0 +0 +4 - +\[ 3\] \.stack +PROGBITS +00080000 000100 000004 00 +WA +0 +0 +1 - +\[ 4\] \.cranges +LOUSER\+1 +00000000 000104 00001e 00 +W +0 +0 +1 -- +\[ 5\] \.shstrtab +STRTAB +.* -- +\[ 6\] \.symtab +SYMTAB +.* -- +\[ 7\] \.strtab +STRTAB +.* -+ +\[ 5\] \.symtab +SYMTAB +.* -+ +\[ 6\] \.strtab +STRTAB +.* -+ +\[ 7\] \.shstrtab +STRTAB +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-sh/sh64/crange2.rd b/ld/testsuite/ld-sh/sh64/crange2.rd -index 5074087..e7416e1 100644 ---- a/ld/testsuite/ld-sh/sh64/crange2.rd -+++ b/ld/testsuite/ld-sh/sh64/crange2.rd -@@ -7,9 +7,9 @@ Section Headers: - +\[ 2\] \.text +PROGBITS +00001004 000084 00005c 00 AXp +0 +0 +4 - +\[ 3\] \.stack +PROGBITS +00080000 000100 000004 00 +WA +0 +0 +1 - +\[ 4\] \.cranges +LOUSER\+1 +00000000 000104 000046 00 +W +0 +0 +1 -- +\[ 5\] \.shstrtab +STRTAB +.* -- +\[ 6\] \.symtab +SYMTAB +.* -- +\[ 7\] \.strtab +STRTAB +.* -+ +\[ 5\] \.symtab +SYMTAB +.* -+ +\[ 6\] \.strtab +STRTAB +.* -+ +\[ 7\] \.shstrtab +STRTAB +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-sh/sh64/crange3-cmpct.rd b/ld/testsuite/ld-sh/sh64/crange3-cmpct.rd -index d4f090e..9f5f595 100644 ---- a/ld/testsuite/ld-sh/sh64/crange3-cmpct.rd -+++ b/ld/testsuite/ld-sh/sh64/crange3-cmpct.rd -@@ -17,7 +17,7 @@ ELF Header: - +Number of program headers: +2 - +Size of section headers: +40 \(bytes\) - +Number of section headers: +8 -- +Section header string table index: 5 -+ +Section header string table index: 7 - - Section Headers: - +\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al -@@ -26,9 +26,9 @@ Section Headers: - +\[ 2\] \.text +PROGBITS +00001004 000084 0000d8 00 AXp +0 +0 +4 - +\[ 3\] \.stack +PROGBITS +00080000 000180 000004 00 +WA +0 +0 +1 - +\[ 4\] \.cranges +LOUSER\+1 +00000000 000184 00003c 00 +W +0 +0 +1 -- +\[ 5\] \.shstrtab +STRTAB +.* -- +\[ 6\] \.symtab +SYMTAB +.* -- +\[ 7\] \.strtab +STRTAB +.* -+ +\[ 5\] \.symtab +SYMTAB +.* -+ +\[ 6\] \.strtab +STRTAB +.* -+ +\[ 7\] \.shstrtab +STRTAB +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-sh/sh64/crange3-media.rd b/ld/testsuite/ld-sh/sh64/crange3-media.rd -index 5a856d4..926925c 100644 ---- a/ld/testsuite/ld-sh/sh64/crange3-media.rd -+++ b/ld/testsuite/ld-sh/sh64/crange3-media.rd -@@ -17,7 +17,7 @@ ELF Header: - +Number of program headers: +2 - +Size of section headers: +40 \(bytes\) - +Number of section headers: +8 -- +Section header string table index: 5 -+ +Section header string table index: 7 - - Section Headers: - +\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al -@@ -26,9 +26,9 @@ Section Headers: - +\[ 2\] \.text +PROGBITS +00001004 000084 0000d8 00 AXp +0 +0 +4 - +\[ 3\] \.stack +PROGBITS +00080000 000180 000004 00 +WA +0 +0 +1 - +\[ 4\] \.cranges +LOUSER\+1 +00000000 000184 00003c 00 +W +0 +0 +1 -- +\[ 5\] \.shstrtab +STRTAB +.* -- +\[ 6\] \.symtab +SYMTAB +.* -- +\[ 7\] \.strtab +STRTAB +.* -+ +\[ 5\] \.symtab +SYMTAB +.* -+ +\[ 6\] \.strtab +STRTAB +.* -+ +\[ 7\] \.shstrtab +STRTAB +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-sh/sh64/crange3.rd b/ld/testsuite/ld-sh/sh64/crange3.rd -index b495861..8870e0b 100644 ---- a/ld/testsuite/ld-sh/sh64/crange3.rd -+++ b/ld/testsuite/ld-sh/sh64/crange3.rd -@@ -7,9 +7,9 @@ Section Headers: - +\[ 2\] \.text +PROGBITS +00001004 000084 0000d8 00 AXp +0 +0 +4 - +\[ 3\] \.stack +PROGBITS +00080000 000180 000004 00 +WA +0 +0 +1 - +\[ 4\] \.cranges +LOUSER\+1 +00000000 000184 00003c 00 +W +0 +0 +1 -- +\[ 5\] \.shstrtab +STRTAB +.* -- +\[ 6\] \.symtab +SYMTAB +.* -- +\[ 7\] \.strtab +STRTAB +.* -+ +\[ 5\] \.symtab +SYMTAB +.* -+ +\[ 6\] \.strtab +STRTAB +.* -+ +\[ 7\] \.shstrtab +STRTAB +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-sh/sh64/crangerel1.rd b/ld/testsuite/ld-sh/sh64/crangerel1.rd -index 90d71c5..3443f2a 100644 ---- a/ld/testsuite/ld-sh/sh64/crangerel1.rd -+++ b/ld/testsuite/ld-sh/sh64/crangerel1.rd -@@ -10,9 +10,9 @@ Section Headers: - +\[ 5\] \.stack +PROGBITS +00000000 00004c 000004 00 +WA +0 +0 +1 - +\[ 6\] \.cranges +PROGBITS +00000000 000050 00001e 00 +W +0 +0 +1 - +\[ 7\] \.rela\.cranges +RELA +00000000 [0-9a-f]+ 000024 0c +I +9 +6 +4 -- +\[ 8\] \.shstrtab +STRTAB +00000000 [0-9a-f]+ 00004d 00 +0 +0 +1 -- +\[ 9\] \.symtab +SYMTAB .* -- +\[10\] \.strtab +STRTAB .* -+ +\[ 8\] \.symtab +SYMTAB .* -+ +\[ 9\] \.strtab +STRTAB .* -+ +\[10\] \.shstrtab +STRTAB +00000000 [0-9a-f]+ 00004d 00 +0 +0 +1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-sh/sh64/crangerel2.rd b/ld/testsuite/ld-sh/sh64/crangerel2.rd -index 2daede7..a1674b5 100644 ---- a/ld/testsuite/ld-sh/sh64/crangerel2.rd -+++ b/ld/testsuite/ld-sh/sh64/crangerel2.rd -@@ -10,9 +10,9 @@ Section Headers: - +\[ 5\] \.stack +PROGBITS +00000000 000090 000004 00 +WA +0 +0 +1 - +\[ 6\] \.cranges +PROGBITS +00000000 000094 000046 00 +W +0 +0 +1 - +\[ 7\] \.rela\.cranges +RELA +00000000 [0-9a-f]+ 000054 0c +I +9 +6 +4 -- +\[ 8\] \.shstrtab +STRTAB +00000000 [0-9a-f]+ 00004d 00 +0 +0 +1 -- +\[ 9\] \.symtab +SYMTAB +00000000 [0-9a-f]+ [0-9a-f]+ 10 +10 +[0-9]+ +4 -- +\[10\] \.strtab +STRTAB +00000000 [0-9a-f]+ [0-9a-f]+ 00 +0 +0 +1 -+ +\[ 8\] \.symtab +SYMTAB +00000000 [0-9a-f]+ [0-9a-f]+ 10 +8 +[0-9]+ +4 -+ +\[ 9\] \.strtab +STRTAB +00000000 [0-9a-f]+ [0-9a-f]+ 00 +0 +0 +1 -+ +\[10\] \.shstrtab +STRTAB +00000000 [0-9a-f]+ 00004d 00 +0 +0 +1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-sh/tlsbin-2.d b/ld/testsuite/ld-sh/tlsbin-2.d -index 167270f..6958e45 100644 ---- a/ld/testsuite/ld-sh/tlsbin-2.d -+++ b/ld/testsuite/ld-sh/tlsbin-2.d -@@ -23,9 +23,9 @@ Section Headers: - #... - +\[[0-9a-f]+\] \.got +PROGBITS .* - #... -- +\[[0-9a-f]+\] \.shstrtab .* - +\[[0-9a-f]+\] \.symtab .* - +\[[0-9a-f]+\] \.strtab .* -+ +\[[0-9a-f]+\] \.shstrtab .* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-sh/tlspic-2.d b/ld/testsuite/ld-sh/tlspic-2.d -index 0b47878..42baf1d 100644 ---- a/ld/testsuite/ld-sh/tlspic-2.d -+++ b/ld/testsuite/ld-sh/tlspic-2.d -@@ -22,9 +22,9 @@ Section Headers: - #... - +\[[0-9a-f]+\] \.got +PROGBITS .* - #... -- +\[[0-9a-f]+\] \.shstrtab .* - +\[[0-9a-f]+\] \.symtab .* - +\[[0-9a-f]+\] \.strtab .* -+ +\[[0-9a-f]+\] \.shstrtab .* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-sparc/gotop32.rd b/ld/testsuite/ld-sparc/gotop32.rd -index 3b5b942..1813719 100644 ---- a/ld/testsuite/ld-sparc/gotop32.rd -+++ b/ld/testsuite/ld-sparc/gotop32.rd -@@ -17,9 +17,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+12000 0+2000 0+70 08 +WA +3 +0 +4 - +\[[ 0-9]+\] .got +PROGBITS +0+12070 0+2070 0+8 04 +WA +0 +0 +4 - +\[[ 0-9]+\] .data +PROGBITS +0+13000 0+3000 0+8 00 +WA +0 +0 4096 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - #... - - Elf file type is DYN \(Shared object file\) -diff --git a/ld/testsuite/ld-sparc/gotop64.rd b/ld/testsuite/ld-sparc/gotop64.rd -index 2d3ffec..578fb2b 100644 ---- a/ld/testsuite/ld-sparc/gotop64.rd -+++ b/ld/testsuite/ld-sparc/gotop64.rd -@@ -17,9 +17,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+102000 0+2000 0+e0 10 +WA +3 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+1020e0 0+20e0 0+10 08 +WA +0 +0 +8 - +\[[ 0-9]+\] .data +PROGBITS +0+103000 0+3000 0+8 00 +WA +0 +0 4096 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - #... - - Elf file type is DYN \(Shared object file\) -diff --git a/ld/testsuite/ld-sparc/tlssunbin32.rd b/ld/testsuite/ld-sparc/tlssunbin32.rd -index 7212732..3de615f 100644 ---- a/ld/testsuite/ld-sparc/tlssunbin32.rd -+++ b/ld/testsuite/ld-sparc/tlssunbin32.rd -@@ -19,9 +19,9 @@ Section Headers: - +\[[ 0-9]+\] .tbss +NOBITS +0+231f4 0+31f4 0+40 00 WAT +0 +0 +4 - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+231f4 0+31f4 0+80 08 +WA +4 +0 +4 - +\[[ 0-9]+\] .got +PROGBITS +0+23274 0+3274 0+14 04 +WA +0 +0 +4 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - #... - - Elf file type is EXEC \(Executable file\) -diff --git a/ld/testsuite/ld-sparc/tlssunbin64.rd b/ld/testsuite/ld-sparc/tlssunbin64.rd -index 5480dab..2297d2e 100644 ---- a/ld/testsuite/ld-sparc/tlssunbin64.rd -+++ b/ld/testsuite/ld-sparc/tlssunbin64.rd -@@ -19,9 +19,9 @@ Section Headers: - +\[[ 0-9]+\] .tbss +NOBITS +0+202204 0+2204 0+40 00 WAT +0 +0 +4 - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+202208 0+2208 0+100 10 +WA +4 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+202308 0+2308 0+28 08 +WA +0 +0 +8 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - #... - - Elf file type is EXEC \(Executable file\) -diff --git a/ld/testsuite/ld-sparc/tlssunnopic32.rd b/ld/testsuite/ld-sparc/tlssunnopic32.rd -index 21d07c0..bfb7cb8 100644 ---- a/ld/testsuite/ld-sparc/tlssunnopic32.rd -+++ b/ld/testsuite/ld-sparc/tlssunnopic32.rd -@@ -18,9 +18,9 @@ Section Headers: - +\[[ 0-9]+\] .tbss +NOBITS +0+12000 0+2000 0+24 0+ WAT +0 +0 +4 - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+12000 0+2000 0+80 08 +WA +3 +0 +4 - +\[[ 0-9]+\] .got +PROGBITS +0+12080 0+2080 0+1c 04 +WA +0 +0 +4 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - #... - Elf file type is DYN \(Shared object file\) - Entry point 0x1000 -diff --git a/ld/testsuite/ld-sparc/tlssunnopic64.rd b/ld/testsuite/ld-sparc/tlssunnopic64.rd -index 6825aa9..88fe05f 100644 ---- a/ld/testsuite/ld-sparc/tlssunnopic64.rd -+++ b/ld/testsuite/ld-sparc/tlssunnopic64.rd -@@ -18,9 +18,9 @@ Section Headers: - +\[[ 0-9]+\] .tbss +NOBITS +0+102000 0+2000 0+24 0+ WAT +0 +0 +4 - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+102000 0+2000 0+100 10 +WA +3 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+102100 0+2100 0+38 08 +WA +0 +0 +8 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - #... - Elf file type is DYN \(Shared object file\) - Entry point 0x1000 -diff --git a/ld/testsuite/ld-sparc/tlssunpic32.rd b/ld/testsuite/ld-sparc/tlssunpic32.rd -index 4d96736..519b5df 100644 ---- a/ld/testsuite/ld-sparc/tlssunpic32.rd -+++ b/ld/testsuite/ld-sparc/tlssunpic32.rd -@@ -21,9 +21,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+12060 0+2060 0+98 08 +WA +3 +0 +4 - +\[[ 0-9]+\] .got +PROGBITS +0+120f8 0+20f8 0+4c 04 +WA +0 +0 +4 - +\[[ 0-9]+\] .plt +.* -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - #... - - Elf file type is DYN \(Shared object file\) -diff --git a/ld/testsuite/ld-sparc/tlssunpic64.rd b/ld/testsuite/ld-sparc/tlssunpic64.rd -index 6f91fee..fa00bbf 100644 ---- a/ld/testsuite/ld-sparc/tlssunpic64.rd -+++ b/ld/testsuite/ld-sparc/tlssunpic64.rd -@@ -21,9 +21,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+102060 0+2060 0+130 10 +WA +3 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+102190 0+2190 0+98 08 +WA +0 +0 +8 - +\[[ 0-9]+\] .plt +.* -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - #... - - Elf file type is DYN \(Shared object file\) -diff --git a/ld/testsuite/ld-tic6x/common.d b/ld/testsuite/ld-tic6x/common.d -index 30521fc..f2a7b1b 100644 ---- a/ld/testsuite/ld-tic6x/common.d -+++ b/ld/testsuite/ld-tic6x/common.d -@@ -11,9 +11,9 @@ Section Headers: - \[ 0\] NULL 00000000 000000 000000 00 0 0 0 - \[ 1\] \.far NOBITS 00000080 000080 000008 00 WA 0 0 4 - \[ 2\] \.bss NOBITS 00000100 000080 000004 00 WA 0 0 4 -- \[ 3\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 000025 00 0 0 1 -- \[ 4\] \.symtab SYMTAB 00000000 [0-9a-f]+ 000050 10 5 3 4 -- \[ 5\] \.strtab STRTAB 00000000 [0-9a-f]+ 000005 00 0 0 1 -+ \[ 3\] \.symtab SYMTAB 00000000 [0-9a-f]+ 000050 10 4 3 4 -+ \[ 4\] \.strtab STRTAB 00000000 [0-9a-f]+ 000005 00 0 0 1 -+ \[ 5\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 000025 00 0 0 1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-tic6x/shlib-1.rd b/ld/testsuite/ld-tic6x/shlib-1.rd -index a07ddca..77ec3d7 100644 ---- a/ld/testsuite/ld-tic6x/shlib-1.rd -+++ b/ld/testsuite/ld-tic6x/shlib-1.rd -@@ -16,9 +16,9 @@ Section Headers: - \[11\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4 - \[12\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4 - \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1 -- \[14\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 00007b 00 0 0 1 -- \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4 -- \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[14\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 15 [0-9]+ 4 -+ \[15\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[16\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 00007b 00 0 0 1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-tic6x/shlib-1b.rd b/ld/testsuite/ld-tic6x/shlib-1b.rd -index a07ddca..77ec3d7 100644 ---- a/ld/testsuite/ld-tic6x/shlib-1b.rd -+++ b/ld/testsuite/ld-tic6x/shlib-1b.rd -@@ -16,9 +16,9 @@ Section Headers: - \[11\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4 - \[12\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4 - \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1 -- \[14\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 00007b 00 0 0 1 -- \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4 -- \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[14\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 15 [0-9]+ 4 -+ \[15\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[16\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 00007b 00 0 0 1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-tic6x/shlib-1r.rd b/ld/testsuite/ld-tic6x/shlib-1r.rd -index a07ddca..77ec3d7 100644 ---- a/ld/testsuite/ld-tic6x/shlib-1r.rd -+++ b/ld/testsuite/ld-tic6x/shlib-1r.rd -@@ -16,9 +16,9 @@ Section Headers: - \[11\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4 - \[12\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4 - \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1 -- \[14\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 00007b 00 0 0 1 -- \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4 -- \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[14\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 15 [0-9]+ 4 -+ \[15\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[16\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 00007b 00 0 0 1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-tic6x/shlib-1rb.rd b/ld/testsuite/ld-tic6x/shlib-1rb.rd -index a07ddca..77ec3d7 100644 ---- a/ld/testsuite/ld-tic6x/shlib-1rb.rd -+++ b/ld/testsuite/ld-tic6x/shlib-1rb.rd -@@ -16,9 +16,9 @@ Section Headers: - \[11\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4 - \[12\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4 - \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1 -- \[14\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 00007b 00 0 0 1 -- \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4 -- \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[14\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 15 [0-9]+ 4 -+ \[15\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[16\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 00007b 00 0 0 1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-tic6x/shlib-app-1.rd b/ld/testsuite/ld-tic6x/shlib-app-1.rd -index f0e67c9..c3ddcd3 100644 ---- a/ld/testsuite/ld-tic6x/shlib-app-1.rd -+++ b/ld/testsuite/ld-tic6x/shlib-app-1.rd -@@ -17,9 +17,9 @@ Section Headers: - \[12\] \.neardata PROGBITS 100000c0 0020c0 00000c 00 WA 0 0 4 - \[13\] \.bss NOBITS 100000cc 0020cc 000004 00 WA 0 0 4 - \[14\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020cc 000019 00 0 0 1 -- \[15\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 000080 00 0 0 1 -- \[16\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 17 [0-9]+ 4 -- \[17\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4 -+ \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[17\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 000080 00 0 0 1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-tic6x/shlib-app-1b.rd b/ld/testsuite/ld-tic6x/shlib-app-1b.rd -index 19a7371..2f9d0f6 100644 ---- a/ld/testsuite/ld-tic6x/shlib-app-1b.rd -+++ b/ld/testsuite/ld-tic6x/shlib-app-1b.rd -@@ -17,9 +17,9 @@ Section Headers: - \[12\] \.neardata PROGBITS 100000c0 0020c0 00000c 00 WA 0 0 4 - \[13\] \.bss NOBITS 100000cc 0020cc 000004 00 WA 0 0 4 - \[14\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020cc 000019 00 0 0 1 -- \[15\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 000080 00 0 0 1 -- \[16\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 17 [0-9]+ 4 -- \[17\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4 -+ \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[17\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 000080 00 0 0 1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-tic6x/shlib-app-1r.rd b/ld/testsuite/ld-tic6x/shlib-app-1r.rd -index f4fcf6b..2cf8c58 100644 ---- a/ld/testsuite/ld-tic6x/shlib-app-1r.rd -+++ b/ld/testsuite/ld-tic6x/shlib-app-1r.rd -@@ -16,9 +16,9 @@ Section Headers: - \[11\] \.neardata PROGBITS 100000c0 0020c0 000004 00 WA 0 0 4 - \[12\] \.bss NOBITS 100000c4 0020c4 000004 00 WA 0 0 4 - \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020c4 000019 00 0 0 1 -- \[14\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 00007b 00 0 0 1 -- \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4 -- \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[14\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 15 [0-9]+ 4 -+ \[15\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[16\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 00007b 00 0 0 1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-tic6x/shlib-app-1rb.rd b/ld/testsuite/ld-tic6x/shlib-app-1rb.rd -index 3b7b6a9..3cb0256 100644 ---- a/ld/testsuite/ld-tic6x/shlib-app-1rb.rd -+++ b/ld/testsuite/ld-tic6x/shlib-app-1rb.rd -@@ -16,9 +16,9 @@ Section Headers: - \[11\] \.neardata PROGBITS 100000c0 0020c0 000004 00 WA 0 0 4 - \[12\] \.bss NOBITS 100000c4 0020c4 000004 00 WA 0 0 4 - \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020c4 000019 00 0 0 1 -- \[14\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 00007b 00 0 0 1 -- \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4 -- \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[14\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 15 [0-9]+ 4 -+ \[15\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[16\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 00007b 00 0 0 1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-tic6x/shlib-noindex.rd b/ld/testsuite/ld-tic6x/shlib-noindex.rd -index fa03130..0a29c63 100644 ---- a/ld/testsuite/ld-tic6x/shlib-noindex.rd -+++ b/ld/testsuite/ld-tic6x/shlib-noindex.rd -@@ -17,9 +17,9 @@ Section Headers: - \[12\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4 - \[13\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4 - \[14\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1 -- \[15\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 000080 00 0 0 1 -- \[16\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 17 [0-9]+ 4 -- \[17\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4 -+ \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[17\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 000080 00 0 0 1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-tic6x/static-app-1.rd b/ld/testsuite/ld-tic6x/static-app-1.rd -index c1bfc2f..27d2d23 100644 ---- a/ld/testsuite/ld-tic6x/static-app-1.rd -+++ b/ld/testsuite/ld-tic6x/static-app-1.rd -@@ -14,9 +14,9 @@ Section Headers: - \[ 9\] \.neardata PROGBITS 100000e0 0020e0 000014 00 WA 0 0 4 - \[10\] \.bss NOBITS 100000f4 0020f4 000004 00 WA 0 0 4 - \[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020f4 000019 00 0 0 1 -- \[12\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 000071 00 0 0 1 -- \[13\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 14 [0-9]+ 4 -- \[14\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[12\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 13 [0-9]+ 4 -+ \[13\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[14\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 000071 00 0 0 1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-tic6x/static-app-1b.rd b/ld/testsuite/ld-tic6x/static-app-1b.rd -index c1bfc2f..27d2d23 100644 ---- a/ld/testsuite/ld-tic6x/static-app-1b.rd -+++ b/ld/testsuite/ld-tic6x/static-app-1b.rd -@@ -14,9 +14,9 @@ Section Headers: - \[ 9\] \.neardata PROGBITS 100000e0 0020e0 000014 00 WA 0 0 4 - \[10\] \.bss NOBITS 100000f4 0020f4 000004 00 WA 0 0 4 - \[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020f4 000019 00 0 0 1 -- \[12\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 000071 00 0 0 1 -- \[13\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 14 [0-9]+ 4 -- \[14\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[12\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 13 [0-9]+ 4 -+ \[13\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[14\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 000071 00 0 0 1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-tic6x/static-app-1r.rd b/ld/testsuite/ld-tic6x/static-app-1r.rd -index af8341e..9f3ed9b 100644 ---- a/ld/testsuite/ld-tic6x/static-app-1r.rd -+++ b/ld/testsuite/ld-tic6x/static-app-1r.rd -@@ -14,9 +14,9 @@ Section Headers: - \[ 9\] \.neardata PROGBITS 100000e0 0020e0 00000c 00 WA 0 0 4 - \[10\] \.bss NOBITS 100000ec 0020ec 000004 00 WA 0 0 4 - \[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020ec 000019 00 0 0 1 -- \[12\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 000071 00 0 0 1 -- \[13\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 14 [0-9]+ 4 -- \[14\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[12\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 13 [0-9]+ 4 -+ \[13\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[14\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 000071 00 0 0 1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-tic6x/static-app-1rb.rd b/ld/testsuite/ld-tic6x/static-app-1rb.rd -index af8341e..9f3ed9b 100644 ---- a/ld/testsuite/ld-tic6x/static-app-1rb.rd -+++ b/ld/testsuite/ld-tic6x/static-app-1rb.rd -@@ -14,9 +14,9 @@ Section Headers: - \[ 9\] \.neardata PROGBITS 100000e0 0020e0 00000c 00 WA 0 0 4 - \[10\] \.bss NOBITS 100000ec 0020ec 000004 00 WA 0 0 4 - \[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020ec 000019 00 0 0 1 -- \[12\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 000071 00 0 0 1 -- \[13\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 14 [0-9]+ 4 -- \[14\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[12\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 13 [0-9]+ 4 -+ \[13\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[14\] \.shstrtab STRTAB 00000000 [0-9a-f]+ 000071 00 0 0 1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-x86-64/ilp32-4-nacl.d b/ld/testsuite/ld-x86-64/ilp32-4-nacl.d -index 296c406..f560ae3 100644 ---- a/ld/testsuite/ld-x86-64/ilp32-4-nacl.d -+++ b/ld/testsuite/ld-x86-64/ilp32-4-nacl.d -@@ -14,9 +14,9 @@ Section Headers: - +\[ 3\] \.dynsym +DYNSYM +100000dc +0+dc +0+50 +10 +A +4 +1 +4 - +\[ 4\] \.dynstr +STRTAB +1000012c +0+12c +0+19 +00 +A +0 +0 +1 - +\[ 5\] \.dynamic +DYNAMIC +10010148 +0+148 +0+58 +08 +WA +4 +0 +4 -- +\[ 6\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ +0+40 +00 +0 +0 +1 -- +\[ 7\] \.symtab +SYMTAB +0+0 +[0-9a-f]+ +[0-9a-f]+ +10 +8 +[0-9] +4 -- +\[ 8\] \.strtab +STRTAB +0+ +[0-9a-f]+ +[0-9a-f]+ +00 +0 +0 +1 -+ +\[ 6\] \.symtab +SYMTAB +0+0 +[0-9a-f]+ +[0-9a-f]+ +10 +7 +[0-9] +4 -+ +\[ 7\] \.strtab +STRTAB +0+ +[0-9a-f]+ +[0-9a-f]+ +00 +0 +0 +1 -+ +\[ 8\] \.shstrtab +STRTAB +0+ +[0-9a-f]+ +0+40 +00 +0 +0 +1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-x86-64/ilp32-4.d b/ld/testsuite/ld-x86-64/ilp32-4.d -index 7f1391f..658ad49 100644 ---- a/ld/testsuite/ld-x86-64/ilp32-4.d -+++ b/ld/testsuite/ld-x86-64/ilp32-4.d -@@ -13,9 +13,9 @@ Section Headers: - \[ 3\] .dynstr STRTAB 0000010c 00010c 000019 00 A 0 0 1 - \[ 4\] .text PROGBITS 00000125 000125 000001 00 AX 0 0 1 - \[ 5\] .dynamic DYNAMIC 00200128 000128 000058 08 WA 3 0 4 -- \[ 6\] .shstrtab STRTAB 00000000 [0-9a-f]+ 000040 00 0 0 1 -- \[ 7\] .symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 8 [0-9] 4 -- \[ 8\] .strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[ 6\] .symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 7 [0-9] 4 -+ \[ 7\] .strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[ 8\] .shstrtab STRTAB 00000000 [0-9a-f]+ 000040 00 0 0 1 - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-x86-64/nogot1.d b/ld/testsuite/ld-x86-64/nogot1.d -index f6c4cf1..823a28a 100644 ---- a/ld/testsuite/ld-x86-64/nogot1.d -+++ b/ld/testsuite/ld-x86-64/nogot1.d -@@ -4,5 +4,6 @@ - - #... - [ ]*\[.*\][ ]+\.dynamic[ ]+DYNAMIC.* -+#... - [ ]*\[.*\][ ]+.*STRTAB.* - #pass -diff --git a/ld/testsuite/ld-x86-64/pr12718.d b/ld/testsuite/ld-x86-64/pr12718.d -index 4b81d71..07d1732 100644 ---- a/ld/testsuite/ld-x86-64/pr12718.d -+++ b/ld/testsuite/ld-x86-64/pr12718.d -@@ -9,8 +9,8 @@ Section Headers: - +\[Nr\] Name +Type +Address +Off +Size +ES +Flg +Lk +Inf +Al - +\[ 0\] +NULL +0+ +0+ +0+ +0+ +0 +0 +0 - +\[ 1\] +.text +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +000006 00 +AX +0 +0 +1 -- +\[ 2\] +.shstrtab +STRTAB +0+ +[0-9a-f]+ +[0-9a-f]+ +0+ +0 +0 +1 -- +\[ 3\] +.symtab +SYMTAB +0+ +[0-9a-f]+ +[0-9a-f]+ 18 +4 +[0-9] +8 -- +\[ 4\] +.strtab +STRTAB +0+ +[0-9a-f]+ +[0-9a-f]+ 00 +0 +0 +1 -+ +\[ 2\] +.symtab +SYMTAB +0+ +[0-9a-f]+ +[0-9a-f]+ 18 +3 +[0-9] +8 -+ +\[ 3\] +.strtab +STRTAB +0+ +[0-9a-f]+ +[0-9a-f]+ 00 +0 +0 +1 -+ +\[ 4\] +.shstrtab +STRTAB +0+ +[0-9a-f]+ +[0-9a-f]+ +0+ +0 +0 +1 - Key to Flags: - #pass -diff --git a/ld/testsuite/ld-x86-64/pr12921.d b/ld/testsuite/ld-x86-64/pr12921.d -index 8d09616..6fe6abe 100644 ---- a/ld/testsuite/ld-x86-64/pr12921.d -+++ b/ld/testsuite/ld-x86-64/pr12921.d -@@ -11,8 +11,8 @@ Section Headers: - +\[ 1\] .text +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+1 00 +AX +0 +0 +4096 - +\[ 2\] .data +PROGBITS +[0-9a-f]+ +[0-9a-f]+000 +0+28 +00 +WA +0 +0 +4096 - +\[ 3\] .bss +NOBITS +[0-9a-f]+ +[0-9a-f]+028 +0+10000 +00 +WA +0 +0 +4096 -- +\[ 4\] .shstrtab +STRTAB +0+ +[0-9a-f]+ +0+2c +00 +0 +0 +1 -- +\[ 5\] .symtab +SYMTAB +0+ +[0-9a-f]+ +[0-9a-f]+ +18 +6 +[0-9] +8 -- +\[ 6\] .strtab +STRTAB +0+ +[0-9a-f]+ +[0-9a-f]+ +00 +0 +0 +1 -+ +\[ 4\] .symtab +SYMTAB +0+ +[0-9a-f]+ +[0-9a-f]+ +18 +5 +[0-9] +8 -+ +\[ 5\] .strtab +STRTAB +0+ +[0-9a-f]+ +[0-9a-f]+ +00 +0 +0 +1 -+ +\[ 6\] .shstrtab +STRTAB +0+ +[0-9a-f]+ +0+2c +00 +0 +0 +1 - Key to Flags: - #pass -diff --git a/ld/testsuite/ld-x86-64/split-by-file-nacl.rd b/ld/testsuite/ld-x86-64/split-by-file-nacl.rd -index d11988a..4e3e74a 100644 ---- a/ld/testsuite/ld-x86-64/split-by-file-nacl.rd -+++ b/ld/testsuite/ld-x86-64/split-by-file-nacl.rd -@@ -8,8 +8,8 @@ Section Headers: - \[ 3\] .data PROGBITS 0000000000000000 000043 000000 00 WA 0 0 1 - \[ 4\] .bss NOBITS 0000000000000000 000043 000000 00 WA 0 0 1 - \[ 5\] .foo.0 PROGBITS 0000000000000003 000043 000003 00 AXl 0 0 1 -- \[ 6\] .shstrtab STRTAB 0000000000000000 [0-9a-f]+ 000038 00 0 0 1 -- \[ 7\] .symtab SYMTAB 0000000000000000 [0-9a-f]+ [0-9a-f]+ 18 8 [0-9] 8 -- \[ 8\] .strtab STRTAB 0000000000000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[ 6\] .symtab SYMTAB 0000000000000000 [0-9a-f]+ [0-9a-f]+ 18 7 [0-9] 8 -+ \[ 7\] .strtab STRTAB 0000000000000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[ 8\] .shstrtab STRTAB 0000000000000000 [0-9a-f]+ 000038 00 0 0 1 - Key to Flags: - #pass -diff --git a/ld/testsuite/ld-x86-64/split-by-file.rd b/ld/testsuite/ld-x86-64/split-by-file.rd -index d11988a..4e3e74a 100644 ---- a/ld/testsuite/ld-x86-64/split-by-file.rd -+++ b/ld/testsuite/ld-x86-64/split-by-file.rd -@@ -8,8 +8,8 @@ Section Headers: - \[ 3\] .data PROGBITS 0000000000000000 000043 000000 00 WA 0 0 1 - \[ 4\] .bss NOBITS 0000000000000000 000043 000000 00 WA 0 0 1 - \[ 5\] .foo.0 PROGBITS 0000000000000003 000043 000003 00 AXl 0 0 1 -- \[ 6\] .shstrtab STRTAB 0000000000000000 [0-9a-f]+ 000038 00 0 0 1 -- \[ 7\] .symtab SYMTAB 0000000000000000 [0-9a-f]+ [0-9a-f]+ 18 8 [0-9] 8 -- \[ 8\] .strtab STRTAB 0000000000000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[ 6\] .symtab SYMTAB 0000000000000000 [0-9a-f]+ [0-9a-f]+ 18 7 [0-9] 8 -+ \[ 7\] .strtab STRTAB 0000000000000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 -+ \[ 8\] .shstrtab STRTAB 0000000000000000 [0-9a-f]+ 000038 00 0 0 1 - Key to Flags: - #pass -diff --git a/ld/testsuite/ld-x86-64/tlsbin-nacl.rd b/ld/testsuite/ld-x86-64/tlsbin-nacl.rd -index 5de5e1a..4284644 100644 ---- a/ld/testsuite/ld-x86-64/tlsbin-nacl.rd -+++ b/ld/testsuite/ld-x86-64/tlsbin-nacl.rd -@@ -23,9 +23,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+10030410 [0-9a-f]+ 0+140 10 +WA +6 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+10030550 [0-9a-f]+ 0+20 08 +WA +0 +0 +8 - +\[[ 0-9]+\] .got.plt +PROGBITS +0+10030570 [0-9a-f]+ 0+20 08 +WA +0 +0 +8 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-x86-64/tlsbin.rd b/ld/testsuite/ld-x86-64/tlsbin.rd -index 6f73b98..a34775d 100644 ---- a/ld/testsuite/ld-x86-64/tlsbin.rd -+++ b/ld/testsuite/ld-x86-64/tlsbin.rd -@@ -23,9 +23,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+601298 0+1298 0+140 10 +WA +4 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+6013d8 0+13d8 0+20 08 +WA +0 +0 +8 - +\[[ 0-9]+\] .got.plt +PROGBITS +0+6013f8 0+13f8 0+20 08 +WA +0 +0 +8 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-x86-64/tlsbin2-nacl.rd b/ld/testsuite/ld-x86-64/tlsbin2-nacl.rd -index 110927b..1f5b782 100644 ---- a/ld/testsuite/ld-x86-64/tlsbin2-nacl.rd -+++ b/ld/testsuite/ld-x86-64/tlsbin2-nacl.rd -@@ -21,9 +21,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+10030410 [0-9a-f]+ 0+100 10 +WA +5 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+10030510 [0-9a-f]+ 0+28 08 +WA +0 +0 +8 - +\[[ 0-9]+\] .got.plt +PROGBITS +0+10030538 [0-9a-f]+ 0+18 08 +WA +0 +0 +8 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-x86-64/tlsbin2.rd b/ld/testsuite/ld-x86-64/tlsbin2.rd -index b283648..5fb1599 100644 ---- a/ld/testsuite/ld-x86-64/tlsbin2.rd -+++ b/ld/testsuite/ld-x86-64/tlsbin2.rd -@@ -21,9 +21,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+601298 0+1298 0+100 10 +WA +4 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+601398 0+1398 0+28 08 +WA +0 +0 +8 - +\[[ 0-9]+\] .got.plt +PROGBITS +0+6013c0 0+13c0 0+18 08 +WA +0 +0 +8 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-x86-64/tlsbindesc-nacl.rd b/ld/testsuite/ld-x86-64/tlsbindesc-nacl.rd -index 39a5abe..2c046f4 100644 ---- a/ld/testsuite/ld-x86-64/tlsbindesc-nacl.rd -+++ b/ld/testsuite/ld-x86-64/tlsbindesc-nacl.rd -@@ -21,9 +21,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+100303d0 0+3d0 0+100 10 +WA +5 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+100304d0 0+4d0 0+20 08 +WA +0 +0 +8 - +\[[ 0-9]+\] .got.plt +PROGBITS +0+100304f0 0+4f0 0+18 08 +WA +0 +0 +8 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-x86-64/tlsbindesc.rd b/ld/testsuite/ld-x86-64/tlsbindesc.rd -index 8c9a342..c94014a 100644 ---- a/ld/testsuite/ld-x86-64/tlsbindesc.rd -+++ b/ld/testsuite/ld-x86-64/tlsbindesc.rd -@@ -21,9 +21,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+601260 0+1260 0+100 10 +WA +4 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+601360 0+1360 0+20 08 +WA +0 +0 +8 - +\[[ 0-9]+\] .got.plt +PROGBITS +0+601380 0+1380 0+18 08 +WA +0 +0 +8 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-x86-64/tlsdesc-nacl.rd b/ld/testsuite/ld-x86-64/tlsdesc-nacl.rd -index db196a5..7c9d77a 100644 ---- a/ld/testsuite/ld-x86-64/tlsdesc-nacl.rd -+++ b/ld/testsuite/ld-x86-64/tlsdesc-nacl.rd -@@ -22,9 +22,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+100104b0 [0-9a-f]+ 0+150 10 +WA +5 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+10010600 [0-9a-f]+ 0+48 08 +WA +0 +0 +8 - +\[[ 0-9]+\] .got.plt +PROGBITS +0+10010648 [0-9a-f]+ 0+68 08 +WA +0 +0 +8 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-x86-64/tlsdesc.rd b/ld/testsuite/ld-x86-64/tlsdesc.rd -index 6a636a0..18060c0 100644 ---- a/ld/testsuite/ld-x86-64/tlsdesc.rd -+++ b/ld/testsuite/ld-x86-64/tlsdesc.rd -@@ -22,9 +22,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+2011b8 0+11b8 0+150 10 +WA +3 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+201308 0+1308 0+48 08 +WA +0 +0 +8 - +\[[ 0-9]+\] .got.plt +PROGBITS +0+201350 0+1350 0+68 08 +WA +0 +0 +8 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-x86-64/tlsgdesc-nacl.rd b/ld/testsuite/ld-x86-64/tlsgdesc-nacl.rd -index 8614af5..934ba03 100644 ---- a/ld/testsuite/ld-x86-64/tlsgdesc-nacl.rd -+++ b/ld/testsuite/ld-x86-64/tlsgdesc-nacl.rd -@@ -19,9 +19,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +.* - +\[[ 0-9]+\] \.got +.* - +\[[ 0-9]+\] \.got.plt +.* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-x86-64/tlsgdesc.rd b/ld/testsuite/ld-x86-64/tlsgdesc.rd -index 5d845c7..729d12e6 100644 ---- a/ld/testsuite/ld-x86-64/tlsgdesc.rd -+++ b/ld/testsuite/ld-x86-64/tlsgdesc.rd -@@ -19,9 +19,9 @@ Section Headers: - +\[[ 0-9]+\] \.dynamic +.* - +\[[ 0-9]+\] \.got +.* - +\[[ 0-9]+\] \.got.plt +.* -- +\[[ 0-9]+\] \.shstrtab +.* - +\[[ 0-9]+\] \.symtab +.* - +\[[ 0-9]+\] \.strtab +.* -+ +\[[ 0-9]+\] \.shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-x86-64/tlspic-nacl.rd b/ld/testsuite/ld-x86-64/tlspic-nacl.rd -index f98e39b..740e399 100644 ---- a/ld/testsuite/ld-x86-64/tlspic-nacl.rd -+++ b/ld/testsuite/ld-x86-64/tlspic-nacl.rd -@@ -22,9 +22,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+10010510 [0-9a-f]+ 0+130 10 +WA +5 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+10010640 [0-9a-f]+ 0+90 08 +WA +0 +0 +8 - +\[[ 0-9]+\] .got.plt +PROGBITS +0+100106d0 [0-9a-f]+ 0+20 08 +WA +0 +0 +8 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-x86-64/tlspic.rd b/ld/testsuite/ld-x86-64/tlspic.rd -index 589666b..3f5d544 100644 ---- a/ld/testsuite/ld-x86-64/tlspic.rd -+++ b/ld/testsuite/ld-x86-64/tlspic.rd -@@ -22,9 +22,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+201380 0+1380 0+130 10 +WA +3 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+2014b0 0+14b0 0+90 08 +WA +0 +0 +8 - +\[[ 0-9]+\] .got.plt +PROGBITS +0+201540 0+1540 0+20 08 +WA +0 +0 +8 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-x86-64/tlspic2-nacl.rd b/ld/testsuite/ld-x86-64/tlspic2-nacl.rd -index 1919b3f..cbc0a75 100644 ---- a/ld/testsuite/ld-x86-64/tlspic2-nacl.rd -+++ b/ld/testsuite/ld-x86-64/tlspic2-nacl.rd -@@ -22,9 +22,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+10010528 [0-9a-f]+ 0+130 10 +WA +5 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+10010658 [0-9a-f]+ 0+98 08 +WA +0 +0 +8 - +\[[ 0-9]+\] .got.plt +PROGBITS +0+100106f0 [0-9a-f]+ 0+20 08 +WA +0 +0 +8 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-x86-64/tlspic2.rd b/ld/testsuite/ld-x86-64/tlspic2.rd -index 3c7b8c1..684ae21 100644 ---- a/ld/testsuite/ld-x86-64/tlspic2.rd -+++ b/ld/testsuite/ld-x86-64/tlspic2.rd -@@ -22,9 +22,9 @@ Section Headers: - +\[[ 0-9]+\] .dynamic +DYNAMIC +0+201380 0+1380 0+100 10 +WA +3 +0 +8 - +\[[ 0-9]+\] .got +PROGBITS +0+201480 0+1480 0+98 08 +WA +0 +0 +8 - +\[[ 0-9]+\] .got.plt +PROGBITS +0+201518 0+1518 0+18 08 +WA +0 +0 +8 -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-xtensa/tlsbin.rd b/ld/testsuite/ld-xtensa/tlsbin.rd -index 2361139..dcd2b04 100644 ---- a/ld/testsuite/ld-xtensa/tlsbin.rd -+++ b/ld/testsuite/ld-xtensa/tlsbin.rd -@@ -22,9 +22,9 @@ Section Headers: - +\[[ 0-9]+\] .xtensa.info +NOTE +0+ .* - +\[[ 0-9]+\] .xt.lit +PROGBITS +0+ .* - +\[[ 0-9]+\] .xt.prop +PROGBITS +0+ .* -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - Key to Flags: - #... - -diff --git a/ld/testsuite/ld-xtensa/tlspic.rd b/ld/testsuite/ld-xtensa/tlspic.rd -index 379334c..b6f7067 100644 ---- a/ld/testsuite/ld-xtensa/tlspic.rd -+++ b/ld/testsuite/ld-xtensa/tlspic.rd -@@ -23,9 +23,9 @@ Section Headers: - +\[[ 0-9]+\] .xtensa.info +NOTE +0+ .* - +\[[ 0-9]+\] .xt.lit +PROGBITS +0+ .* - +\[[ 0-9]+\] .xt.prop +PROGBITS +0+ .* -- +\[[ 0-9]+\] .shstrtab +.* - +\[[ 0-9]+\] .symtab +.* - +\[[ 0-9]+\] .strtab +.* -+ +\[[ 0-9]+\] .shstrtab +.* - Key to Flags: - #... - diff --git a/binutils-2.27-objdump-improvements.patch b/binutils-2.27-objdump-improvements.patch deleted file mode 100644 index ee2418a..0000000 --- a/binutils-2.27-objdump-improvements.patch +++ /dev/null @@ -1,4350 +0,0 @@ ---- binutils-2.27.orig/binutils/objdump.c 2016-11-08 15:39:41.094551341 +0000 -+++ binutils-2.27/binutils/objdump.c 2016-11-08 16:04:52.433507357 +0000 -@@ -620,6 +620,18 @@ slurp_dynamic_symtab (bfd *abfd) - return sy; - } - -+/* Some symbol names are significant and should be kept in the -+ table of sorted symbol names, even if they are marked as -+ debugging/section symbols. */ -+ -+static bfd_boolean -+is_significant_symbol_name (const char * name) -+{ -+ return strcmp (name, ".plt") == 0 -+ || strcmp (name, ".got") == 0 -+ || strcmp (name, ".plt.got") == 0; -+} -+ - /* Filter out (in place) symbols that are useless for disassembly. - COUNT is the number of elements in SYMBOLS. - Return the number of useful symbols. */ -@@ -635,7 +647,8 @@ remove_useless_symbols (asymbol **symbol - - if (sym->name == NULL || sym->name[0] == '\0') - continue; -- if (sym->flags & (BSF_DEBUGGING | BSF_SECTION_SYM)) -+ if ((sym->flags & (BSF_DEBUGGING | BSF_SECTION_SYM)) -+ && ! is_significant_symbol_name (sym->name)) - continue; - if (bfd_is_und_section (sym->section) - || bfd_is_com_section (sym->section)) -@@ -903,11 +916,13 @@ find_symbol_for_address (bfd_vma vma, - - /* The symbol we want is now in min, the low end of the range we - were searching. If there are several symbols with the same -- value, we want the first one. */ -+ value, we want the first (non-section/non-debugging) one. */ - thisplace = min; - while (thisplace > 0 - && (bfd_asymbol_value (sorted_syms[thisplace]) -- == bfd_asymbol_value (sorted_syms[thisplace - 1]))) -+ == bfd_asymbol_value (sorted_syms[thisplace - 1])) -+ && ((sorted_syms[thisplace - 1]->flags -+ & (BSF_SECTION_SYM | BSF_DEBUGGING)) == 0)) - --thisplace; - - /* Prefer a symbol in the current section if we have multple symbols -@@ -993,6 +1008,41 @@ find_symbol_for_address (bfd_vma vma, - return NULL; - } - -+ /* If we have not found an exact match for the specified address -+ and we have dynamic relocations available, then we can produce -+ a better result by matching a relocation to the address and -+ using the symbol associated with that relocation. */ -+ if (!want_section -+ && aux->dynrelbuf != NULL -+ && sorted_syms[thisplace]->value != vma -+ /* If we have matched a synthetic symbol, then stick with that. */ -+ && (sorted_syms[thisplace]->flags & BSF_SYNTHETIC) == 0) -+ { -+ arelent ** rel_pp; -+ long rel_count; -+ -+ for (rel_count = aux->dynrelcount, rel_pp = aux->dynrelbuf; -+ rel_count--;) -+ { -+ arelent * rel = rel_pp[rel_count]; -+ -+ if (rel->address == vma -+ && rel->sym_ptr_ptr != NULL -+ /* Absolute relocations do not provide a more helpful symbolic address. */ -+ && ! bfd_is_abs_section ((* rel->sym_ptr_ptr)->section)) -+ { -+ if (place != NULL) -+ * place = thisplace; -+ return * rel->sym_ptr_ptr; -+ } -+ -+ /* We are scanning backwards, so if we go below the target address -+ we have failed. */ -+ if (rel_pp[rel_count]->address < vma) -+ break; -+ } -+ } -+ - if (place != NULL) - *place = thisplace; - -@@ -1031,7 +1081,19 @@ objdump_print_addr_with_sym (bfd *abfd, - { - (*inf->fprintf_func) (inf->stream, " <"); - objdump_print_symname (abfd, inf, sym); -- if (bfd_asymbol_value (sym) > vma) -+ -+ if (bfd_asymbol_value (sym) == vma) -+ ; -+ /* Undefined symbols in an executables and dynamic objects do not have -+ a value associated with them, so it does not make sense to display -+ an offset relative to them. Normally we would not be provided with -+ this kind of symbol, but the target backend might choose to do so, -+ and the code in find_symbol_for_address might return an as yet -+ unresolved symbol associated with a dynamic reloc. */ -+ else if ((bfd_get_file_flags (abfd) & (EXEC_P | DYNAMIC)) -+ && bfd_is_und_section (sym->section)) -+ ; -+ else if (bfd_asymbol_value (sym) > vma) - { - (*inf->fprintf_func) (inf->stream, "-0x"); - objdump_print_value (bfd_asymbol_value (sym) - vma, inf, TRUE); -@@ -1996,7 +2058,7 @@ disassemble_section (bfd *abfd, asection - - /* Decide which set of relocs to use. Load them if necessary. */ - paux = (struct objdump_disasm_info *) pinfo->application_data; -- if (paux->dynrelbuf) -+ if (paux->dynrelbuf && dump_dynamic_reloc_info) - { - rel_pp = paux->dynrelbuf; - rel_count = paux->dynrelcount; -@@ -2273,13 +2335,11 @@ disassemble_data (bfd *abfd) - /* Allow the target to customize the info structure. */ - disassemble_init_for_target (& disasm_info); - -- /* Pre-load the dynamic relocs if we are going -- to be dumping them along with the disassembly. */ -- if (dump_dynamic_reloc_info) -+ /* Pre-load the dynamic relocs as we may need them during the disassembly. */ - { - long relsize = bfd_get_dynamic_reloc_upper_bound (abfd); - -- if (relsize < 0) -+ if (relsize < 0 && dump_dynamic_reloc_info) - bfd_fatal (bfd_get_filename (abfd)); - - if (relsize > 0) ---- binutils-2.27/gas/testsuite/gas/arm/tls.d 2015-11-13 08:27:41.000000000 +0000 -+++ /work/sources/binutils/current/gas/testsuite/gas/arm/tls.d 2016-10-11 12:14:08.383657767 +0100 -@@ -15,7 +15,7 @@ Disassembly of section .text: - 0: e1a00000 nop ; .* - 0: R_ARM_TLS_DESCSEQ af - 4: e59f0014 ldr r0, \[pc, #20\] ; 20 .* -- 8: fa000000 blx 8 -+ 8: fa000000 blx 8 - 8: R_ARM_TLS_CALL ae - c: e1a00000 nop ; .* - 0+10 <.arm_pool>: -@@ -34,7 +34,7 @@ Disassembly of section .text: - 26: 46c0 nop ; .* - 26: R_ARM_THM_TLS_DESCSEQ tf - 28: 4805 ldr r0, \[pc, #20\] ; \(40 .*\) -- 2a: f000 e800 blx 4 -+ 2a: f000 e800 blx 4 - 2a: R_ARM_THM_TLS_CALL te - 2e: 46c0 nop ; .* - 30: 00000002 .word 0x00000002 -diff --git a/ld/testsuite/ld-aarch64/emit-relocs-515-be.d b/ld/testsuite/ld-aarch64/emit-relocs-515-be.d -index 0bd39e3..82d5bd6 100644 ---- a/ld/testsuite/ld-aarch64/emit-relocs-515-be.d -+++ b/ld/testsuite/ld-aarch64/emit-relocs-515-be.d -@@ -12,7 +12,7 @@ Disassembly of section .text: - 10008: 8b020021 add x1, x1, x2 - 1000c: d2a00000 movz x0, #0x0, lsl #16 - 10010: 8b000020 add x0, x1, x0 -- 10014: 9400000c bl 10044 \ -+ 10014: 9400000c bl 10044 \<.*\> - 10018: d503201f nop - 1001c: 00000000 .word 0x00000000 - 10020: 0000ffe4 .word 0x0000ffe4 -diff --git a/ld/testsuite/ld-aarch64/emit-relocs-515.d b/ld/testsuite/ld-aarch64/emit-relocs-515.d -index 67f436b..9d84bf1 100644 ---- a/ld/testsuite/ld-aarch64/emit-relocs-515.d -+++ b/ld/testsuite/ld-aarch64/emit-relocs-515.d -@@ -12,7 +12,7 @@ Disassembly of section .text: - 10008: 8b020021 add x1, x1, x2 - 1000c: d2a00000 movz x0, #0x0, lsl #16 - 10010: 8b000020 add x0, x1, x0 -- 10014: 9400000c bl 10044 \ -+ 10014: 9400000c bl 10044 \<.*\> - 10018: d503201f nop - 1001c: 0000ffe4 .word 0x0000ffe4 - 10020: 00000000 .word 0x00000000 -diff --git a/ld/testsuite/ld-aarch64/emit-relocs-516-be.d b/ld/testsuite/ld-aarch64/emit-relocs-516-be.d -index e3b528d..23332b0 100644 ---- a/ld/testsuite/ld-aarch64/emit-relocs-516-be.d -+++ b/ld/testsuite/ld-aarch64/emit-relocs-516-be.d -@@ -13,7 +13,7 @@ Disassembly of section .text: - 1000c: f2800100 movk x0, #0x8 - 10010: f2800300 movk x0, #0x18 - 10014: 8b000020 add x0, x1, x0 -- 10018: 9400000c bl 10048 \ -+ 10018: 9400000c bl 10048 \<.*\> - 1001c: d503201f nop - 10020: 00000000 .word 0x00000000 - 10024: 0000ffe0 .word 0x0000ffe0 -diff --git a/ld/testsuite/ld-aarch64/emit-relocs-516.d b/ld/testsuite/ld-aarch64/emit-relocs-516.d -index 2ace032..e2ad1d6 100644 ---- a/ld/testsuite/ld-aarch64/emit-relocs-516.d -+++ b/ld/testsuite/ld-aarch64/emit-relocs-516.d -@@ -13,7 +13,7 @@ Disassembly of section .text: - 1000c: f2800100 movk x0, #0x8 - 10010: f2800300 movk x0, #0x18 - 10014: 8b000020 add x0, x1, x0 -- 10018: 9400000c bl 10048 \ -+ 10018: 9400000c bl 10048 \<.*\> - 1001c: d503201f nop - 10020: 0000ffe0 .word 0x0000ffe0 - 10024: 00000000 .word 0x00000000 -diff --git a/ld/testsuite/ld-aarch64/gc-plt-relocs.d b/ld/testsuite/ld-aarch64/gc-plt-relocs.d -index 086968c..d9f9413 100644 ---- a/ld/testsuite/ld-aarch64/gc-plt-relocs.d -+++ b/ld/testsuite/ld-aarch64/gc-plt-relocs.d -@@ -20,7 +20,7 @@ DYNAMIC SYMBOL TABLE: - Disassembly of section .text: - - 0+8000 \<_start\>: -- 8000: 9400000c bl 8030 \ -+ 8000: 9400000c bl 8030 \<.*> - - 0+8004 \: - 8004: 8a000000 and x0, x0, x0 -diff --git a/ld/testsuite/ld-aarch64/tls-tiny-desc.d b/ld/testsuite/ld-aarch64/tls-tiny-desc.d -index 7b88786..c17c448 100644 ---- a/ld/testsuite/ld-aarch64/tls-tiny-desc.d -+++ b/ld/testsuite/ld-aarch64/tls-tiny-desc.d -@@ -6,8 +6,8 @@ - Disassembly of section .text: - - 0000000000010000 \: -- +10000: 58080141 ldr x1, 20028 \<_GLOBAL_OFFSET_TABLE_\+0x28\> -- +10004: 10080120 adr x0, 20028 \<_GLOBAL_OFFSET_TABLE_\+0x28\> -+ +10000: 58080141 ldr x1, 20028 \ -+ +10004: 10080120 adr x0, 20028 \ - +10008: d63f0020 blr x1 - - Disassembly of section .plt: -diff --git a/ld/testsuite/ld-aarch64/tls-tiny-gd.d b/ld/testsuite/ld-aarch64/tls-tiny-gd.d -index 2f55f7b..9133492 100644 ---- a/ld/testsuite/ld-aarch64/tls-tiny-gd.d -+++ b/ld/testsuite/ld-aarch64/tls-tiny-gd.d -@@ -6,8 +6,8 @@ - Disassembly of section .text: - - 0000000000010000 \: -- +10000: 10080040 adr x0, 20008 \<_GLOBAL_OFFSET_TABLE_\+0x8\> -- +10004: 9400000a bl 1002c \ -+ +10000: 10080040 adr x0, 20008 \ -+ +10004: 9400000a bl 1002c \<.*> - +10008: d503201f nop - - Disassembly of section .plt: -diff --git a/ld/testsuite/ld-aarch64/tls-tiny-ie.d b/ld/testsuite/ld-aarch64/tls-tiny-ie.d -index 02aff35..849e73d 100644 ---- a/ld/testsuite/ld-aarch64/tls-tiny-ie.d -+++ b/ld/testsuite/ld-aarch64/tls-tiny-ie.d -@@ -3,6 +3,6 @@ - #objdump: -dr - #... - +10000: d53bd042 mrs x2, tpidr_el0 -- +10004: 58080020 ldr x0, 20008 <_GLOBAL_OFFSET_TABLE_\+0x8> -+ +10004: 58080020 ldr x0, 20008 <.*> - +10008: 8b000040 add x0, x2, x0 - +1000c: b9400000 ldr w0, \[x0\] -diff --git a/ld/testsuite/ld-arm/arm-app-abs32.d b/ld/testsuite/ld-arm/arm-app-abs32.d -index 13221f0..d888929 100644 ---- a/ld/testsuite/ld-arm/arm-app-abs32.d -+++ b/ld/testsuite/ld-arm/arm-app-abs32.d -@@ -6,9 +6,9 @@ start address .* - - Disassembly of section .plt: - --.* : -+.* <.plt>: - +.*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- +.*: e59fe004 ldr lr, \[pc, #4\] ; .* -+ +.*: e59fe004 ldr lr, \[pc, #4\] ; .* <.*> - +.*: e08fe00e add lr, pc, lr - +.*: e5bef008 ldr pc, \[lr, #8\]! - +.*: .* .* -diff --git a/ld/testsuite/ld-arm/arm-app.d b/ld/testsuite/ld-arm/arm-app.d -index 98fc899..dd4cf81 100644 ---- a/ld/testsuite/ld-arm/arm-app.d -+++ b/ld/testsuite/ld-arm/arm-app.d -@@ -6,9 +6,9 @@ start address 0x.* - - Disassembly of section .plt: - --.* : -+.* <.plt>: - .*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- .*: e59fe004 ldr lr, \[pc, #4\] ; .* -+ .*: e59fe004 ldr lr, \[pc, #4\] ; .* <.*> - .*: e08fe00e add lr, pc, lr - .*: e5bef008 ldr pc, \[lr, #8\]! - .*: .* -diff --git a/ld/testsuite/ld-arm/arm-lib-plt32.d b/ld/testsuite/ld-arm/arm-lib-plt32.d -index ecc2cf2..2eaf89a 100644 ---- a/ld/testsuite/ld-arm/arm-lib-plt32.d -+++ b/ld/testsuite/ld-arm/arm-lib-plt32.d -@@ -6,9 +6,9 @@ start address 0x.* - - Disassembly of section .plt: - --.* : -+.* <.plt>: - .*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- .*: e59fe004 ldr lr, \[pc, #4\] ; .* -+ .*: e59fe004 ldr lr, \[pc, #4\] ; .* <.*> - .*: e08fe00e add lr, pc, lr - .*: e5bef008 ldr pc, \[lr, #8\]! - .*: .* -diff --git a/ld/testsuite/ld-arm/arm-lib.d b/ld/testsuite/ld-arm/arm-lib.d -index 0e2a7aa..ac439ea 100644 ---- a/ld/testsuite/ld-arm/arm-lib.d -+++ b/ld/testsuite/ld-arm/arm-lib.d -@@ -6,9 +6,9 @@ start address 0x.* - - Disassembly of section .plt: - --.* : -+.* <.plt>: - .*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- .*: e59fe004 ldr lr, \[pc, #4\] ; .* -+ .*: e59fe004 ldr lr, \[pc, #4\] ; .* <.*> - .*: e08fe00e add lr, pc, lr - .*: e5bef008 ldr pc, \[lr, #8\]! - .*: .* -diff --git a/ld/testsuite/ld-arm/armthumb-lib.d b/ld/testsuite/ld-arm/armthumb-lib.d -index 9a5dea8..4f43b8e 100644 ---- a/ld/testsuite/ld-arm/armthumb-lib.d -+++ b/ld/testsuite/ld-arm/armthumb-lib.d -@@ -6,9 +6,9 @@ start address 0x.* - - Disassembly of section .plt: - --.* : -+.* <.plt>: - .*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- .*: e59fe004 ldr lr, \[pc, #4\] ; .* -+ .*: e59fe004 ldr lr, \[pc, #4\] ; .* <.*> - .*: e08fe00e add lr, pc, lr - .*: e5bef008 ldr pc, \[lr, #8\]! - .*: .* -diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d b/ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d -index 0f40861..bbf6839 100644 ---- a/ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d -+++ b/ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d -@@ -4,9 +4,9 @@ - - Disassembly of section \.plt: - --00008000 : -+00008000 <.*>: - 8000: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- 8004: e59fe004 ldr lr, \[pc, #4\] ; 8010 -+ 8004: e59fe004 ldr lr, \[pc, #4\] ; 8010 <.*> - 8008: e08fe00e add lr, pc, lr - 800c: e5bef008 ldr pc, \[lr, #8\]! - 8010: 00000ffc \.word 0x00000ffc -diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d b/ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d -index b6e6fff..079c928 100644 ---- a/ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d -+++ b/ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d -@@ -4,9 +4,9 @@ - - Disassembly of section \.plt: - --00008000 : -+00008000 <.plt>: - 8000: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- 8004: e59fe004 ldr lr, \[pc, #4\] ; 8010 -+ 8004: e59fe004 ldr lr, \[pc, #4\] ; 8010 <.*> - 8008: e08fe00e add lr, pc, lr - 800c: e5bef008 ldr pc, \[lr, #8\]! - 8010: 00001004 \.word 0x00001004 -diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-bl-plt.d b/ld/testsuite/ld-arm/cortex-a8-fix-bl-plt.d -index baad3d0..e4e6760 100644 ---- a/ld/testsuite/ld-arm/cortex-a8-fix-bl-plt.d -+++ b/ld/testsuite/ld-arm/cortex-a8-fix-bl-plt.d -@@ -4,9 +4,9 @@ - - Disassembly of section \.plt: - --00008000 : -+00008000 <.plt>: - 8000: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- 8004: e59fe004 ldr lr, \[pc, #4\] ; 8010 -+ 8004: e59fe004 ldr lr, \[pc, #4\] ; 8010 <.*> - 8008: e08fe00e add lr, pc, lr - 800c: e5bef008 ldr pc, \[lr, #8\]! - 8010: 00000ffc \.word 0x00000ffc -diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d b/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d -index c504f79..4a5be27 100644 ---- a/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d -+++ b/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d -@@ -4,9 +4,9 @@ - - Disassembly of section \.plt: - --00008e00 : -+00008e00 <.plt>: - 8e00: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- 8e04: e59fe004 ldr lr, \[pc, #4\] ; 8e10 -+ 8e04: e59fe004 ldr lr, \[pc, #4\] ; 8e10 <.*> - 8e08: e08fe00e add lr, pc, lr - 8e0c: e5bef008 ldr pc, \[lr, #8\]! - 8e10: 0001027c \.word 0x0001027c -diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-blx-plt.d b/ld/testsuite/ld-arm/cortex-a8-fix-blx-plt.d -index baad3d0..e4e6760 100644 ---- a/ld/testsuite/ld-arm/cortex-a8-fix-blx-plt.d -+++ b/ld/testsuite/ld-arm/cortex-a8-fix-blx-plt.d -@@ -4,9 +4,9 @@ - - Disassembly of section \.plt: - --00008000 : -+00008000 <.plt>: - 8000: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- 8004: e59fe004 ldr lr, \[pc, #4\] ; 8010 -+ 8004: e59fe004 ldr lr, \[pc, #4\] ; 8010 <.*> - 8008: e08fe00e add lr, pc, lr - 800c: e5bef008 ldr pc, \[lr, #8\]! - 8010: 00000ffc \.word 0x00000ffc -diff --git a/ld/testsuite/ld-arm/farcall-mixed-app-v5.d b/ld/testsuite/ld-arm/farcall-mixed-app-v5.d -index ea0e823..b570bad 100644 ---- a/ld/testsuite/ld-arm/farcall-mixed-app-v5.d -+++ b/ld/testsuite/ld-arm/farcall-mixed-app-v5.d -@@ -6,9 +6,9 @@ start address 0x.* - - Disassembly of section .plt: - --.* : -+.* <.plt>: - .*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- .*: e59fe004 ldr lr, \[pc, #4\] ; .* -+ .*: e59fe004 ldr lr, \[pc, #4\] ; .* <.*> - .*: e08fe00e add lr, pc, lr - .*: e5bef008 ldr pc, \[lr, #8\]! - .*: .* -diff --git a/ld/testsuite/ld-arm/farcall-mixed-app.d b/ld/testsuite/ld-arm/farcall-mixed-app.d -index 86127ef..9fa97dc 100644 ---- a/ld/testsuite/ld-arm/farcall-mixed-app.d -+++ b/ld/testsuite/ld-arm/farcall-mixed-app.d -@@ -6,9 +6,9 @@ start address 0x.* - - Disassembly of section .plt: - --.* : -+.* <.plt>: - .*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- .*: e59fe004 ldr lr, \[pc, #4\] ; .* -+ .*: e59fe004 ldr lr, \[pc, #4\] ; .* <.*> - .*: e08fe00e add lr, pc, lr - .*: e5bef008 ldr pc, \[lr, #8\]! - .*: .* -diff --git a/ld/testsuite/ld-arm/farcall-mixed-lib-v4t.d b/ld/testsuite/ld-arm/farcall-mixed-lib-v4t.d -index e2dbc1b..fa52ad1 100644 ---- a/ld/testsuite/ld-arm/farcall-mixed-lib-v4t.d -+++ b/ld/testsuite/ld-arm/farcall-mixed-lib-v4t.d -@@ -5,9 +5,9 @@ start address 0x.* - - Disassembly of section .plt: - --.* : -+.* <.plt>: - .*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- .*: e59fe004 ldr lr, \[pc, #4\] ; .* -+ .*: e59fe004 ldr lr, \[pc, #4\] ; .* <.*> - .*: e08fe00e add lr, pc, lr - .*: e5bef008 ldr pc, \[lr, #8\]! - .*: .* .word .* -diff --git a/ld/testsuite/ld-arm/farcall-mixed-lib.d b/ld/testsuite/ld-arm/farcall-mixed-lib.d -index b736983..ad7352b 100644 ---- a/ld/testsuite/ld-arm/farcall-mixed-lib.d -+++ b/ld/testsuite/ld-arm/farcall-mixed-lib.d -@@ -5,9 +5,9 @@ start address 0x.* - - Disassembly of section .plt: - --.* : -+.* <.plt>: - .*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- .*: e59fe004 ldr lr, \[pc, #4\] ; .* -+ .*: e59fe004 ldr lr, \[pc, #4\] ; .* <.*> - .*: e08fe00e add lr, pc, lr - .*: e5bef008 ldr pc, \[lr, #8\]! - .*: .* -diff --git a/ld/testsuite/ld-arm/ifunc-10.dd b/ld/testsuite/ld-arm/ifunc-10.dd -index d96c086..05e4be5 100644 ---- a/ld/testsuite/ld-arm/ifunc-10.dd -+++ b/ld/testsuite/ld-arm/ifunc-10.dd -@@ -4,9 +4,9 @@ - - Disassembly of section \.plt: - --00009000 : -+00009000 <.plt>: - 9000: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- 9004: e59fe004 ldr lr, \[pc, #4\] ; 9010 -+ 9004: e59fe004 ldr lr, \[pc, #4\] ; 9010 <.*> - 9008: e08fe00e add lr, pc, lr - 900c: e5bef008 ldr pc, \[lr, #8\]! - #------------------------------------------------------------------------------ -diff --git a/ld/testsuite/ld-arm/ifunc-14.dd b/ld/testsuite/ld-arm/ifunc-14.dd -index cbad1c8..281373c 100644 ---- a/ld/testsuite/ld-arm/ifunc-14.dd -+++ b/ld/testsuite/ld-arm/ifunc-14.dd -@@ -4,9 +4,9 @@ - - Disassembly of section \.plt: - --00009000 : -+00009000 <.plt>: - 9000: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- 9004: e59fe004 ldr lr, \[pc, #4\] ; 9010 <__irel_end\+0xff0> -+ 9004: e59fe004 ldr lr, \[pc, #4\] ; 9010 <.*> - 9008: e08fe00e add lr, pc, lr - 900c: e5bef008 ldr pc, \[lr, #8\]! - #------------------------------------------------------------------------------ -diff --git a/ld/testsuite/ld-arm/ifunc-15.dd b/ld/testsuite/ld-arm/ifunc-15.dd -index f23e8e8..d3fbf9d 100644 ---- a/ld/testsuite/ld-arm/ifunc-15.dd -+++ b/ld/testsuite/ld-arm/ifunc-15.dd -@@ -4,9 +4,9 @@ - - Disassembly of section \.plt: - --00009000 : -+00009000 <.plt>: - 9000: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- 9004: e59fe004 ldr lr, \[pc, #4\] ; 9010 <__irel_end\+0xff0> -+ 9004: e59fe004 ldr lr, \[pc, #4\] ; 9010 <.*> - 9008: e08fe00e add lr, pc, lr - 900c: e5bef008 ldr pc, \[lr, #8\]! - #------------------------------------------------------------------------------ -diff --git a/ld/testsuite/ld-arm/ifunc-3.dd b/ld/testsuite/ld-arm/ifunc-3.dd -index b267bf1..2297e5a 100644 ---- a/ld/testsuite/ld-arm/ifunc-3.dd -+++ b/ld/testsuite/ld-arm/ifunc-3.dd -@@ -4,9 +4,9 @@ - - Disassembly of section \.plt: - --00009000 : -+00009000 <.plt>: - 9000: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- 9004: e59fe004 ldr lr, \[pc, #4\] ; 9010 -+ 9004: e59fe004 ldr lr, \[pc, #4\] ; 9010 <.*> - 9008: e08fe00e add lr, pc, lr - 900c: e5bef008 ldr pc, \[lr, #8\]! - #------------------------------------------------------------------------------ -diff --git a/ld/testsuite/ld-arm/ifunc-4.dd b/ld/testsuite/ld-arm/ifunc-4.dd -index 6ce996b..647a340 100644 ---- a/ld/testsuite/ld-arm/ifunc-4.dd -+++ b/ld/testsuite/ld-arm/ifunc-4.dd -@@ -4,9 +4,9 @@ - - Disassembly of section \.plt: - --00009000 : -+00009000 <.plt>: - 9000: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- 9004: e59fe004 ldr lr, \[pc, #4\] ; 9010 -+ 9004: e59fe004 ldr lr, \[pc, #4\] ; 9010 <.*> - 9008: e08fe00e add lr, pc, lr - 900c: e5bef008 ldr pc, \[lr, #8\]! - #------------------------------------------------------------------------------ -diff --git a/ld/testsuite/ld-arm/ifunc-9.dd b/ld/testsuite/ld-arm/ifunc-9.dd -index af7ec4b..cc4afa8 100644 ---- a/ld/testsuite/ld-arm/ifunc-9.dd -+++ b/ld/testsuite/ld-arm/ifunc-9.dd -@@ -4,9 +4,9 @@ - - Disassembly of section \.plt: - --00009000 : -+00009000 <.plt>: - 9000: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- 9004: e59fe004 ldr lr, \[pc, #4\] ; 9010 -+ 9004: e59fe004 ldr lr, \[pc, #4\] ; 9010 <.*> - 9008: e08fe00e add lr, pc, lr - 900c: e5bef008 ldr pc, \[lr, #8\]! - #------------------------------------------------------------------------------ -diff --git a/ld/testsuite/ld-arm/long-plt-format.d b/ld/testsuite/ld-arm/long-plt-format.d -index b0a1abc..b14d9b5 100644 ---- a/ld/testsuite/ld-arm/long-plt-format.d -+++ b/ld/testsuite/ld-arm/long-plt-format.d -@@ -3,7 +3,7 @@ - - Disassembly of section .plt: - --.* : -+.* <.plt>: - .*: .* - .*: .* - .*: .* -diff --git a/ld/testsuite/ld-arm/mixed-app-v5.d b/ld/testsuite/ld-arm/mixed-app-v5.d -index 0ad39e6..9c734a9 100644 ---- a/ld/testsuite/ld-arm/mixed-app-v5.d -+++ b/ld/testsuite/ld-arm/mixed-app-v5.d -@@ -6,9 +6,9 @@ start address 0x.* - - Disassembly of section .plt: - --.* : -+.* <.plt>: - .*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- .*: e59fe004 ldr lr, \[pc, #4\] ; .* -+ .*: e59fe004 ldr lr, \[pc, #4\] ; .* <.*> - .*: e08fe00e add lr, pc, lr - .*: e5bef008 ldr pc, \[lr, #8\]! - .*: .* -diff --git a/ld/testsuite/ld-arm/mixed-app.d b/ld/testsuite/ld-arm/mixed-app.d -index 6083161..4bcbdad 100644 ---- a/ld/testsuite/ld-arm/mixed-app.d -+++ b/ld/testsuite/ld-arm/mixed-app.d -@@ -6,9 +6,9 @@ start address 0x.* - - Disassembly of section .plt: - --.* : -+.* <.plt>: - .*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- .*: e59fe004 ldr lr, \[pc, #4\] ; .* -+ .*: e59fe004 ldr lr, \[pc, #4\] ; .* <.*> - .*: e08fe00e add lr, pc, lr - .*: e5bef008 ldr pc, \[lr, #8\]! - .*: .* -diff --git a/ld/testsuite/ld-arm/mixed-lib.d b/ld/testsuite/ld-arm/mixed-lib.d -index 271692c..a4bb26b 100644 ---- a/ld/testsuite/ld-arm/mixed-lib.d -+++ b/ld/testsuite/ld-arm/mixed-lib.d -@@ -6,9 +6,9 @@ start address 0x.* - - Disassembly of section .plt: - --.* : -+.* <.plt>: - .*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) -- .*: e59fe004 ldr lr, \[pc, #4\] ; .* -+ .*: e59fe004 ldr lr, \[pc, #4\] ; .* <.*> - .*: e08fe00e add lr, pc, lr - .*: e5bef008 ldr pc, \[lr, #8\]! - .*: .* -diff --git a/ld/testsuite/ld-arm/tls-lib-loc.d b/ld/testsuite/ld-arm/tls-lib-loc.d -index 27789b4..2e641b3 100644 ---- a/ld/testsuite/ld-arm/tls-lib-loc.d -+++ b/ld/testsuite/ld-arm/tls-lib-loc.d -@@ -28,6 +28,6 @@ Disassembly of section .text: - - [0-9a-f]+ : - [0-9a-f]+: e59f0004 ldr r0, \[pc, #4\] ; 818c .* -- [0-9a-f]+: fafffff2 blx 8154 <.*\+0x8154> -+ [0-9a-f]+: fafffff2 blx 8154 <.*> - [0-9a-f]+: e1a00000 nop ; .* - 818c: 000080a0 .word 0x000080a0 -diff --git a/ld/testsuite/ld-cris/dso-pltdis1.d b/ld/testsuite/ld-cris/dso-pltdis1.d -index 4bc3c70..e2c0f93 100644 ---- a/ld/testsuite/ld-cris/dso-pltdis1.d -+++ b/ld/testsuite/ld-cris/dso-pltdis1.d -@@ -20,7 +20,7 @@ - - Disassembly of section \.plt: - --0+1b4 <(dsofn4@plt-0x1a|dsofn@plt-0x34)>: -+0+1b4 <.*>: - 1b4: 84e2 subq 4,\$sp - 1b6: 0401 addoq 4,\$r0,\$acr - 1b8: 7e7a move \$mof,\[\$sp\] -@@ -45,7 +45,7 @@ Disassembly of section \.plt: - 1f0: bf09 jump \$acr - 1f2: b005 nop - 1f4: 3f7e .... .... move .*,\$mof -- 1fa: bf0e baff ffff ba 1b4 <(dsofn4@plt-0x1a|dsofn@plt-0x34)> -+ 1fa: bf0e baff ffff ba 1b4 <.*> - 200: b005 nop - - Disassembly of section \.text: -@@ -57,5 +57,5 @@ Disassembly of section \.text: - 0+20a : - 20a: 7f0d ae20 0000 lapc 22b8 <_GLOBAL_OFFSET_TABLE_>,\$r0 - 210: 5f0d 1400 addo\.w 0x14,\$r0,\$acr -- 214: bfbe baff ffff bsr 1ce <(dsofn4@plt|dsofn@plt-0x1a)> -+ 214: bfbe baff ffff bsr 1ce <.*> - #pass -diff --git a/ld/testsuite/ld-cris/dso-pltdis2.d b/ld/testsuite/ld-cris/dso-pltdis2.d -index 5348a8a..24da97a 100644 ---- a/ld/testsuite/ld-cris/dso-pltdis2.d -+++ b/ld/testsuite/ld-cris/dso-pltdis2.d -@@ -12,7 +12,7 @@ - - Disassembly of section \.plt: - --0+1b4 <(dsofn4@plt-0x1a|dsofn@plt-0x34)>: -+0+1b4 <.*>: - - 1b4: 84e2 subq 4,\$sp - 1b6: 0401 addoq 4,\$r0,\$acr -@@ -44,7 +44,7 @@ Disassembly of section \.plt: - Disassembly of section \.text: - #... - 0+202 : -- 202: bfbe e6ff ffff bsr 1e8 <(dsofn@plt|dsofn4@plt\+0x1a)> -+ 202: bfbe e6ff ffff bsr 1e8 <.*> - 208: b005 nop - - 0+20a : -diff --git a/ld/testsuite/ld-cris/dso12-pltdis.d b/ld/testsuite/ld-cris/dso12-pltdis.d -index 71a1748..187730b 100644 ---- a/ld/testsuite/ld-cris/dso12-pltdis.d -+++ b/ld/testsuite/ld-cris/dso12-pltdis.d -@@ -11,7 +11,7 @@ - - Disassembly of section \.plt: - --0+1e4 : -+0+1e4 <.plt>: - - 1e4: 84e2 subq 4,\$sp - 1e6: 0401 addoq 4,\$r0,\$acr -@@ -24,21 +24,21 @@ Disassembly of section \.plt: - \.\.\. - - 0+1fe : -- 1fe: 6f0d 0c00 0000 addo\.d c ,\$r0,\$acr -+ 1fe: 6f0d 0c00 0000 addo\.d c <.*>,\$r0,\$acr - 204: 6ffa move\.d \[\$acr\],\$acr - 206: bf09 jump \$acr - 208: b005 nop -- 20a: 3f7e 0000 0000 move 0 ,\$mof -- 210: bf0e d4ff ffff ba 1e4 -+ 20a: 3f7e 0000 0000 move 0 <.*>,\$mof -+ 210: bf0e d4ff ffff ba 1e4 <.*> - 216: b005 nop - - 0+218 : -- 218: 6f0d 1000 0000 addo\.d 10 ,\$r0,\$acr -+ 218: 6f0d 1000 0000 addo\.d 10 <.*>,\$r0,\$acr - 21e: 6ffa move\.d \[\$acr\],\$acr - 220: bf09 jump \$acr - 222: b005 nop -- 224: 3f7e 0c00 0000 move c ,\$mof -- 22a: bf0e baff ffff ba 1e4 -+ 224: 3f7e 0c00 0000 move c <.*>,\$mof -+ 22a: bf0e baff ffff ba 1e4 <.*> - 230: b005 nop - - Disassembly of section \.text: -diff --git a/ld/testsuite/ld-elf/symbolic-func.r b/ld/testsuite/ld-elf/symbolic-func.r -index 3d31f8f..448b01a 100644 ---- a/ld/testsuite/ld-elf/symbolic-func.r -+++ b/ld/testsuite/ld-elf/symbolic-func.r -@@ -14,5 +14,5 @@ - - Relocation section.* - *Offset.* --0*[1-9a-f][0-9a-f]* +[^ ]+ +[^ ]+ +([0-9a-f]+( +\.text( \+ [0-9a-f]+)?)?)? -+0*[1-9a-f][0-9a-f]* +[^ ]+ +[^ ]+ +([0-9a-f]+( +(\.text|fun)( \+ [0-9a-f]+)?)?)? - #pass -diff --git a/ld/testsuite/ld-frv/fdpic-pie-1.d b/ld/testsuite/ld-frv/fdpic-pie-1.d -index 0e37324..5369d07 100644 ---- a/ld/testsuite/ld-frv/fdpic-pie-1.d -+++ b/ld/testsuite/ld-frv/fdpic-pie-1.d -@@ -42,7 +42,7 @@ Disassembly of section \.data: - [0-9a-f ]+: R_FRV_32 \.text - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x8>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 00 00 04 add\.p gr0,gr4,gr0 - [0-9a-f ]+: R_FRV_FUNCDESC_VALUE \.text - [0-9a-f ]+: 00 00 00 02 add\.p gr0,fp,gr0 -diff --git a/ld/testsuite/ld-frv/fdpic-pie-2.d b/ld/testsuite/ld-frv/fdpic-pie-2.d -index 3583a3b..40c1532 100644 ---- a/ld/testsuite/ld-frv/fdpic-pie-2.d -+++ b/ld/testsuite/ld-frv/fdpic-pie-2.d -@@ -42,7 +42,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: R_FRV_32 \.text - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x18>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 00 00 04 add\.p gr0,gr4,gr0 - [0-9a-f ]+: R_FRV_FUNCDESC_VALUE \.text - [0-9a-f ]+: 00 00 00 02 add\.p gr0,fp,gr0 -diff --git a/ld/testsuite/ld-frv/fdpic-pie-6.d b/ld/testsuite/ld-frv/fdpic-pie-6.d -index c59b304..743166e 100644 ---- a/ld/testsuite/ld-frv/fdpic-pie-6.d -+++ b/ld/testsuite/ld-frv/fdpic-pie-6.d -@@ -9,11 +9,11 @@ Disassembly of section \.plt: - - [0-9a-f ]+<\.plt>: - [0-9a-f ]+: 00 00 00 08 add\.p gr0,gr8,gr0 --[0-9a-f ]+: c0 1a 00 06 bra [0-9a-f]+ -+[0-9a-f ]+: c0 1a 00 06 bra [0-9a-f]+ <.*> - [0-9a-f ]+: 00 00 00 00 add\.p gr0,gr0,gr0 --[0-9a-f ]+: c0 1a 00 04 bra [0-9a-f]+ -+[0-9a-f ]+: c0 1a 00 04 bra [0-9a-f]+ <.*> - [0-9a-f ]+: 00 00 00 10 add\.p gr0,gr16,gr0 --[0-9a-f ]+: c0 1a 00 02 bra [0-9a-f]+ -+[0-9a-f ]+: c0 1a 00 02 bra [0-9a-f]+ <.*> - [0-9a-f ]+: 00 00 00 18 add\.p gr0,gr24,gr0 - [0-9a-f ]+: 88 08 f1 40 ldd @\(gr15,gr0\),gr4 - [0-9a-f ]+: 80 30 40 00 jmpl @\(gr4,gr0\) -@@ -22,7 +22,7 @@ Disassembly of section \.plt: - Disassembly of section \.text: - - [0-9a-f ]+: --[0-9a-f ]+: fe 3f ff fe call [0-9a-f]+ -+[0-9a-f ]+: fe 3f ff fe call [0-9a-f]+ <.*> - [0-9a-f ]+: 80 40 f0 0c addi gr15,12,gr0 - [0-9a-f ]+: 80 fc 00 24 setlos 0x24,gr0 - [0-9a-f ]+: 80 f4 00 20 setlo 0x20,gr0 -@@ -48,7 +48,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: R_FRV_32 WFb - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x20>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 00 03 b0 .* - [0-9a-f ]+: R_FRV_FUNCDESC_VALUE WF9 - [0-9a-f ]+: 00 00 00 02 .* -diff --git a/ld/testsuite/ld-frv/fdpic-pie-7.d b/ld/testsuite/ld-frv/fdpic-pie-7.d -index 7ebd0b7..7eceec2 100644 ---- a/ld/testsuite/ld-frv/fdpic-pie-7.d -+++ b/ld/testsuite/ld-frv/fdpic-pie-7.d -@@ -42,7 +42,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: R_FRV_32 \.text - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x8>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 00 00 08 add\.p gr0,gr8,gr0 - [0-9a-f ]+: R_FRV_FUNCDESC_VALUE \.text - [0-9a-f ]+: 00 00 00 02 add\.p gr0,fp,gr0 -diff --git a/ld/testsuite/ld-frv/fdpic-pie-8.d b/ld/testsuite/ld-frv/fdpic-pie-8.d -index 0de4a81..8f7c344 100644 ---- a/ld/testsuite/ld-frv/fdpic-pie-8.d -+++ b/ld/testsuite/ld-frv/fdpic-pie-8.d -@@ -42,7 +42,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: R_FRV_32 \.text - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x18>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 00 00 08 add\.p gr0,gr8,gr0 - [0-9a-f ]+: R_FRV_FUNCDESC_VALUE \.text - [0-9a-f ]+: 00 00 00 02 add\.p gr0,fp,gr0 -diff --git a/ld/testsuite/ld-frv/fdpic-shared-1.d b/ld/testsuite/ld-frv/fdpic-shared-1.d -index 7f88e18..4968deb 100644 ---- a/ld/testsuite/ld-frv/fdpic-shared-1.d -+++ b/ld/testsuite/ld-frv/fdpic-shared-1.d -@@ -42,7 +42,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: R_FRV_32 \.text - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x8>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 00 00 04 add\.p gr0,gr4,gr0 - [0-9a-f ]+: R_FRV_FUNCDESC_VALUE \.text - [0-9a-f ]+: 00 00 00 00 add\.p gr0,gr0,gr0 -diff --git a/ld/testsuite/ld-frv/fdpic-shared-2.d b/ld/testsuite/ld-frv/fdpic-shared-2.d -index cb4b68d..13e140a 100644 ---- a/ld/testsuite/ld-frv/fdpic-shared-2.d -+++ b/ld/testsuite/ld-frv/fdpic-shared-2.d -@@ -9,11 +9,11 @@ Disassembly of section \.plt: - - [0-9a-f ]+ <\.plt>: - [0-9a-f ]+: 00 00 00 00 add\.p gr0,gr0,gr0 --[0-9a-f ]+: c0 1a 00 06 bra [0-9a-f]+ -+[0-9a-f ]+: c0 1a 00 06 bra [0-9a-f]+ <.*> - [0-9a-f ]+: 00 00 00 10 add\.p gr0,gr16,gr0 --[0-9a-f ]+: c0 1a 00 04 bra [0-9a-f]+ -+[0-9a-f ]+: c0 1a 00 04 bra [0-9a-f]+ <.*> - [0-9a-f ]+: 00 00 00 18 add\.p gr0,gr24,gr0 --[0-9a-f ]+: c0 1a 00 02 bra [0-9a-f]+ -+[0-9a-f ]+: c0 1a 00 02 bra [0-9a-f]+ <.*> - [0-9a-f ]+: 00 00 00 08 add\.p gr0,gr8,gr0 - [0-9a-f ]+: 88 08 f1 40 ldd @\(gr15,gr0\),gr4 - [0-9a-f ]+: 80 30 40 00 jmpl @\(gr4,gr0\) -@@ -22,7 +22,7 @@ Disassembly of section \.plt: - Disassembly of section \.text: - - [0-9a-f ]+: --[0-9a-f ]+: fe 3f ff fe call [0-9a-f]+ -+[0-9a-f ]+: fe 3f ff fe call [0-9a-f]+ <.*> - - [0-9a-f ]+: - [0-9a-f ]+: 80 40 f0 10 addi gr15,16,gr0 -@@ -55,7 +55,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: R_FRV_32 GFb - [0-9A-F ]+isassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x20>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 00 04 a4 .* - [0-9a-f ]+: R_FRV_FUNCDESC_VALUE GF9 - [0-9a-f ]+: 00 00 00 00 .* -diff --git a/ld/testsuite/ld-frv/fdpic-shared-3.d b/ld/testsuite/ld-frv/fdpic-shared-3.d -index fceb16a..fc59185 100644 ---- a/ld/testsuite/ld-frv/fdpic-shared-3.d -+++ b/ld/testsuite/ld-frv/fdpic-shared-3.d -@@ -42,7 +42,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: R_FRV_32 \.text - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x38>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 00 00 04 add\.p gr0,gr4,gr0 - [0-9a-f ]+: R_FRV_FUNCDESC_VALUE \.text - [0-9a-f ]+: 00 00 00 00 add\.p gr0,gr0,gr0 -diff --git a/ld/testsuite/ld-frv/fdpic-shared-4.d b/ld/testsuite/ld-frv/fdpic-shared-4.d -index 4045562..298ae28 100644 ---- a/ld/testsuite/ld-frv/fdpic-shared-4.d -+++ b/ld/testsuite/ld-frv/fdpic-shared-4.d -@@ -42,7 +42,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: R_FRV_32 \.text - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x18>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 00 00 04 add\.p gr0,gr4,gr0 - [0-9a-f ]+: R_FRV_FUNCDESC_VALUE \.text - [0-9a-f ]+: 00 00 00 00 add\.p gr0,gr0,gr0 -diff --git a/ld/testsuite/ld-frv/fdpic-shared-5.d b/ld/testsuite/ld-frv/fdpic-shared-5.d -index 009c62c..dbfd143 100644 ---- a/ld/testsuite/ld-frv/fdpic-shared-5.d -+++ b/ld/testsuite/ld-frv/fdpic-shared-5.d -@@ -9,11 +9,11 @@ Disassembly of section \.plt: - - [0-9a-f ]+<\.plt>: - [0-9a-f ]+: 00 00 00 10 add\.p gr0,gr16,gr0 --[0-9a-f ]+: c0 1a 00 06 bra [0-9a-f]+ -+[0-9a-f ]+: c0 1a 00 06 bra [0-9a-f]+ <.*> - [0-9a-f ]+: 00 00 00 08 add\.p gr0,gr8,gr0 --[0-9a-f ]+: c0 1a 00 04 bra [0-9a-f]+ -+[0-9a-f ]+: c0 1a 00 04 bra [0-9a-f]+ <.*> - [0-9a-f ]+: 00 00 00 00 add\.p gr0,gr0,gr0 --[0-9a-f ]+: c0 1a 00 02 bra [0-9a-f]+ -+[0-9a-f ]+: c0 1a 00 02 bra [0-9a-f]+ <.*> - [0-9a-f ]+: 00 00 00 18 add\.p gr0,gr24,gr0 - [0-9a-f ]+: 88 08 f1 40 ldd @\(gr15,gr0\),gr4 - [0-9a-f ]+: 80 30 40 00 jmpl @\(gr4,gr0\) -@@ -22,7 +22,7 @@ Disassembly of section \.plt: - Disassembly of section \.text: - - [0-9a-f ]+: --[0-9a-f ]+: fe 3f ff fe call [0-9a-f]+ -+[0-9a-f ]+: fe 3f ff fe call [0-9a-f]+ <.*> - [0-9a-f ]+: 80 40 f0 0c addi gr15,12,gr0 - [0-9a-f ]+: 80 fc 00 24 setlos 0x24,gr0 - [0-9a-f ]+: 80 f4 00 20 setlo 0x20,gr0 -@@ -48,7 +48,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: R_FRV_32 UFb - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x20>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 00 04 7c .* - [0-9a-f ]+: R_FRV_FUNCDESC_VALUE UF9 - [0-9a-f ]+: 00 00 00 00 .* -diff --git a/ld/testsuite/ld-frv/fdpic-shared-6.d b/ld/testsuite/ld-frv/fdpic-shared-6.d -index 06a335f..2191af8 100644 ---- a/ld/testsuite/ld-frv/fdpic-shared-6.d -+++ b/ld/testsuite/ld-frv/fdpic-shared-6.d -@@ -9,11 +9,11 @@ Disassembly of section \.plt: - - [0-9a-f ]+<\.plt>: - [0-9a-f ]+: 00 00 00 08 add\.p gr0,gr8,gr0 --[0-9a-f ]+: c0 1a 00 06 bra [0-9a-f]+ -+[0-9a-f ]+: c0 1a 00 06 bra [0-9a-f]+ <.*> - [0-9a-f ]+: 00 00 00 00 add\.p gr0,gr0,gr0 --[0-9a-f ]+: c0 1a 00 04 bra [0-9a-f]+ -+[0-9a-f ]+: c0 1a 00 04 bra [0-9a-f]+ <.*> - [0-9a-f ]+: 00 00 00 10 add\.p gr0,gr16,gr0 --[0-9a-f ]+: c0 1a 00 02 bra [0-9a-f]+ -+[0-9a-f ]+: c0 1a 00 02 bra [0-9a-f]+ <.*> - [0-9a-f ]+: 00 00 00 18 add\.p gr0,gr24,gr0 - [0-9a-f ]+: 88 08 f1 40 ldd @\(gr15,gr0\),gr4 - [0-9a-f ]+: 80 30 40 00 jmpl @\(gr4,gr0\) -@@ -22,7 +22,7 @@ Disassembly of section \.plt: - Disassembly of section \.text: - - [0-9a-f ]+: --[0-9a-f ]+: fe 3f ff fe call [0-9a-f]+ -+[0-9a-f ]+: fe 3f ff fe call [0-9a-f]+ <.*> - [0-9a-f ]+: 80 40 f0 0c addi gr15,12,gr0 - [0-9a-f ]+: 80 fc 00 24 setlos 0x24,gr0 - [0-9a-f ]+: 80 f4 00 20 setlo 0x20,gr0 -@@ -48,7 +48,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: R_FRV_32 WFb - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x20>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 00 03 60 .* - [0-9a-f ]+: R_FRV_FUNCDESC_VALUE WF9 - [0-9a-f ]+: 00 00 00 00 .* -diff --git a/ld/testsuite/ld-frv/fdpic-shared-7.d b/ld/testsuite/ld-frv/fdpic-shared-7.d -index 2004a84..071dd8f 100644 ---- a/ld/testsuite/ld-frv/fdpic-shared-7.d -+++ b/ld/testsuite/ld-frv/fdpic-shared-7.d -@@ -42,7 +42,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: R_FRV_32 \.text - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x8>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 00 00 08 add\.p gr0,gr8,gr0 - [0-9a-f ]+: R_FRV_FUNCDESC_VALUE \.text - [0-9a-f ]+: 00 00 00 00 add\.p gr0,gr0,gr0 -diff --git a/ld/testsuite/ld-frv/fdpic-shared-8.d b/ld/testsuite/ld-frv/fdpic-shared-8.d -index 543d313..e50e7b9 100644 ---- a/ld/testsuite/ld-frv/fdpic-shared-8.d -+++ b/ld/testsuite/ld-frv/fdpic-shared-8.d -@@ -42,7 +42,7 @@ Disassembly of section \.text: - [0-9a-f ]+: R_FRV_32 \.text - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x38>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 00 00 08 add\.p gr0,gr8,gr0 - [0-9a-f ]+: R_FRV_FUNCDESC_VALUE \.text - [0-9a-f ]+: 00 00 00 00 add\.p gr0,gr0,gr0 -diff --git a/ld/testsuite/ld-frv/fdpic-shared-local-2.d b/ld/testsuite/ld-frv/fdpic-shared-local-2.d -index 51ca126..0074172 100644 ---- a/ld/testsuite/ld-frv/fdpic-shared-local-2.d -+++ b/ld/testsuite/ld-frv/fdpic-shared-local-2.d -@@ -42,7 +42,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: R_FRV_32 \.text - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x38>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 00 00 04 add\.p gr0,gr4,gr0 - [0-9a-f ]+: R_FRV_FUNCDESC_VALUE \.text - [0-9a-f ]+: 00 00 00 00 add\.p gr0,gr0,gr0 -diff --git a/ld/testsuite/ld-frv/fdpic-shared-local-8.d b/ld/testsuite/ld-frv/fdpic-shared-local-8.d -index 8d2c67e..7d238e9 100644 ---- a/ld/testsuite/ld-frv/fdpic-shared-local-8.d -+++ b/ld/testsuite/ld-frv/fdpic-shared-local-8.d -@@ -42,7 +42,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: R_FRV_32 \.text - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x38>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 00 00 08 add\.p gr0,gr8,gr0 - [0-9a-f ]+: R_FRV_FUNCDESC_VALUE \.text - [0-9a-f ]+: 00 00 00 00 add\.p gr0,gr0,gr0 -diff --git a/ld/testsuite/ld-frv/fdpic-static-1.d b/ld/testsuite/ld-frv/fdpic-static-1.d -index 1c4dce1..9bab5d7 100644 ---- a/ld/testsuite/ld-frv/fdpic-static-1.d -+++ b/ld/testsuite/ld-frv/fdpic-static-1.d -@@ -51,7 +51,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x8>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 - [0-9a-f ]+: 00 01 41 18 sub\.p gr20,gr24,gr0 - -diff --git a/ld/testsuite/ld-frv/fdpic-static-2.d b/ld/testsuite/ld-frv/fdpic-static-2.d -index d2b794f..e388e2c 100644 ---- a/ld/testsuite/ld-frv/fdpic-static-2.d -+++ b/ld/testsuite/ld-frv/fdpic-static-2.d -@@ -67,7 +67,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x38>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 - [0-9a-f ]+: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 - [0-9a-f ]+: 00 01 00 98 addx\.p gr16,gr24,gr0,icc0 -diff --git a/ld/testsuite/ld-frv/fdpic-static-6.d b/ld/testsuite/ld-frv/fdpic-static-6.d -index 491b7c7..1c197a2 100644 ---- a/ld/testsuite/ld-frv/fdpic-static-6.d -+++ b/ld/testsuite/ld-frv/fdpic-static-6.d -@@ -36,7 +36,7 @@ Disassembly of section \.dat[0-9a-f ]+: - \.\.\. - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x38>: -+[0-9a-f ]+<.got>: - \.\.\. - - [0-9a-f ]+<_GLOBAL_OFFSET_TABLE_>: -diff --git a/ld/testsuite/ld-frv/fdpic-static-7.d b/ld/testsuite/ld-frv/fdpic-static-7.d -index 6f8313c..77899f6 100644 ---- a/ld/testsuite/ld-frv/fdpic-static-7.d -+++ b/ld/testsuite/ld-frv/fdpic-static-7.d -@@ -51,7 +51,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x8>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 - [0-9a-f ]+: 00 01 41 18 sub\.p gr20,gr24,gr0 - -diff --git a/ld/testsuite/ld-frv/fdpic-static-8.d b/ld/testsuite/ld-frv/fdpic-static-8.d -index c0cc732..03e795e 100644 ---- a/ld/testsuite/ld-frv/fdpic-static-8.d -+++ b/ld/testsuite/ld-frv/fdpic-static-8.d -@@ -67,7 +67,7 @@ Disassembly of section \.dat[0-9a-f ]+: - [0-9a-f ]+: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 - Disassembly of section \.got: - --[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x38>: -+[0-9a-f ]+<.got>: - [0-9a-f ]+: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 - [0-9a-f ]+: 00 01 41 88 subx\.p gr20,gr8,gr0,icc0 - [0-9a-f ]+: 00 01 00 9c addx\.p gr16,gr28,gr0,icc0 -diff --git a/ld/testsuite/ld-frv/tls-dynamic-2.d b/ld/testsuite/ld-frv/tls-dynamic-2.d -index 07bf332..d943e86 100644 ---- a/ld/testsuite/ld-frv/tls-dynamic-2.d -+++ b/ld/testsuite/ld-frv/tls-dynamic-2.d -@@ -155,7 +155,7 @@ Disassembly of section \.text: - [0-9a-f ]+: 80 88 00 00 nop - Disassembly of section \.got: - --[0-9a-f ]+<(__data_start|_GLOBAL_OFFSET_TABLE_-0x60)>: -+[0-9a-f ]+<.*>: - [0-9a-f ]+: 00 01 02 c0 .* - [0-9a-f ]+: 00 00 08 21 .* - [0-9a-f ]+: 00 01 02 c0 .* -diff --git a/ld/testsuite/ld-frv/tls-initial-shared-2.d b/ld/testsuite/ld-frv/tls-initial-shared-2.d -index e4ea6a1..7f73c27 100644 ---- a/ld/testsuite/ld-frv/tls-initial-shared-2.d -+++ b/ld/testsuite/ld-frv/tls-initial-shared-2.d -@@ -149,7 +149,7 @@ Disassembly of section \.text: - [0-9a-f ]+: 92 c8 f0 5c ldi @\(gr15,92\),gr9 - Disassembly of section \.got: - --[0-9a-f ]+<(__data_start|_GLOBAL_OFFSET_TABLE_-0x20)>: -+[0-9a-f ]+<.*>: - [0-9a-f ]+: 00 00 00 00 add\.p gr0,gr0,gr0 - [0-9a-f ]+: R_FRV_TLSDESC_VALUE \.tbss - [0-9a-f ]+: 00 00 10 11 add\.p sp,gr17,gr0 -diff --git a/ld/testsuite/ld-frv/tls-relax-shared-2.d b/ld/testsuite/ld-frv/tls-relax-shared-2.d -index c07bb35..7519247 100644 ---- a/ld/testsuite/ld-frv/tls-relax-shared-2.d -+++ b/ld/testsuite/ld-frv/tls-relax-shared-2.d -@@ -151,7 +151,7 @@ Disassembly of section \.text: - [0-9a-f ]+: 82 30 80 00 calll @\(gr8,gr0\) - Disassembly of section \.got: - --[0-9a-f ]+<(__data_start|_GLOBAL_OFFSET_TABLE_-0x60)>: -+[0-9a-f ]+<.*>: - [0-9a-f ]+: 00 00 00 00 add\.p gr0,gr0,gr0 - [0-9a-f ]+: R_FRV_TLSDESC_VALUE \.tbss - [0-9a-f ]+: 00 00 17 f3 \*unknown\* -diff --git a/ld/testsuite/ld-frv/tls-shared-2.d b/ld/testsuite/ld-frv/tls-shared-2.d -index bd92cdb..1e6b533 100644 ---- a/ld/testsuite/ld-frv/tls-shared-2.d -+++ b/ld/testsuite/ld-frv/tls-shared-2.d -@@ -151,7 +151,7 @@ Disassembly of section \.text: - [0-9a-f ]+: 82 30 80 00 calll @\(gr8,gr0\) - Disassembly of section \.got: - --[0-9a-f ]+<(__data_start|_GLOBAL_OFFSET_TABLE_-0x60)>: -+[0-9a-f ]+<.*>: - [0-9a-f ]+: 00 00 00 00 add\.p gr0,gr0,gr0 - [0-9a-f ]+: R_FRV_TLSDESC_VALUE \.tbss - [0-9a-f ]+: 00 00 17 f3 \*unknown\* -diff --git a/ld/testsuite/ld-i386/plt-nacl.pd b/ld/testsuite/ld-i386/plt-nacl.pd -index 0f8e114..d95e888e 100644 ---- a/ld/testsuite/ld-i386/plt-nacl.pd -+++ b/ld/testsuite/ld-i386/plt-nacl.pd -@@ -8,7 +8,7 @@ - - Disassembly of section .plt: - --[0-9a-f]+ : -+[0-9a-f]+ <.plt>: - +[0-9a-f]+: ff 35 ([0-9a-f]{2} ){4} * pushl 0x[0-9a-f]+ - +[0-9a-f]+: 8b 0d ([0-9a-f]{2} ){4} * mov 0x[0-9a-f]+,%ecx - +[0-9a-f]+: 83 e1 e0 and \$0xffffffe0,%ecx -@@ -87,7 +87,7 @@ Disassembly of section .plt: - +[0-9a-f]+: 90 nop - +[0-9a-f]+: 90 nop - +[0-9a-f]+: 68 00 00 00 00 push \$0x0 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <.plt> - +[0-9a-f]+: 90 nop - +[0-9a-f]+: 90 nop - +[0-9a-f]+: 90 nop -@@ -137,7 +137,7 @@ Disassembly of section .plt: - +[0-9a-f]+: 90 nop - +[0-9a-f]+: 90 nop - +[0-9a-f]+: 68 08 00 00 00 push \$0x8 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <.plt> - +[0-9a-f]+: 90 nop - +[0-9a-f]+: 90 nop - +[0-9a-f]+: 90 nop -diff --git a/ld/testsuite/ld-i386/plt-pic-nacl.pd b/ld/testsuite/ld-i386/plt-pic-nacl.pd -index 77e8a2a..03aa007 100644 ---- a/ld/testsuite/ld-i386/plt-pic-nacl.pd -+++ b/ld/testsuite/ld-i386/plt-pic-nacl.pd -@@ -8,7 +8,7 @@ - - Disassembly of section .plt: - --[0-9a-f]+ : -+[0-9a-f]+ <.plt>: - +[0-9a-f]+: ff 73 04 pushl 0x4\(%ebx\) - +[0-9a-f]+: 8b 4b 08 mov 0x8\(%ebx\),%ecx - +[0-9a-f]+: 83 e1 e0 and \$0xffffffe0,%ecx -@@ -93,7 +93,7 @@ Disassembly of section .plt: - +[0-9a-f]+: 90 nop - +[0-9a-f]+: 90 nop - +[0-9a-f]+: 68 00 00 00 00 push \$0x0 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <.plt> - +[0-9a-f]+: 90 nop - +[0-9a-f]+: 90 nop - +[0-9a-f]+: 90 nop -@@ -143,7 +143,7 @@ Disassembly of section .plt: - +[0-9a-f]+: 90 nop - +[0-9a-f]+: 90 nop - +[0-9a-f]+: 68 08 00 00 00 push \$0x8 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <.plt> - +[0-9a-f]+: 90 nop - +[0-9a-f]+: 90 nop - +[0-9a-f]+: 90 nop -diff --git a/ld/testsuite/ld-i386/plt-pic.pd b/ld/testsuite/ld-i386/plt-pic.pd -index 5fe2930..4122c46 100644 ---- a/ld/testsuite/ld-i386/plt-pic.pd -+++ b/ld/testsuite/ld-i386/plt-pic.pd -@@ -8,7 +8,7 @@ - - Disassembly of section .plt: - --[0-9a-f]+ : -+[0-9a-f]+ <.plt>: - +[0-9a-f]+: ff b3 04 00 00 00 pushl 0x4\(%ebx\) - +[0-9a-f]+: ff a3 08 00 00 00 jmp \*0x8\(%ebx\) - #... -@@ -16,9 +16,9 @@ Disassembly of section .plt: - [0-9a-f]+ : - +[0-9a-f]+: ff a3 ([0-9a-f]{2} ){4} * jmp \*0x[0-9a-f]+\(%ebx\) - +[0-9a-f]+: 68 00 00 00 00 push \$0x0 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <.plt> - - [0-9a-f]+ : - +[0-9a-f]+: ff a3 ([0-9a-f]{2} ){4} * jmp \*0x[0-9a-f]+\(%ebx\) - +[0-9a-f]+: 68 08 00 00 00 push \$0x8 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <.plt> -diff --git a/ld/testsuite/ld-i386/plt.pd b/ld/testsuite/ld-i386/plt.pd -index 1b1f57d..a6e6d35 100644 ---- a/ld/testsuite/ld-i386/plt.pd -+++ b/ld/testsuite/ld-i386/plt.pd -@@ -8,7 +8,7 @@ - - Disassembly of section .plt: - --[0-9a-f]+ : -+[0-9a-f]+ <.plt>: - +[0-9a-f]+: ff 35 ([0-9a-f]{2} ){4} * pushl 0x[0-9a-f]+ - +[0-9a-f]+: ff 25 ([0-9a-f]{2} ){4} * jmp \*0x[0-9a-f]+ - #... -@@ -16,9 +16,9 @@ Disassembly of section .plt: - [0-9a-f]+ : - +[0-9a-f]+: ff 25 ([0-9a-f]{2} ){4} * jmp \*0x[0-9a-f]+ - +[0-9a-f]+: 68 00 00 00 00 push \$0x0 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <.plt> - - [0-9a-f]+ : - +[0-9a-f]+: ff 25 ([0-9a-f]{2} ){4} * jmp \*0x[0-9a-f]+ - +[0-9a-f]+: 68 08 00 00 00 push \$0x8 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <.plt> -diff --git a/ld/testsuite/ld-i386/pr19636-1d-nacl.d b/ld/testsuite/ld-i386/pr19636-1d-nacl.d -index fef5eea..489eab6 100644 ---- a/ld/testsuite/ld-i386/pr19636-1d-nacl.d -+++ b/ld/testsuite/ld-i386/pr19636-1d-nacl.d -@@ -121,4 +121,4 @@ Disassembly of section .text: - 0+80 <_start>: - [ ]*[a-f0-9]+: 3b 80 f8 ff ff ff cmp -0x8\(%eax\),%eax - [ ]*[a-f0-9]+: ff a0 fc ff ff ff jmp \*-0x4\(%eax\) --[ ]*[a-f0-9]+: e8 af ff ff ff call 40 <_start-0x40> -+[ ]*[a-f0-9]+: e8 af ff ff ff call 40 <.*> -diff --git a/ld/testsuite/ld-i386/pr19636-1d.d b/ld/testsuite/ld-i386/pr19636-1d.d -index 16e316c..ac86786 100644 ---- a/ld/testsuite/ld-i386/pr19636-1d.d -+++ b/ld/testsuite/ld-i386/pr19636-1d.d -@@ -23,4 +23,4 @@ Disassembly of section .text: - 0+e0 <_start>: - [ ]*[a-f0-9]+: 3b 80 f8 ff ff ff cmp -0x8\(%eax\),%eax - [ ]*[a-f0-9]+: ff a0 fc ff ff ff jmp \*-0x4\(%eax\) --[ ]*[a-f0-9]+: e8 df ff ff ff call d0 <_start-0x10> -+[ ]*[a-f0-9]+: e8 df ff ff ff call d0 <.*> -diff --git a/ld/testsuite/ld-i386/pr19636-2c-nacl.d b/ld/testsuite/ld-i386/pr19636-2c-nacl.d -index 7543e0e..7a6cce1 100644 ---- a/ld/testsuite/ld-i386/pr19636-2c-nacl.d -+++ b/ld/testsuite/ld-i386/pr19636-2c-nacl.d -@@ -121,6 +121,6 @@ Disassembly of section .text: - 0+80 <_start>: - [ ]*[a-f0-9]+: 3b 80 fc ff ff ff cmp -0x4\(%eax\),%eax - [ ]*[a-f0-9]+: ff a0 fc ff ff ff jmp \*-0x4\(%eax\) --[ ]*[a-f0-9]+: e8 af ff ff ff call 40 <_start-0x40> -+[ ]*[a-f0-9]+: e8 af ff ff ff call 40 <.*> - [ ]*[a-f0-9]+: 3d 00 00 00 00 cmp \$0x0,%eax --[ ]*[a-f0-9]+: e8 fc ff ff ff call 97 <_start\+0x17> -+[ ]*[a-f0-9]+: e8 fc ff ff ff call 97 <.*> -diff --git a/ld/testsuite/ld-i386/pr19636-2c.d b/ld/testsuite/ld-i386/pr19636-2c.d -index 98b53aa..08db119 100644 ---- a/ld/testsuite/ld-i386/pr19636-2c.d -+++ b/ld/testsuite/ld-i386/pr19636-2c.d -@@ -23,6 +23,6 @@ Disassembly of section .text: - 0+150 <_start>: - [ ]*[a-f0-9]+: 3b 80 fc ff ff ff cmp -0x4\(%eax\),%eax - [ ]*[a-f0-9]+: ff a0 fc ff ff ff jmp \*-0x4\(%eax\) --[ ]*[a-f0-9]+: e8 df ff ff ff call 140 <_start-0x10> -+[ ]*[a-f0-9]+: e8 df ff ff ff call 140 <.*> - [ ]*[a-f0-9]+: 3d 00 00 00 00 cmp \$0x0,%eax --[ ]*[a-f0-9]+: e8 fc ff ff ff call 167 <_start\+0x17> -+[ ]*[a-f0-9]+: e8 fc ff ff ff call 167 <.*> -diff --git a/ld/testsuite/ld-ifunc/ifunc-21-x86-64.d b/ld/testsuite/ld-ifunc/ifunc-21-x86-64.d -index 4e3582d..fd42acc 100644 ---- a/ld/testsuite/ld-ifunc/ifunc-21-x86-64.d -+++ b/ld/testsuite/ld-ifunc/ifunc-21-x86-64.d -@@ -9,11 +9,11 @@ - Disassembly of section .text: - - 0+4000c8 <__start>: -- +[a-f0-9]+: ff 15 2a 00 20 00 callq \*0x20002a\(%rip\) # 6000f8 -- +[a-f0-9]+: ff 25 24 00 20 00 jmpq \*0x200024\(%rip\) # 6000f8 -- +[a-f0-9]+: 48 03 05 1d 00 20 00 add 0x20001d\(%rip\),%rax # 6000f8 -- +[a-f0-9]+: 48 8b 05 16 00 20 00 mov 0x200016\(%rip\),%rax # 6000f8 -- +[a-f0-9]+: 48 85 05 0f 00 20 00 test %rax,0x20000f\(%rip\) # 6000f8 -+ +[a-f0-9]+: ff 15 2a 00 20 00 callq \*0x20002a\(%rip\) # 6000f8 <.got> -+ +[a-f0-9]+: ff 25 24 00 20 00 jmpq \*0x200024\(%rip\) # 6000f8 <.got> -+ +[a-f0-9]+: 48 03 05 1d 00 20 00 add 0x20001d\(%rip\),%rax # 6000f8 <.got> -+ +[a-f0-9]+: 48 8b 05 16 00 20 00 mov 0x200016\(%rip\),%rax # 6000f8 <.got> -+ +[a-f0-9]+: 48 85 05 0f 00 20 00 test %rax,0x20000f\(%rip\) # 6000f8 <.got> - +[a-f0-9]+: 48 c7 c0 f1 00 40 00 mov \$0x4000f1,%rax - - 0+4000f0 : -diff --git a/ld/testsuite/ld-ifunc/ifunc-22-x86-64.d b/ld/testsuite/ld-ifunc/ifunc-22-x86-64.d -index 4e3582d..fd42acc 100644 ---- a/ld/testsuite/ld-ifunc/ifunc-22-x86-64.d -+++ b/ld/testsuite/ld-ifunc/ifunc-22-x86-64.d -@@ -9,11 +9,11 @@ - Disassembly of section .text: - - 0+4000c8 <__start>: -- +[a-f0-9]+: ff 15 2a 00 20 00 callq \*0x20002a\(%rip\) # 6000f8 -- +[a-f0-9]+: ff 25 24 00 20 00 jmpq \*0x200024\(%rip\) # 6000f8 -- +[a-f0-9]+: 48 03 05 1d 00 20 00 add 0x20001d\(%rip\),%rax # 6000f8 -- +[a-f0-9]+: 48 8b 05 16 00 20 00 mov 0x200016\(%rip\),%rax # 6000f8 -- +[a-f0-9]+: 48 85 05 0f 00 20 00 test %rax,0x20000f\(%rip\) # 6000f8 -+ +[a-f0-9]+: ff 15 2a 00 20 00 callq \*0x20002a\(%rip\) # 6000f8 <.got> -+ +[a-f0-9]+: ff 25 24 00 20 00 jmpq \*0x200024\(%rip\) # 6000f8 <.got> -+ +[a-f0-9]+: 48 03 05 1d 00 20 00 add 0x20001d\(%rip\),%rax # 6000f8 <.got> -+ +[a-f0-9]+: 48 8b 05 16 00 20 00 mov 0x200016\(%rip\),%rax # 6000f8 <.got> -+ +[a-f0-9]+: 48 85 05 0f 00 20 00 test %rax,0x20000f\(%rip\) # 6000f8 <.got> - +[a-f0-9]+: 48 c7 c0 f1 00 40 00 mov \$0x4000f1,%rax - - 0+4000f0 : -diff --git a/ld/testsuite/ld-ifunc/pr17154-i386.d b/ld/testsuite/ld-ifunc/pr17154-i386.d -index e526223..16fcd4e 100644 ---- a/ld/testsuite/ld-ifunc/pr17154-i386.d -+++ b/ld/testsuite/ld-ifunc/pr17154-i386.d -@@ -5,7 +5,7 @@ - #target: x86_64-*-* i?86-*-* - - #... --0+1d0 <\*ABS\*@plt-0x10>: -+0+1d0 <.*>: - [ ]*[a-f0-9]+: ff b3 04 00 00 00 pushl 0x4\(%ebx\) - [ ]*[a-f0-9]+: ff a3 08 00 00 00 jmp \*0x8\(%ebx\) - [ ]*[a-f0-9]+: 00 00 add %al,\(%eax\) -@@ -14,22 +14,22 @@ - 0+1e0 <\*ABS\*@plt>: - [ ]*[a-f0-9]+: ff a3 0c 00 00 00 jmp \*0xc\(%ebx\) - [ ]*[a-f0-9]+: 68 18 00 00 00 push \$0x18 --[ ]*[a-f0-9]+: e9 e0 ff ff ff jmp 1d0 <\*ABS\*@plt-0x10> -+[ ]*[a-f0-9]+: e9 e0 ff ff ff jmp 1d0 <.*> - - 0+1f0 : - [ ]*[a-f0-9]+: ff a3 10 00 00 00 jmp \*0x10\(%ebx\) - [ ]*[a-f0-9]+: 68 00 00 00 00 push \$0x0 --[ ]*[a-f0-9]+: e9 d0 ff ff ff jmp 1d0 <\*ABS\*@plt-0x10> -+[ ]*[a-f0-9]+: e9 d0 ff ff ff jmp 1d0 <.*> - - 0+200 : - [ ]*[a-f0-9]+: ff a3 14 00 00 00 jmp \*0x14\(%ebx\) - [ ]*[a-f0-9]+: 68 08 00 00 00 push \$0x8 --[ ]*[a-f0-9]+: e9 c0 ff ff ff jmp 1d0 <\*ABS\*@plt-0x10> -+[ ]*[a-f0-9]+: e9 c0 ff ff ff jmp 1d0 <.*> - - 0+210 <\*ABS\*@plt>: - [ ]*[a-f0-9]+: ff a3 18 00 00 00 jmp \*0x18\(%ebx\) - [ ]*[a-f0-9]+: 68 10 00 00 00 push \$0x10 --[ ]*[a-f0-9]+: e9 b0 ff ff ff jmp 1d0 <\*ABS\*@plt-0x10> -+[ ]*[a-f0-9]+: e9 b0 ff ff ff jmp 1d0 <.*> - - Disassembly of section .text: - -diff --git a/ld/testsuite/ld-ifunc/pr17154-x86-64.d b/ld/testsuite/ld-ifunc/pr17154-x86-64.d -index 9d2a688..1cdcf50 100644 ---- a/ld/testsuite/ld-ifunc/pr17154-x86-64.d -+++ b/ld/testsuite/ld-ifunc/pr17154-x86-64.d -@@ -5,30 +5,30 @@ - #target: x86_64-*-* - - #... --0+2b0 <\*ABS\*\+0x30a@plt-0x10>: --[ ]*[a-f0-9]+: ff 35 5a 01 20 00 pushq 0x20015a\(%rip\) # 200410 <_GLOBAL_OFFSET_TABLE_\+0x8> --[ ]*[a-f0-9]+: ff 25 5c 01 20 00 jmpq \*0x20015c\(%rip\) # 200418 <_GLOBAL_OFFSET_TABLE_\+0x10> -+0+2b0 <.*>: -+[ ]*[a-f0-9]+: ff 35 5a 01 20 00 pushq 0x20015a\(%rip\) # 200410 <.*> -+[ ]*[a-f0-9]+: ff 25 5c 01 20 00 jmpq \*0x20015c\(%rip\) # 200418 <.*> - [ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) - - 0+2c0 <\*ABS\*\+0x30a@plt>: --[ ]*[a-f0-9]+: ff 25 5a 01 20 00 jmpq \*0x20015a\(%rip\) # 200420 <_GLOBAL_OFFSET_TABLE_\+0x18> -+[ ]*[a-f0-9]+: ff 25 5a 01 20 00 jmpq \*0x20015a\(%rip\) # 200420 <.*> - [ ]*[a-f0-9]+: 68 03 00 00 00 pushq \$0x3 --[ ]*[a-f0-9]+: e9 e0 ff ff ff jmpq 2b0 <\*ABS\*\+0x30a@plt-0x10> -+[ ]*[a-f0-9]+: e9 e0 ff ff ff jmpq 2b0 <.*> - - 0+2d0 : --[ ]*[a-f0-9]+: ff 25 52 01 20 00 jmpq \*0x200152\(%rip\) # 200428 <_GLOBAL_OFFSET_TABLE_\+0x20> -+[ ]*[a-f0-9]+: ff 25 52 01 20 00 jmpq \*0x200152\(%rip\) # 200428 <.*> - [ ]*[a-f0-9]+: 68 00 00 00 00 pushq \$0x0 --[ ]*[a-f0-9]+: e9 d0 ff ff ff jmpq 2b0 <\*ABS\*\+0x30a@plt-0x10> -+[ ]*[a-f0-9]+: e9 d0 ff ff ff jmpq 2b0 <.*> - - 0+2e0 : --[ ]*[a-f0-9]+: ff 25 4a 01 20 00 jmpq \*0x20014a\(%rip\) # 200430 <_GLOBAL_OFFSET_TABLE_\+0x28> -+[ ]*[a-f0-9]+: ff 25 4a 01 20 00 jmpq \*0x20014a\(%rip\) # 200430 <.*> - [ ]*[a-f0-9]+: 68 01 00 00 00 pushq \$0x1 --[ ]*[a-f0-9]+: e9 c0 ff ff ff jmpq 2b0 <\*ABS\*\+0x30a@plt-0x10> -+[ ]*[a-f0-9]+: e9 c0 ff ff ff jmpq 2b0 <.*> - - 0+2f0 <\*ABS\*\+0x300@plt>: --[ ]*[a-f0-9]+: ff 25 42 01 20 00 jmpq \*0x200142\(%rip\) # 200438 <_GLOBAL_OFFSET_TABLE_\+0x30> -+[ ]*[a-f0-9]+: ff 25 42 01 20 00 jmpq \*0x200142\(%rip\) # 200438 <.*> - [ ]*[a-f0-9]+: 68 02 00 00 00 pushq \$0x2 --[ ]*[a-f0-9]+: e9 b0 ff ff ff jmpq 2b0 <\*ABS\*\+0x30a@plt-0x10> -+[ ]*[a-f0-9]+: e9 b0 ff ff ff jmpq 2b0 <.*> - - Disassembly of section .text: - -diff --git a/ld/testsuite/ld-m68k/plt1-68020.d b/ld/testsuite/ld-m68k/plt1-68020.d -index 54463b9..ed3e1c1 100644 ---- a/ld/testsuite/ld-m68k/plt1-68020.d -+++ b/ld/testsuite/ld-m68k/plt1-68020.d -@@ -3,7 +3,7 @@ - - Disassembly of section \.plt: - --00020800 : -+00020800 <.plt>: - 20800: 2f3b 0170 0000 movel %pc@\(30404 <_GLOBAL_OFFSET_TABLE_\+0x4>\),%sp@- - 20806: fc02 - 20808: 4efb 0171 0000 jmp %pc@\(30408 <_GLOBAL_OFFSET_TABLE_\+0x8>\)@\(0*\) -@@ -11,22 +11,22 @@ Disassembly of section \.plt: - 20810: 0000 0000 orib #0,%d0 - - 00020814 : -- 20814: 4efb 0171 0000 jmp %pc@\(3040c <_GLOBAL_OFFSET_TABLE_\+0xc>\)@\(0*\) -+ 20814: 4efb 0171 0000 jmp %pc@\(3040c \)@\(0*\) - 2081a: fbf6 - 2081c: 2f3c 0000 0000 movel #0,%sp@- -- 20822: 60ff ffff ffdc bral 20800 -+ 20822: 60ff ffff ffdc bral 20800 <.plt> - - 00020828 : -- 20828: 4efb 0171 0000 jmp %pc@\(30410 <_GLOBAL_OFFSET_TABLE_\+0x10>\)@\(0*\) -+ 20828: 4efb 0171 0000 jmp %pc@\(30410 \)@\(0*\) - 2082e: fbe6 - 20830: 2f3c 0000 000c movel #12,%sp@- -- 20836: 60ff ffff ffc8 bral 20800 -+ 20836: 60ff ffff ffc8 bral 20800 <.plt> - - 0002083c : -- 2083c: 4efb 0171 0000 jmp %pc@\(30414 <_GLOBAL_OFFSET_TABLE_\+0x14>\)@\(0*\) -+ 2083c: 4efb 0171 0000 jmp %pc@\(30414 \)@\(0*\) - 20842: fbd6 - 20844: 2f3c 0000 0018 movel #24,%sp@- -- 2084a: 60ff ffff ffb4 bral 20800 -+ 2084a: 60ff ffff ffb4 bral 20800 <.plt> - Disassembly of section \.text: - - 00020c00 <.*>: -diff --git a/ld/testsuite/ld-m68k/plt1-cpu32.d b/ld/testsuite/ld-m68k/plt1-cpu32.d -index a497740..e303cd1 100644 ---- a/ld/testsuite/ld-m68k/plt1-cpu32.d -+++ b/ld/testsuite/ld-m68k/plt1-cpu32.d -@@ -3,7 +3,7 @@ - - Disassembly of section \.plt: - --00020800 : -+00020800 <.plt>: - 20800: 2f3b 0170 0000 movel %pc@\(30404 <_GLOBAL_OFFSET_TABLE_\+0x4>\),%sp@- - 20806: fc02 - 20808: 227b 0170 0000 moveal %pc@\(30408 <_GLOBAL_OFFSET_TABLE_\+0x8>\),%a1 -@@ -13,27 +13,27 @@ Disassembly of section \.plt: - \.\.\. - - 00020818 : -- 20818: 227b 0170 0000 moveal %pc@\(3040c <_GLOBAL_OFFSET_TABLE_\+0xc>\),%a1 -+ 20818: 227b 0170 0000 moveal %pc@\(3040c \),%a1 - 2081e: fbf2 - 20820: 4ed1 jmp %a1@ - 20822: 2f3c 0000 0000 movel #0,%sp@- -- 20828: 60ff ffff ffd6 bral 20800 -+ 20828: 60ff ffff ffd6 bral 20800 <.plt> - \.\.\. - - 00020830 : -- 20830: 227b 0170 0000 moveal %pc@\(30410 <_GLOBAL_OFFSET_TABLE_\+0x10>\),%a1 -+ 20830: 227b 0170 0000 moveal %pc@\(30410 \),%a1 - 20836: fbde - 20838: 4ed1 jmp %a1@ - 2083a: 2f3c 0000 000c movel #12,%sp@- -- 20840: 60ff ffff ffbe bral 20800 -+ 20840: 60ff ffff ffbe bral 20800 <.plt> - \.\.\. - - 00020848 : -- 20848: 227b 0170 0000 moveal %pc@\(30414 <_GLOBAL_OFFSET_TABLE_\+0x14>\),%a1 -+ 20848: 227b 0170 0000 moveal %pc@\(30414 \),%a1 - 2084e: fbca - 20850: 4ed1 jmp %a1@ - 20852: 2f3c 0000 0018 movel #24,%sp@- -- 20858: 60ff ffff ffa6 bral 20800 -+ 20858: 60ff ffff ffa6 bral 20800 <.plt> - \.\.\. - Disassembly of section \.text: - -diff --git a/ld/testsuite/ld-m68k/plt1-isab.d b/ld/testsuite/ld-m68k/plt1-isab.d -index a9aeacb..00e88b7 100644 ---- a/ld/testsuite/ld-m68k/plt1-isab.d -+++ b/ld/testsuite/ld-m68k/plt1-isab.d -@@ -3,23 +3,23 @@ - - Disassembly of section \.plt: - --00020800 : -+00020800 <.plt>: - # _GLOBAL_OFFSET_TABLE_ + 4 == 0x30404 == 0x20802 + 0xfc02 - 20800: 203c 0000 fc02 movel #64514,%d0 -- 20806: 2f3b 08fa movel %pc@\(20802 ,%d0:l\),%sp@- -+ 20806: 2f3b 08fa movel %pc@\(20802 <.*>,%d0:l\),%sp@- - # _GLOBAL_OFFSET_TABLE_ + 8 == 0x30408 == 0x2080c + 0xfbfc - 2080a: 203c 0000 fbfc movel #64508,%d0 -- 20810: 207b 08fa moveal %pc@\(2080c ,%d0:l\),%a0 -+ 20810: 207b 08fa moveal %pc@\(2080c <.*>,%d0:l\),%a0 - 20814: 4ed0 jmp %a0@ - 20816: 4e71 nop - - 00020818 : - # _GLOBAL_OFFSET_TABLE_ + 12 == 0x3040c == 0x2081a + 0xfbf2 - 20818: 203c 0000 fbf2 movel #64498,%d0 -- 2081e: 207b 08fa moveal %pc@\(2081a ,%d0:l\),%a0 -+ 2081e: 207b 08fa moveal %pc@\(2081a <.*>,%d0:l\),%a0 - 20822: 4ed0 jmp %a0@ - 20824: 2f3c 0000 0000 movel #0,%sp@- -- 2082a: 60ff ffff ffd4 bral 20800 -+ 2082a: 60ff ffff ffd4 bral 20800 <.plt> - - 00020830 : - # _GLOBAL_OFFSET_TABLE_ + 16 == 0x30410 == 0x20832 + 0xfbde -@@ -27,7 +27,7 @@ Disassembly of section \.plt: - 20836: 207b 08fa moveal %pc@\(20832 ,%d0:l\),%a0 - 2083a: 4ed0 jmp %a0@ - 2083c: 2f3c 0000 000c movel #12,%sp@- -- 20842: 60ff ffff ffbc bral 20800 -+ 20842: 60ff ffff ffbc bral 20800 <.*> - - 00020848 : - # _GLOBAL_OFFSET_TABLE_ + 20 == 0x30414 == 0x2084a + 0xfbca -@@ -35,7 +35,7 @@ Disassembly of section \.plt: - 2084e: 207b 08fa moveal %pc@\(2084a ,%d0:l\),%a0 - 20852: 4ed0 jmp %a0@ - 20854: 2f3c 0000 0018 movel #24,%sp@- -- 2085a: 60ff ffff ffa4 bral 20800 -+ 2085a: 60ff ffff ffa4 bral 20800 <.*> - Disassembly of section \.text: - - 00020c00 <.*>: -diff --git a/ld/testsuite/ld-m68k/plt1-isac.d b/ld/testsuite/ld-m68k/plt1-isac.d -index ae299ce..d3d775e 100644 ---- a/ld/testsuite/ld-m68k/plt1-isac.d -+++ b/ld/testsuite/ld-m68k/plt1-isac.d -@@ -3,13 +3,13 @@ - - Disassembly of section \.plt: - --00020800 : -+00020800 <.plt>: - # _GLOBAL_OFFSET_TABLE_ + 4 == 0x30404 == 0x20802 + 0xfc02 - 20800: 203c 0000 fc02 movel #64514,%d0 -- 20806: 2ebb 08fa movel %pc@\(20802 ,%d0:l\),%sp@ -+ 20806: 2ebb 08fa movel %pc@\(20802 <.*>,%d0:l\),%sp@ - # _GLOBAL_OFFSET_TABLE_ + 8 == 0x30408 == 0x2080c + 0xfbfc - 2080a: 203c 0000 fbfc movel #64508,%d0 -- 20810: 207b 08fa moveal %pc@\(2080c ,%d0:l\),%a0 -+ 20810: 207b 08fa moveal %pc@\(2080c <.*>,%d0:l\),%a0 - 20814: 4ed0 jmp %a0@ - 20816: 4e71 nop - -@@ -19,7 +19,7 @@ Disassembly of section \.plt: - 2081e: 207b 08fa moveal %pc@\(2081a ,%d0:l\),%a0 - 20822: 4ed0 jmp %a0@ - 20824: 2f3c 0000 0000 movel #0,%sp@- -- 2082a: 61ff ffff ffd4 bsrl 20800 -+ 2082a: 61ff ffff ffd4 bsrl 20800 <.plt> - - 00020830 : - # _GLOBAL_OFFSET_TABLE_ + 16 == 0x30410 == 0x20832 + 0xfbde -@@ -27,7 +27,7 @@ Disassembly of section \.plt: - 20836: 207b 08fa moveal %pc@\(20832 ,%d0:l\),%a0 - 2083a: 4ed0 jmp %a0@ - 2083c: 2f3c 0000 000c movel #12,%sp@- -- 20842: 61ff ffff ffbc bsrl 20800 -+ 20842: 61ff ffff ffbc bsrl 20800 <.plt> - - 00020848 : - # _GLOBAL_OFFSET_TABLE_ + 20 == 0x30414 == 0x2084a + 0xfbca -@@ -35,7 +35,7 @@ Disassembly of section \.plt: - 2084e: 207b 08fa moveal %pc@\(2084a ,%d0:l\),%a0 - 20852: 4ed0 jmp %a0@ - 20854: 2f3c 0000 0018 movel #24,%sp@- -- 2085a: 61ff ffff ffa4 bsrl 20800 -+ 2085a: 61ff ffff ffa4 bsrl 20800 <.plt> - Disassembly of section \.text: - - 00020c00 <.*>: -diff --git a/ld/testsuite/ld-metag/shared.d b/ld/testsuite/ld-metag/shared.d -index 7662dbc..94e48c0 100644 ---- a/ld/testsuite/ld-metag/shared.d -+++ b/ld/testsuite/ld-metag/shared.d -@@ -17,7 +17,7 @@ Disassembly of section .plt: - .*: 82120780 ADD A0.2,A0.2,#0x40f0 - .*: c600806a GETD PC,\[A0.2\] - .*: 03000004 MOV D1Re0,#0 -- .*: a0fffee0 B 184 -+ .*: a0fffee0 B 184 <.*> - Disassembly of section .text: - - .* : -diff --git a/ld/testsuite/ld-metag/stub_pic_app.d b/ld/testsuite/ld-metag/stub_pic_app.d -index 7a763b9..a6cf3d4 100644 ---- a/ld/testsuite/ld-metag/stub_pic_app.d -+++ b/ld/testsuite/ld-metag/stub_pic_app.d -@@ -16,7 +16,7 @@ Disassembly of section .plt: - .*: 821496e0 ADD A0.2,A0.2,#0x92dc - .*: c600806a GETD PC,\[A0.2\] - .*: 03000004 MOV D1Re0,#0 --.*: a0fffee0 B .* <_lib_func@plt-0x14> -+.*: a0fffee0 B .* <.*> - Disassembly of section .text: - .* <__start-0x10>: - .*: 82188105 MOVT A0.3,#0x1020 -diff --git a/ld/testsuite/ld-metag/stub_pic_shared.d b/ld/testsuite/ld-metag/stub_pic_shared.d -index 41129c3..c422b09 100644 ---- a/ld/testsuite/ld-metag/stub_pic_shared.d -+++ b/ld/testsuite/ld-metag/stub_pic_shared.d -@@ -16,7 +16,7 @@ Disassembly of section .plt: - .*: 82120580 ADD A0.2,A0.2,#0x40b0 - .*: c600806a GETD PC,\[A0.2\] - .*: 03000004 MOV D1Re0,#0 -- .*: a0fffee0 B .* <_far2@plt-0x14> -+ .*: a0fffee0 B .* <.*> - Disassembly of section .text: - .* <__start-0xc>: - .*: 82980101 ADDT A0.3,CPC0,#0x20 -diff --git a/ld/testsuite/ld-metag/stub_shared.d b/ld/testsuite/ld-metag/stub_shared.d -index e937f1e..dbcd4b9 100644 ---- a/ld/testsuite/ld-metag/stub_shared.d -+++ b/ld/testsuite/ld-metag/stub_shared.d -@@ -17,7 +17,7 @@ Disassembly of section .plt: - .*: 82120620 ADD A0.2,A0.2,#0x40c4 - .*: c600806a GETD PC,\[A0.2\] - .*: 03000004 MOV D1Re0,#0 -- .*: a0fffee0 B .* <_far2@plt-0x14> -+ .*: a0fffee0 B .* <.*> - Disassembly of section .text: - - .* <_lib_func>: -diff --git a/ld/testsuite/ld-s390/tlsbin_64.dd b/ld/testsuite/ld-s390/tlsbin_64.dd -index eac7f41..fe11a23 100644 ---- a/ld/testsuite/ld-s390/tlsbin_64.dd -+++ b/ld/testsuite/ld-s390/tlsbin_64.dd -@@ -129,7 +129,7 @@ Disassembly of section .text: - +[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0 - +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\) - # IE against global var with larl got access -- +[0-9a-f]+: c0 30 [0-9a-f ]+ larl %r3,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x28> -+ +[0-9a-f]+: c0 30 [0-9a-f ]+ larl %r3,[0-9a-f]+ <.*> - +[0-9a-f]+: e3 33 c0 00 00 04 lg %r3,0\(%r3,%r12\) - +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\) - # IE against global var defined in exec with larl got access -diff --git a/ld/testsuite/ld-s390/tlspic_64.dd b/ld/testsuite/ld-s390/tlspic_64.dd -index 274cd16..86fdbbd 100644 ---- a/ld/testsuite/ld-s390/tlspic_64.dd -+++ b/ld/testsuite/ld-s390/tlspic_64.dd -@@ -160,7 +160,7 @@ Disassembly of section .text: - +[0-9a-f]+: e3 43 c0 00 00 04 lg %r4,0\(%r3,%r12\) - +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\) - # IE against global var with larl got access -- +[0-9a-f]+: c0 30 [0-9a-f ]+ larl %r3,[0-9a-f]+ <\_GLOBAL\_OFFSET\_TABLE\_\+0x68> -+ +[0-9a-f]+: c0 30 [0-9a-f ]+ larl %r3,[0-9a-f]+ <.*> - +[0-9a-f]+: e3 33 c0 00 00 04 lg %r3,0\(%r3,%r12\) - +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\) - # IE against local var with larl got access -diff --git a/ld/testsuite/ld-tic6x/shlib-1.dd b/ld/testsuite/ld-tic6x/shlib-1.dd -index d33887e..a00c136 100644 ---- a/ld/testsuite/ld-tic6x/shlib-1.dd -+++ b/ld/testsuite/ld-tic6x/shlib-1.dd -@@ -4,7 +4,7 @@ tmpdir/libtest\.so: file format elf32-tic6x-le - - Disassembly of section \.plt: - --10000020 : -+10000020 <.plt>: - 10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2 - 10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1 - 10000028:[ \t]*00004000[ \t]*nop 3 -diff --git a/ld/testsuite/ld-tic6x/shlib-1b.dd b/ld/testsuite/ld-tic6x/shlib-1b.dd -index 658da73..fa597d6 100644 ---- a/ld/testsuite/ld-tic6x/shlib-1b.dd -+++ b/ld/testsuite/ld-tic6x/shlib-1b.dd -@@ -4,7 +4,7 @@ tmpdir/libtestb\.so: file format elf32-tic6x-be - - Disassembly of section \.plt: - --10000020 : -+10000020 <.plt>: - 10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2 - 10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1 - 10000028:[ \t]*00004000[ \t]*nop 3 -diff --git a/ld/testsuite/ld-tic6x/shlib-1rb.dd b/ld/testsuite/ld-tic6x/shlib-1rb.dd -index ee1a607..6b3a2c2 100644 ---- a/ld/testsuite/ld-tic6x/shlib-1rb.dd -+++ b/ld/testsuite/ld-tic6x/shlib-1rb.dd -@@ -4,7 +4,7 @@ tmpdir/libtestrb\.so: file format elf32-tic6x-be - - Disassembly of section \.plt: - --10000020 : -+10000020 <.plt>: - 10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2 - 10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1 - 10000028:[ \t]*00004000[ \t]*nop 3 -diff --git a/ld/testsuite/ld-tic6x/shlib-app-1.dd b/ld/testsuite/ld-tic6x/shlib-app-1.dd -index 411d47f..9e437bb 100644 ---- a/ld/testsuite/ld-tic6x/shlib-app-1.dd -+++ b/ld/testsuite/ld-tic6x/shlib-app-1.dd -@@ -4,7 +4,7 @@ tmpdir/shlib-dynapp-1: file format elf32-tic6x-le - - Disassembly of section \.plt: - --10000020 : -+10000020 <.plt>: - 10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2 - 10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1 - 10000028:[ \t]*00004000[ \t]*nop 3 -diff --git a/ld/testsuite/ld-tic6x/shlib-app-1b.dd b/ld/testsuite/ld-tic6x/shlib-app-1b.dd -index 5312ff8..b7cb86b 100644 ---- a/ld/testsuite/ld-tic6x/shlib-app-1b.dd -+++ b/ld/testsuite/ld-tic6x/shlib-app-1b.dd -@@ -4,7 +4,7 @@ tmpdir/shlib-dynapp-1b: file format elf32-tic6x-be - - Disassembly of section \.plt: - --10000020 : -+10000020 <.plt>: - 10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2 - 10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1 - 10000028:[ \t]*00004000[ \t]*nop 3 -diff --git a/ld/testsuite/ld-tic6x/shlib-app-1r.dd b/ld/testsuite/ld-tic6x/shlib-app-1r.dd -index 3e68bf2..6d7cd09 100644 ---- a/ld/testsuite/ld-tic6x/shlib-app-1r.dd -+++ b/ld/testsuite/ld-tic6x/shlib-app-1r.dd -@@ -4,7 +4,7 @@ tmpdir/shlib-dynapp-1r: file format elf32-tic6x-le - - Disassembly of section \.plt: - --10000020 : -+10000020 <.plt>: - 10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2 - 10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1 - 10000028:[ \t]*00004000[ \t]*nop 3 -diff --git a/ld/testsuite/ld-tic6x/shlib-app-1rb.dd b/ld/testsuite/ld-tic6x/shlib-app-1rb.dd -index ad1f28e..57809ab 100644 ---- a/ld/testsuite/ld-tic6x/shlib-app-1rb.dd -+++ b/ld/testsuite/ld-tic6x/shlib-app-1rb.dd -@@ -4,7 +4,7 @@ tmpdir/shlib-dynapp-1rb: file format elf32-tic6x-be - - Disassembly of section \.plt: - --10000020 : -+10000020 <.plt>: - 10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2 - 10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1 - 10000028:[ \t]*00004000[ \t]*nop 3 -diff --git a/ld/testsuite/ld-tic6x/shlib-noindex.dd b/ld/testsuite/ld-tic6x/shlib-noindex.dd -index bfdf499..fd37bac 100644 ---- a/ld/testsuite/ld-tic6x/shlib-noindex.dd -+++ b/ld/testsuite/ld-tic6x/shlib-noindex.dd -@@ -4,7 +4,7 @@ tmpdir/libtestn\.so: file format elf32-tic6x-le - - Disassembly of section \.plt: - --10000020 : -+10000020 <.plt>: - 10000020: 0100036e ldw \.D2T2 \*\+b14\(12\),b2 - 10000024: 0080046e ldw \.D2T2 \*\+b14\(16\),b1 - 10000028: 00004000 nop 3 -diff --git a/ld/testsuite/ld-vax-elf/export-class-data.dd b/ld/testsuite/ld-vax-elf/export-class-data.dd -index c2be30c..7d152c8 100644 ---- a/ld/testsuite/ld-vax-elf/export-class-data.dd -+++ b/ld/testsuite/ld-vax-elf/export-class-data.dd -@@ -5,7 +5,7 @@ Disassembly of section \.text: - - 12340000 : - 12340000: 00 00 \.word 0x0000 # Entry mask: < > --12340002: 9e ff 2c 00 movab \*12340034 <_GLOBAL_OFFSET_TABLE_\+0x10>,r0 -+12340002: 9e ff 2c 00 movab \*12340034 <.*>,r0 - 12340006: 00 00 50 - 12340009: 9e ef 0c 00 movab 1234001b ,r0 - 1234000d: 00 00 50 -diff --git a/ld/testsuite/ld-vax-elf/plt-local-lib.dd b/ld/testsuite/ld-vax-elf/plt-local-lib.dd -index 95e8176..3c1268c 100644 ---- a/ld/testsuite/ld-vax-elf/plt-local-lib.dd -+++ b/ld/testsuite/ld-vax-elf/plt-local-lib.dd -@@ -2,7 +2,7 @@ - - Disassembly of section \.plt: - --00001000 : -+00001000 <.plt>: - 1000: dd ef 76 20 pushl 307c <_GLOBAL_OFFSET_TABLE_\+0x4> - 1004: 00 00 - 1006: 17 ff 74 20 jmp \*3080 <_GLOBAL_OFFSET_TABLE_\+0x8> -@@ -10,25 +10,25 @@ Disassembly of section \.plt: - - 0000100c : - 100c: fc 0f \.word 0x0ffc # Entry mask: < r11 r10 r9 r8 r7 r6 r5 r4 r3 r2 > -- 100e: 16 ef ec ff jsb 1000 -+ 100e: 16 ef ec ff jsb 1000 <.plt> - 1012: ff ff - 1014: 00 00 00 00 \.long 0x00000000 - - 00001018 : - 1018: fc 0f \.word 0x0ffc # Entry mask: < r11 r10 r9 r8 r7 r6 r5 r4 r3 r2 > -- 101a: 16 ef e0 ff jsb 1000 -+ 101a: 16 ef e0 ff jsb 1000 <.plt> - 101e: ff ff - 1020: 0c 00 00 00 \.long 0x0000000c - - 00001024 : - 1024: fc 0f \.word 0x0ffc # Entry mask: < r11 r10 r9 r8 r7 r6 r5 r4 r3 r2 > -- 1026: 16 ef d4 ff jsb 1000 -+ 1026: 16 ef d4 ff jsb 1000 <.plt> - 102a: ff ff - 102c: 18 00 00 00 \.long 0x00000018 - - 00001030 : - 1030: fc 0f \.word 0x0ffc # Entry mask: < r11 r10 r9 r8 r7 r6 r5 r4 r3 r2 > -- 1032: 16 ef c8 ff jsb 1000 -+ 1032: 16 ef c8 ff jsb 1000 <.plt> - 1036: ff ff - 1038: 24 00 00 00 \.long 0x00000024 - -@@ -36,56 +36,56 @@ Disassembly of section \.text: - - 00002000 : - 2000: 00 00 \.word 0x0000 # Entry mask: < > -- 2002: fb 00 ff 7f calls \$0x0,\*3088 <_GLOBAL_OFFSET_TABLE_\+0x10> -+ 2002: fb 00 ff 7f calls \$0x0,\*3088 <.*> - 2006: 10 00 00 -- 2009: fb 00 ff 80 calls \$0x0,\*3090 <_GLOBAL_OFFSET_TABLE_\+0x18> -+ 2009: fb 00 ff 80 calls \$0x0,\*3090 <.*> - 200d: 10 00 00 -- 2010: fb 00 ff 6d calls \$0x0,\*3084 <_GLOBAL_OFFSET_TABLE_\+0xc> -+ 2010: fb 00 ff 6d calls \$0x0,\*3084 <.*> - 2014: 10 00 00 - 2017: fb 00 ef 2e calls \$0x0,204c - 201b: 00 00 00 -- 201e: fb 00 ff 67 calls \$0x0,\*308c <_GLOBAL_OFFSET_TABLE_\+0x14> -+ 201e: fb 00 ff 67 calls \$0x0,\*308c <.*> - 2022: 10 00 00 - 2025: 04 ret - - 00002026 : - 2026: 00 00 \.word 0x0000 # Entry mask: < > -- 2028: fb 00 ff 59 calls \$0x0,\*3088 <_GLOBAL_OFFSET_TABLE_\+0x10> -+ 2028: fb 00 ff 59 calls \$0x0,\*3088 <.*> - 202c: 10 00 00 -- 202f: fb 00 ff 5a calls \$0x0,\*3090 <_GLOBAL_OFFSET_TABLE_\+0x18> -+ 202f: fb 00 ff 5a calls \$0x0,\*3090 <.*> - 2033: 10 00 00 -- 2036: fb 00 ff 47 calls \$0x0,\*3084 <_GLOBAL_OFFSET_TABLE_\+0xc> -+ 2036: fb 00 ff 47 calls \$0x0,\*3084 <.*> - 203a: 10 00 00 - 203d: fb 00 ef 08 calls \$0x0,204c - 2041: 00 00 00 -- 2044: fb 00 ff 41 calls \$0x0,\*308c <_GLOBAL_OFFSET_TABLE_\+0x14> -+ 2044: fb 00 ff 41 calls \$0x0,\*308c <.*> - 2048: 10 00 00 - 204b: 04 ret - - 0000204c : - 204c: 00 00 \.word 0x0000 # Entry mask: < > -- 204e: fb 00 ff 33 calls \$0x0,\*3088 <_GLOBAL_OFFSET_TABLE_\+0x10> -+ 204e: fb 00 ff 33 calls \$0x0,\*3088 <.*> - 2052: 10 00 00 -- 2055: fb 00 ff 34 calls \$0x0,\*3090 <_GLOBAL_OFFSET_TABLE_\+0x18> -+ 2055: fb 00 ff 34 calls \$0x0,\*3090 <.*> - 2059: 10 00 00 -- 205c: fb 00 ff 21 calls \$0x0,\*3084 <_GLOBAL_OFFSET_TABLE_\+0xc> -+ 205c: fb 00 ff 21 calls \$0x0,\*3084 <.*> - 2060: 10 00 00 - 2063: fb 00 ef e2 calls \$0x0,204c - 2067: ff ff ff -- 206a: fb 00 ff 1b calls \$0x0,\*308c <_GLOBAL_OFFSET_TABLE_\+0x14> -+ 206a: fb 00 ff 1b calls \$0x0,\*308c <.*> - 206e: 10 00 00 - 2071: 04 ret - - 00002072 : - 2072: 00 00 \.word 0x0000 # Entry mask: < > -- 2074: fb 00 ff 0d calls \$0x0,\*3088 <_GLOBAL_OFFSET_TABLE_\+0x10> -+ 2074: fb 00 ff 0d calls \$0x0,\*3088 <.*> - 2078: 10 00 00 -- 207b: fb 00 ff 0e calls \$0x0,\*3090 <_GLOBAL_OFFSET_TABLE_\+0x18> -+ 207b: fb 00 ff 0e calls \$0x0,\*3090 <.*> - 207f: 10 00 00 -- 2082: fb 00 ff fb calls \$0x0,\*3084 <_GLOBAL_OFFSET_TABLE_\+0xc> -+ 2082: fb 00 ff fb calls \$0x0,\*3084 <.*> - 2086: 0f 00 00 - 2089: fb 00 ef bc calls \$0x0,204c - 208d: ff ff ff -- 2090: fb 00 ff f5 calls \$0x0,\*308c <_GLOBAL_OFFSET_TABLE_\+0x14> -+ 2090: fb 00 ff f5 calls \$0x0,\*308c <.*> - 2094: 0f 00 00 - 2097: 04 ret -diff --git a/ld/testsuite/ld-vax-elf/plt-local.dd b/ld/testsuite/ld-vax-elf/plt-local.dd -index 84eca55..94fbadd 100644 ---- a/ld/testsuite/ld-vax-elf/plt-local.dd -+++ b/ld/testsuite/ld-vax-elf/plt-local.dd -@@ -2,7 +2,7 @@ - - Disassembly of section \.plt: - --00001000 : -+00001000 <.plt>: - 1000: dd ef 86 20 pushl 308c <_GLOBAL_OFFSET_TABLE_\+0x4> - 1004: 00 00 - 1006: 17 ff 84 20 jmp \*3090 <_GLOBAL_OFFSET_TABLE_\+0x8> -@@ -10,7 +10,7 @@ Disassembly of section \.plt: - - 0000100c : - 100c: fc 0f \.word 0x0ffc # Entry mask: < r11 r10 r9 r8 r7 r6 r5 r4 r3 r2 > -- 100e: 16 ef ec ff jsb 1000 -+ 100e: 16 ef ec ff jsb 1000 <.plt> - 1012: ff ff - 1014: 00 00 00 00 \.long 0x00000000 - -@@ -18,7 +18,7 @@ Disassembly of section \.text: - - 00002000 : - 2000: 00 00 \.word 0x0000 # Entry mask: < > -- 2002: fb 00 ff 8b calls \$0x0,\*3094 <_GLOBAL_OFFSET_TABLE_\+0xc> -+ 2002: fb 00 ff 8b calls \$0x0,\*3094 - 2006: 10 00 00 - 2009: fb 00 ef 3c calls \$0x0,204c - 200d: 00 00 00 -@@ -32,7 +32,7 @@ Disassembly of section \.text: - - 00002026 : - 2026: 00 00 \.word 0x0000 # Entry mask: < > -- 2028: fb 00 ff 65 calls \$0x0,\*3094 <_GLOBAL_OFFSET_TABLE_\+0xc> -+ 2028: fb 00 ff 65 calls \$0x0,\*3094 - 202c: 10 00 00 - 202f: fb 00 ef 16 calls \$0x0,204c - 2033: 00 00 00 -@@ -46,7 +46,7 @@ Disassembly of section \.text: - - 0000204c : - 204c: 00 00 \.word 0x0000 # Entry mask: < > -- 204e: fb 00 ff 3f calls \$0x0,\*3094 <_GLOBAL_OFFSET_TABLE_\+0xc> -+ 204e: fb 00 ff 3f calls \$0x0,\*3094 - 2052: 10 00 00 - 2055: fb 00 ef f0 calls \$0x0,204c - 2059: ff ff ff -@@ -60,7 +60,7 @@ Disassembly of section \.text: - - 00002072 : - 2072: 00 00 \.word 0x0000 # Entry mask: < > -- 2074: fb 00 ff 19 calls \$0x0,\*3094 <_GLOBAL_OFFSET_TABLE_\+0xc> -+ 2074: fb 00 ff 19 calls \$0x0,\*3094 - 2078: 10 00 00 - 207b: fb 00 ef ca calls \$0x0,204c - 207f: ff ff ff -diff --git a/ld/testsuite/ld-x86-64/bnd-ifunc-2.d b/ld/testsuite/ld-x86-64/bnd-ifunc-2.d -index 61750c9..306a17d 100644 ---- a/ld/testsuite/ld-x86-64/bnd-ifunc-2.d -+++ b/ld/testsuite/ld-x86-64/bnd-ifunc-2.d -@@ -8,16 +8,16 @@ - [ ]*[a-f0-9]+: f2 ff 25 7b 01 20 00 bnd jmpq \*0x20017b\(%rip\) # 200438 <_GLOBAL_OFFSET_TABLE_\+0x10> - [ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - [ ]*[a-f0-9]+: 68 03 00 00 00 pushq \$0x3 --[ ]*[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmpq 2b0 <\*ABS\*\+0x32c@plt-0x50> -+[ ]*[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmpq 2b0 <.*> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - [ ]*[a-f0-9]+: 68 00 00 00 00 pushq \$0x0 --[ ]*[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmpq 2b0 <\*ABS\*\+0x32c@plt-0x50> -+[ ]*[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmpq 2b0 <.*> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - [ ]*[a-f0-9]+: 68 01 00 00 00 pushq \$0x1 --[ ]*[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmpq 2b0 <\*ABS\*\+0x32c@plt-0x50> -+[ ]*[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmpq 2b0 <.*> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - [ ]*[a-f0-9]+: 68 02 00 00 00 pushq \$0x2 --[ ]*[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmpq 2b0 <\*ABS\*\+0x32c@plt-0x50> -+[ ]*[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmpq 2b0 <.*> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.bnd: -@@ -27,11 +27,11 @@ Disassembly of section .plt.bnd: - [ ]*[a-f0-9]+: 90 nop - - 0+308 : --[ ]*[a-f0-9]+: f2 ff 25 39 01 20 00 bnd jmpq \*0x200139\(%rip\) # 200448 <_GLOBAL_OFFSET_TABLE_\+0x20> -+[ ]*[a-f0-9]+: f2 ff 25 39 01 20 00 bnd jmpq \*0x200139\(%rip\) # 200448 - [ ]*[a-f0-9]+: 90 nop - - 0+310 : --[ ]*[a-f0-9]+: f2 ff 25 39 01 20 00 bnd jmpq \*0x200139\(%rip\) # 200450 <_GLOBAL_OFFSET_TABLE_\+0x28> -+[ ]*[a-f0-9]+: f2 ff 25 39 01 20 00 bnd jmpq \*0x200139\(%rip\) # 200450 - [ ]*[a-f0-9]+: 90 nop - - 0+318 <\*ABS\*\+0x320@plt>: -diff --git a/ld/testsuite/ld-x86-64/bnd-plt-1.d b/ld/testsuite/ld-x86-64/bnd-plt-1.d -index 1c1f2d3..6bd50b2 100644 ---- a/ld/testsuite/ld-x86-64/bnd-plt-1.d -+++ b/ld/testsuite/ld-x86-64/bnd-plt-1.d -@@ -13,34 +13,34 @@ Disassembly of section .plt: - [ ]*[a-f0-9]+: f2 ff 25 83 01 20 00 bnd jmpq \*0x200183\(%rip\) # 200420 <_GLOBAL_OFFSET_TABLE_\+0x10> - [ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - [ ]*[a-f0-9]+: 68 00 00 00 00 pushq \$0x0 --[ ]*[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmpq 290 -+[ ]*[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmpq 290 <.*> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - [ ]*[a-f0-9]+: 68 01 00 00 00 pushq \$0x1 --[ ]*[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmpq 290 -+[ ]*[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmpq 290 <.*> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - [ ]*[a-f0-9]+: 68 02 00 00 00 pushq \$0x2 --[ ]*[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmpq 290 -+[ ]*[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmpq 290 <.*> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - [ ]*[a-f0-9]+: 68 03 00 00 00 pushq \$0x3 --[ ]*[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmpq 290 -+[ ]*[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmpq 290 <.*> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.bnd: - - 0+2e0 : --[ ]*[a-f0-9]+: f2 ff 25 41 01 20 00 bnd jmpq \*0x200141\(%rip\) # 200428 <_GLOBAL_OFFSET_TABLE_\+0x18> -+[ ]*[a-f0-9]+: f2 ff 25 41 01 20 00 bnd jmpq \*0x200141\(%rip\) # 200428 - [ ]*[a-f0-9]+: 90 nop - - 0+2e8 : --[ ]*[a-f0-9]+: f2 ff 25 41 01 20 00 bnd jmpq \*0x200141\(%rip\) # 200430 <_GLOBAL_OFFSET_TABLE_\+0x20> -+[ ]*[a-f0-9]+: f2 ff 25 41 01 20 00 bnd jmpq \*0x200141\(%rip\) # 200430 - [ ]*[a-f0-9]+: 90 nop - - 0+2f0 : --[ ]*[a-f0-9]+: f2 ff 25 41 01 20 00 bnd jmpq \*0x200141\(%rip\) # 200438 <_GLOBAL_OFFSET_TABLE_\+0x28> -+[ ]*[a-f0-9]+: f2 ff 25 41 01 20 00 bnd jmpq \*0x200141\(%rip\) # 200438 - [ ]*[a-f0-9]+: 90 nop - - 0+2f8 : --[ ]*[a-f0-9]+: f2 ff 25 41 01 20 00 bnd jmpq \*0x200141\(%rip\) # 200440 <_GLOBAL_OFFSET_TABLE_\+0x30> -+[ ]*[a-f0-9]+: f2 ff 25 41 01 20 00 bnd jmpq \*0x200141\(%rip\) # 200440 - [ ]*[a-f0-9]+: 90 nop - - Disassembly of section .text: -diff --git a/ld/testsuite/ld-x86-64/gotpcrel1.dd b/ld/testsuite/ld-x86-64/gotpcrel1.dd -index 46321db..58450bd 100644 ---- a/ld/testsuite/ld-x86-64/gotpcrel1.dd -+++ b/ld/testsuite/ld-x86-64/gotpcrel1.dd -@@ -2,13 +2,13 @@ - [a-f0-9]+
: - [ ]*[a-f0-9]+: 48 83 ec 08 sub \$0x8,%rsp - [ ]*[a-f0-9]+: [ a-f0-9]+ addr32 callq [a-f0-9]+ --[ ]*[a-f0-9]+: [ a-f0-9]+ callq \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: [ a-f0-9]+ callq \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: [ a-f0-9]+ callq \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: [ a-f0-9]+ callq \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> - [ ]*[a-f0-9]+: [ a-f0-9]+ (rex mov|mov ) \$0x[a-f0-9]+,%(r|e)ax - [ ]*[a-f0-9]+: ff d0 callq \*%rax --[ ]*[a-f0-9]+: [ a-f0-9]+ mov 0x[a-f0-9]+\(%rip\),%rcx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: [ a-f0-9]+ mov 0x[a-f0-9]+\(%rip\),%rcx # [a-f0-9]+ <.*> - [ ]*[a-f0-9]+: ff d1 callq \*%rcx --[ ]*[a-f0-9]+: [ a-f0-9]+ mov 0x[a-f0-9]+\(%rip\),%rdx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: [ a-f0-9]+ mov 0x[a-f0-9]+\(%rip\),%rdx # [a-f0-9]+ <.*> - [ ]*[a-f0-9]+: ff d2 callq \*%rdx - [ ]*[a-f0-9]+: 31 ff xor %edi,%edi - [ ]*[a-f0-9]+: 48 83 c4 08 add \$0x8,%rsp -diff --git a/ld/testsuite/ld-x86-64/libno-plt-1b.dd b/ld/testsuite/ld-x86-64/libno-plt-1b.dd -index 2892ce4..93d8a7b 100644 ---- a/ld/testsuite/ld-x86-64/libno-plt-1b.dd -+++ b/ld/testsuite/ld-x86-64/libno-plt-1b.dd -@@ -7,9 +7,9 @@ Disassembly of section .text: - - #... - [0-9a-f]+ : -- +[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - +[a-f0-9]+: c3 retq - #... - [0-9a-f]+ : -- +[a-f0-9]+: ff 25 ([0-9a-f]{2} ){4}[ ]+jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 25 ([0-9a-f]{2} ){4}[ ]+jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/load1c-nacl.d b/ld/testsuite/ld-x86-64/load1c-nacl.d -index be90480..57bc2c2 100644 ---- a/ld/testsuite/ld-x86-64/load1c-nacl.d -+++ b/ld/testsuite/ld-x86-64/load1c-nacl.d -@@ -9,40 +9,40 @@ - Disassembly of section .text: - - 0+ <_start>: --[ ]*[a-f0-9]+: 13 05 0a 03 01 10 adc 0x1001030a\(%rip\),%eax # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 03 1d 04 03 01 10 add 0x10010304\(%rip\),%ebx # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 23 0d fe 02 01 10 and 0x100102fe\(%rip\),%ecx # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 3b 15 f8 02 01 10 cmp 0x100102f8\(%rip\),%edx # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 0b 35 f2 02 01 10 or 0x100102f2\(%rip\),%esi # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 1b 3d ec 02 01 10 sbb 0x100102ec\(%rip\),%edi # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 2b 2d e6 02 01 10 sub 0x100102e6\(%rip\),%ebp # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 44 33 05 df 02 01 10 xor 0x100102df\(%rip\),%r8d # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 44 85 3d d8 02 01 10 test %r15d,0x100102d8\(%rip\) # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 48 13 05 d1 02 01 10 adc 0x100102d1\(%rip\),%rax # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 48 03 1d ca 02 01 10 add 0x100102ca\(%rip\),%rbx # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 48 23 0d c3 02 01 10 and 0x100102c3\(%rip\),%rcx # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 48 3b 15 bc 02 01 10 cmp 0x100102bc\(%rip\),%rdx # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 48 0b 3d b5 02 01 10 or 0x100102b5\(%rip\),%rdi # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 48 1b 35 ae 02 01 10 sbb 0x100102ae\(%rip\),%rsi # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 48 2b 2d a7 02 01 10 sub 0x100102a7\(%rip\),%rbp # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 4c 33 05 a0 02 01 10 xor 0x100102a0\(%rip\),%r8 # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 4c 85 3d 99 02 01 10 test %r15,0x10010299\(%rip\) # 10010310 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 13 05 9b 02 01 10 adc 0x1001029b\(%rip\),%eax # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 03 1d 95 02 01 10 add 0x10010295\(%rip\),%ebx # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 23 0d 8f 02 01 10 and 0x1001028f\(%rip\),%ecx # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 3b 15 89 02 01 10 cmp 0x10010289\(%rip\),%edx # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 0b 35 83 02 01 10 or 0x10010283\(%rip\),%esi # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 1b 3d 7d 02 01 10 sbb 0x1001027d\(%rip\),%edi # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 2b 2d 77 02 01 10 sub 0x10010277\(%rip\),%ebp # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 44 33 05 70 02 01 10 xor 0x10010270\(%rip\),%r8d # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 44 85 3d 69 02 01 10 test %r15d,0x10010269\(%rip\) # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 48 13 05 62 02 01 10 adc 0x10010262\(%rip\),%rax # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 48 03 1d 5b 02 01 10 add 0x1001025b\(%rip\),%rbx # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 48 23 0d 54 02 01 10 and 0x10010254\(%rip\),%rcx # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 48 3b 15 4d 02 01 10 cmp 0x1001024d\(%rip\),%rdx # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 48 0b 3d 46 02 01 10 or 0x10010246\(%rip\),%rdi # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 48 1b 35 3f 02 01 10 sbb 0x1001023f\(%rip\),%rsi # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 48 2b 2d 38 02 01 10 sub 0x10010238\(%rip\),%rbp # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 4c 33 05 31 02 01 10 xor 0x10010231\(%rip\),%r8 # 10010318 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 4c 85 3d 2a 02 01 10 test %r15,0x1001022a\(%rip\) # 10010318 <_DYNAMIC\+0xe8> -+[ ]*[a-f0-9]+: 13 05 0a 03 01 10 adc 0x1001030a\(%rip\),%eax # 10010310 <.*> -+[ ]*[a-f0-9]+: 03 1d 04 03 01 10 add 0x10010304\(%rip\),%ebx # 10010310 <.*> -+[ ]*[a-f0-9]+: 23 0d fe 02 01 10 and 0x100102fe\(%rip\),%ecx # 10010310 <.*> -+[ ]*[a-f0-9]+: 3b 15 f8 02 01 10 cmp 0x100102f8\(%rip\),%edx # 10010310 <.*> -+[ ]*[a-f0-9]+: 0b 35 f2 02 01 10 or 0x100102f2\(%rip\),%esi # 10010310 <.*> -+[ ]*[a-f0-9]+: 1b 3d ec 02 01 10 sbb 0x100102ec\(%rip\),%edi # 10010310 <.*> -+[ ]*[a-f0-9]+: 2b 2d e6 02 01 10 sub 0x100102e6\(%rip\),%ebp # 10010310 <.*> -+[ ]*[a-f0-9]+: 44 33 05 df 02 01 10 xor 0x100102df\(%rip\),%r8d # 10010310 <.*> -+[ ]*[a-f0-9]+: 44 85 3d d8 02 01 10 test %r15d,0x100102d8\(%rip\) # 10010310 <.*> -+[ ]*[a-f0-9]+: 48 13 05 d1 02 01 10 adc 0x100102d1\(%rip\),%rax # 10010310 <.*> -+[ ]*[a-f0-9]+: 48 03 1d ca 02 01 10 add 0x100102ca\(%rip\),%rbx # 10010310 <.*> -+[ ]*[a-f0-9]+: 48 23 0d c3 02 01 10 and 0x100102c3\(%rip\),%rcx # 10010310 <.*> -+[ ]*[a-f0-9]+: 48 3b 15 bc 02 01 10 cmp 0x100102bc\(%rip\),%rdx # 10010310 <.*> -+[ ]*[a-f0-9]+: 48 0b 3d b5 02 01 10 or 0x100102b5\(%rip\),%rdi # 10010310 <.*> -+[ ]*[a-f0-9]+: 48 1b 35 ae 02 01 10 sbb 0x100102ae\(%rip\),%rsi # 10010310 <.*> -+[ ]*[a-f0-9]+: 48 2b 2d a7 02 01 10 sub 0x100102a7\(%rip\),%rbp # 10010310 <.*> -+[ ]*[a-f0-9]+: 4c 33 05 a0 02 01 10 xor 0x100102a0\(%rip\),%r8 # 10010310 <.*> -+[ ]*[a-f0-9]+: 4c 85 3d 99 02 01 10 test %r15,0x10010299\(%rip\) # 10010310 <.*> -+[ ]*[a-f0-9]+: 13 05 9b 02 01 10 adc 0x1001029b\(%rip\),%eax # 10010318 <.*> -+[ ]*[a-f0-9]+: 03 1d 95 02 01 10 add 0x10010295\(%rip\),%ebx # 10010318 <.*> -+[ ]*[a-f0-9]+: 23 0d 8f 02 01 10 and 0x1001028f\(%rip\),%ecx # 10010318 <.*> -+[ ]*[a-f0-9]+: 3b 15 89 02 01 10 cmp 0x10010289\(%rip\),%edx # 10010318 <.*> -+[ ]*[a-f0-9]+: 0b 35 83 02 01 10 or 0x10010283\(%rip\),%esi # 10010318 <.*> -+[ ]*[a-f0-9]+: 1b 3d 7d 02 01 10 sbb 0x1001027d\(%rip\),%edi # 10010318 <.*> -+[ ]*[a-f0-9]+: 2b 2d 77 02 01 10 sub 0x10010277\(%rip\),%ebp # 10010318 <.*> -+[ ]*[a-f0-9]+: 44 33 05 70 02 01 10 xor 0x10010270\(%rip\),%r8d # 10010318 <.*> -+[ ]*[a-f0-9]+: 44 85 3d 69 02 01 10 test %r15d,0x10010269\(%rip\) # 10010318 <.*> -+[ ]*[a-f0-9]+: 48 13 05 62 02 01 10 adc 0x10010262\(%rip\),%rax # 10010318 <.*> -+[ ]*[a-f0-9]+: 48 03 1d 5b 02 01 10 add 0x1001025b\(%rip\),%rbx # 10010318 <.*> -+[ ]*[a-f0-9]+: 48 23 0d 54 02 01 10 and 0x10010254\(%rip\),%rcx # 10010318 <.*> -+[ ]*[a-f0-9]+: 48 3b 15 4d 02 01 10 cmp 0x1001024d\(%rip\),%rdx # 10010318 <.*> -+[ ]*[a-f0-9]+: 48 0b 3d 46 02 01 10 or 0x10010246\(%rip\),%rdi # 10010318 <.*> -+[ ]*[a-f0-9]+: 48 1b 35 3f 02 01 10 sbb 0x1001023f\(%rip\),%rsi # 10010318 <.*> -+[ ]*[a-f0-9]+: 48 2b 2d 38 02 01 10 sub 0x10010238\(%rip\),%rbp # 10010318 <.*> -+[ ]*[a-f0-9]+: 4c 33 05 31 02 01 10 xor 0x10010231\(%rip\),%r8 # 10010318 <.*> -+[ ]*[a-f0-9]+: 4c 85 3d 2a 02 01 10 test %r15,0x1001022a\(%rip\) # 10010318 <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/load1c.d b/ld/testsuite/ld-x86-64/load1c.d -index d4bf277..a4f7d8a 100644 ---- a/ld/testsuite/ld-x86-64/load1c.d -+++ b/ld/testsuite/ld-x86-64/load1c.d -@@ -9,40 +9,40 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]*[a-f0-9]+: 13 05 ca 01 20 00 adc 0x2001ca\(%rip\),%eax # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 03 1d c4 01 20 00 add 0x2001c4\(%rip\),%ebx # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 23 0d be 01 20 00 and 0x2001be\(%rip\),%ecx # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 3b 15 b8 01 20 00 cmp 0x2001b8\(%rip\),%edx # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 0b 35 b2 01 20 00 or 0x2001b2\(%rip\),%esi # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 1b 3d ac 01 20 00 sbb 0x2001ac\(%rip\),%edi # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 2b 2d a6 01 20 00 sub 0x2001a6\(%rip\),%ebp # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 44 33 05 9f 01 20 00 xor 0x20019f\(%rip\),%r8d # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 44 85 3d 98 01 20 00 test %r15d,0x200198\(%rip\) # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 48 13 05 91 01 20 00 adc 0x200191\(%rip\),%rax # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 48 03 1d 8a 01 20 00 add 0x20018a\(%rip\),%rbx # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 48 23 0d 83 01 20 00 and 0x200183\(%rip\),%rcx # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 48 3b 15 7c 01 20 00 cmp 0x20017c\(%rip\),%rdx # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 48 0b 3d 75 01 20 00 or 0x200175\(%rip\),%rdi # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 48 1b 35 6e 01 20 00 sbb 0x20016e\(%rip\),%rsi # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 48 2b 2d 67 01 20 00 sub 0x200167\(%rip\),%rbp # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 4c 33 05 60 01 20 00 xor 0x200160\(%rip\),%r8 # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 4c 85 3d 59 01 20 00 test %r15,0x200159\(%rip\) # 2003c8 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: 13 05 5b 01 20 00 adc 0x20015b\(%rip\),%eax # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 03 1d 55 01 20 00 add 0x200155\(%rip\),%ebx # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 23 0d 4f 01 20 00 and 0x20014f\(%rip\),%ecx # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 3b 15 49 01 20 00 cmp 0x200149\(%rip\),%edx # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 0b 35 43 01 20 00 or 0x200143\(%rip\),%esi # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 1b 3d 3d 01 20 00 sbb 0x20013d\(%rip\),%edi # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 2b 2d 37 01 20 00 sub 0x200137\(%rip\),%ebp # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 44 33 05 30 01 20 00 xor 0x200130\(%rip\),%r8d # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 44 85 3d 29 01 20 00 test %r15d,0x200129\(%rip\) # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 48 13 05 22 01 20 00 adc 0x200122\(%rip\),%rax # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 48 03 1d 1b 01 20 00 add 0x20011b\(%rip\),%rbx # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 48 23 0d 14 01 20 00 and 0x200114\(%rip\),%rcx # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 48 3b 15 0d 01 20 00 cmp 0x20010d\(%rip\),%rdx # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 48 0b 3d 06 01 20 00 or 0x200106\(%rip\),%rdi # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 48 1b 35 ff 00 20 00 sbb 0x2000ff\(%rip\),%rsi # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 48 2b 2d f8 00 20 00 sub 0x2000f8\(%rip\),%rbp # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 4c 33 05 f1 00 20 00 xor 0x2000f1\(%rip\),%r8 # 2003d0 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: 4c 85 3d ea 00 20 00 test %r15,0x2000ea\(%rip\) # 2003d0 <_DYNAMIC\+0xe8> -+[ ]*[a-f0-9]+: 13 05 ca 01 20 00 adc 0x2001ca\(%rip\),%eax # 2003c8 <.*> -+[ ]*[a-f0-9]+: 03 1d c4 01 20 00 add 0x2001c4\(%rip\),%ebx # 2003c8 <.*> -+[ ]*[a-f0-9]+: 23 0d be 01 20 00 and 0x2001be\(%rip\),%ecx # 2003c8 <.*> -+[ ]*[a-f0-9]+: 3b 15 b8 01 20 00 cmp 0x2001b8\(%rip\),%edx # 2003c8 <.*> -+[ ]*[a-f0-9]+: 0b 35 b2 01 20 00 or 0x2001b2\(%rip\),%esi # 2003c8 <.*> -+[ ]*[a-f0-9]+: 1b 3d ac 01 20 00 sbb 0x2001ac\(%rip\),%edi # 2003c8 <.*> -+[ ]*[a-f0-9]+: 2b 2d a6 01 20 00 sub 0x2001a6\(%rip\),%ebp # 2003c8 <.*> -+[ ]*[a-f0-9]+: 44 33 05 9f 01 20 00 xor 0x20019f\(%rip\),%r8d # 2003c8 <.*> -+[ ]*[a-f0-9]+: 44 85 3d 98 01 20 00 test %r15d,0x200198\(%rip\) # 2003c8 <.*> -+[ ]*[a-f0-9]+: 48 13 05 91 01 20 00 adc 0x200191\(%rip\),%rax # 2003c8 <.*> -+[ ]*[a-f0-9]+: 48 03 1d 8a 01 20 00 add 0x20018a\(%rip\),%rbx # 2003c8 <.*> -+[ ]*[a-f0-9]+: 48 23 0d 83 01 20 00 and 0x200183\(%rip\),%rcx # 2003c8 <.*> -+[ ]*[a-f0-9]+: 48 3b 15 7c 01 20 00 cmp 0x20017c\(%rip\),%rdx # 2003c8 <.*> -+[ ]*[a-f0-9]+: 48 0b 3d 75 01 20 00 or 0x200175\(%rip\),%rdi # 2003c8 <.*> -+[ ]*[a-f0-9]+: 48 1b 35 6e 01 20 00 sbb 0x20016e\(%rip\),%rsi # 2003c8 <.*> -+[ ]*[a-f0-9]+: 48 2b 2d 67 01 20 00 sub 0x200167\(%rip\),%rbp # 2003c8 <.*> -+[ ]*[a-f0-9]+: 4c 33 05 60 01 20 00 xor 0x200160\(%rip\),%r8 # 2003c8 <.*> -+[ ]*[a-f0-9]+: 4c 85 3d 59 01 20 00 test %r15,0x200159\(%rip\) # 2003c8 <.*> -+[ ]*[a-f0-9]+: 13 05 5b 01 20 00 adc 0x20015b\(%rip\),%eax # 2003d0 <.*> -+[ ]*[a-f0-9]+: 03 1d 55 01 20 00 add 0x200155\(%rip\),%ebx # 2003d0 <.*> -+[ ]*[a-f0-9]+: 23 0d 4f 01 20 00 and 0x20014f\(%rip\),%ecx # 2003d0 <.*> -+[ ]*[a-f0-9]+: 3b 15 49 01 20 00 cmp 0x200149\(%rip\),%edx # 2003d0 <.*> -+[ ]*[a-f0-9]+: 0b 35 43 01 20 00 or 0x200143\(%rip\),%esi # 2003d0 <.*> -+[ ]*[a-f0-9]+: 1b 3d 3d 01 20 00 sbb 0x20013d\(%rip\),%edi # 2003d0 <.*> -+[ ]*[a-f0-9]+: 2b 2d 37 01 20 00 sub 0x200137\(%rip\),%ebp # 2003d0 <.*> -+[ ]*[a-f0-9]+: 44 33 05 30 01 20 00 xor 0x200130\(%rip\),%r8d # 2003d0 <.*> -+[ ]*[a-f0-9]+: 44 85 3d 29 01 20 00 test %r15d,0x200129\(%rip\) # 2003d0 <.*> -+[ ]*[a-f0-9]+: 48 13 05 22 01 20 00 adc 0x200122\(%rip\),%rax # 2003d0 <.*> -+[ ]*[a-f0-9]+: 48 03 1d 1b 01 20 00 add 0x20011b\(%rip\),%rbx # 2003d0 <.*> -+[ ]*[a-f0-9]+: 48 23 0d 14 01 20 00 and 0x200114\(%rip\),%rcx # 2003d0 <.*> -+[ ]*[a-f0-9]+: 48 3b 15 0d 01 20 00 cmp 0x20010d\(%rip\),%rdx # 2003d0 <.*> -+[ ]*[a-f0-9]+: 48 0b 3d 06 01 20 00 or 0x200106\(%rip\),%rdi # 2003d0 <.*> -+[ ]*[a-f0-9]+: 48 1b 35 ff 00 20 00 sbb 0x2000ff\(%rip\),%rsi # 2003d0 <.*> -+[ ]*[a-f0-9]+: 48 2b 2d f8 00 20 00 sub 0x2000f8\(%rip\),%rbp # 2003d0 <.*> -+[ ]*[a-f0-9]+: 4c 33 05 f1 00 20 00 xor 0x2000f1\(%rip\),%r8 # 2003d0 <.*> -+[ ]*[a-f0-9]+: 4c 85 3d ea 00 20 00 test %r15,0x2000ea\(%rip\) # 2003d0 <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/load1d-nacl.d b/ld/testsuite/ld-x86-64/load1d-nacl.d -index 3e9b144..b741917 100644 ---- a/ld/testsuite/ld-x86-64/load1d-nacl.d -+++ b/ld/testsuite/ld-x86-64/load1d-nacl.d -@@ -9,40 +9,40 @@ - Disassembly of section .text: - - 0+ <_start>: --[ ]*[a-f0-9]+: 13 05 e2 01 01 10 adc 0x100101e2\(%rip\),%eax # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 03 1d dc 01 01 10 add 0x100101dc\(%rip\),%ebx # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 23 0d d6 01 01 10 and 0x100101d6\(%rip\),%ecx # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 3b 15 d0 01 01 10 cmp 0x100101d0\(%rip\),%edx # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 0b 35 ca 01 01 10 or 0x100101ca\(%rip\),%esi # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 1b 3d c4 01 01 10 sbb 0x100101c4\(%rip\),%edi # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 2b 2d be 01 01 10 sub 0x100101be\(%rip\),%ebp # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 44 33 05 b7 01 01 10 xor 0x100101b7\(%rip\),%r8d # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 44 85 3d b0 01 01 10 test %r15d,0x100101b0\(%rip\) # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 48 13 05 a9 01 01 10 adc 0x100101a9\(%rip\),%rax # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 48 03 1d a2 01 01 10 add 0x100101a2\(%rip\),%rbx # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 48 23 0d 9b 01 01 10 and 0x1001019b\(%rip\),%rcx # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 48 3b 15 94 01 01 10 cmp 0x10010194\(%rip\),%rdx # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 48 0b 3d 8d 01 01 10 or 0x1001018d\(%rip\),%rdi # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 48 1b 35 86 01 01 10 sbb 0x10010186\(%rip\),%rsi # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 48 2b 2d 7f 01 01 10 sub 0x1001017f\(%rip\),%rbp # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 4c 33 05 78 01 01 10 xor 0x10010178\(%rip\),%r8 # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 4c 85 3d 71 01 01 10 test %r15,0x10010171\(%rip\) # 100101e8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 13 05 73 01 01 10 adc 0x10010173\(%rip\),%eax # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 03 1d 6d 01 01 10 add 0x1001016d\(%rip\),%ebx # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 23 0d 67 01 01 10 and 0x10010167\(%rip\),%ecx # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 3b 15 61 01 01 10 cmp 0x10010161\(%rip\),%edx # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 0b 35 5b 01 01 10 or 0x1001015b\(%rip\),%esi # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 1b 3d 55 01 01 10 sbb 0x10010155\(%rip\),%edi # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 2b 2d 4f 01 01 10 sub 0x1001014f\(%rip\),%ebp # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 44 33 05 48 01 01 10 xor 0x10010148\(%rip\),%r8d # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 44 85 3d 41 01 01 10 test %r15d,0x10010141\(%rip\) # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 48 13 05 3a 01 01 10 adc 0x1001013a\(%rip\),%rax # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 48 03 1d 33 01 01 10 add 0x10010133\(%rip\),%rbx # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 48 23 0d 2c 01 01 10 and 0x1001012c\(%rip\),%rcx # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 48 3b 15 25 01 01 10 cmp 0x10010125\(%rip\),%rdx # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 48 0b 3d 1e 01 01 10 or 0x1001011e\(%rip\),%rdi # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 48 1b 35 17 01 01 10 sbb 0x10010117\(%rip\),%rsi # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 48 2b 2d 10 01 01 10 sub 0x10010110\(%rip\),%rbp # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 4c 33 05 09 01 01 10 xor 0x10010109\(%rip\),%r8 # 100101f0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 4c 85 3d 02 01 01 10 test %r15,0x10010102\(%rip\) # 100101f0 <_DYNAMIC\+0x78> -+[ ]*[a-f0-9]+: 13 05 e2 01 01 10 adc 0x100101e2\(%rip\),%eax # 100101e8 <.*> -+[ ]*[a-f0-9]+: 03 1d dc 01 01 10 add 0x100101dc\(%rip\),%ebx # 100101e8 <.*> -+[ ]*[a-f0-9]+: 23 0d d6 01 01 10 and 0x100101d6\(%rip\),%ecx # 100101e8 <.*> -+[ ]*[a-f0-9]+: 3b 15 d0 01 01 10 cmp 0x100101d0\(%rip\),%edx # 100101e8 <.*> -+[ ]*[a-f0-9]+: 0b 35 ca 01 01 10 or 0x100101ca\(%rip\),%esi # 100101e8 <.*> -+[ ]*[a-f0-9]+: 1b 3d c4 01 01 10 sbb 0x100101c4\(%rip\),%edi # 100101e8 <.*> -+[ ]*[a-f0-9]+: 2b 2d be 01 01 10 sub 0x100101be\(%rip\),%ebp # 100101e8 <.*> -+[ ]*[a-f0-9]+: 44 33 05 b7 01 01 10 xor 0x100101b7\(%rip\),%r8d # 100101e8 <.*> -+[ ]*[a-f0-9]+: 44 85 3d b0 01 01 10 test %r15d,0x100101b0\(%rip\) # 100101e8 <.*> -+[ ]*[a-f0-9]+: 48 13 05 a9 01 01 10 adc 0x100101a9\(%rip\),%rax # 100101e8 <.*> -+[ ]*[a-f0-9]+: 48 03 1d a2 01 01 10 add 0x100101a2\(%rip\),%rbx # 100101e8 <.*> -+[ ]*[a-f0-9]+: 48 23 0d 9b 01 01 10 and 0x1001019b\(%rip\),%rcx # 100101e8 <.*> -+[ ]*[a-f0-9]+: 48 3b 15 94 01 01 10 cmp 0x10010194\(%rip\),%rdx # 100101e8 <.*> -+[ ]*[a-f0-9]+: 48 0b 3d 8d 01 01 10 or 0x1001018d\(%rip\),%rdi # 100101e8 <.*> -+[ ]*[a-f0-9]+: 48 1b 35 86 01 01 10 sbb 0x10010186\(%rip\),%rsi # 100101e8 <.*> -+[ ]*[a-f0-9]+: 48 2b 2d 7f 01 01 10 sub 0x1001017f\(%rip\),%rbp # 100101e8 <.*> -+[ ]*[a-f0-9]+: 4c 33 05 78 01 01 10 xor 0x10010178\(%rip\),%r8 # 100101e8 <.*> -+[ ]*[a-f0-9]+: 4c 85 3d 71 01 01 10 test %r15,0x10010171\(%rip\) # 100101e8 <.*> -+[ ]*[a-f0-9]+: 13 05 73 01 01 10 adc 0x10010173\(%rip\),%eax # 100101f0 <.*> -+[ ]*[a-f0-9]+: 03 1d 6d 01 01 10 add 0x1001016d\(%rip\),%ebx # 100101f0 <.*> -+[ ]*[a-f0-9]+: 23 0d 67 01 01 10 and 0x10010167\(%rip\),%ecx # 100101f0 <.*> -+[ ]*[a-f0-9]+: 3b 15 61 01 01 10 cmp 0x10010161\(%rip\),%edx # 100101f0 <.*> -+[ ]*[a-f0-9]+: 0b 35 5b 01 01 10 or 0x1001015b\(%rip\),%esi # 100101f0 <.*> -+[ ]*[a-f0-9]+: 1b 3d 55 01 01 10 sbb 0x10010155\(%rip\),%edi # 100101f0 <.*> -+[ ]*[a-f0-9]+: 2b 2d 4f 01 01 10 sub 0x1001014f\(%rip\),%ebp # 100101f0 <.*> -+[ ]*[a-f0-9]+: 44 33 05 48 01 01 10 xor 0x10010148\(%rip\),%r8d # 100101f0 <.*> -+[ ]*[a-f0-9]+: 44 85 3d 41 01 01 10 test %r15d,0x10010141\(%rip\) # 100101f0 <.*> -+[ ]*[a-f0-9]+: 48 13 05 3a 01 01 10 adc 0x1001013a\(%rip\),%rax # 100101f0 <.*> -+[ ]*[a-f0-9]+: 48 03 1d 33 01 01 10 add 0x10010133\(%rip\),%rbx # 100101f0 <.*> -+[ ]*[a-f0-9]+: 48 23 0d 2c 01 01 10 and 0x1001012c\(%rip\),%rcx # 100101f0 <.*> -+[ ]*[a-f0-9]+: 48 3b 15 25 01 01 10 cmp 0x10010125\(%rip\),%rdx # 100101f0 <.*> -+[ ]*[a-f0-9]+: 48 0b 3d 1e 01 01 10 or 0x1001011e\(%rip\),%rdi # 100101f0 <.*> -+[ ]*[a-f0-9]+: 48 1b 35 17 01 01 10 sbb 0x10010117\(%rip\),%rsi # 100101f0 <.*> -+[ ]*[a-f0-9]+: 48 2b 2d 10 01 01 10 sub 0x10010110\(%rip\),%rbp # 100101f0 <.*> -+[ ]*[a-f0-9]+: 4c 33 05 09 01 01 10 xor 0x10010109\(%rip\),%r8 # 100101f0 <.*> -+[ ]*[a-f0-9]+: 4c 85 3d 02 01 01 10 test %r15,0x10010102\(%rip\) # 100101f0 <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/load1d.d b/ld/testsuite/ld-x86-64/load1d.d -index 2987048..ee1e3f0 100644 ---- a/ld/testsuite/ld-x86-64/load1d.d -+++ b/ld/testsuite/ld-x86-64/load1d.d -@@ -9,40 +9,40 @@ - Disassembly of section .text: - - 0+[a-f0-9]+ <_start>: --[ ]*[a-f0-9]+: 13 05 5a 01 20 00 adc 0x20015a\(%rip\),%eax # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 03 1d 54 01 20 00 add 0x200154\(%rip\),%ebx # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 23 0d 4e 01 20 00 and 0x20014e\(%rip\),%ecx # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 3b 15 48 01 20 00 cmp 0x200148\(%rip\),%edx # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 0b 35 42 01 20 00 or 0x200142\(%rip\),%esi # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 1b 3d 3c 01 20 00 sbb 0x20013c\(%rip\),%edi # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 2b 2d 36 01 20 00 sub 0x200136\(%rip\),%ebp # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 44 33 05 2f 01 20 00 xor 0x20012f\(%rip\),%r8d # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 44 85 3d 28 01 20 00 test %r15d,0x200128\(%rip\) # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 48 13 05 21 01 20 00 adc 0x200121\(%rip\),%rax # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 48 03 1d 1a 01 20 00 add 0x20011a\(%rip\),%rbx # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 48 23 0d 13 01 20 00 and 0x200113\(%rip\),%rcx # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 48 3b 15 0c 01 20 00 cmp 0x20010c\(%rip\),%rdx # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 48 0b 3d 05 01 20 00 or 0x200105\(%rip\),%rdi # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 48 1b 35 fe 00 20 00 sbb 0x2000fe\(%rip\),%rsi # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 48 2b 2d f7 00 20 00 sub 0x2000f7\(%rip\),%rbp # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 4c 33 05 f0 00 20 00 xor 0x2000f0\(%rip\),%r8 # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 4c 85 3d e9 00 20 00 test %r15,0x2000e9\(%rip\) # 2002b8 <_DYNAMIC\+0x70> --[ ]*[a-f0-9]+: 13 05 eb 00 20 00 adc 0x2000eb\(%rip\),%eax # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 03 1d e5 00 20 00 add 0x2000e5\(%rip\),%ebx # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 23 0d df 00 20 00 and 0x2000df\(%rip\),%ecx # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 3b 15 d9 00 20 00 cmp 0x2000d9\(%rip\),%edx # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 0b 35 d3 00 20 00 or 0x2000d3\(%rip\),%esi # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 1b 3d cd 00 20 00 sbb 0x2000cd\(%rip\),%edi # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 2b 2d c7 00 20 00 sub 0x2000c7\(%rip\),%ebp # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 44 33 05 c0 00 20 00 xor 0x2000c0\(%rip\),%r8d # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 44 85 3d b9 00 20 00 test %r15d,0x2000b9\(%rip\) # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 48 13 05 b2 00 20 00 adc 0x2000b2\(%rip\),%rax # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 48 03 1d ab 00 20 00 add 0x2000ab\(%rip\),%rbx # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 48 23 0d a4 00 20 00 and 0x2000a4\(%rip\),%rcx # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 48 3b 15 9d 00 20 00 cmp 0x20009d\(%rip\),%rdx # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 48 0b 3d 96 00 20 00 or 0x200096\(%rip\),%rdi # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 48 1b 35 8f 00 20 00 sbb 0x20008f\(%rip\),%rsi # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 48 2b 2d 88 00 20 00 sub 0x200088\(%rip\),%rbp # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 4c 33 05 81 00 20 00 xor 0x200081\(%rip\),%r8 # 2002c0 <_DYNAMIC\+0x78> --[ ]*[a-f0-9]+: 4c 85 3d 7a 00 20 00 test %r15,0x20007a\(%rip\) # 2002c0 <_DYNAMIC\+0x78> -+[ ]*[a-f0-9]+: 13 05 5a 01 20 00 adc 0x20015a\(%rip\),%eax # 2002b8 <.*> -+[ ]*[a-f0-9]+: 03 1d 54 01 20 00 add 0x200154\(%rip\),%ebx # 2002b8 <.*> -+[ ]*[a-f0-9]+: 23 0d 4e 01 20 00 and 0x20014e\(%rip\),%ecx # 2002b8 <.*> -+[ ]*[a-f0-9]+: 3b 15 48 01 20 00 cmp 0x200148\(%rip\),%edx # 2002b8 <.*> -+[ ]*[a-f0-9]+: 0b 35 42 01 20 00 or 0x200142\(%rip\),%esi # 2002b8 <.*> -+[ ]*[a-f0-9]+: 1b 3d 3c 01 20 00 sbb 0x20013c\(%rip\),%edi # 2002b8 <.*> -+[ ]*[a-f0-9]+: 2b 2d 36 01 20 00 sub 0x200136\(%rip\),%ebp # 2002b8 <.*> -+[ ]*[a-f0-9]+: 44 33 05 2f 01 20 00 xor 0x20012f\(%rip\),%r8d # 2002b8 <.*> -+[ ]*[a-f0-9]+: 44 85 3d 28 01 20 00 test %r15d,0x200128\(%rip\) # 2002b8 <.*> -+[ ]*[a-f0-9]+: 48 13 05 21 01 20 00 adc 0x200121\(%rip\),%rax # 2002b8 <.*> -+[ ]*[a-f0-9]+: 48 03 1d 1a 01 20 00 add 0x20011a\(%rip\),%rbx # 2002b8 <.*> -+[ ]*[a-f0-9]+: 48 23 0d 13 01 20 00 and 0x200113\(%rip\),%rcx # 2002b8 <.*> -+[ ]*[a-f0-9]+: 48 3b 15 0c 01 20 00 cmp 0x20010c\(%rip\),%rdx # 2002b8 <.*> -+[ ]*[a-f0-9]+: 48 0b 3d 05 01 20 00 or 0x200105\(%rip\),%rdi # 2002b8 <.*> -+[ ]*[a-f0-9]+: 48 1b 35 fe 00 20 00 sbb 0x2000fe\(%rip\),%rsi # 2002b8 <.*> -+[ ]*[a-f0-9]+: 48 2b 2d f7 00 20 00 sub 0x2000f7\(%rip\),%rbp # 2002b8 <.*> -+[ ]*[a-f0-9]+: 4c 33 05 f0 00 20 00 xor 0x2000f0\(%rip\),%r8 # 2002b8 <.*> -+[ ]*[a-f0-9]+: 4c 85 3d e9 00 20 00 test %r15,0x2000e9\(%rip\) # 2002b8 <.*> -+[ ]*[a-f0-9]+: 13 05 eb 00 20 00 adc 0x2000eb\(%rip\),%eax # 2002c0 <.*> -+[ ]*[a-f0-9]+: 03 1d e5 00 20 00 add 0x2000e5\(%rip\),%ebx # 2002c0 <.*> -+[ ]*[a-f0-9]+: 23 0d df 00 20 00 and 0x2000df\(%rip\),%ecx # 2002c0 <.*> -+[ ]*[a-f0-9]+: 3b 15 d9 00 20 00 cmp 0x2000d9\(%rip\),%edx # 2002c0 <.*> -+[ ]*[a-f0-9]+: 0b 35 d3 00 20 00 or 0x2000d3\(%rip\),%esi # 2002c0 <.*> -+[ ]*[a-f0-9]+: 1b 3d cd 00 20 00 sbb 0x2000cd\(%rip\),%edi # 2002c0 <.*> -+[ ]*[a-f0-9]+: 2b 2d c7 00 20 00 sub 0x2000c7\(%rip\),%ebp # 2002c0 <.*> -+[ ]*[a-f0-9]+: 44 33 05 c0 00 20 00 xor 0x2000c0\(%rip\),%r8d # 2002c0 <.*> -+[ ]*[a-f0-9]+: 44 85 3d b9 00 20 00 test %r15d,0x2000b9\(%rip\) # 2002c0 <.*> -+[ ]*[a-f0-9]+: 48 13 05 b2 00 20 00 adc 0x2000b2\(%rip\),%rax # 2002c0 <.*> -+[ ]*[a-f0-9]+: 48 03 1d ab 00 20 00 add 0x2000ab\(%rip\),%rbx # 2002c0 <.*> -+[ ]*[a-f0-9]+: 48 23 0d a4 00 20 00 and 0x2000a4\(%rip\),%rcx # 2002c0 <.*> -+[ ]*[a-f0-9]+: 48 3b 15 9d 00 20 00 cmp 0x20009d\(%rip\),%rdx # 2002c0 <.*> -+[ ]*[a-f0-9]+: 48 0b 3d 96 00 20 00 or 0x200096\(%rip\),%rdi # 2002c0 <.*> -+[ ]*[a-f0-9]+: 48 1b 35 8f 00 20 00 sbb 0x20008f\(%rip\),%rsi # 2002c0 <.*> -+[ ]*[a-f0-9]+: 48 2b 2d 88 00 20 00 sub 0x200088\(%rip\),%rbp # 2002c0 <.*> -+[ ]*[a-f0-9]+: 4c 33 05 81 00 20 00 xor 0x200081\(%rip\),%r8 # 2002c0 <.*> -+[ ]*[a-f0-9]+: 4c 85 3d 7a 00 20 00 test %r15,0x20007a\(%rip\) # 2002c0 <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/mov1a.d b/ld/testsuite/ld-x86-64/mov1a.d -index 4ac6d7e..4c26d6f 100644 ---- a/ld/testsuite/ld-x86-64/mov1a.d -+++ b/ld/testsuite/ld-x86-64/mov1a.d -@@ -9,7 +9,7 @@ - Disassembly of section .text: - - #... --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/mov1b.d b/ld/testsuite/ld-x86-64/mov1b.d -index 7421853..51a9190 100644 ---- a/ld/testsuite/ld-x86-64/mov1b.d -+++ b/ld/testsuite/ld-x86-64/mov1b.d -@@ -9,7 +9,7 @@ - Disassembly of section .text: - - #... --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> - [ ]*[a-f0-9]+: 48 c7 c0 00 00 00 00 * mov \$0x0,%rax - [ ]*[a-f0-9]+: 48 c7 c0 00 00 00 00 * mov \$0x0,%rax - #pass -diff --git a/ld/testsuite/ld-x86-64/mov1c.d b/ld/testsuite/ld-x86-64/mov1c.d -index bb7bab1..be3337a 100644 ---- a/ld/testsuite/ld-x86-64/mov1c.d -+++ b/ld/testsuite/ld-x86-64/mov1c.d -@@ -9,7 +9,7 @@ - Disassembly of section .text: - - #... --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/mov1d.d b/ld/testsuite/ld-x86-64/mov1d.d -index 7cdab0c..720b150 100644 ---- a/ld/testsuite/ld-x86-64/mov1d.d -+++ b/ld/testsuite/ld-x86-64/mov1d.d -@@ -9,7 +9,7 @@ - Disassembly of section .text: - - #... --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> - [ ]*[a-f0-9]+: 40 c7 c0 00 00 00 00 * rex mov \$0x0,%eax - [ ]*[a-f0-9]+: 40 c7 c0 00 00 00 00 * rex mov \$0x0,%eax - #pass -diff --git a/ld/testsuite/ld-x86-64/mov2a.d b/ld/testsuite/ld-x86-64/mov2a.d -index aaf5707..09f8790 100644 ---- a/ld/testsuite/ld-x86-64/mov2a.d -+++ b/ld/testsuite/ld-x86-64/mov2a.d -@@ -9,7 +9,7 @@ - Disassembly of section .text: - - #... --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/mov2b.d b/ld/testsuite/ld-x86-64/mov2b.d -index ee1b308..41d4b95 100644 ---- a/ld/testsuite/ld-x86-64/mov2b.d -+++ b/ld/testsuite/ld-x86-64/mov2b.d -@@ -9,7 +9,7 @@ - Disassembly of section .text: - - #... --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/mov2c.d b/ld/testsuite/ld-x86-64/mov2c.d -index 8991121..766584c 100644 ---- a/ld/testsuite/ld-x86-64/mov2c.d -+++ b/ld/testsuite/ld-x86-64/mov2c.d -@@ -9,7 +9,7 @@ - Disassembly of section .text: - - #... --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/mov2d.d b/ld/testsuite/ld-x86-64/mov2d.d -index 744028e..6b93947 100644 ---- a/ld/testsuite/ld-x86-64/mov2d.d -+++ b/ld/testsuite/ld-x86-64/mov2d.d -@@ -9,7 +9,7 @@ - Disassembly of section .text: - - #... --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/mpx3.dd b/ld/testsuite/ld-x86-64/mpx3.dd -index eb529f4..d5d8049 100644 ---- a/ld/testsuite/ld-x86-64/mpx3.dd -+++ b/ld/testsuite/ld-x86-64/mpx3.dd -@@ -8,13 +8,13 @@ Disassembly of section .plt: - [ ]*[a-f0-9]+: f2 ff ([0-9a-f]{2} ){5} bnd jmpq \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_GLOBAL_OFFSET_TABLE_\+0x10> - [ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - [ ]*[a-f0-9]+: 68 00 00 00 00 pushq \$0x0 --[ ]*[a-f0-9]+: f2 e9 ([0-9a-f]{2} ){4} bnd jmpq [a-f0-9]+ -+[ ]*[a-f0-9]+: f2 e9 ([0-9a-f]{2} ){4} bnd jmpq [a-f0-9]+ <.plt> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.bnd: - - 0+[a-f0-9]+ : --[ ]*[a-f0-9]+: f2 ff ([0-9a-f]{2} ){5} bnd jmpq \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_GLOBAL_OFFSET_TABLE_\+0x18> -+[ ]*[a-f0-9]+: f2 ff ([0-9a-f]{2} ){5} bnd jmpq \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ - [ ]*[a-f0-9]+: 90 nop - - Disassembly of section .text: -@@ -22,7 +22,7 @@ Disassembly of section .text: - 0+[a-f0-9]+ <_start>: - [ ]*[a-f0-9]+: bf ([0-9a-f]{2} ){4} mov \$0x[a-f0-9]+,%edi - [ ]*[a-f0-9]+: f2 ff d7 bnd callq \*%rdi --[ ]*[a-f0-9]+: 48 8b ([0-9a-f]{2} ){5} mov 0x[a-f0-9]+\(%rip\),%rdi # [a-f0-9]+ -+[ ]*[a-f0-9]+: 48 8b ([0-9a-f]{2} ){5} mov 0x[a-f0-9]+\(%rip\),%rdi # [a-f0-9]+ - [ ]*[a-f0-9]+: f2 ff d7 bnd callq \*%rdi - [ ]*[a-f0-9]+: c3 retq - #pass -diff --git a/ld/testsuite/ld-x86-64/mpx4.dd b/ld/testsuite/ld-x86-64/mpx4.dd -index 0cf0f75..1bcb13b 100644 ---- a/ld/testsuite/ld-x86-64/mpx4.dd -+++ b/ld/testsuite/ld-x86-64/mpx4.dd -@@ -8,13 +8,13 @@ Disassembly of section .plt: - [ ]*[a-f0-9]+: f2 ff 25 43 01 20 00 bnd jmpq \*0x200143\(%rip\) # 6003b0 <_GLOBAL_OFFSET_TABLE_\+0x10> - [ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - [ ]*[a-f0-9]+: 68 00 00 00 00 pushq \$0x0 --[ ]*[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmpq 400260 -+[ ]*[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmpq 400260 <.plt> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.bnd: - - 0+400280 : --[ ]*[a-f0-9]+: f2 ff 25 31 01 20 00 bnd jmpq \*0x200131\(%rip\) # 6003b8 <_GLOBAL_OFFSET_TABLE_\+0x18> -+[ ]*[a-f0-9]+: f2 ff 25 31 01 20 00 bnd jmpq \*0x200131\(%rip\) # 6003b8 - [ ]*[a-f0-9]+: 90 nop - - Disassembly of section .text: -diff --git a/ld/testsuite/ld-x86-64/no-plt-1a.dd b/ld/testsuite/ld-x86-64/no-plt-1a.dd -index 7c2f5b2..a8445c7 100644 ---- a/ld/testsuite/ld-x86-64/no-plt-1a.dd -+++ b/ld/testsuite/ld-x86-64/no-plt-1a.dd -@@ -21,8 +21,8 @@ Disassembly of section .text: - +[a-f0-9]+: 75 11 jne [0-9a-f]+ - +[a-f0-9]+: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[a-f0-9]+\(%rip\),%rdi +# [a-f0-9]+.* - +[a-f0-9]+: 48 83 c4 08 add \$0x8,%rsp -- +[a-f0-9]+: ff 25 ([0-9a-f]{2} ){4}[ ]+jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -- +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 25 ([0-9a-f]{2} ){4}[ ]+jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> -+ +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - #... - [0-9a-f]+ : - +[a-f0-9]+: 4(0|8) c7 c0 ([0-9a-f]{2} ){4}[ ]+(rex |)mov +\$0x[0-9a-f]+,%(e|r)ax -diff --git a/ld/testsuite/ld-x86-64/no-plt-1b.dd b/ld/testsuite/ld-x86-64/no-plt-1b.dd -index 13d24b8..c21e912 100644 ---- a/ld/testsuite/ld-x86-64/no-plt-1b.dd -+++ b/ld/testsuite/ld-x86-64/no-plt-1b.dd -@@ -8,19 +8,19 @@ Disassembly of section .text: - #... - [0-9a-f]+ : - +[a-f0-9]+: 48 83 ec 08 sub \$0x8,%rsp -- +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -- +[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4}[ ]+cmp 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> -+ +[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4}[ ]+cmp 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - +[a-f0-9]+: 75 34 jne [0-9a-f]+ - +[a-f0-9]+: 4(0|8) 39 05 ([0-9a-f]{2} ){4}[ ]+(rex |)cmp +%(e|r)ax,0x[0-9a-f]+\(%rip\) +# [a-f0-9]+ <.*> - +[a-f0-9]+: 75 2b jne [0-9a-f]+ -- +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - +[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax - +[a-f0-9]+: 75 1e jne [0-9a-f]+ -- +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - +[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax - +[a-f0-9]+: 75 11 jne [0-9a-f]+ - +[a-f0-9]+: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[a-f0-9]+\(%rip\),%rdi +# [a-f0-9]+.* - +[a-f0-9]+: 48 83 c4 08 add \$0x8,%rsp -- +[a-f0-9]+: ff 25 ([0-9a-f]{2} ){4}[ ]+jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -- +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 25 ([0-9a-f]{2} ){4}[ ]+jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> -+ +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/no-plt-1c.dd b/ld/testsuite/ld-x86-64/no-plt-1c.dd -index 75287c9..b41246b 100644 ---- a/ld/testsuite/ld-x86-64/no-plt-1c.dd -+++ b/ld/testsuite/ld-x86-64/no-plt-1c.dd -@@ -8,7 +8,7 @@ Disassembly of section .text: - #... - [0-9a-f]+ : - +[a-f0-9]+: 48 83 ec 08 sub \$0x8,%rsp -- +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - +[a-f0-9]+: 48 81 f8 ([0-9a-f]{2} ){4}[ ]+cmp \$0x[0-9a-f]+,%rax - +[a-f0-9]+: 75 34 jne [0-9a-f]+ - +[a-f0-9]+: 4(0|8) 39 05 ([0-9a-f]{2} ){4}[ ]+(rex |)cmp +%(e|r)ax,0x[0-9a-f]+\(%rip\) +# [a-f0-9]+ <.*> -@@ -16,11 +16,11 @@ Disassembly of section .text: - +[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr32 callq [0-9a-f]+ - +[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax - +[a-f0-9]+: 75 1e jne [0-9a-f]+ -- +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - +[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax - +[a-f0-9]+: 75 11 jne [0-9a-f]+ - +[a-f0-9]+: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[a-f0-9]+\(%rip\),%rdi +# [a-f0-9]+.* - +[a-f0-9]+: 48 83 c4 08 add \$0x8,%rsp -- +[a-f0-9]+: ff 25 ([0-9a-f]{2} ){4}[ ]+jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -- +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 25 ([0-9a-f]{2} ){4}[ ]+jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> -+ +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/no-plt-1e.dd b/ld/testsuite/ld-x86-64/no-plt-1e.dd -index 0126abe..f3b07ab 100644 ---- a/ld/testsuite/ld-x86-64/no-plt-1e.dd -+++ b/ld/testsuite/ld-x86-64/no-plt-1e.dd -@@ -9,7 +9,7 @@ Disassembly of section .text: - [0-9a-f]+ : - +[a-f0-9]+: 48 83 ec 08 sub \$0x8,%rsp - +[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr32 callq [0-9a-f]+ -- +[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4}[ ]+cmp 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4}[ ]+cmp 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - +[a-f0-9]+: 75 34 jne [0-9a-f]+ - +[a-f0-9]+: 4(0|8) 39 05 ([0-9a-f]{2} ){4}[ ]+(rex |)cmp +%(e|r)ax,0x[0-9a-f]+\(%rip\) +# [a-f0-9]+ - +[a-f0-9]+: 75 2b jne [0-9a-f]+ -@@ -21,8 +21,8 @@ Disassembly of section .text: - +[a-f0-9]+: 75 11 jne [0-9a-f]+ - +[a-f0-9]+: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[a-f0-9]+\(%rip\),%rdi +# [a-f0-9]+.* - +[a-f0-9]+: 48 83 c4 08 add \$0x8,%rsp -- +[a-f0-9]+: ff 25 ([0-9a-f]{2} ){4}[ ]+jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -- +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 25 ([0-9a-f]{2} ){4}[ ]+jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> -+ +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - #... - [0-9a-f]+ : - +[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4}[ ]+lea -0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ -diff --git a/ld/testsuite/ld-x86-64/no-plt-1f.dd b/ld/testsuite/ld-x86-64/no-plt-1f.dd -index 13d24b8..c21e912 100644 ---- a/ld/testsuite/ld-x86-64/no-plt-1f.dd -+++ b/ld/testsuite/ld-x86-64/no-plt-1f.dd -@@ -8,19 +8,19 @@ Disassembly of section .text: - #... - [0-9a-f]+ : - +[a-f0-9]+: 48 83 ec 08 sub \$0x8,%rsp -- +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -- +[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4}[ ]+cmp 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> -+ +[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4}[ ]+cmp 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - +[a-f0-9]+: 75 34 jne [0-9a-f]+ - +[a-f0-9]+: 4(0|8) 39 05 ([0-9a-f]{2} ){4}[ ]+(rex |)cmp +%(e|r)ax,0x[0-9a-f]+\(%rip\) +# [a-f0-9]+ <.*> - +[a-f0-9]+: 75 2b jne [0-9a-f]+ -- +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - +[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax - +[a-f0-9]+: 75 1e jne [0-9a-f]+ -- +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - +[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax - +[a-f0-9]+: 75 11 jne [0-9a-f]+ - +[a-f0-9]+: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[a-f0-9]+\(%rip\),%rdi +# [a-f0-9]+.* - +[a-f0-9]+: 48 83 c4 08 add \$0x8,%rsp -- +[a-f0-9]+: ff 25 ([0-9a-f]{2} ){4}[ ]+jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -- +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 25 ([0-9a-f]{2} ){4}[ ]+jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> -+ +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/no-plt-1g.dd b/ld/testsuite/ld-x86-64/no-plt-1g.dd -index 5a3dd17..ca4eb59 100644 ---- a/ld/testsuite/ld-x86-64/no-plt-1g.dd -+++ b/ld/testsuite/ld-x86-64/no-plt-1g.dd -@@ -8,19 +8,19 @@ Disassembly of section .text: - #... - [0-9a-f]+ : - +[a-f0-9]+: 48 83 ec 08 sub \$0x8,%rsp -- +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -- +[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4}[ ]+cmp 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> -+ +[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4}[ ]+cmp 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - +[a-f0-9]+: 75 34 jne [0-9a-f]+ - +[a-f0-9]+: 4(0|8) 39 05 ([0-9a-f]{2} ){4}[ ]+(rex |)cmp +%(e|r)ax,0x[0-9a-f]+\(%rip\) +# [a-f0-9]+ <.*> - +[a-f0-9]+: 75 2b jne [0-9a-f]+ - +[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr32 callq [0-9a-f]+ - +[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax - +[a-f0-9]+: 75 1e jne [0-9a-f]+ -- +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - +[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax - +[a-f0-9]+: 75 11 jne [0-9a-f]+ - +[a-f0-9]+: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[a-f0-9]+\(%rip\),%rdi +# [a-f0-9]+.* - +[a-f0-9]+: 48 83 c4 08 add \$0x8,%rsp -- +[a-f0-9]+: ff 25 ([0-9a-f]{2} ){4}[ ]+jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -- +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[a-f0-9]+: ff 25 ([0-9a-f]{2} ){4}[ ]+jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> -+ +[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/plt-main-bnd.dd b/ld/testsuite/ld-x86-64/plt-main-bnd.dd -index 8598e30..91fc945 100644 ---- a/ld/testsuite/ld-x86-64/plt-main-bnd.dd -+++ b/ld/testsuite/ld-x86-64/plt-main-bnd.dd -@@ -2,6 +2,6 @@ - Disassembly of section .plt.got: - - [a-f0-9]+ <.plt.got>: --[ ]*[a-f0-9]+: f2 ff 25 .. .. 20 00 bnd jmpq \*0x20....\(%rip\) # ...... <_DYNAMIC\+0x...> -+[ ]*[a-f0-9]+: f2 ff 25 .. .. 20 00 bnd jmpq \*0x20....\(%rip\) # ...... <.*> - [ ]*[a-f0-9]+: 90 nop - #pass -diff --git a/ld/testsuite/ld-x86-64/plt-nacl.pd b/ld/testsuite/ld-x86-64/plt-nacl.pd -index b17bf71..e0ff471 100644 ---- a/ld/testsuite/ld-x86-64/plt-nacl.pd -+++ b/ld/testsuite/ld-x86-64/plt-nacl.pd -@@ -8,7 +8,7 @@ - - Disassembly of section .plt: - --[0-9a-f]+ : -+[0-9a-f]+ <.plt>: - +[0-9a-f]+: ff 35 ([0-9a-f]{2} ){4} * pushq 0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x8> - +[0-9a-f]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov 0x[0-9a-f]+\(%rip\),%r11 +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x10> - +[0-9a-f]+: 41 83 e3 e0 and \$0xffffffe0,%r11d -@@ -33,7 +33,7 @@ Disassembly of section .plt: - +[0-9a-f]+: 0f 1f 84 00 00 00 00 * - +[0-9a-f]+: 00 * - +[0-9a-f]+: 68 00 00 00 00 pushq \$0x0 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmpq [0-9a-f]+ -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmpq [0-9a-f]+ <.plt> - +[0-9a-f]+: 66 66 66 66 66 66 2e data16 data16 data16 data16 data16 nopw %cs:0x0\(%rax,%rax,1\) - +[0-9a-f]+: 0f 1f 84 00 00 00 00 * - +[0-9a-f]+: 00 * -@@ -48,7 +48,7 @@ Disassembly of section .plt: - +[0-9a-f]+: 0f 1f 84 00 00 00 00 * - +[0-9a-f]+: 00 * - +[0-9a-f]+: 68 01 00 00 00 pushq \$0x1 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmpq [0-9a-f]+ -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmpq [0-9a-f]+ <.plt> - +[0-9a-f]+: 66 66 66 66 66 66 2e data16 data16 data16 data16 data16 nopw %cs:0x0\(%rax,%rax,1\) - +[0-9a-f]+: 0f 1f 84 00 00 00 00 * - +[0-9a-f]+: 00 * -diff --git a/ld/testsuite/ld-x86-64/plt.pd b/ld/testsuite/ld-x86-64/plt.pd -index b11cc22..b303d36 100644 ---- a/ld/testsuite/ld-x86-64/plt.pd -+++ b/ld/testsuite/ld-x86-64/plt.pd -@@ -8,17 +8,17 @@ - - Disassembly of section .plt: - --[0-9a-f]+ : -+[0-9a-f]+ <.plt>: - +[0-9a-f]+: ff 35 ([0-9a-f]{2} ){4} * pushq 0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x8> - +[0-9a-f]+: ff 25 ([0-9a-f]{2} ){4} * jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x10> - +[0-9a-f]+: 0f 1f 40 00 nopl 0x0\(%rax\) - - [0-9a-f]+ : -- +[0-9a-f]+: ff 25 ([0-9a-f]{2} ){4} * jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x18> -+ +[0-9a-f]+: ff 25 ([0-9a-f]{2} ){4} * jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ - +[0-9a-f]+: 68 00 00 00 00 pushq \$0x0 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmpq [0-9a-f]+ -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmpq [0-9a-f]+ <.plt> - - [0-9a-f]+ : -- +[0-9a-f]+: ff 25 ([0-9a-f]{2} ){4} * jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x20> -+ +[0-9a-f]+: ff 25 ([0-9a-f]{2} ){4} * jmpq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ - +[0-9a-f]+: 68 01 00 00 00 pushq \$0x1 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmpq [0-9a-f]+ -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmpq [0-9a-f]+ <.plt> -diff --git a/ld/testsuite/ld-x86-64/pr18591.d b/ld/testsuite/ld-x86-64/pr18591.d -index d5c2150..af930f6 100644 ---- a/ld/testsuite/ld-x86-64/pr18591.d -+++ b/ld/testsuite/ld-x86-64/pr18591.d -@@ -8,5 +8,5 @@ - Disassembly of section .text: - - [a-f0-9]+ : --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr19609-1c.d b/ld/testsuite/ld-x86-64/pr19609-1c.d -index 3b1e98d..32bf67a 100644 ---- a/ld/testsuite/ld-x86-64/pr19609-1c.d -+++ b/ld/testsuite/ld-x86-64/pr19609-1c.d -@@ -9,15 +9,15 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 3b 0d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 4c 3b 1d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 44 3b 25 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 8b 0d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 44 8b 25 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 85 05 ([0-9a-f]{2} ){4} * test %rax,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 85 0d ([0-9a-f]{2} ){4} * test %ecx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 4c 85 1d ([0-9a-f]{2} ){4} * test %r11,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 44 85 25 ([0-9a-f]{2} ){4} * test %r12d,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 3b 0d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 4c 3b 1d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 44 3b 25 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 8b 0d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 44 8b 25 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 85 05 ([0-9a-f]{2} ){4} * test %rax,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 85 0d ([0-9a-f]{2} ){4} * test %ecx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 4c 85 1d ([0-9a-f]{2} ){4} * test %r11,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 44 85 25 ([0-9a-f]{2} ){4} * test %r12d,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -diff --git a/ld/testsuite/ld-x86-64/pr19609-1e.d b/ld/testsuite/ld-x86-64/pr19609-1e.d -index dac5fef..4edc56e 100644 ---- a/ld/testsuite/ld-x86-64/pr19609-1e.d -+++ b/ld/testsuite/ld-x86-64/pr19609-1e.d -@@ -9,15 +9,15 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 3b 0d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 4c 3b 1d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 44 3b 25 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 8b 0d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 44 8b 25 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 85 05 ([0-9a-f]{2} ){4} * test %rax,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 85 0d ([0-9a-f]{2} ){4} * test %ecx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 4c 85 1d ([0-9a-f]{2} ){4} * test %r11,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 44 85 25 ([0-9a-f]{2} ){4} * test %r12d,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 3b 0d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 4c 3b 1d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 44 3b 25 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 8b 0d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 44 8b 25 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 85 05 ([0-9a-f]{2} ){4} * test %rax,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 85 0d ([0-9a-f]{2} ){4} * test %ecx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 4c 85 1d ([0-9a-f]{2} ){4} * test %r11,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 44 85 25 ([0-9a-f]{2} ){4} * test %r12d,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -diff --git a/ld/testsuite/ld-x86-64/pr19609-1j.d b/ld/testsuite/ld-x86-64/pr19609-1j.d -index 4a36a70..c8b940a 100644 ---- a/ld/testsuite/ld-x86-64/pr19609-1j.d -+++ b/ld/testsuite/ld-x86-64/pr19609-1j.d -@@ -9,15 +9,15 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 3b 0d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 4c 3b 1d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 44 3b 25 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 8b 0d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 44 8b 25 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 85 05 ([0-9a-f]{2} ){4} * test %rax,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 85 0d ([0-9a-f]{2} ){4} * test %ecx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 4c 85 1d ([0-9a-f]{2} ){4} * test %r11,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 44 85 25 ([0-9a-f]{2} ){4} * test %r12d,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 3b 0d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 4c 3b 1d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 44 3b 25 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 8b 0d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 44 8b 25 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 85 05 ([0-9a-f]{2} ){4} * test %rax,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 85 0d ([0-9a-f]{2} ){4} * test %ecx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 4c 85 1d ([0-9a-f]{2} ){4} * test %r11,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 44 85 25 ([0-9a-f]{2} ){4} * test %r12d,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -diff --git a/ld/testsuite/ld-x86-64/pr19609-1l.d b/ld/testsuite/ld-x86-64/pr19609-1l.d -index aedf5d8..5559399 100644 ---- a/ld/testsuite/ld-x86-64/pr19609-1l.d -+++ b/ld/testsuite/ld-x86-64/pr19609-1l.d -@@ -9,15 +9,15 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_start\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 3b 0d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_start\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 4c 3b 1d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_start\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 44 3b 25 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 3b 0d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 4c 3b 1d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 44 3b 25 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <.*> - [ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%rax # 0 <_start-0x[a-f0-9]+> - [ ]*[a-f0-9]+: 8d 0d ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%ecx # 0 <_start-0x[a-f0-9]+> - [ ]*[a-f0-9]+: 4c 8d 1d ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%r11 # 0 <_start-0x[a-f0-9]+> - [ ]*[a-f0-9]+: 44 8d 25 ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%r12d # 0 <_start-0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 85 05 ([0-9a-f]{2} ){4} * test %rax,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_start\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 85 0d ([0-9a-f]{2} ){4} * test %ecx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_start\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 4c 85 1d ([0-9a-f]{2} ){4} * test %r11,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_start\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 44 85 25 ([0-9a-f]{2} ){4} * test %r12d,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 85 05 ([0-9a-f]{2} ){4} * test %rax,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 85 0d ([0-9a-f]{2} ){4} * test %ecx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 4c 85 1d ([0-9a-f]{2} ){4} * test %r11,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 44 85 25 ([0-9a-f]{2} ){4} * test %r12d,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -diff --git a/ld/testsuite/ld-x86-64/pr19609-1m.d b/ld/testsuite/ld-x86-64/pr19609-1m.d -index 8e80cbb..c6831d8 100644 ---- a/ld/testsuite/ld-x86-64/pr19609-1m.d -+++ b/ld/testsuite/ld-x86-64/pr19609-1m.d -@@ -9,15 +9,15 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 3b 0d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 4c 3b 1d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 44 3b 25 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 8b 0d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 44 8b 25 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 48 85 05 ([0-9a-f]{2} ){4} * test %rax,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 85 0d ([0-9a-f]{2} ){4} * test %ecx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 4c 85 1d ([0-9a-f]{2} ){4} * test %r11,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> --[ ]*[a-f0-9]+: 44 85 25 ([0-9a-f]{2} ){4} * test %r12d,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 3b 0d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 4c 3b 1d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 44 3b 25 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 8b 0d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 44 8b 25 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 48 85 05 ([0-9a-f]{2} ){4} * test %rax,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 85 0d ([0-9a-f]{2} ){4} * test %ecx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 4c 85 1d ([0-9a-f]{2} ){4} * test %r11,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -+[ ]*[a-f0-9]+: 44 85 25 ([0-9a-f]{2} ){4} * test %r12d,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -diff --git a/ld/testsuite/ld-x86-64/pr19609-5b.d b/ld/testsuite/ld-x86-64/pr19609-5b.d -index 4183d56..257fa63 100644 ---- a/ld/testsuite/ld-x86-64/pr19609-5b.d -+++ b/ld/testsuite/ld-x86-64/pr19609-5b.d -@@ -9,4 +9,4 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]+[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * callq \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]+[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * callq \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -diff --git a/ld/testsuite/ld-x86-64/pr19609-5c.d b/ld/testsuite/ld-x86-64/pr19609-5c.d -index 4eaeb2b..1de68b4 100644 ---- a/ld/testsuite/ld-x86-64/pr19609-5c.d -+++ b/ld/testsuite/ld-x86-64/pr19609-5c.d -@@ -9,4 +9,4 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]+[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * callq \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]+[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * callq \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ -diff --git a/ld/testsuite/ld-x86-64/pr19609-5e.d b/ld/testsuite/ld-x86-64/pr19609-5e.d -index b6b6c65..90bdb3d 100644 ---- a/ld/testsuite/ld-x86-64/pr19609-5e.d -+++ b/ld/testsuite/ld-x86-64/pr19609-5e.d -@@ -9,4 +9,4 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]+[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * callq \*-?0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <[0-9a-zA-Z_]+[\+\-]+0x[a-f0-9]+> -+[ ]+[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * callq \*-?0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*> -diff --git a/ld/testsuite/ld-x86-64/pr19609-6b.d b/ld/testsuite/ld-x86-64/pr19609-6b.d -index 64e1f5b..810023b 100644 ---- a/ld/testsuite/ld-x86-64/pr19609-6b.d -+++ b/ld/testsuite/ld-x86-64/pr19609-6b.d -@@ -9,5 +9,5 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.got> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr19609-7b.d b/ld/testsuite/ld-x86-64/pr19609-7b.d -index 2e8fd35..898a5df 100644 ---- a/ld/testsuite/ld-x86-64/pr19609-7b.d -+++ b/ld/testsuite/ld-x86-64/pr19609-7b.d -@@ -9,5 +9,5 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]*[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * callq \*-?0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*0x[a-f0-9]+> -+[ ]*[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * callq \*-?0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.got> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr19609-7d.d b/ld/testsuite/ld-x86-64/pr19609-7d.d -index ba28828..476cafa 100644 ---- a/ld/testsuite/ld-x86-64/pr19609-7d.d -+++ b/ld/testsuite/ld-x86-64/pr19609-7d.d -@@ -9,5 +9,5 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]*[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * callq \*-?0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*0x[a-f0-9]+> -+[ ]*[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * callq \*-?0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.got> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr19636-2d.d b/ld/testsuite/ld-x86-64/pr19636-2d.d -index ff25ec1..4f5c1f0 100644 ---- a/ld/testsuite/ld-x86-64/pr19636-2d.d -+++ b/ld/testsuite/ld-x86-64/pr19636-2d.d -@@ -20,6 +20,6 @@ Disassembly of section .plt: - Disassembly of section .text: - - 0+140 <_start>: --[ ]*[a-f0-9]+: 48 3b 05 f1 00 20 00 cmp 0x2000f1\(%rip\),%rax # 200238 <_DYNAMIC\+0xe0> --[ ]*[a-f0-9]+: ff 25 f3 00 20 00 jmpq \*0x2000f3\(%rip\) # 200240 <_DYNAMIC\+0xe8> --[ ]*[a-f0-9]+: e8 de ff ff ff callq 130 <_start-0x10> -+[ ]*[a-f0-9]+: 48 3b 05 f1 00 20 00 cmp 0x2000f1\(%rip\),%rax # 200238 <.*> -+[ ]*[a-f0-9]+: ff 25 f3 00 20 00 jmpq \*0x2000f3\(%rip\) # 200240 <.*> -+[ ]*[a-f0-9]+: e8 de ff ff ff callq 130 <.*> -diff --git a/ld/testsuite/ld-x86-64/pr20093-1.d b/ld/testsuite/ld-x86-64/pr20093-1.d -index de81443..90bb3ab 100644 ---- a/ld/testsuite/ld-x86-64/pr20093-1.d -+++ b/ld/testsuite/ld-x86-64/pr20093-1.d -@@ -8,4 +8,4 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -diff --git a/ld/testsuite/ld-x86-64/pr20093-2.d b/ld/testsuite/ld-x86-64/pr20093-2.d -index de81443..90bb3ab 100644 ---- a/ld/testsuite/ld-x86-64/pr20093-2.d -+++ b/ld/testsuite/ld-x86-64/pr20093-2.d -@@ -8,4 +8,4 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> -diff --git a/ld/testsuite/ld-x86-64/pr20253-1b.d b/ld/testsuite/ld-x86-64/pr20253-1b.d -index 247e042..d68dd46 100644 ---- a/ld/testsuite/ld-x86-64/pr20253-1b.d -+++ b/ld/testsuite/ld-x86-64/pr20253-1b.d -@@ -16,10 +16,10 @@ Disassembly of section .text: - +[a-f0-9]+: c3 retq - - 0+4000e2 <_start>: -- +[a-f0-9]+: ff 15 28 00 20 00 callq \*0x200028\(%rip\) # 600110 <_start\+0x20002e> -- +[a-f0-9]+: ff 25 2a 00 20 00 jmpq \*0x20002a\(%rip\) # 600118 <_start\+0x200036> -- +[a-f0-9]+: 48 c7 05 1f 00 20 00 00 00 00 00 movq \$0x0,0x20001f\(%rip\) # 600118 <_start\+0x200036> -- +[a-f0-9]+: 48 83 3d 0f 00 20 00 00 cmpq \$0x0,0x20000f\(%rip\) # 600110 <_start\+0x20002e> -- +[a-f0-9]+: 48 3b 0d 08 00 20 00 cmp 0x200008\(%rip\),%rcx # 600110 <_start\+0x20002e> -- +[a-f0-9]+: 48 3b 0d 09 00 20 00 cmp 0x200009\(%rip\),%rcx # 600118 <_start\+0x200036> -+ +[a-f0-9]+: ff 15 28 00 20 00 callq \*0x200028\(%rip\) # 600110 <.*> -+ +[a-f0-9]+: ff 25 2a 00 20 00 jmpq \*0x20002a\(%rip\) # 600118 <.*> -+ +[a-f0-9]+: 48 c7 05 1f 00 20 00 00 00 00 00 movq \$0x0,0x20001f\(%rip\) # 600118 <.*> -+ +[a-f0-9]+: 48 83 3d 0f 00 20 00 00 cmpq \$0x0,0x20000f\(%rip\) # 600110 <.*> -+ +[a-f0-9]+: 48 3b 0d 08 00 20 00 cmp 0x200008\(%rip\),%rcx # 600110 <.*> -+ +[a-f0-9]+: 48 3b 0d 09 00 20 00 cmp 0x200009\(%rip\),%rcx # 600118 <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr20253-1d.d b/ld/testsuite/ld-x86-64/pr20253-1d.d -index 35c04f8..6953c79 100644 ---- a/ld/testsuite/ld-x86-64/pr20253-1d.d -+++ b/ld/testsuite/ld-x86-64/pr20253-1d.d -@@ -16,10 +16,10 @@ Disassembly of section .text: - +[a-f0-9]+: c3 retq - - 0+1ca <_start>: -- +[a-f0-9]+: ff 15 28 01 20 00 callq \*0x200128\(%rip\) # 2002f8 <_DYNAMIC\+0x100> -- +[a-f0-9]+: ff 25 2a 01 20 00 jmpq \*0x20012a\(%rip\) # 200300 <_DYNAMIC\+0x108> -- +[a-f0-9]+: 48 c7 05 1f 01 20 00 00 00 00 00 movq \$0x0,0x20011f\(%rip\) # 200300 <_DYNAMIC\+0x108> -- +[a-f0-9]+: 48 83 3d 0f 01 20 00 00 cmpq \$0x0,0x20010f\(%rip\) # 2002f8 <_DYNAMIC\+0x100> -- +[a-f0-9]+: 48 3b 0d 08 01 20 00 cmp 0x200108\(%rip\),%rcx # 2002f8 <_DYNAMIC\+0x100> -- +[a-f0-9]+: 48 3b 0d 09 01 20 00 cmp 0x200109\(%rip\),%rcx # 200300 <_DYNAMIC\+0x108> -+ +[a-f0-9]+: ff 15 28 01 20 00 callq \*0x200128\(%rip\) # 2002f8 <.got> -+ +[a-f0-9]+: ff 25 2a 01 20 00 jmpq \*0x20012a\(%rip\) # 200300 <.got\+0x8> -+ +[a-f0-9]+: 48 c7 05 1f 01 20 00 00 00 00 00 movq \$0x0,0x20011f\(%rip\) # 200300 <.got\+0x8> -+ +[a-f0-9]+: 48 83 3d 0f 01 20 00 00 cmpq \$0x0,0x20010f\(%rip\) # 2002f8 <.got> -+ +[a-f0-9]+: 48 3b 0d 08 01 20 00 cmp 0x200108\(%rip\),%rcx # 2002f8 <.got> -+ +[a-f0-9]+: 48 3b 0d 09 01 20 00 cmp 0x200109\(%rip\),%rcx # 200300 <.got\+0x8> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr20253-1f.d b/ld/testsuite/ld-x86-64/pr20253-1f.d -index d84b60e..9319350 100644 ---- a/ld/testsuite/ld-x86-64/pr20253-1f.d -+++ b/ld/testsuite/ld-x86-64/pr20253-1f.d -@@ -16,10 +16,10 @@ Disassembly of section .text: - +[a-f0-9]+: c3 retq - - 0+1fa <_start>: -- +[a-f0-9]+: ff 15 08 01 20 00 callq \*0x200108\(%rip\) # 200308 <_DYNAMIC\+0xe0> -- +[a-f0-9]+: ff 25 0a 01 20 00 jmpq \*0x20010a\(%rip\) # 200310 <_DYNAMIC\+0xe8> -- +[a-f0-9]+: 48 c7 05 ff 00 20 00 00 00 00 00 movq \$0x0,0x2000ff\(%rip\) # 200310 <_DYNAMIC\+0xe8> -- +[a-f0-9]+: 48 83 3d ef 00 20 00 00 cmpq \$0x0,0x2000ef\(%rip\) # 200308 <_DYNAMIC\+0xe0> -- +[a-f0-9]+: 48 3b 0d e8 00 20 00 cmp 0x2000e8\(%rip\),%rcx # 200308 <_DYNAMIC\+0xe0> -- +[a-f0-9]+: 48 3b 0d e9 00 20 00 cmp 0x2000e9\(%rip\),%rcx # 200310 <_DYNAMIC\+0xe8> -+ +[a-f0-9]+: ff 15 08 01 20 00 callq \*0x200108\(%rip\) # 200308 <.*> -+ +[a-f0-9]+: ff 25 0a 01 20 00 jmpq \*0x20010a\(%rip\) # 200310 <.*> -+ +[a-f0-9]+: 48 c7 05 ff 00 20 00 00 00 00 00 movq \$0x0,0x2000ff\(%rip\) # 200310 <.*> -+ +[a-f0-9]+: 48 83 3d ef 00 20 00 00 cmpq \$0x0,0x2000ef\(%rip\) # 200308 <.*> -+ +[a-f0-9]+: 48 3b 0d e8 00 20 00 cmp 0x2000e8\(%rip\),%rcx # 200308 <.*> -+ +[a-f0-9]+: 48 3b 0d e9 00 20 00 cmp 0x2000e9\(%rip\),%rcx # 200310 <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr20253-1h.d b/ld/testsuite/ld-x86-64/pr20253-1h.d -index 77ff100..14a8f1b 100644 ---- a/ld/testsuite/ld-x86-64/pr20253-1h.d -+++ b/ld/testsuite/ld-x86-64/pr20253-1h.d -@@ -16,10 +16,10 @@ Disassembly of section .text: - +[a-f0-9]+: c3 retq - - 0+40008e <_start>: -- +[a-f0-9]+: ff 15 28 00 20 00 callq \*0x200028\(%rip\) # 6000bc <_start\+0x20002e> -- +[a-f0-9]+: ff 25 2a 00 20 00 jmpq \*0x20002a\(%rip\) # 6000c4 <_start\+0x200036> -- +[a-f0-9]+: 48 c7 05 1f 00 20 00 00 00 00 00 movq \$0x0,0x20001f\(%rip\) # 6000c4 <_start\+0x200036> -- +[a-f0-9]+: 48 83 3d 0f 00 20 00 00 cmpq \$0x0,0x20000f\(%rip\) # 6000bc <_start\+0x20002e> -- +[a-f0-9]+: 48 3b 0d 08 00 20 00 cmp 0x200008\(%rip\),%rcx # 6000bc <_start\+0x20002e> -- +[a-f0-9]+: 48 3b 0d 09 00 20 00 cmp 0x200009\(%rip\),%rcx # 6000c4 <_start\+0x200036> -+ +[a-f0-9]+: ff 15 28 00 20 00 callq \*0x200028\(%rip\) # 6000bc <.*> -+ +[a-f0-9]+: ff 25 2a 00 20 00 jmpq \*0x20002a\(%rip\) # 6000c4 <.*> -+ +[a-f0-9]+: 48 c7 05 1f 00 20 00 00 00 00 00 movq \$0x0,0x20001f\(%rip\) # 6000c4 <.*> -+ +[a-f0-9]+: 48 83 3d 0f 00 20 00 00 cmpq \$0x0,0x20000f\(%rip\) # 6000bc <.*> -+ +[a-f0-9]+: 48 3b 0d 08 00 20 00 cmp 0x200008\(%rip\),%rcx # 6000bc <.*> -+ +[a-f0-9]+: 48 3b 0d 09 00 20 00 cmp 0x200009\(%rip\),%rcx # 6000c4 <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr20253-1j.d b/ld/testsuite/ld-x86-64/pr20253-1j.d -index 6f5d666..5662e0c 100644 ---- a/ld/testsuite/ld-x86-64/pr20253-1j.d -+++ b/ld/testsuite/ld-x86-64/pr20253-1j.d -@@ -16,10 +16,10 @@ Disassembly of section .text: - +[a-f0-9]+: c3 retq - - 0+122 <_start>: -- +[a-f0-9]+: ff 15 a8 00 20 00 callq \*0x2000a8\(%rip\) # 2001d0 <_DYNAMIC\+0x80> -- +[a-f0-9]+: ff 25 aa 00 20 00 jmpq \*0x2000aa\(%rip\) # 2001d8 <_DYNAMIC\+0x88> -- +[a-f0-9]+: 48 c7 05 9f 00 20 00 00 00 00 00 movq \$0x0,0x20009f\(%rip\) # 2001d8 <_DYNAMIC\+0x88> -- +[a-f0-9]+: 48 83 3d 8f 00 20 00 00 cmpq \$0x0,0x20008f\(%rip\) # 2001d0 <_DYNAMIC\+0x80> -- +[a-f0-9]+: 48 3b 0d 88 00 20 00 cmp 0x200088\(%rip\),%rcx # 2001d0 <_DYNAMIC\+0x80> -- +[a-f0-9]+: 48 3b 0d 89 00 20 00 cmp 0x200089\(%rip\),%rcx # 2001d8 <_DYNAMIC\+0x88> -+ +[a-f0-9]+: ff 15 a8 00 20 00 callq \*0x2000a8\(%rip\) # 2001d0 <.*> -+ +[a-f0-9]+: ff 25 aa 00 20 00 jmpq \*0x2000aa\(%rip\) # 2001d8 <.*> -+ +[a-f0-9]+: 48 c7 05 9f 00 20 00 00 00 00 00 movq \$0x0,0x20009f\(%rip\) # 2001d8 <.*> -+ +[a-f0-9]+: 48 83 3d 8f 00 20 00 00 cmpq \$0x0,0x20008f\(%rip\) # 2001d0 <.*> -+ +[a-f0-9]+: 48 3b 0d 88 00 20 00 cmp 0x200088\(%rip\),%rcx # 2001d0 <.*> -+ +[a-f0-9]+: 48 3b 0d 89 00 20 00 cmp 0x200089\(%rip\),%rcx # 2001d8 <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr20253-1l.d b/ld/testsuite/ld-x86-64/pr20253-1l.d -index 0276558..83a61db 100644 ---- a/ld/testsuite/ld-x86-64/pr20253-1l.d -+++ b/ld/testsuite/ld-x86-64/pr20253-1l.d -@@ -16,10 +16,10 @@ Disassembly of section .text: - +[a-f0-9]+: c3 retq - - 0+15a <_start>: -- +[a-f0-9]+: ff 15 98 00 20 00 callq \*0x200098\(%rip\) # 2001f8 <_DYNAMIC\+0x70> -- +[a-f0-9]+: ff 25 9a 00 20 00 jmpq \*0x20009a\(%rip\) # 200200 <_DYNAMIC\+0x78> -- +[a-f0-9]+: 48 c7 05 8f 00 20 00 00 00 00 00 movq \$0x0,0x20008f\(%rip\) # 200200 <_DYNAMIC\+0x78> -- +[a-f0-9]+: 48 83 3d 7f 00 20 00 00 cmpq \$0x0,0x20007f\(%rip\) # 2001f8 <_DYNAMIC\+0x70> -- +[a-f0-9]+: 48 3b 0d 78 00 20 00 cmp 0x200078\(%rip\),%rcx # 2001f8 <_DYNAMIC\+0x70> -- +[a-f0-9]+: 48 3b 0d 79 00 20 00 cmp 0x200079\(%rip\),%rcx # 200200 <_DYNAMIC\+0x78> -+ +[a-f0-9]+: ff 15 98 00 20 00 callq \*0x200098\(%rip\) # 2001f8 <.*> -+ +[a-f0-9]+: ff 25 9a 00 20 00 jmpq \*0x20009a\(%rip\) # 200200 <.*> -+ +[a-f0-9]+: 48 c7 05 8f 00 20 00 00 00 00 00 movq \$0x0,0x20008f\(%rip\) # 200200 <.*> -+ +[a-f0-9]+: 48 83 3d 7f 00 20 00 00 cmpq \$0x0,0x20007f\(%rip\) # 2001f8 <.*> -+ +[a-f0-9]+: 48 3b 0d 78 00 20 00 cmp 0x200078\(%rip\),%rcx # 2001f8 <.*> -+ +[a-f0-9]+: 48 3b 0d 79 00 20 00 cmp 0x200079\(%rip\),%rcx # 200200 <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/protected3.d b/ld/testsuite/ld-x86-64/protected3.d -index d8f09da..0c60167 100644 ---- a/ld/testsuite/ld-x86-64/protected3.d -+++ b/ld/testsuite/ld-x86-64/protected3.d -@@ -8,7 +8,7 @@ - Disassembly of section .text: - - 0+[a-f0-9]+ : --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> - [ ]*[a-f0-9]+: 8b 00 mov \(%rax\),%eax - [ ]*[a-f0-9]+: c3 retq * - #pass -diff --git a/ld/testsuite/ld-x86-64/tlsbin.dd b/ld/testsuite/ld-x86-64/tlsbin.dd -index c89e7ee..6bc7ca2 100644 ---- a/ld/testsuite/ld-x86-64/tlsbin.dd -+++ b/ld/testsuite/ld-x86-64/tlsbin.dd -@@ -24,7 +24,7 @@ Disassembly of section .text: - # GD -> IE because variable is not defined in executable - +[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +[0-9a-f]+: 00 00 * -- +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x158> -+ +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG1 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -34,7 +34,7 @@ Disassembly of section .text: - # the variable is referenced through IE too - +[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +[0-9a-f]+: 00 00 * -- +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x148> -+ +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG2 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -102,7 +102,7 @@ Disassembly of section .text: - +[0-9a-f]+: 00 00 * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 4c 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r9 +# [0-9a-f]+ <_DYNAMIC\+0x148> -+ +[0-9a-f]+: 4c 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r9 +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG2 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -143,7 +143,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - # Direct access through %fs - # IE against global var -- +[0-9a-f]+: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x140> -+ +[0-9a-f]+: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG5 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -183,7 +183,7 @@ Disassembly of section .text: - +[0-9a-f]+: 00 00 * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 4c 03 1d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r11 +# [0-9a-f]+ <_DYNAMIC\+0x150> -+ +[0-9a-f]+: 4c 03 1d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r11 +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG6 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -diff --git a/ld/testsuite/ld-x86-64/tlsbin2.dd b/ld/testsuite/ld-x86-64/tlsbin2.dd -index a73fcef..0010d38 100644 ---- a/ld/testsuite/ld-x86-64/tlsbin2.dd -+++ b/ld/testsuite/ld-x86-64/tlsbin2.dd -@@ -24,7 +24,7 @@ Disassembly of section .text: - # GD -> IE because variable is not defined in executable - +[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +[0-9a-f]+: 00 00 * -- +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG1 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -34,7 +34,7 @@ Disassembly of section .text: - # the variable is referenced through IE too - +[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +[0-9a-f]+: 00 00 * -- +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x108> -+ +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG2 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -102,7 +102,7 @@ Disassembly of section .text: - +[0-9a-f]+: 00 00 * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 4c 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r9 +# [0-9a-f]+ <_DYNAMIC\+0x108> -+ +[0-9a-f]+: 4c 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r9 +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG2 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -143,7 +143,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - # Direct access through %fs - # IE against global var -- +[0-9a-f]+: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x100> -+ +[0-9a-f]+: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG5 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -183,7 +183,7 @@ Disassembly of section .text: - +[0-9a-f]+: 00 00 * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 4c 03 1d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r11 +# [0-9a-f]+ <_DYNAMIC\+0x118> -+ +[0-9a-f]+: 4c 03 1d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r11 +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG6 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -diff --git a/ld/testsuite/ld-x86-64/tlsbindesc.dd b/ld/testsuite/ld-x86-64/tlsbindesc.dd -index f77ebf2..50dc6d1 100644 ---- a/ld/testsuite/ld-x86-64/tlsbindesc.dd -+++ b/ld/testsuite/ld-x86-64/tlsbindesc.dd -@@ -22,7 +22,7 @@ Disassembly of section .text: - +[0-9a-f]+: 55[ ]+push %rbp - +[0-9a-f]+: 48 89 e5[ ]+mov %rsp,%rbp - # GD -> IE because variable is not defined in executable -- +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x118> -+ +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG1 - +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax - +[0-9a-f]+: 90[ ]+nop * -@@ -31,7 +31,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - # GD -> IE because variable is not defined in executable where - # the variable is referenced through IE too -- +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x108> -+ +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG2 - +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax - +[0-9a-f]+: 90[ ]+nop * -@@ -93,7 +93,7 @@ Disassembly of section .text: - +[0-9a-f]+: 00 00 * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 4c 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r9 +# [0-9a-f]+ <_DYNAMIC\+0x108> -+ +[0-9a-f]+: 4c 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r9 +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG2 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -134,7 +134,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - # Direct access through %fs - # IE against global var -- +[0-9a-f]+: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x100> -+ +[0-9a-f]+: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG5 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -174,7 +174,7 @@ Disassembly of section .text: - +[0-9a-f]+: 00 00 * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 4c 03 1d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r11 +# [0-9a-f]+ <_DYNAMIC\+0x110> -+ +[0-9a-f]+: 4c 03 1d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r11 +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG6 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -diff --git a/ld/testsuite/ld-x86-64/tlsdesc-nacl.pd b/ld/testsuite/ld-x86-64/tlsdesc-nacl.pd -index eff90a8..f744f0e 100644 ---- a/ld/testsuite/ld-x86-64/tlsdesc-nacl.pd -+++ b/ld/testsuite/ld-x86-64/tlsdesc-nacl.pd -@@ -25,7 +25,7 @@ Disassembly of section .plt: - +[0-9a-f]+: 00 * - +[0-9a-f]+: 66 90 xchg %ax,%ax - +[0-9a-f]+: ff 35 .. .. .. .. pushq 0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x8> -- +[0-9a-f]+: 4c 8b 1d .. .. .. .. mov 0x[0-9a-f]+\(%rip\),%r11 +# [0-9a-f]+ <_DYNAMIC\+0x190> -+ +[0-9a-f]+: 4c 8b 1d .. .. .. .. mov 0x[0-9a-f]+\(%rip\),%r11 +# [0-9a-f]+ <.*> - +[0-9a-f]+: 41 83 e3 e0 and \$0xffffffe0,%r11d - +[0-9a-f]+: 4d 01 fb add %r15,%r11 - +[0-9a-f]+: 41 ff e3 jmpq \*%r11 -diff --git a/ld/testsuite/ld-x86-64/tlsdesc.dd b/ld/testsuite/ld-x86-64/tlsdesc.dd -index a6f22b6..c9b1cf8 100644 ---- a/ld/testsuite/ld-x86-64/tlsdesc.dd -+++ b/ld/testsuite/ld-x86-64/tlsdesc.dd -@@ -17,7 +17,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - # GD -- +[0-9a-f]+: 48 8d 05 ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x48> -+ +[0-9a-f]+: 48 8d 05 ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TLSDESC sg1 - +[0-9a-f]+: ff 10[ ]+callq \*\(%rax\) - +[0-9a-f]+: 90[ ]+nop * -@@ -25,7 +25,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - # GD -> IE because variable is referenced through IE too -- +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x180> -+ +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sg2 - +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax - +[0-9a-f]+: 90[ ]+nop * -@@ -41,7 +41,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - # GD -> IE against local variable referenced through IE too -- +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x150> -+ +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x24 - +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax - +[0-9a-f]+: 90[ ]+nop * -@@ -57,7 +57,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - # GD -> IE against hidden and local variable referenced through IE too -- +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x188> -+ +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x44 - +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax - +[0-9a-f]+: 90[ ]+nop * -@@ -73,7 +73,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - # GD -> IE against hidden but not local variable referenced through IE too -- +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x160> -+ +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x64 - +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax - +[0-9a-f]+: 90[ ]+nop * -@@ -115,7 +115,7 @@ Disassembly of section .text: - +[0-9a-f]+: 00 00 * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x180> -+ +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sg2 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -126,7 +126,7 @@ Disassembly of section .text: - +[0-9a-f]+: 00 00 * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 4c 03 35 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r14 +# [0-9a-f]+ <_DYNAMIC\+0x150> -+ +[0-9a-f]+: 4c 03 35 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r14 +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x24 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -137,7 +137,7 @@ Disassembly of section .text: - +[0-9a-f]+: 00 00 * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x188> -+ +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x44 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -148,7 +148,7 @@ Disassembly of section .text: - +[0-9a-f]+: 00 00 * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x160> -+ +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x64 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -156,7 +156,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - # Direct access through %fs - # IE against global var -- +[0-9a-f]+: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x168> -+ +[0-9a-f]+: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sg5 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -166,7 +166,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - # IE against local var -- +[0-9a-f]+: 4c 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%r10 +# [0-9a-f]+ <_DYNAMIC\+0x158> -+ +[0-9a-f]+: 4c 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%r10 +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x30 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -176,7 +176,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - # IE against hidden and local var -- +[0-9a-f]+: 48 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rdx +# [0-9a-f]+ <_DYNAMIC\+0x170> -+ +[0-9a-f]+: 48 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rdx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x50 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -186,7 +186,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - # IE against hidden but not local var -- +[0-9a-f]+: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x178> -+ +[0-9a-f]+: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x70 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -diff --git a/ld/testsuite/ld-x86-64/tlsdesc.pd b/ld/testsuite/ld-x86-64/tlsdesc.pd -index c24403c..0fa36f3 100644 ---- a/ld/testsuite/ld-x86-64/tlsdesc.pd -+++ b/ld/testsuite/ld-x86-64/tlsdesc.pd -@@ -14,6 +14,6 @@ Disassembly of section .plt: - [0-9a-f]+: ff 25 .. .. 20 00 jmpq \*.*\(%rip\) # 201360 <_GLOBAL_OFFSET_TABLE_\+0x10> - [0-9a-f]+: 0f 1f 40 00 nopl 0x0\(%rax\) - [0-9a-f]+: ff 35 .. .. 20 00 pushq .*\(%rip\) # 201358 <_GLOBAL_OFFSET_TABLE_\+0x8> -- [0-9a-f]+: ff 25 .. .. 20 00 jmpq \*.*\(%rip\) # 201348 <_DYNAMIC\+0x190> -+ [0-9a-f]+: ff 25 .. .. 20 00 jmpq \*.*\(%rip\) # 201348 <.*> - [0-9a-f]+: 0f 1f 40 00 nopl 0x0\(%rax\) - -diff --git a/ld/testsuite/ld-x86-64/tlsgd10.dd b/ld/testsuite/ld-x86-64/tlsgd10.dd -index 448015e..6c3ca5c 100644 ---- a/ld/testsuite/ld-x86-64/tlsgd10.dd -+++ b/ld/testsuite/ld-x86-64/tlsgd10.dd -@@ -15,7 +15,7 @@ Disassembly of section .text: - [ ]*[a-f0-9]+: 4c 8d 3d eb ff ff ff lea -0x15\(%rip\),%r15 # [0-9a-f]+ <_start> - [ ]*[a-f0-9]+: 4d 01 df add %r11,%r15 - [ ]*[a-f0-9]+: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax --[ ]*[a-f0-9]+: 48 03 05 ([0-9a-f]{2} ){4} add 0x[0-9a-f]+\(%rip\),%rax # [0-9a-f]+ <_DYNAMIC\+0x140> -+[ ]*[a-f0-9]+: 48 03 05 ([0-9a-f]{2} ){4} add 0x[0-9a-f]+\(%rip\),%rax # [0-9a-f]+ <.*> - [ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\) - [ ]*[a-f0-9]+: 41 5f pop %r15 - [ ]*[a-f0-9]+: 41 5f pop %r15 -diff --git a/ld/testsuite/ld-x86-64/tlsgd5.dd b/ld/testsuite/ld-x86-64/tlsgd5.dd -index 54cf357..c2e2621 100644 ---- a/ld/testsuite/ld-x86-64/tlsgd5.dd -+++ b/ld/testsuite/ld-x86-64/tlsgd5.dd -@@ -10,5 +10,5 @@ Disassembly of section .text: - - [a-f0-9]+ <_start>: - [ ]*[a-f0-9]+: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax --[ ]*[a-f0-9]+: 48 03 05 ([0-9a-f]{2} ){4} * add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 03 05 ([0-9a-f]{2} ){4} * add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - #pass -diff --git a/ld/testsuite/ld-x86-64/tlsgd6.dd b/ld/testsuite/ld-x86-64/tlsgd6.dd -index 2cbfda6..08e3b99 100644 ---- a/ld/testsuite/ld-x86-64/tlsgd6.dd -+++ b/ld/testsuite/ld-x86-64/tlsgd6.dd -@@ -10,5 +10,5 @@ Disassembly of section .text: - - [a-f0-9]+ <_start>: - [ ]*[a-f0-9]+: 64 8b 04 25 00 00 00 00 mov %fs:0x0,%eax --[ ]*[a-f0-9]+: 48 03 05 ([0-9a-f]{2} ){4} * add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x[a-f0-9]+> -+[ ]*[a-f0-9]+: 48 03 05 ([0-9a-f]{2} ){4} * add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ - #pass -diff --git a/ld/testsuite/ld-x86-64/tlsgd8.dd b/ld/testsuite/ld-x86-64/tlsgd8.dd -index 1055052..2bb1132 100644 ---- a/ld/testsuite/ld-x86-64/tlsgd8.dd -+++ b/ld/testsuite/ld-x86-64/tlsgd8.dd -@@ -15,7 +15,7 @@ Disassembly of section .text: - [ ]*[a-f0-9]+: 48 8d 1d ed ff ff ff lea -0x13\(%rip\),%rbx # [0-9a-f]+ <_start> - [ ]*[a-f0-9]+: 4c 01 db add %r11,%rbx - [ ]*[a-f0-9]+: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax --[ ]*[a-f0-9]+: 48 03 05 ([0-9a-f]{2} ){4} add 0x[0-9a-f]+\(%rip\),%rax # [0-9a-f]+ <_DYNAMIC\+0x140> -+[ ]*[a-f0-9]+: 48 03 05 ([0-9a-f]{2} ){4} add 0x[0-9a-f]+\(%rip\),%rax # [0-9a-f]+ - [ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\) - [ ]*[a-f0-9]+: 5b pop %rbx - [ ]*[a-f0-9]+: 5b pop %rbx -diff --git a/ld/testsuite/ld-x86-64/tlsgdesc.dd b/ld/testsuite/ld-x86-64/tlsgdesc.dd -index a983a75..d0a274b 100644 ---- a/ld/testsuite/ld-x86-64/tlsgdesc.dd -+++ b/ld/testsuite/ld-x86-64/tlsgdesc.dd -@@ -20,7 +20,7 @@ Disassembly of section .text: - +[0-9a-f]+: 00 00 * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x150> -+ +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG3 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -31,14 +31,14 @@ Disassembly of section .text: - +[0-9a-f]+: 00 00 * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x170> -+ +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG4 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - # GD, gd first -- +[0-9a-f]+: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x180> -+ +[0-9a-f]+: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - +[0-9a-f]+: [0-9a-f]{2} * - # -> R_X86_64_DTPMOD64 sG1 - +[0-9a-f]+: 66 66 48 e8 ([0-9a-f]{2} ){3}[ ]+data16 data16 rex.W callq [0-9a-f]+ <__tls_get_addr@plt> -@@ -48,7 +48,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 48 8d 05 ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x30> -+ +[0-9a-f]+: 48 8d 05 ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TLSDESC sG1 - +[0-9a-f]+: ff 10[ ]+callq \*\(%rax\) - +[0-9a-f]+: 90[ ]+nop * -@@ -56,14 +56,14 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - # GD, desc first -- +[0-9a-f]+: 48 8d 05 ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x20> -+ +[0-9a-f]+: 48 8d 05 ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TLSDESC sG2 - +[0-9a-f]+: ff 10[ ]+callq \*\(%rax\) - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x160> -+ +[0-9a-f]+: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - +[0-9a-f]+: [0-9a-f]{2} * - # -> R_X86_64_DTPMOD64 sG2 - +[0-9a-f]+: 66 66 48 e8 ([0-9a-f]{2} ){3}[ ]+data16 data16 rex.W callq [0-9a-f]+ <__tls_get_addr@plt> -@@ -76,13 +76,13 @@ Disassembly of section .text: - # GD -> IE, gd first, after IE use - +[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +[0-9a-f]+: 00 00 * -- +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x150> -+ +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG3 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x150> -+ +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG3 - +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax - +[0-9a-f]+: 90[ ]+nop * -@@ -90,7 +90,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - # GD -> IE, desc first, after IE use -- +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x170> -+ +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG4 - +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax - +[0-9a-f]+: 90[ ]+nop * -@@ -99,7 +99,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +[0-9a-f]+: 00 00 * -- +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x170> -+ +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG4 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -108,13 +108,13 @@ Disassembly of section .text: - # GD -> IE, gd first, before IE use - +[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +[0-9a-f]+: 00 00 * -- +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x158> -+ +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG5 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x158> -+ +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG5 - +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax - +[0-9a-f]+: 90[ ]+nop * -@@ -122,7 +122,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * - # GD -> IE, desc first, before IE use -- +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x178> -+ +[0-9a-f]+: 48 8b 05 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG6 - +[0-9a-f]+: 66 90[ ]+xchg %ax,%ax - +[0-9a-f]+: 90[ ]+nop * -@@ -131,7 +131,7 @@ Disassembly of section .text: - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +[0-9a-f]+: 00 00 * -- +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x178> -+ +[0-9a-f]+: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG6 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -142,7 +142,7 @@ Disassembly of section .text: - +[0-9a-f]+: 00 00 * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x158> -+ +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG5 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -@@ -153,7 +153,7 @@ Disassembly of section .text: - +[0-9a-f]+: 00 00 * - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -- +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x178> -+ +[0-9a-f]+: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sG6 - +[0-9a-f]+: 90[ ]+nop * - +[0-9a-f]+: 90[ ]+nop * -diff --git a/ld/testsuite/ld-x86-64/tlspic.dd b/ld/testsuite/ld-x86-64/tlspic.dd -index bf3ba69..88026c1 100644 ---- a/ld/testsuite/ld-x86-64/tlspic.dd -+++ b/ld/testsuite/ld-x86-64/tlspic.dd -@@ -17,7 +17,7 @@ Disassembly of section .text: - +1006: 90[ ]+nop * - +1007: 90[ ]+nop * - # GD -- +1008: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x180> -+ +1008: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - +100f: [0-9a-f ]+ - # -> R_X86_64_DTPMOD64 sg1 - +1010: 66 66 48 e8 [0-9a-f ]+data16 data16 rex.W callq [0-9a-f]+ <.*> -@@ -30,14 +30,14 @@ Disassembly of section .text: - # GD -> IE because variable is referenced through IE too - +101c: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +1023: 00 00 * -- +1025: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x1a0> -+ +1025: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sg2 - +102c: 90[ ]+nop * - +102d: 90[ ]+nop * - +102e: 90[ ]+nop * - +102f: 90[ ]+nop * - # GD against local variable -- +1030: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x130> -+ +1030: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - +1037: [0-9a-f ]+ - # -> R_X86_64_DTPMOD64 [0 0x2000000000000000] - +1038: 66 66 48 e8 [0-9a-f ]+data16 data16 rex.W callq [0-9a-f]+ <.*> -@@ -50,14 +50,14 @@ Disassembly of section .text: - # GD -> IE against local variable referenced through IE too - +1044: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +104b: 00 00 * -- +104d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x140> -+ +104d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x24 - +1054: 90[ ]+nop * - +1055: 90[ ]+nop * - +1056: 90[ ]+nop * - +1057: 90[ ]+nop * - # GD against hidden and local variable -- +1058: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x1a8> -+ +1058: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - +105f: [0-9a-f ]+ - # -> R_X86_64_DTPMOD64 [0 0x4000000000000000] - +1060: 66 66 48 e8 [0-9a-f ]+data16 data16 rex.W callq [0-9a-f]+ <.*> -@@ -70,14 +70,14 @@ Disassembly of section .text: - # GD -> IE against hidden and local variable referenced through IE too - +106c: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +1073: 00 00 * -- +1075: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x1b8> -+ +1075: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x44 - +107c: 90[ ]+nop * - +107d: 90[ ]+nop * - +107e: 90[ ]+nop * - +107f: 90[ ]+nop * - # GD against hidden but not local variable -- +1080: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x160> -+ +1080: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - +1087: [0-9a-f ]+ - # -> R_X86_64_DTPMOD64 [0 0x6000000000000000] - +1088: 66 66 48 e8 [0-9a-f ]+data16 data16 rex.W callq [0-9a-f]+ <.*> -@@ -90,14 +90,14 @@ Disassembly of section .text: - # GD -> IE against hidden but not local variable referenced through IE too - +1094: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +109b: 00 00 * -- +109d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x170> -+ +109d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x64 - +10a4: 90[ ]+nop * - +10a5: 90[ ]+nop * - +10a6: 90[ ]+nop * - +10a7: 90[ ]+nop * - # LD -- +10a8: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x150> -+ +10a8: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x000000000000000] - +10af: e8 [0-9a-f ]+callq [0-9a-f]+ <.*> - # -> R_X86_64_JUMP_SLOT __tls_get_addr -@@ -112,7 +112,7 @@ Disassembly of section .text: - +10c8: 90[ ]+nop * - +10c9: 90[ ]+nop * - # LD against hidden and local variables -- +10ca: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x150> -+ +10ca: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x000000000000000] - +10d1: e8 [0-9a-f ]+callq [0-9a-f]+ <.*> - # -> R_X86_64_JUMP_SLOT __tls_get_addr -@@ -127,7 +127,7 @@ Disassembly of section .text: - +10ea: 90[ ]+nop * - +10eb: 90[ ]+nop * - # LD against hidden but not local variables -- +10ec: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x150> -+ +10ec: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x000000000000000] - +10f3: e8 [0-9a-f ]+callq [0-9a-f]+ <.*> - # -> R_X86_64_JUMP_SLOT __tls_get_addr -@@ -144,7 +144,7 @@ Disassembly of section .text: - +1113: 00 00 * - +1115: 90[ ]+nop * - +1116: 90[ ]+nop * -- +1117: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x1a0> -+ +1117: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sg2 - +111e: 90[ ]+nop * - +111f: 90[ ]+nop * -@@ -155,7 +155,7 @@ Disassembly of section .text: - +1129: 00 00 * - +112b: 90[ ]+nop * - +112c: 90[ ]+nop * -- +112d: 4c 03 35 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r14 +# [0-9a-f]+ <_DYNAMIC\+0x140> -+ +112d: 4c 03 35 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r14 +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x24 - +1134: 90[ ]+nop * - +1135: 90[ ]+nop * -@@ -166,7 +166,7 @@ Disassembly of section .text: - +113f: 00 00 * - +1141: 90[ ]+nop * - +1142: 90[ ]+nop * -- +1143: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x1b8> -+ +1143: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x44 - +114a: 90[ ]+nop * - +114b: 90[ ]+nop * -@@ -177,7 +177,7 @@ Disassembly of section .text: - +1155: 00 00 * - +1157: 90[ ]+nop * - +1158: 90[ ]+nop * -- +1159: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x170> -+ +1159: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x64 - +1160: 90[ ]+nop * - +1161: 90[ ]+nop * -@@ -185,7 +185,7 @@ Disassembly of section .text: - +1163: 90[ ]+nop * - # Direct access through %fs - # IE against global var -- +1164: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x178> -+ +1164: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sg5 - +116b: 90[ ]+nop * - +116c: 90[ ]+nop * -@@ -195,7 +195,7 @@ Disassembly of section .text: - +1173: 90[ ]+nop * - +1174: 90[ ]+nop * - # IE against local var -- +1175: 4c 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%r10 +# [0-9a-f]+ <_DYNAMIC\+0x148> -+ +1175: 4c 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%r10 +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x30 - +117c: 90[ ]+nop * - +117d: 90[ ]+nop * -@@ -205,7 +205,7 @@ Disassembly of section .text: - +1184: 90[ ]+nop * - +1185: 90[ ]+nop * - # IE against hidden and local var -- +1186: 48 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rdx +# [0-9a-f]+ <_DYNAMIC\+0x190> -+ +1186: 48 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rdx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x50 - +118d: 90[ ]+nop * - +118e: 90[ ]+nop * -@@ -215,7 +215,7 @@ Disassembly of section .text: - +1195: 90[ ]+nop * - +1196: 90[ ]+nop * - # IE against hidden but not local var -- +1197: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x198> -+ +1197: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x70 - +119e: 90[ ]+nop * - +119f: 90[ ]+nop * -@@ -237,7 +237,7 @@ Disassembly of section .text: - # -mcmodel=large sequences - # - # -mcmodel=large GD -- +11c2: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x180> -+ +11c2: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 sg1 - +11c9: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax - # -> R_X86_64_JUMP_SLOT __tls_get_addr -@@ -252,7 +252,7 @@ Disassembly of section .text: - # -> R_X86_64_TPOFF64 sg2 - +11dc: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +11e3: 00 00 -- +11e5: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x1a0> -+ +11e5: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sg2 - +11ec: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\) - +11f2: 90[ ]+nop * -@@ -260,7 +260,7 @@ Disassembly of section .text: - +11f4: 90[ ]+nop * - +11f5: 90[ ]+nop * - # -mcmodel=large GD against local variable -- +11f6: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x130> -+ +11f6: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x2000000000000000] - +11fd: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax - # -> R_X86_64_JUMP_SLOT __tls_get_addr -@@ -274,7 +274,7 @@ Disassembly of section .text: - # -mcmodel=large GD -> IE against local variable referenced through IE too - +1210: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +1217: 00 00 -- +1219: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x140> -+ +1219: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x24 - +1220: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\) - +1226: 90[ ]+nop * -@@ -282,7 +282,7 @@ Disassembly of section .text: - +1228: 90[ ]+nop * - +1229: 90[ ]+nop * - # -mcmodel=large GD against hidden and local variable -- +122a: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x1a8> -+ +122a: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x4000000000000000] - +1231: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax - # -> R_X86_64_JUMP_SLOT __tls_get_addr -@@ -296,7 +296,7 @@ Disassembly of section .text: - # -mcmodel=large GD -> IE against hidden and local variable referenced through IE too - +1244: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +124b: 00 00 -- +124d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x1b8> -+ +124d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x44 - +1254: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\) - +125a: 90[ ]+nop * -@@ -304,7 +304,7 @@ Disassembly of section .text: - +125c: 90[ ]+nop * - +125d: 90[ ]+nop * - # -mcmodel=large GD against hidden but not local variable -- +125e: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x160> -+ +125e: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x6000000000000000] - +1265: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax - # -> R_X86_64_JUMP_SLOT __tls_get_addr -@@ -318,7 +318,7 @@ Disassembly of section .text: - # -mcmodel=large GD -> IE against hidden but not local variable referenced through IE too - +1278: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +127f: 00 00 -- +1281: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x170> -+ +1281: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x64 - +1288: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\) - +128e: 90[ ]+nop * -@@ -326,7 +326,7 @@ Disassembly of section .text: - +1290: 90[ ]+nop * - +1291: 90[ ]+nop * - # -mcmodel=large LD -- +1292: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x150> -+ +1292: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x000000000000000] - +1299: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax - # -> R_X86_64_JUMP_SLOT __tls_get_addr -@@ -344,7 +344,7 @@ Disassembly of section .text: - +12bc: 90[ ]+nop * - +12bd: 90[ ]+nop * - # -mcmodel=large LD against hidden and local variables -- +12be: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x150> -+ +12be: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x000000000000000] - +12c5: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax - # -> R_X86_64_JUMP_SLOT __tls_get_addr -@@ -362,7 +362,7 @@ Disassembly of section .text: - +12e8: 90[ ]+nop * - +12e9: 90[ ]+nop * - # -mcmodel=large LD against hidden but not local variables -- +12ea: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x150> -+ +12ea: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x000000000000000] - +12f1: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax - # -> R_X86_64_JUMP_SLOT __tls_get_addr -diff --git a/ld/testsuite/ld-x86-64/tlspic2.dd b/ld/testsuite/ld-x86-64/tlspic2.dd -index 18358f1..596fcb4 100644 ---- a/ld/testsuite/ld-x86-64/tlspic2.dd -+++ b/ld/testsuite/ld-x86-64/tlspic2.dd -@@ -17,10 +17,10 @@ Disassembly of section .text: - +1006: 90[ ]+nop * - +1007: 90[ ]+nop * - # GD -- +1008: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1008: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - +100f: [0-9a-f ]+ - # -> R_X86_64_DTPMOD64 sg1 -- +1010: 66 48 ff [0-9a-f ]+data16 rex\.W callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1010: 66 48 ff [0-9a-f ]+data16 rex\.W callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - # -> R_X86_64_GLOB_DAT __tls_get_addr - +1017: [0-9a-f ]+ - +1018: 90[ ]+nop * -@@ -30,17 +30,17 @@ Disassembly of section .text: - # GD -> IE because variable is referenced through IE too - +101c: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +1023: 00 00 * -- +1025: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1025: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sg2 - +102c: 90[ ]+nop * - +102d: 90[ ]+nop * - +102e: 90[ ]+nop * - +102f: 90[ ]+nop * - # GD against local variable -- +1030: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1030: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - +1037: [0-9a-f ]+ - # -> R_X86_64_DTPMOD64 [0 0x2000000000000000] -- +1038: 66 48 ff [0-9a-f ]+data16 rex\.W callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1038: 66 48 ff [0-9a-f ]+data16 rex\.W callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - # -> R_X86_64_GLOB_DAT __tls_get_addr - +103f: [0-9a-f ]+ - +1040: 90[ ]+nop * -@@ -50,17 +50,17 @@ Disassembly of section .text: - # GD -> IE against local variable referenced through IE too - +1044: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +104b: 00 00 * -- +104d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +104d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x24 - +1054: 90[ ]+nop * - +1055: 90[ ]+nop * - +1056: 90[ ]+nop * - +1057: 90[ ]+nop * - # GD against hidden and local variable -- +1058: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1058: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - +105f: [0-9a-f ]+ - # -> R_X86_64_DTPMOD64 [0 0x4000000000000000] -- +1060: 66 48 ff [0-9a-f ]+data16 rex\.W callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1060: 66 48 ff [0-9a-f ]+data16 rex\.W callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - # -> R_X86_64_GLOB_DAT __tls_get_addr - +1067: [0-9a-f ]+ - +1068: 90[ ]+nop * -@@ -70,17 +70,17 @@ Disassembly of section .text: - # GD -> IE against hidden and local variable referenced through IE too - +106c: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +1073: 00 00 * -- +1075: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1075: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x44 - +107c: 90[ ]+nop * - +107d: 90[ ]+nop * - +107e: 90[ ]+nop * - +107f: 90[ ]+nop * - # GD against hidden but not local variable -- +1080: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1080: 66 48 8d 3d ([0-9a-f]{2} ){3}[ ]+data16 lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - +1087: [0-9a-f ]+ - # -> R_X86_64_DTPMOD64 [0 0x6000000000000000] -- +1088: 66 48 ff [0-9a-f ]+data16 rex\.W callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1088: 66 48 ff [0-9a-f ]+data16 rex\.W callq \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - # -> R_X86_64_GLOB_DAT __tls_get_addr - +108f: [0-9a-f ]+ - +1090: 90[ ]+nop * -@@ -90,16 +90,16 @@ Disassembly of section .text: - # GD -> IE against hidden but not local variable referenced through IE too - +1094: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +109b: 00 00 * -- +109d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +109d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x64 - +10a4: 90[ ]+nop * - +10a5: 90[ ]+nop * - +10a6: 90[ ]+nop * - +10a7: 90[ ]+nop * - # LD -- +10a8: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +10a8: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x000000000000000] -- +10af: ff [0-9a-f ]+callq[ ]+\*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +10af: ff [0-9a-f ]+callq[ ]+\*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - # -> R_X86_64_GLOB_DAT __tls_get_addr - +10b5: 90[ ]+nop * - +10b6: 48 8d 90 20 00 00 00[ ]+lea 0x20\(%rax\),%rdx -@@ -111,9 +111,9 @@ Disassembly of section .text: - +10c8: 90[ ]+nop * - +10c9: 90[ ]+nop * - # LD against hidden and local variables -- +10ca: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +10ca: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x000000000000000] -- +10d1: ff [0-9a-f ]+callq[ ]+\*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +10d1: ff [0-9a-f ]+callq[ ]+\*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - # -> R_X86_64_GLOB_DAT __tls_get_addr - +10d7: 90[ ]+nop * - +10d8: 48 8d 90 40 00 00 00[ ]+lea 0x40\(%rax\),%rdx -@@ -125,9 +125,9 @@ Disassembly of section .text: - +10ea: 90[ ]+nop * - +10eb: 90[ ]+nop * - # LD against hidden but not local variables -- +10ec: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +10ec: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x000000000000000] -- +10f3: ff [0-9a-f ]+callq[ ]+\*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +10f3: ff [0-9a-f ]+callq[ ]+\*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*> - # -> R_X86_64_GLOB_DAT __tls_get_addr - +10f9: 90[ ]+nop * - +10fa: 4c 8d a0 60 00 00 00[ ]+lea 0x60\(%rax\),%r12 -@@ -141,7 +141,7 @@ Disassembly of section .text: - +1113: 00 00 * - +1115: 90[ ]+nop * - +1116: 90[ ]+nop * -- +1117: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1117: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sg2 - +111e: 90[ ]+nop * - +111f: 90[ ]+nop * -@@ -152,7 +152,7 @@ Disassembly of section .text: - +1129: 00 00 * - +112b: 90[ ]+nop * - +112c: 90[ ]+nop * -- +112d: 4c 03 35 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r14 +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +112d: 4c 03 35 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%r14 +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x24 - +1134: 90[ ]+nop * - +1135: 90[ ]+nop * -@@ -163,7 +163,7 @@ Disassembly of section .text: - +113f: 00 00 * - +1141: 90[ ]+nop * - +1142: 90[ ]+nop * -- +1143: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1143: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x44 - +114a: 90[ ]+nop * - +114b: 90[ ]+nop * -@@ -174,7 +174,7 @@ Disassembly of section .text: - +1155: 00 00 * - +1157: 90[ ]+nop * - +1158: 90[ ]+nop * -- +1159: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1159: 48 03 0d ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x64 - +1160: 90[ ]+nop * - +1161: 90[ ]+nop * -@@ -182,7 +182,7 @@ Disassembly of section .text: - +1163: 90[ ]+nop * - # Direct access through %fs - # IE against global var -- +1164: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1164: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sg5 - +116b: 90[ ]+nop * - +116c: 90[ ]+nop * -@@ -192,7 +192,7 @@ Disassembly of section .text: - +1173: 90[ ]+nop * - +1174: 90[ ]+nop * - # IE against local var -- +1175: 4c 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%r10 +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1175: 4c 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%r10 +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x30 - +117c: 90[ ]+nop * - +117d: 90[ ]+nop * -@@ -202,7 +202,7 @@ Disassembly of section .text: - +1184: 90[ ]+nop * - +1185: 90[ ]+nop * - # IE against hidden and local var -- +1186: 48 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rdx +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1186: 48 8b 15 ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rdx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x50 - +118d: 90[ ]+nop * - +118e: 90[ ]+nop * -@@ -212,7 +212,7 @@ Disassembly of section .text: - +1195: 90[ ]+nop * - +1196: 90[ ]+nop * - # IE against hidden but not local var -- +1197: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1197: 48 8b 0d ([0-9a-f]{2} ){4}[ ]+mov 0x[0-9a-f]+\(%rip\),%rcx +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x70 - +119e: 90[ ]+nop * - +119f: 90[ ]+nop * -@@ -232,7 +232,7 @@ Disassembly of section .text: - # -mcmodel=large sequences - # - # -mcmodel=large GD -- +11c2: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +11c2: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 sg1 - +11c9: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax - # -> R_X86_64_GLOB_DAT __tls_get_addr -@@ -247,7 +247,7 @@ Disassembly of section .text: - # -> R_X86_64_TPOFF64 sg2 - +11dc: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +11e3: 00 00 -- +11e5: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +11e5: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 sg2 - +11ec: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\) - +11f2: 90[ ]+nop * -@@ -255,7 +255,7 @@ Disassembly of section .text: - +11f4: 90[ ]+nop * - +11f5: 90[ ]+nop * - # -mcmodel=large GD against local variable -- +11f6: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +11f6: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x2000000000000000] - +11fd: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax - # -> R_X86_64_GLOB_DAT __tls_get_addr -@@ -269,7 +269,7 @@ Disassembly of section .text: - # -mcmodel=large GD -> IE against local variable referenced through IE too - +1210: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +1217: 00 00 -- +1219: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1219: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x24 - +1220: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\) - +1226: 90[ ]+nop * -@@ -277,7 +277,7 @@ Disassembly of section .text: - +1228: 90[ ]+nop * - +1229: 90[ ]+nop * - # -mcmodel=large GD against hidden and local variable -- +122a: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +122a: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x4000000000000000] - +1231: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax - # -> R_X86_64_GLOB_DAT __tls_get_addr -@@ -291,7 +291,7 @@ Disassembly of section .text: - # -mcmodel=large GD -> IE against hidden and local variable referenced through IE too - +1244: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +124b: 00 00 -- +124d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +124d: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x44 - +1254: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\) - +125a: 90[ ]+nop * -@@ -299,7 +299,7 @@ Disassembly of section .text: - +125c: 90[ ]+nop * - +125d: 90[ ]+nop * - # -mcmodel=large GD against hidden but not local variable -- +125e: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +125e: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x6000000000000000] - +1265: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax - # -> R_X86_64_GLOB_DAT __tls_get_addr -@@ -313,7 +313,7 @@ Disassembly of section .text: - # -mcmodel=large GD -> IE against hidden but not local variable referenced through IE too - +1278: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax - +127f: 00 00 -- +1281: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1281: 48 03 05 ([0-9a-f]{2} ){4}[ ]+add 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*> - # -> R_X86_64_TPOFF64 *ABS*+0x64 - +1288: 66 0f 1f 44 00 00[ ]+nopw 0x0\(%rax,%rax,1\) - +128e: 90[ ]+nop * -@@ -321,7 +321,7 @@ Disassembly of section .text: - +1290: 90[ ]+nop * - +1291: 90[ ]+nop * - # -mcmodel=large LD -- +1292: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +1292: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x000000000000000] - +1299: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax - # -> R_X86_64_GLOB_DAT __tls_get_addr -@@ -339,7 +339,7 @@ Disassembly of section .text: - +12bc: 90[ ]+nop * - +12bd: 90[ ]+nop * - # -mcmodel=large LD against hidden and local variables -- +12be: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +12be: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x000000000000000] - +12c5: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax - # -> R_X86_64_GLOB_DAT __tls_get_addr -@@ -357,7 +357,7 @@ Disassembly of section .text: - +12e8: 90[ ]+nop * - +12e9: 90[ ]+nop * - # -mcmodel=large LD against hidden but not local variables -- +12ea: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+> -+ +12ea: 48 8d 3d ([0-9a-f]{2} ){4}[ ]+lea 0x[0-9a-f]+\(%rip\),%rdi +# [0-9a-f]+ <.*> - # -> R_X86_64_DTPMOD64 [0 0x000000000000000] - +12f1: 48 b8 ([0-9a-f]{2} ){5}[ ]+movabs \$0x[0-9a-f]+,%rax - # -> R_X86_64_GLOB_DAT __tls_get_addr ---- binutils-2.27.orig/ld/testsuite/ld-aarch64/farcall-bl-plt.d 2016-11-08 15:39:42.082556640 +0000 -+++ binutils-2.27/ld/testsuite/ld-aarch64/farcall-bl-plt.d 2016-11-08 16:56:38.410233674 +0000 -@@ -7,7 +7,7 @@ - - Disassembly of section .plt: - --.* : -+.* <.plt>: - .*: a9bf7bf0 stp x16, x30, \[sp,#-16\]! - .*: .* adrp x16, .* <__foo_veneer\+.*> - .*: .* ldr x17, \[x16,#.*\] -@@ -32,7 +32,7 @@ Disassembly of section .text: - .*: .* b .* <__foo_veneer\+.*> - - .* <__foo_veneer>: --.*: .* adrp x16, 0 -+.*: .* adrp x16, 0 <.*> - .*: .* add x16, x16, #.* - .*: d61f0200 br x16 - ... ---- binutils-2.27.orig/ld/testsuite/ld-aarch64/farcall-b-plt.d 2016-11-08 15:39:42.082556640 +0000 -+++ binutils-2.27/ld/testsuite/ld-aarch64/farcall-b-plt.d 2016-11-08 16:59:06.733057238 +0000 -@@ -7,7 +7,7 @@ - - Disassembly of section .plt: - --.* : -+.* <.plt>: - .*: a9bf7bf0 stp x16, x30, \[sp,#-16\]! - .*: .* adrp x16, .* <__foo_veneer\+.*> - .*: .* ldr x17, \[x16,#.*\] -@@ -32,7 +32,7 @@ Disassembly of section .text: - .*: .* b .* <__foo_veneer\+.*> - - .* <__foo_veneer>: --.*: .* adrp x16, 0 -+.*: .* adrp x16, 0 <.*> - .*: .* add x16, x16, #.* - .*: d61f0200 br x16 - ... ---- binutils-2.27.orig/ld/testsuite/ld-aarch64/tls-desc-ie.d 2016-11-08 15:39:42.091556688 +0000 -+++ binutils-2.27/ld/testsuite/ld-aarch64/tls-desc-ie.d 2016-11-08 17:00:23.757503387 +0000 -@@ -4,7 +4,7 @@ - #... - +10000: 90000080 adrp x0, 20000 <_GLOBAL_OFFSET_TABLE_> - +10004: 91004000 add x0, x0, #0x10 -- +10008: 94000016 bl 10060 -+ +10008: 94000016 bl 10060 <.*> - +1000c: d503201f nop - +10010: 90000080 adrp x0, 20000 <_GLOBAL_OFFSET_TABLE_> - +10014: f9400400 ldr x0, \[x0,#8\] diff --git a/binutils-2.28-gas-comp_dir.patch b/binutils-2.28-gas-comp_dir.patch new file mode 100644 index 0000000..295afec --- /dev/null +++ b/binutils-2.28-gas-comp_dir.patch @@ -0,0 +1,195 @@ +commit 49fced1206db40c71208c201165d65f92c69cebe +Author: Mark Wielaard +Date: Sun Mar 5 23:37:54 2017 +0100 + + gas: Emit name, comp_dir and producer strings in .debug_str. + + Putting the name, comp_dir and producer strings in the .debug_str section + makes it possible to share them across CUs. This saves a small amount of + space (about ~20K on a glibc libc.so.6 build with debuginfo). And makes + it easier for tools like rpm debugedit to adjust the source paths when + generating separate debuginfo files. + + gas/ + * dwarf2dbg.c (out_debug_abbrev): Use DW_FORM_strp instead of + DW_FORM_string for DW_AT_name, DW_AT_comp_dir and DW_AT_producer. + (out_debug_info): Accept symbols to name, comp_dir and producer + in the .debug_str section and emit those offsets not full strings. + (out_debug_str): New function that outputs the strings for name, + comp_dir and producer in .debug_str and generates symbols to + those strings. + (out_debug_line): Create a .debug_str section if necessary and + call out_debug_str before calling out_debug_info. + * testsuite/gas/aarch64/dwarf.d: Add extra section symbol to + expected output. + +diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c +index 4bb658b..e02b6e8 100644 +--- a/gas/dwarf2dbg.c ++++ b/gas/dwarf2dbg.c +@@ -1726,9 +1726,9 @@ out_debug_abbrev (segT abbrev_seg, + else + out_abbrev (DW_AT_ranges, DW_FORM_data8); + } +- out_abbrev (DW_AT_name, DW_FORM_string); +- out_abbrev (DW_AT_comp_dir, DW_FORM_string); +- out_abbrev (DW_AT_producer, DW_FORM_string); ++ out_abbrev (DW_AT_name, DW_FORM_strp); ++ out_abbrev (DW_AT_comp_dir, DW_FORM_strp); ++ out_abbrev (DW_AT_producer, DW_FORM_strp); + out_abbrev (DW_AT_language, DW_FORM_data2); + out_abbrev (0, 0); + +@@ -1739,15 +1739,11 @@ out_debug_abbrev (segT abbrev_seg, + /* Emit a description of this compilation unit for .debug_info. */ + + static void +-out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT ranges_seg) ++out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT ranges_seg, ++ symbolS *name_sym, symbolS *comp_dir_sym, symbolS *producer_sym) + { +- char producer[128]; +- const char *comp_dir; +- const char *dirname; + expressionS exp; + symbolS *info_end; +- char *p; +- int len; + int sizeof_offset; + + sizeof_offset = out_header (info_seg, &exp); +@@ -1798,10 +1794,38 @@ out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT ranges_seg) + TC_DWARF2_EMIT_OFFSET (section_symbol (ranges_seg), sizeof_offset); + } + ++ /* DW_AT_name, DW_AT_comp_dir and DW_AT_producer. Symbols in .debug_str ++ setup in out_debug_str below. */ ++ TC_DWARF2_EMIT_OFFSET (name_sym, sizeof_offset); ++ TC_DWARF2_EMIT_OFFSET (comp_dir_sym, sizeof_offset); ++ TC_DWARF2_EMIT_OFFSET (producer_sym, sizeof_offset); ++ ++ /* DW_AT_language. Yes, this is probably not really MIPS, but the ++ dwarf2 draft has no standard code for assembler. */ ++ out_two (DW_LANG_Mips_Assembler); ++ ++ symbol_set_value_now (info_end); ++} ++ ++/* Emit the three debug strings needed in .debug_str and setup symbols ++ to them for use in out_debug_info. */ ++static void ++out_debug_str (segT str_seg, symbolS **name_sym, symbolS **comp_dir_sym, ++ symbolS **producer_sym) ++{ ++ char producer[128]; ++ const char *comp_dir; ++ const char *dirname; ++ char *p; ++ int len; ++ ++ subseg_set (str_seg, 0); ++ + /* DW_AT_name. We don't have the actual file name that was present + on the command line, so assume files[1] is the main input file. + We're not supposed to get called unless at least one line number + entry was emitted, so this should always be defined. */ ++ *name_sym = symbol_temp_new_now (); + if (files_in_use == 0) + abort (); + if (files[1].dir) +@@ -1823,22 +1847,18 @@ out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT ranges_seg) + memcpy (p, files[1].filename, len); + + /* DW_AT_comp_dir */ ++ *comp_dir_sym = symbol_temp_new_now (); + comp_dir = remap_debug_filename (getpwd ()); + len = strlen (comp_dir) + 1; + p = frag_more (len); + memcpy (p, comp_dir, len); + + /* DW_AT_producer */ ++ *producer_sym = symbol_temp_new_now (); + sprintf (producer, "GNU AS %s", VERSION); + len = strlen (producer) + 1; + p = frag_more (len); + memcpy (p, producer, len); +- +- /* DW_AT_language. Yes, this is probably not really MIPS, but the +- dwarf2 draft has no standard code for assembler. */ +- out_two (DW_LANG_Mips_Assembler); +- +- symbol_set_value_now (info_end); + } + + void +@@ -1907,19 +1927,22 @@ dwarf2_finish (void) + out_debug_line (line_seg); + + /* If this is assembler generated line info, and there is no +- debug_info already, we need .debug_info and .debug_abbrev +- sections as well. */ ++ debug_info already, we need .debug_info, .debug_abbrev and ++ .debug_str sections as well. */ + if (emit_other_sections) + { + segT abbrev_seg; + segT aranges_seg; + segT ranges_seg; ++ segT str_seg; ++ symbolS *name_sym, *comp_dir_sym, *producer_sym; + + gas_assert (all_segs); + + info_seg = subseg_new (".debug_info", 0); + abbrev_seg = subseg_new (".debug_abbrev", 0); + aranges_seg = subseg_new (".debug_aranges", 0); ++ str_seg = subseg_new (".debug_str", 0); + + bfd_set_section_flags (stdoutput, info_seg, + SEC_READONLY | SEC_DEBUGGING); +@@ -1927,6 +1950,10 @@ dwarf2_finish (void) + SEC_READONLY | SEC_DEBUGGING); + bfd_set_section_flags (stdoutput, aranges_seg, + SEC_READONLY | SEC_DEBUGGING); ++ bfd_set_section_flags (stdoutput, str_seg, ++ (SEC_READONLY | SEC_DEBUGGING ++ | SEC_MERGE | SEC_STRINGS)); ++ str_seg->entsize = 1; + + record_alignment (aranges_seg, ffs (2 * sizeof_address) - 1); + +@@ -1943,6 +1970,8 @@ dwarf2_finish (void) + + out_debug_aranges (aranges_seg, info_seg); + out_debug_abbrev (abbrev_seg, info_seg, line_seg); +- out_debug_info (info_seg, abbrev_seg, line_seg, ranges_seg); ++ out_debug_str (str_seg, &name_sym, &comp_dir_sym, &producer_sym); ++ out_debug_info (info_seg, abbrev_seg, line_seg, ranges_seg, ++ name_sym, comp_dir_sym, producer_sym); + } + } +diff --git a/gas/testsuite/gas/aarch64/dwarf.d b/gas/testsuite/gas/aarch64/dwarf.d +index 005f1d5..2a75e0b 100644 +--- a/gas/testsuite/gas/aarch64/dwarf.d ++++ b/gas/testsuite/gas/aarch64/dwarf.d +@@ -1,7 +1,7 @@ + #readelf: -s --debug-dump=aranges + #as: -g + +-Symbol table '.symtab' contains 10 entries: ++Symbol table '.symtab' contains 11 entries: + Num:[ ]+Value[ ]+Size[ ]+Type[ ]+Bind[ ]+Vis[ ]+Ndx[ ]+Name + 0: 0+ 0 NOTYPE LOCAL DEFAULT UND[ ]+ + 1: 0+ 0 SECTION LOCAL DEFAULT 1[ ]+ +@@ -11,8 +11,9 @@ Symbol table '.symtab' contains 10 entries: + 5: 0+ 0 SECTION LOCAL DEFAULT 6[ ]+ + 6: 0+ 0 SECTION LOCAL DEFAULT 8[ ]+ + 7: 0+ 0 SECTION LOCAL DEFAULT 4[ ]+ +- 8: 0+ 0 SECTION LOCAL DEFAULT 9[ ]+ +- 9: 0+ 8 FUNC GLOBAL DEFAULT 1 testfunc ++ 8: 0+ 0 SECTION LOCAL DEFAULT 11[ ]+ ++ 9: 0+ 0 SECTION LOCAL DEFAULT 9[ ]+ ++ 10: 0+ 8 FUNC GLOBAL DEFAULT 1 testfunc + Contents of the .debug_aranges section: + + Length: (44|28) diff --git a/binutils-2.28-gold.patch b/binutils-2.28-gold.patch deleted file mode 100644 index 210895b..0000000 --- a/binutils-2.28-gold.patch +++ /dev/null @@ -1,1706 +0,0 @@ -diff -rup ../binutils-2.27/gold/aarch64.cc gold/aarch64.cc ---- ../binutils-2.27/gold/aarch64.cc 2016-09-26 11:22:18.728811436 +0100 -+++ gold/aarch64.cc 2016-11-03 15:05:31.000000000 +0000 -@@ -6026,6 +6026,23 @@ Target_aarch64::Scan:: - } - break; - -+ case elfcpp::R_AARCH64_MOVW_UABS_G0: // 263 -+ case elfcpp::R_AARCH64_MOVW_UABS_G0_NC: // 264 -+ case elfcpp::R_AARCH64_MOVW_UABS_G1: // 265 -+ case elfcpp::R_AARCH64_MOVW_UABS_G1_NC: // 266 -+ case elfcpp::R_AARCH64_MOVW_UABS_G2: // 267 -+ case elfcpp::R_AARCH64_MOVW_UABS_G2_NC: // 268 -+ case elfcpp::R_AARCH64_MOVW_UABS_G3: // 269 -+ case elfcpp::R_AARCH64_MOVW_SABS_G0: // 270 -+ case elfcpp::R_AARCH64_MOVW_SABS_G1: // 271 -+ case elfcpp::R_AARCH64_MOVW_SABS_G2: // 272 -+ if (parameters->options().output_is_position_independent()) -+ { -+ gold_error(_("%s: unsupported reloc %u in pos independent link."), -+ object->name().c_str(), r_type); -+ } -+ break; -+ - case elfcpp::R_AARCH64_LD_PREL_LO19: // 273 - case elfcpp::R_AARCH64_ADR_PREL_LO21: // 274 - case elfcpp::R_AARCH64_ADR_PREL_PG_HI21: // 275 -@@ -6311,6 +6328,23 @@ Target_aarch64::Scan:: - } - break; - -+ case elfcpp::R_AARCH64_MOVW_UABS_G0: // 263 -+ case elfcpp::R_AARCH64_MOVW_UABS_G0_NC: // 264 -+ case elfcpp::R_AARCH64_MOVW_UABS_G1: // 265 -+ case elfcpp::R_AARCH64_MOVW_UABS_G1_NC: // 266 -+ case elfcpp::R_AARCH64_MOVW_UABS_G2: // 267 -+ case elfcpp::R_AARCH64_MOVW_UABS_G2_NC: // 268 -+ case elfcpp::R_AARCH64_MOVW_UABS_G3: // 269 -+ case elfcpp::R_AARCH64_MOVW_SABS_G0: // 270 -+ case elfcpp::R_AARCH64_MOVW_SABS_G1: // 271 -+ case elfcpp::R_AARCH64_MOVW_SABS_G2: // 272 -+ if (parameters->options().output_is_position_independent()) -+ { -+ gold_error(_("%s: unsupported reloc %u in pos independent link."), -+ object->name().c_str(), r_type); -+ } -+ break; -+ - case elfcpp::R_AARCH64_LD_PREL_LO19: // 273 - case elfcpp::R_AARCH64_ADR_PREL_LO21: // 274 - case elfcpp::R_AARCH64_ADR_PREL_PG_HI21: // 275 -@@ -6993,6 +7027,23 @@ Target_aarch64::Reloca - view, object, psymval, addend, address, reloc_property); - break; - -+ case elfcpp::R_AARCH64_MOVW_UABS_G0: -+ case elfcpp::R_AARCH64_MOVW_UABS_G0_NC: -+ case elfcpp::R_AARCH64_MOVW_UABS_G1: -+ case elfcpp::R_AARCH64_MOVW_UABS_G1_NC: -+ case elfcpp::R_AARCH64_MOVW_UABS_G2: -+ case elfcpp::R_AARCH64_MOVW_UABS_G2_NC: -+ case elfcpp::R_AARCH64_MOVW_UABS_G3: -+ reloc_status = Reloc::template rela_general<32>( -+ view, object, psymval, addend, reloc_property); -+ break; -+ case elfcpp::R_AARCH64_MOVW_SABS_G0: -+ case elfcpp::R_AARCH64_MOVW_SABS_G1: -+ case elfcpp::R_AARCH64_MOVW_SABS_G2: -+ reloc_status = Reloc::movnz(view, psymval->value(object, addend), -+ reloc_property); -+ break; -+ - case elfcpp::R_AARCH64_LD_PREL_LO19: - reloc_status = Reloc::template pcrela_general<32>( - view, object, psymval, addend, address, reloc_property); -@@ -8075,7 +8126,7 @@ Target_aarch64::is_err - typename elfcpp::Swap<32,big_endian>::Valtype insn2) - { - uint32_t rt; -- uint32_t rt2; -+ uint32_t rt2 = 0; - uint32_t rn; - uint32_t rm; - uint32_t ra; -diff -rup ../binutils-2.27/gold/aarch64-reloc.def gold/aarch64-reloc.def ---- ../binutils-2.27/gold/aarch64-reloc.def 2016-08-03 08:36:53.000000000 +0100 -+++ gold/aarch64-reloc.def 2016-11-03 14:38:22.000000000 +0000 -@@ -43,6 +43,20 @@ ARD(PREL32 , STATI - ARD(PREL16 , STATIC , DATA , Y, -1, 15,16 , 0,0 , Symbol::RELATIVE_REF , DATA ) - // Above is from Table 4-6, Data relocations, 257-262. - -+ARD(MOVW_UABS_G0 , STATIC , AARCH64 , Y, 0, 0,16 , 0,15 , Symbol::ABSOLUTE_REF , MOVW ) -+ARD(MOVW_UABS_G0_NC , STATIC , AARCH64 , Y, 0, 0,0 , 0,15 , Symbol::ABSOLUTE_REF , MOVW ) -+ARD(MOVW_UABS_G1 , STATIC , AARCH64 , Y, 0, 0,32 , 16,31 , Symbol::ABSOLUTE_REF , MOVW ) -+ARD(MOVW_UABS_G1_NC , STATIC , AARCH64 , Y, 0, 0,0 , 16,31 , Symbol::ABSOLUTE_REF , MOVW ) -+ARD(MOVW_UABS_G2 , STATIC , AARCH64 , Y, 0, 0,48 , 32,47 , Symbol::ABSOLUTE_REF , MOVW ) -+ARD(MOVW_UABS_G2_NC , STATIC , AARCH64 , Y, 0, 0,0 , 32,47 , Symbol::ABSOLUTE_REF , MOVW ) -+ARD(MOVW_UABS_G3 , STATIC , AARCH64 , Y, 0, 0,0 , 48,63 , Symbol::ABSOLUTE_REF , MOVW ) -+// Above is from Table 4-7, Group relocations to create a 16-, 32-, 48-, or 64-bit unsigned data value or address inline. -+ -+ARD(MOVW_SABS_G0 , STATIC , AARCH64 , Y, 0, 16,16 , 0,15 , Symbol::ABSOLUTE_REF , MOVW ) -+ARD(MOVW_SABS_G1 , STATIC , AARCH64 , Y, 0, 32,32 , 16,31 , Symbol::ABSOLUTE_REF , MOVW ) -+ARD(MOVW_SABS_G2 , STATIC , AARCH64 , Y, 0, 48,48 , 32,47 , Symbol::ABSOLUTE_REF , MOVW ) -+// Above is from Table 4-8, Group relocations to create a 16, 32, 48, or 64 bit signed data or offset value inline. -+ - ARD(LD_PREL_LO19 , STATIC , AARCH64 , Y, -1, 20,20 , 2,20 , Symbol::RELATIVE_REF , LDST ) - ARD(ADR_PREL_LO21 , STATIC , AARCH64 , Y, -1, 20,20 , 0,20 , Symbol::RELATIVE_REF , ADR ) - ARD(ADR_PREL_PG_HI21 , STATIC , AARCH64 , Y, -1, 32,32 , 12,32 , Symbol::RELATIVE_REF , ADRP ) -diff -rup ../binutils-2.27/gold/aarch64-reloc-property.cc gold/aarch64-reloc-property.cc ---- ../binutils-2.27/gold/aarch64-reloc-property.cc 2016-08-03 08:36:53.000000000 +0100 -+++ gold/aarch64-reloc-property.cc 2016-11-03 15:05:32.000000000 +0000 -@@ -59,17 +59,51 @@ template<> - bool - rvalue_checkup<0, 0>(int64_t) { return true; } - -+namespace -+{ -+ - template --uint64_t --rvalue_bit_select(uint64_t x) -+class Rvalue_bit_select_impl - { -- if (U == 63) return x >> L; -- return (x & (((uint64_t)1 << (U+1)) - 1)) >> L; --} -+public: -+ static uint64_t -+ calc(uint64_t x) -+ { -+ return (x & ((1ULL << (U+1)) - 1)) >> L; -+ } -+}; -+ -+template -+class Rvalue_bit_select_impl -+{ -+public: -+ static uint64_t -+ calc(uint64_t x) -+ { -+ return x >> L; -+ } -+}; - -+// By our convention, L=U=0 means that the whole value should be retrieved. - template<> -+class Rvalue_bit_select_impl<0, 0> -+{ -+public: -+ static uint64_t -+ calc(uint64_t x) -+ { -+ return x; -+ } -+}; -+ -+} // End anonymous namespace. -+ -+template - uint64_t --rvalue_bit_select<0, 0>(uint64_t x) { return x; } -+rvalue_bit_select(uint64_t x) -+{ -+ return Rvalue_bit_select_impl::calc(x); -+} - - AArch64_reloc_property::AArch64_reloc_property( - unsigned int code, -diff -rup ../binutils-2.27/gold/arm.cc gold/arm.cc ---- ../binutils-2.27/gold/arm.cc 2016-09-26 11:22:18.629810833 +0100 -+++ gold/arm.cc 2016-11-03 15:05:33.000000000 +0000 -@@ -2128,8 +2128,36 @@ class Target_arm : public Sized_target<3 - stub_tables_(), stub_factory_(Stub_factory::get_instance()), - should_force_pic_veneer_(false), - arm_input_section_map_(), attributes_section_data_(NULL), -- fix_cortex_a8_(false), cortex_a8_relocs_info_() -- { } -+ fix_cortex_a8_(false), cortex_a8_relocs_info_(), -+ target1_reloc_(elfcpp::R_ARM_ABS32), -+ // This can be any reloc type but usually is R_ARM_GOT_PREL. -+ target2_reloc_(elfcpp::R_ARM_GOT_PREL) -+ { -+ if (parameters->options().user_set_target1_rel()) -+ { -+ // FIXME: This is not strictly compatible with ld, which allows both -+ // --target1-abs and --target-rel to be given. -+ if (parameters->options().user_set_target1_abs()) -+ gold_error(_("Cannot use both --target1-abs and --target1-rel.")); -+ else -+ this->target1_reloc_ = elfcpp::R_ARM_REL32; -+ } -+ // We don't need to handle --target1-abs because target1_reloc_ is set -+ // to elfcpp::R_ARM_ABS32 in the member initializer list. -+ -+ if (parameters->options().user_set_target2()) -+ { -+ const char* target2 = parameters->options().target2(); -+ if (strcmp(target2, "rel") == 0) -+ this->target2_reloc_ = elfcpp::R_ARM_REL32; -+ else if (strcmp(target2, "abs") == 0) -+ this->target2_reloc_ = elfcpp::R_ARM_ABS32; -+ else if (strcmp(target2, "got-rel") == 0) -+ this->target2_reloc_ = elfcpp::R_ARM_GOT_PREL; -+ else -+ gold_unreachable(); -+ } -+ } - - // Whether we force PCI branch veneers. - bool -@@ -2391,8 +2419,8 @@ class Target_arm : public Sized_target<3 - rel_irelative_section(Layout*); - - // Map platform-specific reloc types -- static unsigned int -- get_real_reloc_type(unsigned int r_type); -+ unsigned int -+ get_real_reloc_type(unsigned int r_type) const; - - // - // Methods to support stub-generations. -@@ -3002,6 +3030,11 @@ class Target_arm : public Sized_target<3 - bool fix_cortex_a8_; - // Map addresses to relocs for Cortex-A8 erratum. - Cortex_a8_relocs_info cortex_a8_relocs_info_; -+ // What R_ARM_TARGET1 maps to. It can be R_ARM_REL32 or R_ARM_ABS32. -+ unsigned int target1_reloc_; -+ // What R_ARM_TARGET2 maps to. It should be one of R_ARM_REL32, R_ARM_ABS32 -+ // and R_ARM_GOT_PREL. -+ unsigned int target2_reloc_; - }; - - template -@@ -6639,6 +6672,80 @@ Arm_relobj::do_relocate_sect - section_address, - section_size); - } -+ // BE8 swapping -+ if (parameters->options().be8()) -+ { -+ section_size_type span_start, span_end; -+ elfcpp::Shdr<32, big_endian> -+ shdr(pshdrs + i * elfcpp::Elf_sizes<32>::shdr_size); -+ Mapping_symbol_position section_start(i, 0); -+ typename Mapping_symbols_info::const_iterator p = -+ this->mapping_symbols_info_.lower_bound(section_start); -+ unsigned char* view = (*pviews)[i].view; -+ Arm_address view_address = (*pviews)[i].address; -+ section_size_type view_size = (*pviews)[i].view_size; -+ while (p != this->mapping_symbols_info_.end() -+ && p->first.first == i) -+ { -+ typename Mapping_symbols_info::const_iterator next = -+ this->mapping_symbols_info_.upper_bound(p->first); -+ -+ // Only swap arm or thumb code. -+ if ((p->second == 'a') || (p->second == 't')) -+ { -+ Output_section* os = this->output_section(i); -+ gold_assert(os != NULL); -+ Arm_address section_address = -+ this->simple_input_section_output_address(i, os); -+ span_start = convert_to_section_size_type(p->first.second); -+ if (next != this->mapping_symbols_info_.end() -+ && next->first.first == i) -+ span_end = -+ convert_to_section_size_type(next->first.second); -+ else -+ span_end = -+ convert_to_section_size_type(shdr.get_sh_size()); -+ unsigned char* section_view = -+ view + (section_address - view_address); -+ uint64_t section_size = this->section_size(i); -+ -+ gold_assert(section_address >= view_address -+ && ((section_address + section_size) -+ <= (view_address + view_size))); -+ -+ // Set Output view for swapping -+ unsigned char *oview = section_view + span_start; -+ unsigned int index = 0; -+ if (p->second == 'a') -+ { -+ while (index + 3 < (span_end - span_start)) -+ { -+ typedef typename elfcpp::Swap<32, big_endian> -+ ::Valtype Valtype; -+ Valtype* wv = -+ reinterpret_cast(oview+index); -+ uint32_t val = elfcpp::Swap<32, false>::readval(wv); -+ elfcpp::Swap<32, true>::writeval(wv, val); -+ index += 4; -+ } -+ } -+ else if (p->second == 't') -+ { -+ while (index + 1 < (span_end - span_start)) -+ { -+ typedef typename elfcpp::Swap<16, big_endian> -+ ::Valtype Valtype; -+ Valtype* wv = -+ reinterpret_cast(oview+index); -+ uint16_t val = elfcpp::Swap<16, false>::readval(wv); -+ elfcpp::Swap<16, true>::writeval(wv, val); -+ index += 2; -+ } -+ } -+ } -+ p = next; -+ } -+ } - } - } - -@@ -7785,7 +7892,18 @@ Output_data_plt_arm_standard - const size_t num_first_plt_words = (sizeof(first_plt_entry) - / sizeof(first_plt_entry[0])); - for (size_t i = 0; i < num_first_plt_words - 1; i++) -- elfcpp::Swap<32, big_endian>::writeval(pov + i * 4, first_plt_entry[i]); -+ { -+ if (parameters->options().be8()) -+ { -+ elfcpp::Swap<32, false>::writeval(pov + i * 4, -+ first_plt_entry[i]); -+ } -+ else -+ { -+ elfcpp::Swap<32, big_endian>::writeval(pov + i * 4, -+ first_plt_entry[i]); -+ } -+ } - // Last word in first PLT entry is &GOT[0] - . - elfcpp::Swap<32, big_endian>::writeval(pov + 16, - got_address - (plt_address + 16)); -@@ -7846,11 +7964,21 @@ Output_data_plt_arm_short::d - gold_error(_("PLT offset too large, try linking with --long-plt")); - - uint32_t plt_insn0 = plt_entry[0] | ((offset >> 20) & 0xff); -- elfcpp::Swap<32, big_endian>::writeval(pov, plt_insn0); - uint32_t plt_insn1 = plt_entry[1] | ((offset >> 12) & 0xff); -- elfcpp::Swap<32, big_endian>::writeval(pov + 4, plt_insn1); - uint32_t plt_insn2 = plt_entry[2] | (offset & 0xfff); -- elfcpp::Swap<32, big_endian>::writeval(pov + 8, plt_insn2); -+ -+ if (parameters->options().be8()) -+ { -+ elfcpp::Swap<32, false>::writeval(pov, plt_insn0); -+ elfcpp::Swap<32, false>::writeval(pov + 4, plt_insn1); -+ elfcpp::Swap<32, false>::writeval(pov + 8, plt_insn2); -+ } -+ else -+ { -+ elfcpp::Swap<32, big_endian>::writeval(pov, plt_insn0); -+ elfcpp::Swap<32, big_endian>::writeval(pov + 4, plt_insn1); -+ elfcpp::Swap<32, big_endian>::writeval(pov + 8, plt_insn2); -+ } - } - - // This class generates long (16-byte) entries, for arbitrary displacements. -@@ -7906,13 +8034,24 @@ Output_data_plt_arm_long::do - - (plt_address + plt_offset + 8)); - - uint32_t plt_insn0 = plt_entry[0] | (offset >> 28); -- elfcpp::Swap<32, big_endian>::writeval(pov, plt_insn0); - uint32_t plt_insn1 = plt_entry[1] | ((offset >> 20) & 0xff); -- elfcpp::Swap<32, big_endian>::writeval(pov + 4, plt_insn1); - uint32_t plt_insn2 = plt_entry[2] | ((offset >> 12) & 0xff); -- elfcpp::Swap<32, big_endian>::writeval(pov + 8, plt_insn2); - uint32_t plt_insn3 = plt_entry[3] | (offset & 0xfff); -- elfcpp::Swap<32, big_endian>::writeval(pov + 12, plt_insn3); -+ -+ if (parameters->options().be8()) -+ { -+ elfcpp::Swap<32, false>::writeval(pov, plt_insn0); -+ elfcpp::Swap<32, false>::writeval(pov + 4, plt_insn1); -+ elfcpp::Swap<32, false>::writeval(pov + 8, plt_insn2); -+ elfcpp::Swap<32, false>::writeval(pov + 12, plt_insn3); -+ } -+ else -+ { -+ elfcpp::Swap<32, big_endian>::writeval(pov, plt_insn0); -+ elfcpp::Swap<32, big_endian>::writeval(pov + 4, plt_insn1); -+ elfcpp::Swap<32, big_endian>::writeval(pov + 8, plt_insn2); -+ elfcpp::Swap<32, big_endian>::writeval(pov + 12, plt_insn3); -+ } - } - - // Write out the PLT. This uses the hand-coded instructions above, -@@ -8414,7 +8553,7 @@ Target_arm::Scan::local(Symb - if (is_discarded) - return; - -- r_type = get_real_reloc_type(r_type); -+ r_type = target->get_real_reloc_type(r_type); - - // A local STT_GNU_IFUNC symbol may require a PLT entry. - bool is_ifunc = lsym.get_st_type() == elfcpp::STT_GNU_IFUNC; -@@ -8820,7 +8959,7 @@ Target_arm::Scan::global(Sym - && this->reloc_needs_plt_for_ifunc(object, r_type)) - target->make_plt_entry(symtab, layout, gsym); - -- r_type = get_real_reloc_type(r_type); -+ r_type = target->get_real_reloc_type(r_type); - switch (r_type) - { - case elfcpp::R_ARM_NONE: -@@ -9446,7 +9585,7 @@ Target_arm::Relocate::reloca - - const elfcpp::Rel<32, big_endian> rel(preloc); - unsigned int r_type = elfcpp::elf_r_type<32>(rel.get_r_info()); -- r_type = get_real_reloc_type(r_type); -+ r_type = target->get_real_reloc_type(r_type); - const Arm_reloc_property* reloc_property = - arm_reloc_property_table->get_implemented_static_reloc_property(r_type); - if (reloc_property == NULL) -@@ -10156,7 +10295,9 @@ Target_arm::Classify_reloc:: - unsigned int r_type, - Relobj* object) - { -- r_type = get_real_reloc_type(r_type); -+ Target_arm* arm_target = -+ Target_arm::default_target(); -+ r_type = arm_target->get_real_reloc_type(r_type); - const Arm_reloc_property* arp = - arm_reloc_property_table->get_implemented_static_reloc_property(r_type); - if (arp != NULL) -@@ -10580,17 +10721,15 @@ Target_arm::do_dynsym_value( - // - template - unsigned int --Target_arm::get_real_reloc_type(unsigned int r_type) -+Target_arm::get_real_reloc_type(unsigned int r_type) const - { - switch (r_type) - { - case elfcpp::R_ARM_TARGET1: -- // This is either R_ARM_ABS32 or R_ARM_REL32; -- return elfcpp::R_ARM_ABS32; -+ return this->target1_reloc_; - - case elfcpp::R_ARM_TARGET2: -- // This can be any reloc type but usually is R_ARM_GOT_PREL -- return elfcpp::R_ARM_GOT_PREL; -+ return this->target2_reloc_; - - default: - return r_type; -@@ -10683,7 +10822,14 @@ Target_arm::do_adjust_elf_he - e_ident[elfcpp::EI_OSABI] = 0; - e_ident[elfcpp::EI_ABIVERSION] = 0; - -- // FIXME: Do EF_ARM_BE8 adjustment. -+ // Do EF_ARM_BE8 adjustment. -+ if (parameters->options().be8() && !big_endian) -+ gold_error("BE8 images only valid in big-endian mode."); -+ if (parameters->options().be8()) -+ { -+ flags |= elfcpp::EF_ARM_BE8; -+ this->set_processor_specific_flags(flags); -+ } - - // If we're working in EABI_VER5, set the hard/soft float ABI flags - // as appropriate. -diff -rup ../binutils-2.27/gold/configure gold/configure ---- ../binutils-2.27/gold/configure 2016-09-26 11:22:19.027813254 +0100 -+++ gold/configure 2016-11-03 14:38:22.000000000 +0000 -@@ -609,6 +609,7 @@ GOLD_LDFLAGS - WARN_CXXFLAGS - WARN_WRITE_STRINGS - NO_WERROR -+WARN_CFLAGS_FOR_BUILD - WARN_CFLAGS - IFUNC_STATIC_FALSE - IFUNC_STATIC_TRUE -@@ -6723,8 +6724,12 @@ fi - # Set the 'development' global. - . $srcdir/../bfd/development.sh - -+# Set acp_cpp_for_build variable -+ac_cpp_for_build="$CC_FOR_BUILD -E $CPPFLAGS_FOR_BUILD" -+ - # Default set of GCC warnings to enable. - GCC_WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes" -+GCC_WARN_CFLAGS_FOR_BUILD="-W -Wall -Wstrict-prototypes -Wmissing-prototypes" - - # Add -Wshadow if the compiler is a sufficiently recent version of GCC. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -@@ -6769,6 +6774,36 @@ fi - rm -f conftest* - - -+# Verify CC_FOR_BUILD to be compatible with waring flags -+ -+# Add -Wshadow if the compiler is a sufficiently recent version of GCC. -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+__GNUC__ -+_ACEOF -+if (eval "$ac_cpp_for_build conftest.$ac_ext") 2>&5 | -+ $EGREP "^[0-3]$" >/dev/null 2>&1; then : -+ -+else -+ GCC_WARN_CFLAGS_FOR_BUILD="$GCC_WARN_CFLAGS_FOR_BUILD -Wshadow" -+fi -+rm -f conftest* -+ -+ -+# Add -Wstack-usage if the compiler is a sufficiently recent version of GCC. -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+__GNUC__ -+_ACEOF -+if (eval "$ac_cpp_for_build conftest.$ac_ext") 2>&5 | -+ $EGREP "^[0-4]$" >/dev/null 2>&1; then : -+ -+else -+ GCC_WARN_CFLAGS_FOR_BUILD="$GCC_WARN_CFLAGS_FOR_BUILD -Wstack-usage=262144" -+fi -+rm -f conftest* -+ -+ - # Check whether --enable-werror was given. - if test "${enable_werror+set}" = set; then : - enableval=$enable_werror; case "${enableval}" in -@@ -6784,6 +6819,7 @@ case "${host}" in - *-*-mingw32*) - if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then - GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Wno-format" -+ GCC_WARN_CFLAGS_FOR_BUILD="$GCC_WARN_CFLAGS_FOR_BUILD -Wno-format" - fi - ;; - *) ;; -@@ -6797,25 +6833,32 @@ fi - NO_WERROR= - if test "${ERROR_ON_WARNING}" = yes ; then - GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Werror" -+ GCC_WARN_CFLAGS_FOR_BUILD="$GCC_WARN_CFLAGS_FOR_BUILD -Werror" - NO_WERROR="-Wno-error" - fi - - if test "${GCC}" = yes ; then - WARN_CFLAGS="${GCC_WARN_CFLAGS}" -+ WARN_CFLAGS_FOR_BUILD="${GCC_WARN_CFLAGS_FOR_BUILD}" - fi - - # Check whether --enable-build-warnings was given. - if test "${enable_build_warnings+set}" = set; then : - enableval=$enable_build_warnings; case "${enableval}" in -- yes) WARN_CFLAGS="${GCC_WARN_CFLAGS}";; -+ yes) WARN_CFLAGS="${GCC_WARN_CFLAGS}" -+ WARN_CFLAGS_FOR_BUILD="${GCC_WARN_CFLAGS_FOR_BUILD}";; - no) if test "${GCC}" = yes ; then - WARN_CFLAGS="-w" -+ WARN_CFLAGS_FOR_BUILD="-w" - fi;; - ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"` -- WARN_CFLAGS="${GCC_WARN_CFLAGS} ${t}";; -+ WARN_CFLAGS="${GCC_WARN_CFLAGS} ${t}" -+ WARN_CFLAGS_FOR_BUILD="${GCC_WARN_CFLAGS_FOR_BUILD} ${t}";; - *,) t=`echo "${enableval}" | sed -e "s/,/ /g"` -- WARN_CFLAGS="${t} ${GCC_WARN_CFLAGS}";; -- *) WARN_CFLAGS=`echo "${enableval}" | sed -e "s/,/ /g"`;; -+ WARN_CFLAGS="${t} ${GCC_WARN_CFLAGS}" -+ WARN_CFLAGS_FOR_BUILD="${t} ${GCC_WARN_CFLAGS_FOR_BUILD}";; -+ *) WARN_CFLAGS=`echo "${enableval}" | sed -e "s/,/ /g"` -+ WARN_CFLAGS_FOR_BUILD=`echo "${enableval}" | sed -e "s/,/ /g"`;; - esac - fi - -diff -rup ../binutils-2.27/gold/debug.h gold/debug.h ---- ../binutils-2.27/gold/debug.h 2016-08-03 08:36:53.000000000 +0100 -+++ gold/debug.h 2016-11-03 15:05:05.000000000 +0000 -@@ -39,10 +39,11 @@ const int DEBUG_FILES = 0x4; - const int DEBUG_RELAXATION = 0x8; - const int DEBUG_INCREMENTAL = 0x10; - const int DEBUG_LOCATION = 0x20; -+const int DEBUG_TARGET = 0x40; - - const int DEBUG_ALL = (DEBUG_TASK | DEBUG_SCRIPT | DEBUG_FILES - | DEBUG_RELAXATION | DEBUG_INCREMENTAL -- | DEBUG_LOCATION); -+ | DEBUG_LOCATION | DEBUG_TARGET); - - // Convert a debug string to the appropriate enum. - inline int -@@ -57,6 +58,7 @@ debug_string_to_enum(const char* arg) - { "relaxation", DEBUG_RELAXATION }, - { "incremental", DEBUG_INCREMENTAL }, - { "location", DEBUG_LOCATION }, -+ { "target", DEBUG_TARGET }, - { "all", DEBUG_ALL } - }; - -@@ -70,11 +72,11 @@ debug_string_to_enum(const char* arg) - // Print a debug message if TYPE is enabled. This is a macro so that - // we only evaluate the arguments if necessary. - --#define gold_debug(TYPE, FORMAT, ...) \ -+#define gold_debug(TYPE, ...) \ - do \ - { \ - if (is_debugging_enabled(TYPE)) \ -- parameters->errors()->debug(FORMAT, __VA_ARGS__); \ -+ parameters->errors()->debug(__VA_ARGS__); \ - } \ - while (0) - -diff -rup ../binutils-2.27/gold/i386.cc gold/i386.cc ---- ../binutils-2.27/gold/i386.cc 2016-08-03 08:36:53.000000000 +0100 -+++ gold/i386.cc 2016-11-03 15:05:40.000000000 +0000 -@@ -2794,8 +2794,11 @@ Target_i386::Relocate::relocate(const Re - && r_type != elfcpp::R_386_PC32) - || gsym == NULL - || strcmp(gsym->name(), "___tls_get_addr") != 0) -- gold_error_at_location(relinfo, relnum, rel.get_r_offset(), -- _("missing expected TLS relocation")); -+ { -+ gold_error_at_location(relinfo, relnum, rel.get_r_offset(), -+ _("missing expected TLS relocation")); -+ this->skip_call_tls_get_addr_ = false; -+ } - else - { - this->skip_call_tls_get_addr_ = false; -diff -rup ../binutils-2.27/gold/icf.cc gold/icf.cc ---- ../binutils-2.27/gold/icf.cc 2016-08-03 08:36:53.000000000 +0100 -+++ gold/icf.cc 2016-11-03 15:05:40.000000000 +0000 -@@ -590,6 +590,7 @@ match_sections(unsigned int iteration_nu - std::vector* num_tracked_relocs, - std::vector* kept_section_id, - const std::vector& id_section, -+ const std::vector& section_addraligns, - std::vector* is_secn_or_group_unique, - std::vector* section_contents) - { -@@ -630,13 +631,7 @@ match_sections(unsigned int iteration_nu - { - if ((*kept_section_id)[i] != i) - { -- // This section is already folded into something. See -- // if it should point to a different kept section. -- unsigned int kept_section = (*kept_section_id)[i]; -- if (kept_section != (*kept_section_id)[kept_section]) -- { -- (*kept_section_id)[i] = (*kept_section_id)[kept_section]; -- } -+ // This section is already folded into something. - continue; - } - this_secn_contents = get_section_contents(false, secn, i, NULL, -@@ -671,7 +666,25 @@ match_sections(unsigned int iteration_nu - this_secn_contents.c_str(), - this_secn_contents.length()) != 0) - continue; -- (*kept_section_id)[i] = kept_section; -+ -+ // Check section alignment here. -+ // The section with the larger alignment requirement -+ // should be kept. We assume alignment can only be -+ // zero or postive integral powers of two. -+ uint64_t align_i = section_addraligns[i]; -+ uint64_t align_kept = section_addraligns[kept_section]; -+ if (align_i <= align_kept) -+ { -+ (*kept_section_id)[i] = kept_section; -+ } -+ else -+ { -+ (*kept_section_id)[kept_section] = i; -+ it->second = i; -+ full_section_contents[kept_section].swap( -+ full_section_contents[i]); -+ } -+ - converged = false; - break; - } -@@ -688,6 +701,26 @@ match_sections(unsigned int iteration_nu - (*is_secn_or_group_unique)[i] = true; - } - -+ // If a section was folded into another section that was later folded -+ // again then the former has to be updated. -+ for (unsigned int i = 0; i < id_section.size(); i++) -+ { -+ // Find the end of the folding chain -+ unsigned int kept = i; -+ while ((*kept_section_id)[kept] != kept) -+ { -+ kept = (*kept_section_id)[kept]; -+ } -+ // Update every element of the chain -+ unsigned int current = i; -+ while ((*kept_section_id)[current] != kept) -+ { -+ unsigned int next = (*kept_section_id)[current]; -+ (*kept_section_id)[current] = kept; -+ current = next; -+ } -+ } -+ - return converged; - } - -@@ -719,6 +752,7 @@ Icf::find_identical_sections(const Input - { - unsigned int section_num = 0; - std::vector num_tracked_relocs; -+ std::vector section_addraligns; - std::vector is_secn_or_group_unique; - std::vector section_contents; - const Target& target = parameters->target(); -@@ -759,6 +793,7 @@ Icf::find_identical_sections(const Input - this->section_id_[Section_id(*p, i)] = section_num; - this->kept_section_id_.push_back(section_num); - num_tracked_relocs.push_back(0); -+ section_addraligns.push_back((*p)->section_addralign(i)); - is_secn_or_group_unique.push_back(false); - section_contents.push_back(""); - section_num++; -@@ -779,8 +814,8 @@ Icf::find_identical_sections(const Input - num_iterations++; - converged = match_sections(num_iterations, symtab, - &num_tracked_relocs, &this->kept_section_id_, -- this->id_section_, &is_secn_or_group_unique, -- §ion_contents); -+ this->id_section_, section_addraligns, -+ &is_secn_or_group_unique, §ion_contents); - } - - if (parameters->options().print_icf_sections()) -diff -rup ../binutils-2.27/gold/layout.cc gold/layout.cc ---- ../binutils-2.27/gold/layout.cc 2016-08-03 08:36:53.000000000 +0100 -+++ gold/layout.cc 2016-11-03 15:05:42.000000000 +0000 -@@ -2135,7 +2135,7 @@ void - Layout::create_notes() - { - this->create_gold_note(); -- this->create_executable_stack_info(); -+ this->create_stack_segment(); - this->create_build_id(); - } - -@@ -2785,7 +2785,7 @@ Layout::finalize(const Input_objects* in - if (load_seg != NULL) - ehdr_start->set_output_segment(load_seg, Symbol::SEGMENT_START); - else -- ehdr_start->set_undefined(); -+ ehdr_start->set_undefined(); - } - - // Set the file offsets of all the non-data sections we've seen so -@@ -2985,25 +2985,29 @@ Layout::create_gold_note() - // executable. Otherwise, if at least one input file a - // .note.GNU-stack section, and some input file has no .note.GNU-stack - // section, we use the target default for whether the stack should be --// executable. Otherwise, we don't generate a stack note. When --// generating a object file, we create a .note.GNU-stack section with --// the appropriate marking. When generating an executable or shared --// library, we create a PT_GNU_STACK segment. -+// executable. If -z stack-size was used to set a p_memsz value for -+// PT_GNU_STACK, we generate the segment regardless. Otherwise, we -+// don't generate a stack note. When generating a object file, we -+// create a .note.GNU-stack section with the appropriate marking. -+// When generating an executable or shared library, we create a -+// PT_GNU_STACK segment. - - void --Layout::create_executable_stack_info() -+Layout::create_stack_segment() - { - bool is_stack_executable; - if (parameters->options().is_execstack_set()) - { - is_stack_executable = parameters->options().is_stack_executable(); - if (!is_stack_executable -- && this->input_requires_executable_stack_ -- && parameters->options().warn_execstack()) -+ && this->input_requires_executable_stack_ -+ && parameters->options().warn_execstack()) - gold_warning(_("one or more inputs require executable stack, " -- "but -z noexecstack was given")); -+ "but -z noexecstack was given")); - } -- else if (!this->input_with_gnu_stack_note_) -+ else if (!this->input_with_gnu_stack_note_ -+ && (!parameters->options().user_set_stack_size() -+ || parameters->options().relocatable())) - return; - else - { -@@ -3032,7 +3036,12 @@ Layout::create_executable_stack_info() - int flags = elfcpp::PF_R | elfcpp::PF_W; - if (is_stack_executable) - flags |= elfcpp::PF_X; -- this->make_output_segment(elfcpp::PT_GNU_STACK, flags); -+ Output_segment* seg = -+ this->make_output_segment(elfcpp::PT_GNU_STACK, flags); -+ seg->set_size(parameters->options().stack_size()); -+ // BFD lets targets override this default alignment, but the only -+ // targets that do so are ones that Gold does not support so far. -+ seg->set_minimum_p_align(16); - } - } - -@@ -3718,7 +3727,9 @@ Layout::set_segment_offsets(const Target - p != this->segment_list_.end(); - ++p) - { -- if ((*p)->type() != elfcpp::PT_LOAD) -+ // PT_GNU_STACK was set up correctly when it was created. -+ if ((*p)->type() != elfcpp::PT_LOAD -+ && (*p)->type() != elfcpp::PT_GNU_STACK) - (*p)->set_offset((*p)->type() == elfcpp::PT_GNU_RELRO - ? increase_relro - : 0); -diff -rup ../binutils-2.27/gold/layout.h gold/layout.h ---- ../binutils-2.27/gold/layout.h 2016-08-03 08:36:53.000000000 +0100 -+++ gold/layout.h 2016-11-03 15:05:12.000000000 +0000 -@@ -1037,9 +1037,9 @@ class Layout - void - create_gold_note(); - -- // Record whether the stack must be executable. -+ // Record whether the stack must be executable, and a user-supplied size. - void -- create_executable_stack_info(); -+ create_stack_segment(); - - // Create a build ID note if needed. - void -diff -rup ../binutils-2.27/gold/Makefile.in gold/Makefile.in ---- ../binutils-2.27/gold/Makefile.in 2016-08-03 08:36:53.000000000 +0100 -+++ gold/Makefile.in 2016-11-03 14:38:22.000000000 +0000 -@@ -87,8 +87,8 @@ subdir = . - DIST_COMMON = NEWS README ChangeLog $(srcdir)/Makefile.in \ - $(srcdir)/Makefile.am $(top_srcdir)/configure \ - $(am__configure_deps) $(srcdir)/config.in \ -- $(srcdir)/../mkinstalldirs $(top_srcdir)/po/Make-in \ -- ftruncate.c pread.c mremap.c ffsll.c yyscript.h yyscript.c \ -+ $(srcdir)/../mkinstalldirs $(top_srcdir)/po/Make-in ffsll.c \ -+ mremap.c ftruncate.c pread.c yyscript.h yyscript.c \ - $(srcdir)/../depcomp $(srcdir)/../ylwrap - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 - am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \ -@@ -409,6 +409,7 @@ TARGETOBJS = @TARGETOBJS@ - USE_NLS = @USE_NLS@ - VERSION = @VERSION@ - WARN_CFLAGS = @WARN_CFLAGS@ -+WARN_CFLAGS_FOR_BUILD = @WARN_CFLAGS_FOR_BUILD@ - WARN_CXXFLAGS = @WARN_CXXFLAGS@ - WARN_WRITE_STRINGS = @WARN_WRITE_STRINGS@ - XGETTEXT = @XGETTEXT@ -diff -rup ../binutils-2.27/gold/options.h gold/options.h ---- ../binutils-2.27/gold/options.h 2016-08-03 08:36:53.000000000 +0100 -+++ gold/options.h 2016-11-03 15:05:13.000000000 +0000 -@@ -647,7 +647,7 @@ class General_options - DEFINE_bool(apply_dynamic_relocs, options::TWO_DASHES, '\0', true, - N_("Apply link-time values for dynamic relocations (default)"), - N_("(aarch64 only) Do not apply link-time values " -- "for dynamic relocations")); -+ "for dynamic relocations")); - - DEFINE_bool(as_needed, options::TWO_DASHES, '\0', false, - N_("Only set DT_NEEDED for shared libraries if used"), -@@ -674,6 +674,9 @@ class General_options - DEFINE_bool_alias(dn, Bdynamic, options::ONE_DASH, '\0', - N_("alias for -Bstatic"), NULL, true); - -+ DEFINE_bool(be8,options::TWO_DASHES, '\0', false, -+ N_("Output BE8 format image"), NULL); -+ - DEFINE_bool(Bgroup, options::ONE_DASH, '\0', false, - N_("Use group name lookup rules for shared library"), NULL); - -@@ -1152,6 +1155,17 @@ class General_options - DEFINE_string(sysroot, options::TWO_DASHES, '\0', "", - N_("Set target system root directory"), N_("DIR")); - -+ DEFINE_bool(target1_rel, options::TWO_DASHES, '\0', false, -+ N_("(ARM only) Force R_ARM_TARGET1 type to R_ARM_REL32"), -+ NULL); -+ DEFINE_bool(target1_abs, options::TWO_DASHES, '\0', false, -+ N_("(ARM only) Force R_ARM_TARGET1 type to R_ARM_ABS32"), -+ NULL); -+ DEFINE_enum(target2, options::TWO_DASHES, '\0', NULL, -+ N_("(ARM only) Set R_ARM_TARGET2 relocation type"), -+ N_("[rel, abs, got-rel"), -+ {"rel", "abs", "got-rel"}); -+ - DEFINE_bool(trace, options::TWO_DASHES, 't', false, - N_("Print the name of each input file"), NULL); - -@@ -1293,7 +1307,7 @@ class General_options - N_("Mark output as requiring executable stack"), NULL); - DEFINE_bool(global, options::DASH_Z, '\0', false, - N_("Make symbols in DSO available for subsequently loaded " -- "objects"), NULL); -+ "objects"), NULL); - DEFINE_bool(initfirst, options::DASH_Z, '\0', false, - N_("Mark DSO to be initialized first at runtime"), - NULL); -@@ -1339,6 +1353,8 @@ class General_options - DEFINE_bool(relro, options::DASH_Z, '\0', DEFAULT_LD_Z_RELRO, - N_("Where possible mark variables read-only after relocation"), - N_("Don't mark variables read-only after relocation")); -+ DEFINE_uint64(stack_size, options::DASH_Z, '\0', 0, -+ N_("Set PT_GNU_STACK segment p_memsz to SIZE"), N_("SIZE")); - DEFINE_bool(text, options::DASH_Z, '\0', false, - N_("Do not permit relocations in read-only segments"), - N_("Permit relocations in read-only segments (default)")); -diff -rup ../binutils-2.27/gold/output.cc gold/output.cc ---- ../binutils-2.27/gold/output.cc 2016-08-03 08:36:53.000000000 +0100 -+++ gold/output.cc 2016-11-03 15:05:44.000000000 +0000 -@@ -4398,7 +4398,7 @@ Output_segment::set_section_addresses(co - this->offset_ = orig_off; - - off_t off = 0; -- uint64_t ret; -+ uint64_t ret = 0; - for (int i = 0; i < static_cast(ORDER_MAX); ++i) - { - if (i == static_cast(ORDER_RELRO_LAST)) -diff -rup ../binutils-2.27/gold/output.h gold/output.h ---- ../binutils-2.27/gold/output.h 2016-08-03 08:36:53.000000000 +0100 -+++ gold/output.h 2016-11-03 15:05:14.000000000 +0000 -@@ -2499,7 +2499,7 @@ class Output_data_got : public Output_da - // entry. - bool - add_local(Relobj* object, unsigned int sym_index, unsigned int got_type, -- uint64_t addend); -+ uint64_t addend); - - // Like add_local, but use the PLT offset of the local symbol if it - // has one. -@@ -2643,7 +2643,7 @@ class Output_data_got : public Output_da - - // Create a local symbol entry plus addend. - Got_entry(Relobj* object, unsigned int local_sym_index, -- bool use_plt_or_tls_offset, uint64_t addend) -+ bool use_plt_or_tls_offset, uint64_t addend) - : local_sym_index_(local_sym_index), - use_plt_or_tls_offset_(use_plt_or_tls_offset), addend_(addend) - { -@@ -4796,6 +4796,13 @@ class Output_segment - this->min_p_align_ = align; - } - -+ // Set the memory size of this segment. -+ void -+ set_size(uint64_t size) -+ { -+ this->memsz_ = size; -+ } -+ - // Set the offset of this segment based on the section. This should - // only be called for a non-PT_LOAD segment. - void -diff -rup ../binutils-2.27/gold/powerpc.cc gold/powerpc.cc ---- ../binutils-2.27/gold/powerpc.cc 2016-09-26 11:22:18.717811369 +0100 -+++ gold/powerpc.cc 2016-11-03 15:05:45.000000000 +0000 -@@ -2439,9 +2439,8 @@ class Stub_control - // the stubbed branches. - Stub_control(int32_t size, bool no_size_errors) - : state_(NO_GROUP), stub_group_size_(abs(size)), -- stub14_group_size_(abs(size) >> 10), - stubs_always_before_branch_(size < 0), -- suppress_size_errors_(no_size_errors), -+ suppress_size_errors_(no_size_errors), group_size_(0), - group_end_addr_(0), owner_(NULL), output_section_(NULL) - { - } -@@ -2479,24 +2478,28 @@ class Stub_control - - State state_; - uint32_t stub_group_size_; -- uint32_t stub14_group_size_; - bool stubs_always_before_branch_; - bool suppress_size_errors_; -+ // Current max size of group. Starts at stub_group_size_ but is -+ // reduced to stub_group_size_/1024 on seeing a section with -+ // external conditional branches. -+ uint32_t group_size_; - uint64_t group_end_addr_; -+ // owner_ and output_section_ specify the section to which stubs are -+ // attached. The stubs are placed at the end of this section. - const Output_section::Input_section* owner_; - Output_section* output_section_; - }; - - // Return true iff input section can be handled by current stub --// group. -+// group. Sections are presented to this function in reverse order, -+// so the first section is the tail of the group. - - bool - Stub_control::can_add_to_stub_group(Output_section* o, - const Output_section::Input_section* i, - bool has14) - { -- uint32_t group_size -- = has14 ? this->stub14_group_size_ : this->stub_group_size_; - bool whole_sec = o->order() == ORDER_INIT || o->order() == ORDER_FINI; - uint64_t this_size; - uint64_t start_addr = o->address(); -@@ -2510,46 +2513,90 @@ Stub_control::can_add_to_stub_group(Outp - start_addr += i->relobj()->output_section_offset(i->shndx()); - this_size = i->data_size(); - } -- uint64_t end_addr = start_addr + this_size; -- bool toobig = this_size > group_size; - -- if (toobig && !this->suppress_size_errors_) -+ uint32_t group_size = this->stub_group_size_; -+ if (has14) -+ this->group_size_ = group_size = group_size >> 10; -+ -+ if (this_size > group_size && !this->suppress_size_errors_) - gold_warning(_("%s:%s exceeds group size"), - i->relobj()->name().c_str(), - i->relobj()->section_name(i->shndx()).c_str()); - -- if (this->state_ != HAS_STUB_SECTION -- && (!whole_sec || this->output_section_ != o) -- && (this->state_ == NO_GROUP -- || this->group_end_addr_ - end_addr < group_size)) -- { -- this->owner_ = i; -- this->output_section_ = o; -- } -- -- if (this->state_ == NO_GROUP) -- { -- this->state_ = FINDING_STUB_SECTION; -- this->group_end_addr_ = end_addr; -- } -- else if (this->group_end_addr_ - start_addr < group_size) -- ; -- // Adding this section would make the group larger than GROUP_SIZE. -- else if (this->state_ == FINDING_STUB_SECTION -- && !this->stubs_always_before_branch_ -- && !toobig) -- { -- // But wait, there's more! Input sections up to GROUP_SIZE -- // bytes before the stub table can be handled by it too. -- this->state_ = HAS_STUB_SECTION; -- this->group_end_addr_ = end_addr; -+ gold_debug(DEBUG_TARGET, "maybe add%s %s:%s size=%#llx total=%#llx", -+ has14 ? " 14bit" : "", -+ i->relobj()->name().c_str(), -+ i->relobj()->section_name(i->shndx()).c_str(), -+ (long long) this_size, -+ (long long) this->group_end_addr_ - start_addr); -+ -+ uint64_t end_addr = start_addr + this_size; -+ if (this->state_ == HAS_STUB_SECTION) -+ { -+ // Can we add this section, which is before the stubs, to the -+ // group? -+ if (this->group_end_addr_ - start_addr <= this->group_size_) -+ return true; - } - else - { -- this->state_ = NO_GROUP; -- return false; -+ // Stubs are added at the end of "owner_". -+ // The current section can always be the stub owner, except when -+ // whole_sec is true and the current section isn't the last of -+ // the pasted sections. (This restriction for the whole_sec -+ // case is just to simplify the corner case mentioned in -+ // group_sections.) -+ // Note that "owner_" itself is not necessarily part of the -+ // group of sections served by these stubs! -+ if (!whole_sec || this->output_section_ != o) -+ { -+ this->owner_ = i; -+ this->output_section_ = o; -+ } -+ -+ if (this->state_ == FINDING_STUB_SECTION) -+ { -+ if (this->group_end_addr_ - start_addr <= this->group_size_) -+ return true; -+ // The group after the stubs has reached maximum size. -+ // Now see about adding sections before the stubs to the -+ // group. If the current section has a 14-bit branch and -+ // the group after the stubs exceeds group_size_ (because -+ // they didn't have 14-bit branches), don't add sections -+ // before the stubs: The size of stubs for such a large -+ // group may exceed the reach of a 14-bit branch. -+ if (!this->stubs_always_before_branch_ -+ && this_size <= this->group_size_ -+ && this->group_end_addr_ - end_addr <= this->group_size_) -+ { -+ gold_debug(DEBUG_TARGET, "adding before stubs"); -+ this->state_ = HAS_STUB_SECTION; -+ this->group_end_addr_ = end_addr; -+ return true; -+ } -+ } -+ else if (this->state_ == NO_GROUP) -+ { -+ // Only here on very first use of Stub_control -+ this->state_ = FINDING_STUB_SECTION; -+ this->group_size_ = group_size; -+ this->group_end_addr_ = end_addr; -+ return true; -+ } -+ else -+ gold_unreachable(); - } -- return true; -+ -+ gold_debug(DEBUG_TARGET, "nope, didn't fit\n"); -+ -+ // The section fails to fit in the current group. Set up a few -+ // things for the next group. owner_ and output_section_ will be -+ // set later after we've retrieved those values for the current -+ // group. -+ this->state_ = FINDING_STUB_SECTION; -+ this->group_size_ = group_size; -+ this->group_end_addr_ = end_addr; -+ return false; - } - - // Look over all the input sections, deciding where to place stubs. -@@ -2887,7 +2934,7 @@ Target_powerpc::do_rel - } - this->stub_tables_.clear(); - this->stub_group_size_ = this->stub_group_size_ / 4 * 3; -- gold_info(_("%s: stub group size is too large; retrying with %d"), -+ gold_info(_("%s: stub group size is too large; retrying with %#x"), - program_name, this->stub_group_size_); - this->group_sections(layout, task, true); - } -@@ -2982,7 +3029,13 @@ Target_powerpc::do_rel - Stub_table* stub_table - = static_cast*>( - i->relaxed_input_section()); -- off += stub_table->set_address_and_size(os, off); -+ Address stub_table_size = stub_table->set_address_and_size(os, off); -+ off += stub_table_size; -+ // After a few iterations, set current stub table size -+ // as min size threshold, so later stub tables can only -+ // grow in size. -+ if (pass >= 4) -+ stub_table->set_min_size_threshold(stub_table_size); - } - else - off += i->data_size(); -@@ -3634,8 +3687,8 @@ class Stub_table : public Output_relaxed - targ_(targ), plt_call_stubs_(), long_branch_stubs_(), - orig_data_size_(owner->current_data_size()), - plt_size_(0), last_plt_size_(0), -- branch_size_(0), last_branch_size_(0), eh_frame_added_(false), -- need_save_res_(false) -+ branch_size_(0), last_branch_size_(0), min_size_threshold_(0), -+ eh_frame_added_(false), need_save_res_(false) - { - this->set_output_section(output_section); - -@@ -3726,6 +3779,11 @@ class Stub_table : public Output_relaxed - off = align_address(off, this->stub_align()); - // Include original section size and alignment padding in size - my_size += off - start_off; -+ // Ensure new size is always larger than min size -+ // threshold. Alignment requirement is included in "my_size", so -+ // increase "my_size" does not invalidate alignment. -+ if (my_size < this->min_size_threshold_) -+ my_size = this->min_size_threshold_; - this->reset_address_and_file_offset(); - this->set_current_data_size(my_size); - this->set_address_and_file_offset(os->address() + start_off, -@@ -3751,6 +3809,9 @@ class Stub_table : public Output_relaxed - plt_size() const - { return this->plt_size_; } - -+ void set_min_size_threshold(Address min_size) -+ { this->min_size_threshold_ = min_size; } -+ - bool - size_update() - { -@@ -4015,6 +4076,13 @@ class Stub_table : public Output_relaxed - section_size_type orig_data_size_; - // size of stubs - section_size_type plt_size_, last_plt_size_, branch_size_, last_branch_size_; -+ // Some rare cases cause (PR/20529) fluctuation in stub table -+ // size, which leads to an endless relax loop. This is to be fixed -+ // by, after the first few iterations, allowing only increase of -+ // stub table size. This variable sets the minimal possible size of -+ // a stub table, it is zero for the first few iterations, then -+ // increases monotonically. -+ Address min_size_threshold_; - // Whether .eh_frame info has been created for this stub section. - bool eh_frame_added_; - // Set if this stub group needs a copy of out-of-line register -@@ -6024,7 +6092,7 @@ Target_powerpc::Scan:: - ppc_object->set_opd_discard(reloc.get_r_offset()); - break; - } -- // Fall thru -+ // Fall through. - case elfcpp::R_PPC64_UADDR64: - case elfcpp::R_POWERPC_ADDR32: - case elfcpp::R_POWERPC_UADDR32: -@@ -6131,7 +6199,7 @@ Target_powerpc::Scan:: - || gsym->is_preemptible()))) - target->make_plt_entry(symtab, layout, gsym); - } -- // Fall thru -+ // Fall through. - - case elfcpp::R_PPC64_REL64: - case elfcpp::R_POWERPC_REL32: -@@ -7521,6 +7589,7 @@ Target_powerpc::Reloca - if (size != 64) - // R_PPC_TLSGD, R_PPC_TLSLD, R_PPC_EMB_RELST_LO, R_PPC_EMB_RELST_HI - break; -+ // Fall through. - case elfcpp::R_POWERPC_TPREL16: - case elfcpp::R_POWERPC_TPREL16_LO: - case elfcpp::R_POWERPC_TPREL16_HI: -@@ -7544,6 +7613,7 @@ Target_powerpc::Reloca - // R_PPC_EMB_NADDR32, R_PPC_EMB_NADDR16, R_PPC_EMB_NADDR16_LO - // R_PPC_EMB_NADDR16_HI, R_PPC_EMB_NADDR16_HA, R_PPC_EMB_SDAI16 - break; -+ // Fall through. - case elfcpp::R_POWERPC_DTPREL16: - case elfcpp::R_POWERPC_DTPREL16_LO: - case elfcpp::R_POWERPC_DTPREL16_HI: -@@ -7572,6 +7642,7 @@ Target_powerpc::Reloca - case elfcpp::R_POWERPC_ADDR14_BRTAKEN: - case elfcpp::R_POWERPC_REL14_BRTAKEN: - branch_bit = 1 << 21; -+ // Fall through. - case elfcpp::R_POWERPC_ADDR14_BRNTAKEN: - case elfcpp::R_POWERPC_REL14_BRNTAKEN: - { -@@ -7936,6 +8007,7 @@ Target_powerpc::Reloca - maybe_dq_reloc = true; - break; - } -+ // Fall through. - case elfcpp::R_POWERPC_ADDR16: - case elfcpp::R_POWERPC_REL16: - case elfcpp::R_PPC64_TOC16: -@@ -7970,6 +8042,7 @@ Target_powerpc::Reloca - if (size == 32) - // R_PPC_EMB_MRKREF, R_PPC_EMB_RELST_LO, R_PPC_EMB_RELST_HA - goto unsupp; -+ // Fall through. - case elfcpp::R_POWERPC_ADDR16_HI: - case elfcpp::R_POWERPC_REL16_HI: - case elfcpp::R_PPC64_TOC16_HI: -@@ -7990,6 +8063,7 @@ Target_powerpc::Reloca - if (size == 32) - // R_PPC_EMB_RELSEC16, R_PPC_EMB_RELST_HI, R_PPC_EMB_BIT_FLD - goto unsupp; -+ // Fall through. - case elfcpp::R_POWERPC_ADDR16_HA: - case elfcpp::R_POWERPC_REL16_HA: - case elfcpp::R_PPC64_TOC16_HA: -@@ -8012,6 +8086,7 @@ Target_powerpc::Reloca - if (size == 32) - // R_PPC_EMB_NADDR16_LO - goto unsupp; -+ // Fall through. - case elfcpp::R_PPC64_ADDR16_HIGHER: - case elfcpp::R_PPC64_TPREL16_HIGHER: - Reloc::addr16_hi2(view, value); -@@ -8021,6 +8096,7 @@ Target_powerpc::Reloca - if (size == 32) - // R_PPC_EMB_NADDR16_HI - goto unsupp; -+ // Fall through. - case elfcpp::R_PPC64_ADDR16_HIGHERA: - case elfcpp::R_PPC64_TPREL16_HIGHERA: - Reloc::addr16_ha2(view, value); -@@ -8030,6 +8106,7 @@ Target_powerpc::Reloca - if (size == 32) - // R_PPC_EMB_NADDR16_HA - goto unsupp; -+ // Fall through. - case elfcpp::R_PPC64_ADDR16_HIGHEST: - case elfcpp::R_PPC64_TPREL16_HIGHEST: - Reloc::addr16_hi3(view, value); -@@ -8039,6 +8116,7 @@ Target_powerpc::Reloca - if (size == 32) - // R_PPC_EMB_SDAI16 - goto unsupp; -+ // Fall through. - case elfcpp::R_PPC64_ADDR16_HIGHESTA: - case elfcpp::R_PPC64_TPREL16_HIGHESTA: - Reloc::addr16_ha3(view, value); -@@ -8049,11 +8127,13 @@ Target_powerpc::Reloca - if (size == 32) - // R_PPC_EMB_NADDR32, R_PPC_EMB_NADDR16 - goto unsupp; -+ // Fall through. - case elfcpp::R_PPC64_TPREL16_DS: - case elfcpp::R_PPC64_TPREL16_LO_DS: - if (size == 32) - // R_PPC_TLSGD, R_PPC_TLSLD - break; -+ // Fall through. - case elfcpp::R_PPC64_ADDR16_DS: - case elfcpp::R_PPC64_ADDR16_LO_DS: - case elfcpp::R_PPC64_TOC16_DS: -diff -rup ../binutils-2.27/gold/resolve.cc gold/resolve.cc ---- ../binutils-2.27/gold/resolve.cc 2016-08-03 08:36:53.000000000 +0100 -+++ gold/resolve.cc 2016-11-03 15:05:47.000000000 +0000 -@@ -193,6 +193,7 @@ symbol_to_bits(elfcpp::STB binding, bool - // table. - gold_error(_("invalid STB_LOCAL symbol in external symbols")); - bits = global_flag; -+ break; - - default: - // Any target which wants to handle STB_LOOS, etc., needs to -diff -rup ../binutils-2.27/gold/script.cc gold/script.cc ---- ../binutils-2.27/gold/script.cc 2016-08-03 08:36:53.000000000 +0100 -+++ gold/script.cc 2016-11-03 15:05:47.000000000 +0000 -@@ -1755,6 +1755,7 @@ script_keyword_parsecodes[] = - { "FLOAT", FLOAT }, - { "FORCE_COMMON_ALLOCATION", FORCE_COMMON_ALLOCATION }, - { "GROUP", GROUP }, -+ { "HIDDEN", HIDDEN }, - { "HLL", HLL }, - { "INCLUDE", INCLUDE }, - { "INFO", INFO }, -diff -rup ../binutils-2.27/gold/script-sections.cc gold/script-sections.cc ---- ../binutils-2.27/gold/script-sections.cc 2016-08-03 08:36:53.000000000 +0100 -+++ gold/script-sections.cc 2016-11-03 15:05:48.000000000 +0000 -@@ -1503,7 +1503,7 @@ class Input_section_info - private: - // Input section, can be a relaxed section. - Output_section::Input_section input_section_; -- // Name of the section. -+ // Name of the section. - std::string section_name_; - // Section size. - uint64_t size_; -@@ -1545,7 +1545,7 @@ Input_section_sorter::get_init_priority( - // GCC uses the following section names for the init_priority - // attribute with numerical values 101 and 65535 inclusive. A - // lower value means a higher priority. -- // -+ // - // 1: .init_array.NNNN/.fini_array.NNNN: Where NNNN is the - // decimal numerical value of the init_priority attribute. - // The order of execution in .init_array is forward and -@@ -1666,7 +1666,7 @@ Output_section_element_input::set_sectio - while (p != input_sections->end()) - { - Relobj* relobj = p->relobj(); -- unsigned int shndx = p->shndx(); -+ unsigned int shndx = p->shndx(); - Input_section_info isi(*p); - - // Calling section_name and section_addralign is not very -@@ -1758,7 +1758,7 @@ Output_section_element_input::set_sectio - - uint64_t this_subalign = sis.addralign(); - if (!sis.is_input_section()) -- sis.output_section_data()->finalize_data_size(); -+ sis.output_section_data()->finalize_data_size(); - uint64_t data_size = sis.data_size(); - if (this_subalign < subalign) - { -@@ -2029,7 +2029,7 @@ class Output_section_definition : public - void - set_section_vma(Expression* address) - { this->address_ = address; } -- -+ - void - set_section_lma(Expression* address) - { this->load_address_ = address; } -@@ -2037,7 +2037,7 @@ class Output_section_definition : public - const std::string& - get_section_name() const - { return this->name_; } -- -+ - private: - static const char* - script_section_type_name(Script_section_type); -@@ -2402,9 +2402,9 @@ Output_section_definition::set_section_a - uint64_t old_load_address = *load_address; - - // If input section sorting is requested via --section-ordering-file or -- // linker plugins, then do it here. This is important because we want -+ // linker plugins, then do it here. This is important because we want - // any sorting specified in the linker scripts, which will be done after -- // this, to take precedence. The final order of input sections is then -+ // this, to take precedence. The final order of input sections is then - // guaranteed to be according to the linker script specification. - if (this->output_section_ != NULL - && this->output_section_->input_section_order_specified()) -@@ -2495,7 +2495,7 @@ Output_section_definition::set_section_a - // The LMA address was explicitly set to the given region. - laddr = lma_region->get_current_address()->eval(symtab, layout, - false); -- else -+ else - { - // We are not going to use the discovered lma_region, so - // make sure that we do not update it in the code below. -@@ -2987,9 +2987,9 @@ Orphan_output_section::set_section_addre - address = align_address(address, this->os_->addralign()); - - // If input section sorting is requested via --section-ordering-file or -- // linker plugins, then do it here. This is important because we want -+ // linker plugins, then do it here. This is important because we want - // any sorting specified in the linker scripts, which will be done after -- // this, to take precedence. The final order of input sections is then -+ // this, to take precedence. The final order of input sections is then - // guaranteed to be according to the linker script specification. - if (this->os_ != NULL - && this->os_->input_section_order_specified()) -@@ -3023,7 +3023,7 @@ Orphan_output_section::set_section_addre - { - uint64_t addralign = p->addralign(); - if (!p->is_input_section()) -- p->output_section_data()->finalize_data_size(); -+ p->output_section_data()->finalize_data_size(); - uint64_t size = p->data_size(); - address = align_address(address, addralign); - this->os_->add_script_input_section(*p); -@@ -3605,7 +3605,7 @@ Output_segment* - Script_sections::set_section_addresses(Symbol_table* symtab, Layout* layout) - { - gold_assert(this->saw_sections_clause_); -- -+ - // Implement ONLY_IF_RO/ONLY_IF_RW constraints. These are a pain - // for our representation. - for (Sections_elements::iterator p = this->sections_elements_->begin(); -@@ -3674,7 +3674,7 @@ Script_sections::set_section_addresses(S - Output_section* os = (*p)->get_output_section(); - - // Handle -Ttext, -Tdata and -Tbss options. We do this by looking for -- // the special sections by names and doing dot assignments. -+ // the special sections by names and doing dot assignments. - if (use_tsection_options - && os != NULL - && (os->flags() & elfcpp::SHF_ALLOC) != 0) -@@ -3703,7 +3703,7 @@ Script_sections::set_section_addresses(S - - (*p)->set_section_addresses(symtab, layout, &dot_value, &dot_alignment, - &load_address); -- } -+ } - - if (this->phdrs_elements_ != NULL) - { -@@ -3890,7 +3890,7 @@ Script_sections::create_segments(Layout* - layout->get_allocated_sections(§ions); - - // Sort the sections by address. -- std::stable_sort(sections.begin(), sections.end(), -+ std::stable_sort(sections.begin(), sections.end(), - Sort_output_sections(this->sections_elements_)); - - this->create_note_and_tls_segments(layout, §ions); -@@ -4217,7 +4217,7 @@ Script_sections::attach_sections_using_p - // Output sections in the script which do not list segments are - // attached to the same set of segments as the immediately preceding - // output section. -- -+ - String_list* phdr_names = NULL; - bool load_segments_only = false; - for (Sections_elements::const_iterator p = this->sections_elements_->begin(); -@@ -4262,7 +4262,7 @@ Script_sections::attach_sections_using_p - // filtering. - if (old_phdr_names != phdr_names) - load_segments_only = false; -- -+ - // If this is an orphan section--one that was not explicitly - // mentioned in the linker script--then it should not inherit - // any segment type other than PT_LOAD. Otherwise, e.g., the -@@ -4459,6 +4459,7 @@ Script_sections::release_segments() - ++p) - (*p)->release_segment(); - } -+ this->segments_created_ = false; - } - - // Print the SECTIONS clause to F for debugging. -diff -rup ../binutils-2.27/gold/sparc.cc gold/sparc.cc ---- ../binutils-2.27/gold/sparc.cc 2016-08-03 08:36:53.000000000 +0100 -+++ gold/sparc.cc 2016-11-03 15:05:48.000000000 +0000 -@@ -2150,6 +2150,7 @@ Target_sparc::Scan::ch - case elfcpp::R_SPARC_RELATIVE: - case elfcpp::R_SPARC_IRELATIVE: - case elfcpp::R_SPARC_COPY: -+ case elfcpp::R_SPARC_32: - case elfcpp::R_SPARC_64: - case elfcpp::R_SPARC_GLOB_DAT: - case elfcpp::R_SPARC_JMP_SLOT: -@@ -2304,7 +2305,7 @@ Target_sparc::Scan::lo - reloc.get_r_addend(), is_ifunc); - break; - } -- /* Fall through. */ -+ // Fall through. - - case elfcpp::R_SPARC_HIX22: - case elfcpp::R_SPARC_LOX10: -@@ -2814,6 +2815,7 @@ Target_sparc::Scan::gl - // and code transform the GOT load into an addition. - break; - } -+ // Fall through. - case elfcpp::R_SPARC_GOT10: - case elfcpp::R_SPARC_GOT13: - case elfcpp::R_SPARC_GOT22: -@@ -3353,6 +3355,7 @@ Target_sparc::Relocate - gdop_valid = true; - break; - } -+ // Fall through. - case elfcpp::R_SPARC_GOT10: - case elfcpp::R_SPARC_GOT13: - case elfcpp::R_SPARC_GOT22: -@@ -3468,6 +3471,13 @@ Target_sparc::Relocate - Reloc::lo10(view, object, psymval, addend); - break; - -+ case elfcpp::R_SPARC_GOTDATA_OP_LOX10: -+ if (gdop_valid) -+ { -+ Reloc::gdop_lox10(view, got_offset); -+ break; -+ } -+ // Fall through. - case elfcpp::R_SPARC_GOT10: - Reloc::lo10(view, got_offset, addend); - break; -@@ -3486,13 +3496,6 @@ Target_sparc::Relocate - } - break; - -- case elfcpp::R_SPARC_GOTDATA_OP_LOX10: -- if (gdop_valid) -- { -- Reloc::gdop_lox10(view, got_offset); -- break; -- } -- /* Fall through. */ - case elfcpp::R_SPARC_GOT13: - Reloc::rela32_13(view, got_offset, addend); - break; -@@ -3503,7 +3506,7 @@ Target_sparc::Relocate - Reloc::gdop_hix22(view, got_offset); - break; - } -- /* Fall through. */ -+ // Fall through. - case elfcpp::R_SPARC_GOT22: - Reloc::hi22(view, got_offset, addend); - break; -diff -rup ../binutils-2.27/gold/symtab.cc gold/symtab.cc ---- ../binutils-2.27/gold/symtab.cc 2016-08-03 08:36:53.000000000 +0100 -+++ gold/symtab.cc 2016-11-03 15:05:49.000000000 +0000 -@@ -882,6 +882,7 @@ Symbol_table::define_default_version(Siz - ; - else if (pdef->second->is_from_dynobj() - && sym->is_from_dynobj() -+ && pdef->second->is_defined() - && pdef->second->object() != sym->object()) - ; - else -@@ -1325,6 +1326,9 @@ Symbol_table::add_from_relobj( - res = this->add_from_object(relobj, name, name_key, ver, ver_key, - is_default_version, *psym, st_shndx, - is_ordinary, orig_st_shndx); -+ -+ if (res == NULL) -+ continue; - - if (is_forced_local) - this->force_local(res); -@@ -1406,6 +1410,9 @@ Symbol_table::add_from_pluginobj( - is_default_version, *sym, st_shndx, - is_ordinary, st_shndx); - -+ if (res == NULL) -+ return NULL; -+ - if (is_forced_local) - this->force_local(res); - -@@ -1602,6 +1609,9 @@ Symbol_table::add_from_dynobj( - } - } - -+ if (res == NULL) -+ continue; -+ - // Note that it is possible that RES was overridden by an - // earlier object, in which case it can't be aliased here. - if (st_shndx != elfcpp::SHN_UNDEF -@@ -1640,7 +1650,6 @@ Symbol_table::add_from_incrobj( - - Stringpool::Key ver_key = 0; - bool is_default_version = false; -- bool is_forced_local = false; - - Stringpool::Key name_key; - name = this->namepool_.add(name, true, &name_key); -@@ -1650,9 +1659,6 @@ Symbol_table::add_from_incrobj( - is_default_version, *sym, st_shndx, - is_ordinary, st_shndx); - -- if (is_forced_local) -- this->force_local(res); -- - return res; - } - -diff -rup ../binutils-2.27/gold/tilegx.cc gold/tilegx.cc ---- ../binutils-2.27/gold/tilegx.cc 2016-08-03 08:36:53.000000000 +0100 -+++ gold/tilegx.cc 2016-11-03 15:05:50.000000000 +0000 -@@ -4428,6 +4428,7 @@ Target_tilegx::Relocat - psymval = &symval; - always_apply_relocation = true; - addend = 0; -+ // Fall through. - - // when under PIC mode, these relocations are deferred to rtld - case elfcpp::R_TILEGX_IMM16_X0_HW0: -@@ -4618,6 +4619,7 @@ Target_tilegx::Relocat - got_type = GOT_TYPE_TLS_OFFSET; - have_got_offset = true; - } -+ // Fall through. - do_update_value: - if (have_got_offset) { - if (gsym != NULL) { -@@ -4647,10 +4649,8 @@ Target_tilegx::Relocat - } // else if (opt_t == tls::TLSOPT_TO_LE) - // both GD/IE are turned into LE, which - // is absolute relocation. -- // -- // | go through -- // | -- // V -+ // Fall through. -+ - // LE - // - // tp -diff -rup ../binutils-2.27/gold/x86_64.cc gold/x86_64.cc ---- ../binutils-2.27/gold/x86_64.cc 2016-08-03 08:36:53.000000000 +0100 -+++ gold/x86_64.cc 2016-11-03 15:05:52.000000000 +0000 -@@ -2361,7 +2361,7 @@ Target_x86_64::Scan::check_non_pic - && !gsym->is_undefined() - && !gsym->is_preemptible())) - return; -- /* Fall through. */ -+ // Fall through. - case elfcpp::R_X86_64_32: - // R_X86_64_32 is OK for x32. - if (size == 32 && r_type == elfcpp::R_X86_64_32) -@@ -3505,6 +3505,7 @@ Target_x86_64::Relocate::relocate( - if (this->skip_call_tls_get_addr_) - { - if ((r_type != elfcpp::R_X86_64_PLT32 -+ && r_type != elfcpp::R_X86_64_GOTPCREL - && r_type != elfcpp::R_X86_64_GOTPCRELX - && r_type != elfcpp::R_X86_64_PLT32_BND - && r_type != elfcpp::R_X86_64_PC32_BND -@@ -3514,6 +3515,7 @@ Target_x86_64::Relocate::relocate( - { - gold_error_at_location(relinfo, relnum, rela.get_r_offset(), - _("missing expected TLS relocation")); -+ this->skip_call_tls_get_addr_ = false; - } - else - { -diff -rup ../binutils-2.27/gold/yyscript.y gold/yyscript.y ---- ../binutils-2.27/gold/yyscript.y 2016-08-03 08:36:53.000000000 +0100 -+++ gold/yyscript.y 2016-11-03 15:05:59.000000000 +0000 -@@ -137,6 +137,7 @@ - %token FORCE_COMMON_ALLOCATION - %token GLOBAL /* global */ - %token GROUP -+%token HIDDEN - %token HLL - %token INCLUDE - %token INHIBIT_COMMON_ALLOCATION -@@ -864,6 +865,8 @@ assignment: - Expression_ptr e = script_exp_binary_bitwise_or(s, $3); - script_set_symbol(closure, $1.value, $1.length, e, 0, 0); - } -+ | HIDDEN '(' string '=' parse_exp ')' -+ { script_set_symbol(closure, $3.value, $3.length, $5, 0, 1); } - | PROVIDE '(' string '=' parse_exp ')' - { script_set_symbol(closure, $3.value, $3.length, $5, 1, 0); } - | PROVIDE_HIDDEN '(' string '=' parse_exp ')' diff --git a/binutils-2.28-libiberty-bugfixes.patch b/binutils-2.28-libiberty-bugfixes.patch new file mode 100644 index 0000000..2b8723b --- /dev/null +++ b/binutils-2.28-libiberty-bugfixes.patch @@ -0,0 +1,104 @@ +diff -rup binutils-2.28/libiberty/configure /work/sources/binutils/current/libiberty/configure +--- binutils-2.28/libiberty/configure 2017-03-02 11:41:42.254309307 +0000 ++++ /work/sources/binutils/current/libiberty/configure 2017-01-04 16:01:24.944939339 +0000 +@@ -5097,7 +5097,7 @@ case "${host}" in + # If we are using a compiler supporting mdynamic-no-pic + # and the option has been tested as safe to add, then cancel + # it here, since the code generated is incompatible with shared +- # libs. ++ # libs. + *-mdynamic-no-pic*) PICFLAG='-fno-common -mno-dynamic-no-pic' ;; + *) PICFLAG=-fno-common ;; + esac +diff -rup binutils-2.28/libiberty/cp-demangle.c /work/sources/binutils/current/libiberty/cp-demangle.c +--- binutils-2.28/libiberty/cp-demangle.c 2017-03-02 08:28:19.000000000 +0000 ++++ /work/sources/binutils/current/libiberty/cp-demangle.c 2017-03-01 14:37:20.557586479 +0000 +@@ -2595,7 +2594,11 @@ cplus_demangle_type (struct d_info *di) + /* auto */ + ret = d_make_name (di, "auto", 4); + break; +- ++ case 'c': ++ /* decltype(auto) */ ++ ret = d_make_name (di, "decltype(auto)", 14); ++ break; ++ + case 'f': + /* 32-bit decimal floating point */ + ret = d_make_builtin_type (di, &cplus_demangle_builtin_types[26]); +diff -rup binutils-2.28/libiberty/Makefile.in /work/sources/binutils/current/libiberty/Makefile.in +--- binutils-2.28/libiberty/Makefile.in 2016-12-23 08:40:18.000000000 +0000 ++++ /work/sources/binutils/current/libiberty/Makefile.in 2017-01-04 16:01:24.943939351 +0000 +@@ -1,9 +1,7 @@ + # Makefile for the libiberty library. + # Originally written by K. Richard Pixley . + # +-# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, +-# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, +-# 2012, 2014, 2015 Free Software Foundation ++# Copyright (C) 1990-2017 Free Software Foundation, Inc. + # + # This file is part of the libiberty library. + # Libiberty is free software; you can redistribute it and/or +@@ -484,7 +482,8 @@ configure_deps = $(srcdir)/aclocal.m4 \ + $(srcdir)/../config/acx.m4 \ + $(srcdir)/../config/no-executables.m4 \ + $(srcdir)/../config/override.m4 \ +- $(srcdir)/../config/warnings.m4 \ ++ $(srcdir)/../config/picflag.m4 \ ++ $(srcdir)/../config/warnings.m4 + + $(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac $(configure_deps) + cd $(srcdir) && $(AUTOCONF) +diff -rup binutils-2.28/libiberty/strndup.c /work/sources/binutils/current/libiberty/strndup.c +--- binutils-2.28/libiberty/strndup.c 2013-11-04 15:33:40.000000000 +0000 ++++ /work/sources/binutils/current/libiberty/strndup.c 2017-01-04 16:01:24.950939263 +0000 +@@ -33,7 +33,7 @@ memory was available. The result is alw + #include "ansidecl.h" + #include + +-extern size_t strlen (const char*); ++extern size_t strnlen (const char *s, size_t maxlen); + extern PTR malloc (size_t); + extern PTR memcpy (PTR, const PTR, size_t); + +@@ -41,10 +41,7 @@ char * + strndup (const char *s, size_t n) + { + char *result; +- size_t len = strlen (s); +- +- if (n < len) +- len = n; ++ size_t len = strnlen (s, n); + + result = (char *) malloc (len + 1); + if (!result) +diff -rup binutils-2.28/libiberty/testsuite/demangle-expected /work/sources/binutils/current/libiberty/testsuite/demangle-expected +--- binutils-2.28/libiberty/testsuite/demangle-expected 2017-03-02 08:28:19.000000000 +0000 ++++ /work/sources/binutils/current/libiberty/testsuite/demangle-expected 2017-03-01 14:37:55.295138174 +0000 +@@ -4200,6 +4200,9 @@ decltype (new auto({parm#1})) f(int + _Z1fIiERDaRKT_S1_ + auto& f(int const&, int) + --format=gnu-v3 ++_Z1gIiEDcRKT_S0_ ++decltype(auto) g(int const&, int) ++--format=gnu-v3 + _Z1gILi1EEvR1AIXT_EER1BIXscbT_EE + void g<1>(A<1>&, B(1)>&) + --format=gnu-v3 +diff -rup binutils-2.28/libiberty/xstrndup.c /work/sources/binutils/current/libiberty/xstrndup.c +--- binutils-2.28/libiberty/xstrndup.c 2013-11-04 15:33:40.000000000 +0000 ++++ /work/sources/binutils/current/libiberty/xstrndup.c 2017-01-04 16:01:24.951939251 +0000 +@@ -48,10 +48,7 @@ char * + xstrndup (const char *s, size_t n) + { + char *result; +- size_t len = strlen (s); +- +- if (n < len) +- len = n; ++ size_t len = strnlen (s, n); + + result = XNEWVEC (char, len + 1); + diff --git a/binutils-2.28-ppc-dynamic-relocs.patch b/binutils-2.28-ppc-dynamic-relocs.patch new file mode 100644 index 0000000..2017dae --- /dev/null +++ b/binutils-2.28-ppc-dynamic-relocs.patch @@ -0,0 +1,15 @@ +--- binutils.orig/bfd/elf64-ppc.c 2017-03-08 15:44:25.132804697 +0000 ++++ binutils-2.28/bfd/elf64-ppc.c 2017-03-08 15:44:54.596440794 +0000 +@@ -14798,8 +14798,10 @@ ppc64_elf_relocate_section (bfd *output_ + break; + + if (bfd_link_pic (info) +- ? ((h != NULL && pc_dynrelocs (h)) +- || must_be_dyn_reloc (info, r_type)) ++ ? ((h == NULL ++ || h->dyn_relocs != NULL) ++ && ((h != NULL && pc_dynrelocs (h)) ++ || must_be_dyn_reloc (info, r_type))) + : (h != NULL + ? h->dyn_relocs != NULL + : ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC)) diff --git a/binutils-gnu-build-notes.patch b/binutils-gnu-build-notes.patch new file mode 100644 index 0000000..4772f0a --- /dev/null +++ b/binutils-gnu-build-notes.patch @@ -0,0 +1,1350 @@ +diff -rup binutils.orig/binutils/doc/binutils.texi binutils-2.28/binutils/doc/binutils.texi +--- binutils.orig/binutils/doc/binutils.texi 2017-03-03 10:36:54.749752520 +0000 ++++ binutils-2.28/binutils/doc/binutils.texi 2017-03-03 10:55:09.843757253 +0000 +@@ -1140,6 +1140,7 @@ objcopy [@option{-F} @var{bfdname}|@opti + [@option{--compress-debug-sections}] + [@option{--decompress-debug-sections}] + [@option{--elf-stt-common=@var{val}}] ++ [@option{--merge-notes}] + [@option{-v}|@option{--verbose}] + [@option{-V}|@option{--version}] + [@option{--help}] [@option{--info}] +@@ -1956,6 +1957,10 @@ converted to the @code{STT_COMMON} or @c + @code{STT_COMMON}. @option{--elf-stt-common=no} converts common symbol + type to @code{STT_OBJECT}. + ++@item --merge-notes ++For ELF files, attempt to reduce the size of any SHT_NOTE type ++sections by removing duplicate notes. ++ + @item -V + @itemx --version + Show the version number of @command{objcopy}. +diff -rup binutils.orig/binutils/NEWS binutils-2.28/binutils/NEWS +--- binutils.orig/binutils/NEWS 2017-03-03 10:36:54.777751983 +0000 ++++ binutils-2.28/binutils/NEWS 2017-03-03 10:49:43.114021660 +0000 +@@ -1,5 +1,8 @@ + -*- text -*- + ++* Add --merge-notes options to objcopy to reduce the size of notes in ++ a binary file by merging and deleting redundant notes. ++ + Changes in 2.28: + + * Add support for locating separate debug info files using the build-id +diff -rup binutils.orig/binutils/objcopy.c binutils-2.28/binutils/objcopy.c +--- binutils.orig/binutils/objcopy.c 2017-03-03 10:36:54.780751925 +0000 ++++ binutils-2.28/binutils/objcopy.c 2017-03-03 10:54:00.510086591 +0000 +@@ -30,6 +30,7 @@ + #include "elf-bfd.h" + #include "coff/internal.h" + #include "libcoff.h" ++#include "safe-ctype.h" + + /* FIXME: See bfd/peXXigen.c for why we include an architecture specific + header in generic PE code. */ +@@ -96,6 +97,10 @@ static bfd_boolean preserve_dates; /* Pr + static int deterministic = -1; /* Enable deterministic archives. */ + static int status = 0; /* Exit status. */ + ++static bfd_boolean merge_notes = FALSE; /* Merge note sections. */ ++static bfd_byte * merged_notes = NULL; /* Contents on note section undergoing a merge. */ ++static bfd_size_type merged_size = 0; /* New, smaller size of the merged note section. */ ++ + enum strip_action + { + STRIP_UNDEF, +@@ -315,6 +320,7 @@ enum command_line_switch + OPTION_LOCALIZE_HIDDEN, + OPTION_LOCALIZE_SYMBOLS, + OPTION_LONG_SECTION_NAMES, ++ OPTION_MERGE_NOTES, + OPTION_NO_CHANGE_WARNINGS, + OPTION_ONLY_KEEP_DEBUG, + OPTION_PAD_TO, +@@ -436,6 +442,7 @@ static struct option copy_options[] = + {"localize-symbol", required_argument, 0, 'L'}, + {"localize-symbols", required_argument, 0, OPTION_LOCALIZE_SYMBOLS}, + {"long-section-names", required_argument, 0, OPTION_LONG_SECTION_NAMES}, ++ {"merge-notes", no_argument, 0, 'M'}, + {"no-adjust-warnings", no_argument, 0, OPTION_NO_CHANGE_WARNINGS}, + {"no-change-warnings", no_argument, 0, OPTION_NO_CHANGE_WARNINGS}, + {"only-keep-debug", no_argument, 0, OPTION_ONLY_KEEP_DEBUG}, +@@ -634,6 +641,7 @@ copy_usage (FILE *stream, int exit_statu + --decompress-debug-sections Decompress DWARF debug sections using zlib\n\ + --elf-stt-common=[yes|no] Generate ELF common symbols with STT_COMMON\n\ + type\n\ ++ -M --merge-notes Remove redundant entries in note sections\n\ + -v --verbose List all object files modified\n\ + @ Read options from \n\ + -V --version Display this program's version number\n\ +@@ -1201,6 +1209,24 @@ is_update_section (bfd *abfd ATTRIBUTE_U + return FALSE; + } + ++static bfd_boolean ++is_merged_note_section (bfd * abfd, asection * sec) ++{ ++ if (merge_notes ++ && bfd_get_flavour (abfd) == bfd_target_elf_flavour ++ && elf_section_data (sec)->this_hdr.sh_type == SHT_NOTE ++ /* FIXME: We currently only support merging GNU_BUILD_NOTEs. ++ We should add support for more note types. */ ++ && ((elf_section_data (sec)->this_hdr.sh_flags & SHF_GNU_BUILD_NOTE) != 0 ++ /* Old versions of GAS (prior to 2.27) could not set the section ++ flags to OS-specific values, so we also accept sections with the ++ expected name. */ ++ || (strcmp (sec->name, GNU_BUILD_ATTRS_SECTION_NAME) == 0))) ++ return TRUE; ++ ++ return FALSE; ++} ++ + /* See if a non-group section is being removed. */ + + static bfd_boolean +@@ -1818,6 +1844,255 @@ copy_unknown_object (bfd *ibfd, bfd *obf + return TRUE; + } + ++/* Merge the notes on SEC, removing redundant entries. ++ Returns the new, smaller size of the section upon success. */ ++ ++static bfd_size_type ++merge_gnu_build_notes (bfd * abfd, asection * sec, bfd_size_type size, bfd_byte * contents) ++{ ++ Elf_Internal_Note * pnotes_end; ++ Elf_Internal_Note * pnotes; ++ Elf_Internal_Note * pnote; ++ bfd_size_type remain = size; ++ unsigned version_notes_seen = 0; ++ bfd_boolean duplicate_found = FALSE; ++ const char * err = NULL; ++ bfd_byte * in = contents; ++ ++ /* Make a copy of the notes. ++ Minimum size of a note is 12 bytes. */ ++ pnote = pnotes = (Elf_Internal_Note *) xmalloc ((size / 12) * sizeof (Elf_Internal_Note)); ++ while (remain >= 12) ++ { ++ pnote->namesz = (bfd_get_32 (abfd, in ) + 3) & ~3; ++ pnote->descsz = (bfd_get_32 (abfd, in + 4) + 3) & ~3; ++ pnote->type = bfd_get_32 (abfd, in + 8); ++ ++ if (pnote->type != NT_GNU_BUILD_ATTRIBUTE_OPEN ++ && pnote->type != NT_GNU_BUILD_ATTRIBUTE_FUNC) ++ { ++ err = _("corrupt GNU build attribute note: wrong note type"); ++ goto done; ++ } ++ ++ if (pnote->namesz + pnote->descsz + 12 > remain) ++ { ++ err = _("corrupt GNU build attribute note: note too big"); ++ goto done; ++ } ++ ++ if (pnote->namesz < 2) ++ { ++ err = _("corrupt GNU build attribute note: name too small"); ++ goto done; ++ } ++ ++ if (pnote->descsz != 0 ++ && pnote->descsz != 4 ++ && pnote->descsz != 8) ++ { ++ err = _("corrupt GNU build attribute note: bad description size"); ++ goto done; ++ } ++ ++ pnote->namedata = (char *)(in + 12); ++ pnote->descdata = (char *)(in + 12 + pnote->namesz); ++ ++ remain -= 12 + pnote->namesz + pnote->descsz; ++ in += 12 + pnote->namesz + pnote->descsz; ++ ++ if (pnote->namesz > 1 && pnote->namedata[1] == GNU_BUILD_ATTRIBUTE_VERSION) ++ ++ version_notes_seen; ++ pnote ++; ++ } ++ ++ pnotes_end = pnote; ++ ++ /* Check that the notes are valid. */ ++ if (remain != 0) ++ { ++ err = _("corrupt GNU build attribute notes: data at end"); ++ goto done; ++ } ++ ++ if (version_notes_seen == 0) ++ { ++ err = _("bad GNU build attribute notes: no version note"); ++ goto done; ++ } ++ ++ /* Merging is only needed if there is more than one version note... */ ++ if (version_notes_seen == 1) ++ goto done; ++ ++ /* The first note should be the first version note. */ ++ if (pnotes[0].namedata[1] != GNU_BUILD_ATTRIBUTE_VERSION) ++ { ++ err = _("bad GNU build attribute notes: first note not version note"); ++ goto done; ++ } ++ ++ if (pnotes[0].namedata[0] != GNU_BUILD_ATTRIBUTE_TYPE_STRING ++ || strcmp (pnotes[0].namedata + 2, "1") != 0) ++ { ++ err = _("bad GNU build attribute notes: version note not v1"); ++ goto done; ++ } ++ ++ /* Now merge the notes. The rules are: ++ 1. Preserve the ordering of the notes. ++ 2. Preserve any NT_GNU_BUILD_ATTRIBUTE_FUNC notes. ++ 3. Eliminate any NT_GNU_BUILD_ATTRIBUTE_OPEN notes that have the same ++ full name field as the immediately preceeding note with the same type ++ of name. ++ 4. If an NT_GNU_BUILD_ATTRIBUTE_OPEN note is going to be preserved and ++ its description field is empty then the nearest preceeding OPEN note ++ with a non-empty description field must also be preserved *OR* the ++ description field of the note must be changed to contain the starting ++ address to which it refers. */ ++ for (pnote = pnotes + 1; pnote < pnotes_end; pnote ++) ++ { ++ Elf_Internal_Note * back; ++ Elf_Internal_Note * prev_open = NULL; ++ ++ if (pnote->type == NT_GNU_BUILD_ATTRIBUTE_FUNC) ++ continue; ++ ++ /* Scan for duplicates. Clear the type field of any found - but do not ++ delete them just yet. */ ++ for (back = pnote - 1; back >= pnotes; back --) ++ { ++ if (back->descsz > 0 ++ && back->type != NT_GNU_BUILD_ATTRIBUTE_FUNC ++ && prev_open == NULL) ++ prev_open = back; ++ ++ if (back->type == pnote->type ++ && back->namedata[1] == pnote->namedata[1]) ++ { ++ if (back->namesz == pnote->namesz ++ && memcmp (back->namedata, pnote->namedata, back->namesz) == 0) ++ { ++ duplicate_found = TRUE; ++ pnote->type = 0; ++ break; ++ } ++ ++ /* If we have found an attribute match then stop searching backwards. */ ++ if (! ISPRINT (back->namedata[1]) ++ || strcmp (back->namedata + 2, pnote->namedata + 2) == 0) ++ { ++ /* Since we are keeping this note we must check to see if its ++ description refers back to an earlier OPEN note. If so ++ then we must make sure that version note is also preserved. */ ++ if (pnote->descsz == 0 ++ && prev_open != NULL ++ && prev_open->type == 0) ++ prev_open->type = NT_GNU_BUILD_ATTRIBUTE_FUNC; ++ ++ break; ++ } ++ } ++ } ++ } ++ ++ if (duplicate_found) ++ { ++ bfd_byte * new_contents; ++ bfd_byte * old; ++ bfd_byte * new; ++ bfd_size_type new_size; ++ arelent ** relpp = NULL; ++ long relsize; ++ long relcount = 0; ++ ++ relsize = bfd_get_reloc_upper_bound (abfd, sec); ++ if (relsize > 0) ++ { ++ /* If there are relocs associated with this section then we may ++ have to adjust them as well, as we remove notes. */ ++ relpp = (arelent **) xmalloc (relsize); ++ relcount = bfd_canonicalize_reloc (abfd, sec, relpp, isympp); ++ if (relcount < 0) ++ /* Do not bother complaining here - copy_relocations_in_section ++ will do that for us. */ ++ relcount = 0; ++ } ++ ++ /* Eliminate the duplicates. */ ++ new = new_contents = xmalloc (size); ++ for (pnote = pnotes, old = contents; ++ pnote < pnotes_end; ++ pnote ++) ++ { ++ bfd_size_type note_size = 12 + pnote->namesz + pnote->descsz; ++ ++ if (pnote->type == 0) ++ { ++ if (relcount > 0) ++ { ++ arelent ** rel; ++ ++ /* If there is a reloc at the current offset, delete it. ++ Adjust the location of any relocs above the current ++ location downwards by the size of the note being deleted. ++ FIXME: We could optimize this loop by retaining a pointer to ++ the last reloc below the current note. */ ++ for (rel = relpp; rel < relpp + relcount; rel ++) ++ { ++ if ((* rel)->howto == NULL) ++ continue; ++ if ((* rel)->address < (bfd_vma) (new - new_contents)) ++ continue; ++ if ((* rel)->address >= (bfd_vma) ((new + note_size) - new_contents)) ++ (* rel)->address -= note_size; ++ else ++ (* rel)->howto = NULL; ++ } ++ } ++ } ++ else ++ { ++ memcpy (new, old, note_size); ++ new += note_size; ++ } ++ ++ old += note_size; ++ } ++ ++ new_size = new - new_contents; ++ memcpy (contents, new_contents, new_size); ++ size = new_size; ++ free (new_contents); ++ ++ if (relcount > 0) ++ { ++ arelent ** rel; ++ ++ for (rel = relpp; rel < relpp + relcount; rel ++) ++ if ((* rel)->howto == NULL) ++ { ++ /* Delete eliminated relocs. ++ FIXME: There are better ways to do this. */ ++ memmove (rel, rel + 1, ((relcount - (rel - relpp)) - 1) * sizeof (* rel)); ++ relcount --; ++ } ++ bfd_set_reloc (abfd, sec, relpp, relcount); ++ } ++ } ++ ++ done: ++ if (err) ++ { ++ bfd_set_error (bfd_error_bad_value); ++ bfd_nonfatal_message (NULL, abfd, sec, err); ++ status = 1; ++ } ++ ++ free (pnotes); ++ return size; ++} ++ + /* Copy object file IBFD onto OBFD. + Returns TRUE upon success, FALSE otherwise. */ + +@@ -2145,6 +2420,57 @@ copy_object (bfd *ibfd, bfd *obfd, const + } + } + ++ if (merge_notes) ++ { ++ asection *osec; ++ ++ /* This palaver is necessary because we must set the output ++ section size first, before its contents are ready. */ ++ osec = bfd_get_section_by_name (ibfd, GNU_BUILD_ATTRS_SECTION_NAME); ++ if (osec && is_merged_note_section (ibfd, osec)) ++ { ++ bfd_size_type size; ++ ++ size = bfd_get_section_size (osec); ++ if (size == 0) ++ { ++ bfd_nonfatal_message (NULL, ibfd, osec, _("warning: note section is empty")); ++ merge_notes = FALSE; ++ } ++ else if (! bfd_get_full_section_contents (ibfd, osec, & merged_notes)) ++ { ++ bfd_nonfatal_message (NULL, ibfd, osec, _("warning: could not load note section")); ++ free (merged_notes); ++ merged_notes = NULL; ++ merge_notes = FALSE; ++ } ++ else ++ { ++ merged_size = merge_gnu_build_notes (ibfd, osec, size, merged_notes); ++ if (merged_size == size) ++ { ++ /* Merging achieves nothing. */ ++ free (merged_notes); ++ merged_notes = NULL; ++ merge_notes = FALSE; ++ merged_size = 0; ++ } ++ else ++ { ++ if (osec->output_section == NULL ++ || ! bfd_set_section_size (obfd, osec->output_section, merged_size)) ++ { ++ bfd_nonfatal_message (NULL, obfd, osec, _("warning: failed to set merged notes size")); ++ free (merged_notes); ++ merged_notes = NULL; ++ merge_notes = FALSE; ++ merged_size = 0; ++ } ++ } ++ } ++ } ++ } ++ + if (dump_sections != NULL) + { + struct section_add * pdump; +@@ -2454,6 +2780,24 @@ copy_object (bfd *ibfd, bfd *obfd, const + } + } + ++ if (merge_notes) ++ { ++ asection * osec = bfd_get_section_by_name (obfd, GNU_BUILD_ATTRS_SECTION_NAME); ++ if (osec && is_merged_note_section (obfd, osec)) ++ { ++ if (! bfd_set_section_contents (obfd, osec, merged_notes, 0, merged_size)) ++ { ++ bfd_nonfatal_message (NULL, obfd, osec, _("error: failed to copy merged notes into output")); ++ return FALSE; ++ } ++ } ++ else ++ bfd_nonfatal_message (NULL, obfd, osec, _("ICE: lost merged note section")); ++ free (merged_notes); ++ merged_notes = NULL; ++ merge_notes = FALSE; ++ } ++ + if (gnu_debuglink_filename != NULL) + { + if (! bfd_fill_in_gnu_debuglink_section +@@ -3179,7 +3523,7 @@ setup_section (bfd *ibfd, sec_ptr isecti + /* Return TRUE if input section ISECTION should be skipped. */ + + static bfd_boolean +-skip_section (bfd *ibfd, sec_ptr isection) ++skip_section (bfd *ibfd, sec_ptr isection, bfd_boolean skip_copy) + { + sec_ptr osection; + bfd_size_type size; +@@ -3199,6 +3543,11 @@ skip_section (bfd *ibfd, sec_ptr isectio + if (is_update_section (ibfd, isection)) + return TRUE; + ++ /* When merging a note section we skip the copying of the contents, ++ but not the copying of the relocs associated with the contents. */ ++ if (skip_copy && is_merged_note_section (ibfd, isection)) ++ return TRUE; ++ + flags = bfd_get_section_flags (ibfd, isection); + if ((flags & SEC_GROUP) != 0) + return TRUE; +@@ -3265,7 +3614,7 @@ copy_relocations_in_section (bfd *ibfd, + long relcount; + sec_ptr osection; + +- if (skip_section (ibfd, isection)) ++ if (skip_section (ibfd, isection, FALSE)) + return; + + osection = isection->output_section; +@@ -3354,7 +3703,7 @@ copy_section (bfd *ibfd, sec_ptr isectio + sec_ptr osection; + bfd_size_type size; + +- if (skip_section (ibfd, isection)) ++ if (skip_section (ibfd, isection, TRUE)) + return; + + osection = isection->output_section; +@@ -4010,7 +4359,7 @@ copy_main (int argc, char *argv[]) + struct stat statbuf; + const bfd_arch_info_type *input_arch = NULL; + +- while ((c = getopt_long (argc, argv, "b:B:i:I:j:K:N:s:O:d:F:L:G:R:SpgxXHhVvW:wDU", ++ while ((c = getopt_long (argc, argv, "b:B:i:I:j:K:MN:s:O:d:F:L:G:R:SpgxXHhVvW:wDU", + copy_options, (int *) 0)) != EOF) + { + switch (c) +@@ -4104,6 +4453,10 @@ copy_main (int argc, char *argv[]) + add_specific_symbol (optarg, keep_specific_htab); + break; + ++ case 'M': ++ merge_notes = TRUE; ++ break; ++ + case 'N': + add_specific_symbol (optarg, strip_specific_htab); + break; +diff -rup binutils.orig/binutils/readelf.c binutils-2.28/binutils/readelf.c +--- binutils.orig/binutils/readelf.c 2017-03-03 10:36:54.907749491 +0000 ++++ binutils-2.28/binutils/readelf.c 2017-03-03 10:49:10.247651809 +0000 +@@ -15557,6 +15557,10 @@ get_note_type (unsigned e_type) + return _("NT_VERSION (version)"); + case NT_ARCH: + return _("NT_ARCH (architecture)"); ++ case NT_GNU_BUILD_ATTRIBUTE_OPEN: ++ return _("NT_GNU_BUILD_ATTRIBUTE_OPEN"); ++ case NT_GNU_BUILD_ATTRIBUTE_FUNC: ++ return _("NT_GNU_BUILD_ATTRIBUTE_FUNC"); + default: + break; + } +@@ -15665,6 +15669,12 @@ get_gnu_elf_note_type (unsigned e_type) + return _("NT_GNU_BUILD_ID (unique build ID bitstring)"); + case NT_GNU_GOLD_VERSION: + return _("NT_GNU_GOLD_VERSION (gold version)"); ++ case NT_GNU_PROPERTY_TYPE_0: ++ return _("NT_GNU_PROPERTY_TYPE_0"); ++ case NT_GNU_BUILD_ATTRIBUTE_OPEN: ++ return _("NT_GNU_BUILD_ATTRIBUTE_OPEN"); ++ case NT_GNU_BUILD_ATTRIBUTE_FUNC: ++ return _("NT_GNU_BUILD_ATTRIBUTE_FUNC"); + default: + { + static char buff[64]; +@@ -15675,6 +15685,122 @@ get_gnu_elf_note_type (unsigned e_type) + } + } + ++static void ++decode_x86_isa (unsigned long bitmask) ++{ ++ while (bitmask) ++ { ++ unsigned long bit = bitmask & (- bitmask); ++ ++ bitmask &= ~ bit; ++ switch (bit) ++ { ++ case GNU_PROPERTY_X86_ISA_1_486: printf ("i486"); break; ++ case GNU_PROPERTY_X86_ISA_1_586: printf ("586"); break; ++ case GNU_PROPERTY_X86_ISA_1_686: printf ("686"); break; ++ case GNU_PROPERTY_X86_ISA_1_SSE: printf ("SSE"); break; ++ case GNU_PROPERTY_X86_ISA_1_SSE2: printf ("SSE2"); break; ++ case GNU_PROPERTY_X86_ISA_1_SSE3: printf ("SSE3"); break; ++ case GNU_PROPERTY_X86_ISA_1_SSSE3: printf ("SSSE3"); break; ++ case GNU_PROPERTY_X86_ISA_1_SSE4_1: printf ("SSE4_1"); break; ++ case GNU_PROPERTY_X86_ISA_1_SSE4_2: printf ("SSE4_2"); break; ++ case GNU_PROPERTY_X86_ISA_1_AVX: printf ("AVX"); break; ++ case GNU_PROPERTY_X86_ISA_1_AVX2: printf ("AVX2"); break; ++ case GNU_PROPERTY_X86_ISA_1_AVX512F: printf ("AVX512F"); break; ++ case GNU_PROPERTY_X86_ISA_1_AVX512CD: printf ("AVX512CD"); break; ++ case GNU_PROPERTY_X86_ISA_1_AVX512ER: printf ("AVX512ER"); break; ++ case GNU_PROPERTY_X86_ISA_1_AVX512PF: printf ("AVX512PF"); break; ++ case GNU_PROPERTY_X86_ISA_1_AVX512VL: printf ("AVX512VL"); break; ++ case GNU_PROPERTY_X86_ISA_1_AVX512DQ: printf ("AVX512DQ"); break; ++ case GNU_PROPERTY_X86_ISA_1_AVX512BW: printf ("AVX512BW"); break; ++ default: printf (_(""), bit); break; ++ } ++ if (bitmask) ++ printf (", "); ++ } ++} ++ ++static void ++print_gnu_property_note (Elf_Internal_Note * pnote) ++{ ++ unsigned char * ptr = (unsigned char *) pnote->descdata; ++ unsigned char * ptr_end = ptr + pnote->descsz; ++ unsigned int size = is_32bit_elf ? 4 : 8; ++ ++ printf (_(" Properties: ")); ++ ++ if (pnote->descsz % size) ++ { ++ printf (_("\n"), pnote->descsz); ++ return; ++ } ++ ++ while (ptr < (ptr_end - (size * 2))) ++ { ++ unsigned long j; ++ unsigned long type = byte_get (ptr, size); ++ unsigned long datasz = byte_get (ptr + size, size); ++ ++ ptr += 2 * size; ++ ++ switch (type) ++ { ++ case GNU_PROPERTY_STACK_SIZE: ++ printf (_("stack size: ")); ++ if (datasz != size || (ptr + size > ptr_end)) ++ printf (_(" "), datasz); ++ else ++ printf ("%#lx", (unsigned long) byte_get (ptr, size)); ++ break; ++ ++ case GNU_PROPERTY_NO_COPY_ON_PROTECTED: ++ printf ("no copy on protected "); ++ if (datasz) ++ printf (_(" "), datasz); ++ break; ++ ++ case GNU_PROPERTY_X86_ISA_1_USED: ++ printf ("x86 ISA used: "); ++ if (datasz != size || (ptr + size > ptr_end)) ++ printf (_(" "), datasz); ++ else ++ decode_x86_isa (byte_get (ptr, size)); ++ break; ++ ++ case GNU_PROPERTY_X86_ISA_1_NEEDED: ++ printf ("x86 ISA needed: "); ++ if (datasz != size || (ptr + size > ptr_end)) ++ printf (_(" "), datasz); ++ else ++ decode_x86_isa (byte_get (ptr, size)); ++ break; ++ ++ default: ++ printf (_(" ptr_end) ++ { ++ printf (_("corrupt datasz: %#lx>\n"), datasz); ++ break; ++ } ++ for (j = 0; j < datasz; ++j) ++ printf ("%02x ", ptr[j] & 0xff); ++ printf (">"); ++ break; ++ } ++ ++ ptr += ((datasz + (size - 1)) & ~ (size - 1)); ++ if (ptr < (ptr_end - (size * 2))) ++ { ++ if (do_wide) ++ printf (", "); ++ else ++ printf ("\n\t"); ++ } ++ } ++ ++ printf ("\n"); ++} ++ + static int + print_gnu_note (Elf_Internal_Note *pnote) + { +@@ -15775,6 +15901,10 @@ print_gnu_note (Elf_Internal_Note *pnote + } + break; + ++ case NT_GNU_PROPERTY_TYPE_0: ++ print_gnu_property_note (pnote); ++ break; ++ + default: + /* Handle unrecognised types. An error message should have already been + created by get_gnu_elf_note_type(), so all that we need to do is to +@@ -16164,15 +16294,300 @@ print_ia64_vms_note (Elf_Internal_Note * + return 1; + } + ++static bfd_boolean ++print_gnu_build_attribute_description (Elf_Internal_Note * pnote, ++ FILE * file, ++ Elf_Internal_Shdr * section ATTRIBUTE_UNUSED) ++{ ++ static unsigned long global_offset = 0; ++ unsigned long i; ++ unsigned long strtab_size = 0; ++ char * strtab = NULL; ++ Elf_Internal_Sym * symtab = NULL; ++ unsigned long nsyms = 0; ++ Elf_Internal_Shdr * symsec = NULL; ++ unsigned int desc_size = is_32bit_elf ? 4 : 8; ++ ++ if (pnote->descsz == 0) ++ { ++ printf (_(" Applies from offset %#lx\n"), global_offset); ++ return TRUE; ++ } ++ ++ if (pnote->descsz != desc_size) ++ { ++ error (_(" \n"), pnote->descsz); ++ printf (_(" ")); ++ return FALSE; ++ } ++ ++ /* Load the symbols. */ ++ for (symsec = section_headers; ++ symsec < section_headers + elf_header.e_shnum; ++ symsec ++) ++ { ++ if (symsec->sh_type == SHT_SYMTAB) ++ { ++ symtab = GET_ELF_SYMBOLS (file, symsec, & nsyms); ++ ++ if (symsec->sh_link < elf_header.e_shnum) ++ { ++ Elf_Internal_Shdr * strtab_sec = section_headers + symsec->sh_link; ++ ++ strtab = (char *) get_data (NULL, file, strtab_sec->sh_offset, ++ 1, strtab_sec->sh_size, ++ _("string table")); ++ strtab_size = strtab != NULL ? strtab_sec->sh_size : 0; ++ } ++ } ++ } ++ ++ printf (_(" Applies from offset")); ++ ++ for (i = 0; i < pnote->descsz; i += desc_size) ++ { ++ Elf_Internal_Sym * saved_sym = NULL; ++ Elf_Internal_Sym * sym; ++ unsigned long offset; ++ ++ offset = byte_get ((unsigned char *) pnote->descdata + i, desc_size); ++ ++ if (i + desc_size == pnote->descsz) ++ printf (_(" %#lx"), offset); ++ else ++ printf (_(" %#lx, "), offset); ++ ++ if (pnote->type == NT_GNU_BUILD_ATTRIBUTE_OPEN) ++ global_offset = offset; ++ ++ if (symtab == NULL || strtab == NULL) ++ continue; ++ ++ /* Find a symbol whose value matches offset. */ ++ for (sym = symtab; sym < symtab + nsyms; sym ++) ++ if (sym->st_value == offset) ++ { ++ if (sym->st_name < strtab_size) ++ { ++ if (strtab[sym->st_name] == 0) ++ continue; ++ ++ if (pnote->type == NT_GNU_BUILD_ATTRIBUTE_OPEN) ++ { ++ /* For OPEN attributes we prefer GLOBAL symbols, if there ++ is one that matches. But keep a record of a matching ++ LOCAL symbol, just in case that is all that we can find. */ ++ if (ELF_ST_BIND (sym->st_info) == STB_LOCAL) ++ { ++ saved_sym = sym; ++ continue; ++ } ++ printf (_(" (file: %s)"), strtab + sym->st_name); ++ } ++ else if (ELF_ST_TYPE (sym->st_info) != STT_FUNC) ++ continue; ++ else ++ printf (_(" (function: %s)"), strtab + sym->st_name); ++ break; ++ } ++ } ++ ++ if (sym == symtab + nsyms) ++ { ++ if (saved_sym) ++ printf (_(" (file: %s)"), strtab + saved_sym->st_name); ++ else ++ printf (_(" ()")); ++ } ++ } ++ ++ printf ("\n"); ++ return TRUE; ++} ++ ++static bfd_boolean ++print_gnu_build_attribute_name (Elf_Internal_Note * pnote) ++{ ++ char name_type; ++ char name_attribute; ++ char * expected_types; ++ const char * name = pnote->namedata; ++ const char * text; ++ int left; ++ ++ if (name == NULL || pnote->namesz < 2) ++ { ++ error (_("corrupt name field in GNU build attribute note: size = %ld\n"), pnote->namesz); ++ print_symbol (-20, _(" ")); ++ return FALSE; ++ } ++ ++ switch ((name_type = * name)) ++ { ++ case GNU_BUILD_ATTRIBUTE_TYPE_NUMERIC: ++ case GNU_BUILD_ATTRIBUTE_TYPE_STRING: ++ case GNU_BUILD_ATTRIBUTE_TYPE_BOOL_TRUE: ++ case GNU_BUILD_ATTRIBUTE_TYPE_BOOL_FALSE: ++ printf ("%c", * name); ++ break; ++ default: ++ error (_("unrecognised attribute type in name field: %d\n"), name_type); ++ print_symbol (-20, _("")); ++ return FALSE; ++ } ++ ++ left = 19; ++ ++ name; ++ text = NULL; ++ ++ switch ((name_attribute = * name)) ++ { ++ case GNU_BUILD_ATTRIBUTE_VERSION: ++ text = _(""); ++ expected_types = "$"; ++ ++ name; ++ break; ++ case GNU_BUILD_ATTRIBUTE_STACK_PROT: ++ text = _(""); ++ expected_types = "!+"; ++ ++ name; ++ break; ++ case GNU_BUILD_ATTRIBUTE_RELRO: ++ text = _(""); ++ expected_types = "!+"; ++ ++ name; ++ break; ++ case GNU_BUILD_ATTRIBUTE_STACK_SIZE: ++ text = _(""); ++ expected_types = "*"; ++ ++ name; ++ break; ++ case GNU_BUILD_ATTRIBUTE_TOOL: ++ text = _(""); ++ expected_types = "$"; ++ ++ name; ++ break; ++ case GNU_BUILD_ATTRIBUTE_ABI: ++ text = _(""); ++ expected_types = "$*"; ++ ++ name; ++ break; ++ case GNU_BUILD_ATTRIBUTE_PIC: ++ text = _(""); ++ expected_types = "*"; ++ ++ name; ++ break; ++ ++ default: ++ if (ISPRINT (* name)) ++ { ++ int len = strnlen (name, pnote->namesz - (name - pnote->namedata)) + 1; ++ ++ if (len > left && ! do_wide) ++ len = left; ++ printf ("%.*s ", len, name); ++ left -= len; ++ name += len + 1; ++ } ++ else ++ { ++ error (_("unexpected character in name field\n")); ++ print_symbol (- left, _("")); ++ return 0; ++ } ++ expected_types = "*$!+"; ++ break; ++ } ++ ++ if (text) ++ { ++ printf ("%s", text); ++ left -= strlen (text); ++ } ++ ++ if (strchr (expected_types, name_type) == NULL) ++ warn (_("attribute does not have the expected type\n")); ++ ++ if ((unsigned long)(name - pnote->namedata) > pnote->namesz) ++ { ++ error (_("corrupt name field: namesz: %lu but parsing gets to %ld\n"), ++ (unsigned long) pnote->namesz, ++ (long) (name - pnote->namedata)); ++ return FALSE; ++ } ++ ++ if (left < 1 && ! do_wide) ++ return TRUE; ++ ++ switch (name_type) ++ { ++ case GNU_BUILD_ATTRIBUTE_TYPE_NUMERIC: ++ { ++ unsigned int bytes = pnote->namesz - (name - pnote->namedata); ++ unsigned long val = 0; ++ unsigned int shift = 0; ++ ++ while (bytes --) ++ { ++ val |= ((* name ++) << shift); ++ shift += 8; ++ } ++ ++ if (name_attribute == GNU_BUILD_ATTRIBUTE_PIC) ++ { ++ char * pic_type = NULL; ++ ++ switch (val) ++ { ++ case 0: pic_type = "static"; break; ++ case 1: pic_type = "pic"; break; ++ case 2: pic_type = "PIC"; break; ++ case 3: pic_type = "pie"; break; ++ case 4: pic_type = "PIE"; break; ++ } ++ ++ if (pic_type != NULL) ++ { ++ if (do_wide) ++ left -= printf ("%s", pic_type); ++ else ++ left -= printf ("%-.*s", left, pic_type); ++ break; ++ } ++ } ++ ++ if (do_wide) ++ left -= printf ("0x%lx", val); ++ else ++ left -= printf ("0x%-.*lx", left, val); ++ } ++ break; ++ case GNU_BUILD_ATTRIBUTE_TYPE_STRING: ++ left -= print_symbol (- left, name); ++ break; ++ case GNU_BUILD_ATTRIBUTE_TYPE_BOOL_TRUE: ++ left -= print_symbol (- left, "true"); ++ break; ++ case GNU_BUILD_ATTRIBUTE_TYPE_BOOL_FALSE: ++ left -= print_symbol (- left, "false"); ++ break; ++ } ++ ++ if (do_wide && left > 0) ++ printf ("%-*s", left, " "); ++ ++ return TRUE; ++} ++ + /* Note that by the ELF standard, the name field is already null byte + terminated, and namesz includes the terminating null byte. + I.E. the value of namesz for the name "FSF" is 4. + + If the value of namesz is zero, there is no name present. */ + static int +-process_note (Elf_Internal_Note * pnote, +- FILE * file ATTRIBUTE_UNUSED, +- Elf_Internal_Shdr * section ATTRIBUTE_UNUSED) ++process_note (Elf_Internal_Note * pnote, ++ FILE * file, ++ Elf_Internal_Shdr * section) + { + const char * name = pnote->namesz ? pnote->namedata : "(NONE)"; + const char * nt; +@@ -16218,8 +16633,17 @@ process_note (Elf_Internal_Note * pnote, + nt = get_note_type (pnote->type); + + printf (" "); +- print_symbol (-20, name); +- printf (" 0x%08lx\t%s\n", pnote->descsz, nt); ++ ++ if (pnote->type == NT_GNU_BUILD_ATTRIBUTE_OPEN ++ || pnote->type == NT_GNU_BUILD_ATTRIBUTE_FUNC) ++ print_gnu_build_attribute_name (pnote); ++ else ++ print_symbol (-20, name); ++ ++ if (do_wide) ++ printf (" 0x%08lx\t%s\t", pnote->descsz, nt); ++ else ++ printf (" 0x%08lx\t%s\n", pnote->descsz, nt); + + if (const_strneq (pnote->namedata, "IPF/VMS")) + return print_ia64_vms_note (pnote); +@@ -16229,17 +16653,22 @@ process_note (Elf_Internal_Note * pnote, + return print_stapsdt_note (pnote); + else if (const_strneq (pnote->namedata, "CORE")) + return print_core_note (pnote); ++ else if (pnote->type == NT_GNU_BUILD_ATTRIBUTE_OPEN ++ || pnote->type == NT_GNU_BUILD_ATTRIBUTE_FUNC) ++ return print_gnu_build_attribute_description (pnote, file, section); + +- else if (pnote->descsz) ++ if (pnote->descsz) + { + unsigned long i; + + printf (_(" description data: ")); + for (i = 0; i < pnote->descsz; i++) + printf ("%02x ", pnote->descdata[i]); +- printf ("\n"); + } + ++ if (do_wide) ++ printf ("\n"); ++ + return 1; + } + +Only in binutils-2.28/binutils/testsuite/binutils-all: note-2-32.d +Only in binutils-2.28/binutils/testsuite/binutils-all: note-2-32.s +Only in binutils-2.28/binutils/testsuite/binutils-all: note-2-64.d +Only in binutils-2.28/binutils/testsuite/binutils-all: note-2-64.s +diff -rup binutils.orig/binutils/testsuite/binutils-all/objcopy.exp binutils-2.28/binutils/testsuite/binutils-all/objcopy.exp +--- binutils.orig/binutils/testsuite/binutils-all/objcopy.exp 2017-03-03 10:36:54.973748226 +0000 ++++ binutils-2.28/binutils/testsuite/binutils-all/objcopy.exp 2017-03-03 10:56:08.251637396 +0000 +@@ -1053,6 +1053,11 @@ if [is_elf_format] { + run_dump_test "group-6" + run_dump_test "copy-1" + run_dump_test "note-1" ++ if [is_elf64 tmpdir/bintest.o] { ++ run_dump_test "note-2-64" ++ } else { ++ run_dump_test "note-2-32" ++ } + } + + run_dump_test "copy-2" +diff -rup binutils.orig/include/elf/common.h binutils-2.28/include/elf/common.h +--- binutils.orig/include/elf/common.h 2017-03-03 10:36:57.673696476 +0000 ++++ binutils-2.28/include/elf/common.h 2017-03-03 10:38:21.515089483 +0000 +@@ -538,6 +538,7 @@ + + /* #define SHF_MASKOS 0x0F000000 *//* OS-specific semantics */ + #define SHF_MASKOS 0x0FF00000 /* New value, Oct 4, 1999 Draft */ ++#define SHF_GNU_BUILD_NOTE (1 << 20) /* Section contains GNU BUILD ATTRIBUTE notes. */ + #define SHF_MASKPROC 0xF0000000 /* Processor-specific semantics */ + + /* This used to be implemented as a processor specific section flag. +@@ -669,6 +670,51 @@ + #define NT_GNU_HWCAP 2 /* Used by ld.so and kernel vDSO. */ + #define NT_GNU_BUILD_ID 3 /* Generated by ld --build-id. */ + #define NT_GNU_GOLD_VERSION 4 /* Generated by gold. */ ++#define NT_GNU_PROPERTY_TYPE_0 5 /* Generated by gcc. */ ++ ++#define NT_GNU_BUILD_ATTRIBUTE_OPEN 0x100 ++#define NT_GNU_BUILD_ATTRIBUTE_FUNC 0x101 ++ ++#define GNU_BUILD_ATTRIBUTE_TYPE_NUMERIC '*' ++#define GNU_BUILD_ATTRIBUTE_TYPE_STRING '$' ++#define GNU_BUILD_ATTRIBUTE_TYPE_BOOL_TRUE '+' ++#define GNU_BUILD_ATTRIBUTE_TYPE_BOOL_FALSE '!' ++ ++#define GNU_BUILD_ATTRIBUTE_VERSION 1 ++#define GNU_BUILD_ATTRIBUTE_STACK_PROT 2 ++#define GNU_BUILD_ATTRIBUTE_RELRO 3 ++#define GNU_BUILD_ATTRIBUTE_STACK_SIZE 4 ++#define GNU_BUILD_ATTRIBUTE_TOOL 5 ++#define GNU_BUILD_ATTRIBUTE_ABI 6 ++#define GNU_BUILD_ATTRIBUTE_PIC 7 ++ ++#define NOTE_GNU_PROPERTY_SECTION_NAME ".note.gnu.property" ++#define GNU_BUILD_ATTRS_SECTION_NAME ".gnu.build.attributes" ++ ++/* Values used in GNU .note.gnu.property notes (NT_GNU_PROPERTY_TYPE_0). */ ++#define GNU_PROPERTY_STACK_SIZE 1 ++#define GNU_PROPERTY_NO_COPY_ON_PROTECTED 2 ++#define GNU_PROPERTY_X86_ISA_1_USED 0xc0000000 ++#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0000001 ++ ++#define GNU_PROPERTY_X86_ISA_1_486 (1U << 0) ++#define GNU_PROPERTY_X86_ISA_1_586 (1U << 1) ++#define GNU_PROPERTY_X86_ISA_1_686 (1U << 2) ++#define GNU_PROPERTY_X86_ISA_1_SSE (1U << 3) ++#define GNU_PROPERTY_X86_ISA_1_SSE2 (1U << 4) ++#define GNU_PROPERTY_X86_ISA_1_SSE3 (1U << 5) ++#define GNU_PROPERTY_X86_ISA_1_SSSE3 (1U << 6) ++#define GNU_PROPERTY_X86_ISA_1_SSE4_1 (1U << 7) ++#define GNU_PROPERTY_X86_ISA_1_SSE4_2 (1U << 8) ++#define GNU_PROPERTY_X86_ISA_1_AVX (1U << 9) ++#define GNU_PROPERTY_X86_ISA_1_AVX2 (1U << 10) ++#define GNU_PROPERTY_X86_ISA_1_AVX512F (1U << 11) ++#define GNU_PROPERTY_X86_ISA_1_AVX512CD (1U << 12) ++#define GNU_PROPERTY_X86_ISA_1_AVX512ER (1U << 13) ++#define GNU_PROPERTY_X86_ISA_1_AVX512PF (1U << 14) ++#define GNU_PROPERTY_X86_ISA_1_AVX512VL (1U << 15) ++#define GNU_PROPERTY_X86_ISA_1_AVX512DQ (1U << 16) ++#define GNU_PROPERTY_X86_ISA_1_AVX512BW (1U << 17) + + /* Values used in GNU .note.ABI-tag notes (NT_GNU_ABI_TAG). */ + #define GNU_ABI_TAG_LINUX 0 +--- /dev/null 2017-03-03 08:02:17.248891465 +0000 ++++ binutils-2.28/binutils/testsuite/binutils-all/note-2-32.s 2017-03-03 10:56:46.811898078 +0000 +@@ -0,0 +1,93 @@ ++ .text ++ .org 0x100 ++ .global note1.s ++note1.s: ++ .word 0 ++ ++ .pushsection .gnu.build.attributes, "0x100000", %note ++ .balign 4 ++ .dc.l 4 ++ .dc.l 4 ++ .dc.l 0x100 ++ .asciz "$1" ++ .dc.l note1.s ++ ++ .dc.l 12 ++ .dc.l 0 ++ .dc.l 0x100 ++ .asciz "$gcc 7.0.1" ++ ++ .dc.l 2 ++ .dc.l 0 ++ .dc.l 0x100 ++ .dc.b 0x2b, 0x2 ++ .dc.b 0, 0 ++ ++ .dc.l 3 ++ .dc.l 0 ++ .dc.l 0x100 ++ .dc.b 0x2a, 0x7, 0 ++ .dc.b 0 ++ ++ .dc.l 3 ++ .dc.l 0 ++ .dc.l 0x100 ++ .dc.b 0x2a, 0x6, 0 ++ .dc.b 0 ++ .popsection ++ ++ ++ .global note2.s ++note2.s: ++ .word 0x100 ++ ++ .pushsection .gnu.build.attributes, "0x100000", %note ++ .dc.l 4 ++ .dc.l 4 ++ .dc.l 0x100 ++ .asciz "$1" ++ .dc.l note2.s ++ ++ .dc.l 12 ++ .dc.l 0 ++ .dc.l 0x100 ++ .asciz "$gcc 7.0.1" ++ ++ .dc.l 2 ++ .dc.l 0 ++ .dc.l 0x100 ++ .dc.b 0x21, 0x2 ++ .dc.b 0, 0 ++ ++ .dc.l 3 ++ .dc.l 0 ++ .dc.l 0x101 ++ .dc.b 0x2a, 0x7, 1 ++ .dc.b 0 ++ ++ .dc.l 3 ++ .dc.l 0 ++ .dc.l 0x100 ++ .dc.b 0x2a, 0x6, 0 ++ .dc.b 0 ++ .popsection ++ ++ .global note3.s ++note3.s: ++ .word 0x100 ++ ++ .pushsection .gnu.build.attributes, "0x100000", %note ++ .dc.l 4 ++ .dc.l 4 ++ .dc.l 0x100 ++ .asciz "$1" ++ .dc.l note3.s ++ ++ .dc.l 12 ++ .dc.l 0 ++ .dc.l 0x100 ++ .asciz "$gcc 7.0.1" ++ ++ .popsection ++ ++ +--- /dev/null 2017-03-03 08:02:17.248891465 +0000 ++++ binutils-2.28/binutils/testsuite/binutils-all/note-2-32.d 2017-03-03 10:56:46.811898078 +0000 +@@ -0,0 +1,17 @@ ++#PROG: objcopy ++#readelf: --notes --wide ++#objcopy: --merge-notes ++#name: merge notes section (32-bits) ++#source: note-2-32.s ++ ++#... ++ Owner Data size Description ++[ ]+\$1[ ]+0x00000004[ ]+NT_GNU_BUILD_ATTRIBUTE_OPEN[ ]+Applies from offset 0x100 \(file: note1.s\) ++[ ]+\$gcc 7.0.1[ ]+0x00000000[ ]+NT_GNU_BUILD_ATTRIBUTE_OPEN[ ]+Applies from offset 0x100 ++[ ]+\+true[ ]+0x00000000[ ]+NT_GNU_BUILD_ATTRIBUTE_OPEN[ ]+Applies from offset 0x100 ++[ ]+\*static[ ]+0x00000000[ ]+NT_GNU_BUILD_ATTRIBUTE_OPEN[ ]+Applies from offset 0x100 ++[ ]+\*0x0[ ]+0x00000000[ ]+NT_GNU_BUILD_ATTRIBUTE_OPEN[ ]+Applies from offset 0x100 ++[ ]+\$1[ ]+0x00000004[ ]+NT_GNU_BUILD_ATTRIBUTE_OPEN[ ]+Applies from offset 0x10. \(file: note2.s\) ++[ ]+!false[ ]+0x00000000[ ]+NT_GNU_BUILD_ATTRIBUTE_OPEN[ ]+Applies from offset 0x10. ++[ ]+\*pic[ ]+0x00000000[ ]+NT_GNU_BUILD_ATTRIBUTE_FUNC[ ]+Applies from offset 0x10. ++#... +--- /dev/null 2017-03-03 08:02:17.248891465 +0000 ++++ binutils-2.28/binutils/testsuite/binutils-all/note-2-64.d 2017-03-03 10:56:52.235794085 +0000 +@@ -0,0 +1,17 @@ ++#PROG: objcopy ++#readelf: --notes --wide ++#objcopy: --merge-notes ++#name: merge notes section (64-bits) ++#source: note-2-64.s ++ ++#... ++ Owner Data size Description ++[ ]+\$1[ ]+0x00000008[ ]+NT_GNU_BUILD_ATTRIBUTE_OPEN[ ]+Applies from offset 0x100 \(file: note1.s\) ++[ ]+\$gcc 7.0.1[ ]+0x00000000[ ]+NT_GNU_BUILD_ATTRIBUTE_OPEN[ ]+Applies from offset 0x100 ++[ ]+\+true[ ]+0x00000000[ ]+NT_GNU_BUILD_ATTRIBUTE_OPEN[ ]+Applies from offset 0x100 ++[ ]+\*static[ ]+0x00000000[ ]+NT_GNU_BUILD_ATTRIBUTE_OPEN[ ]+Applies from offset 0x100 ++[ ]+\*0x0[ ]+0x00000000[ ]+NT_GNU_BUILD_ATTRIBUTE_OPEN[ ]+Applies from offset 0x100 ++[ ]+\$1[ ]+0x00000008[ ]+NT_GNU_BUILD_ATTRIBUTE_OPEN[ ]+Applies from offset 0x10. \(file: note2.s\) ++[ ]+!false[ ]+0x00000000[ ]+NT_GNU_BUILD_ATTRIBUTE_OPEN[ ]+Applies from offset 0x10. ++[ ]+\*pic[ ]+0x00000000[ ]+NT_GNU_BUILD_ATTRIBUTE_FUNC[ ]+Applies from offset 0x10. ++#... +--- /dev/null 2017-03-03 08:02:17.248891465 +0000 ++++ binutils-2.28/binutils/testsuite/binutils-all/note-2-64.s 2017-03-03 10:56:52.235794085 +0000 +@@ -0,0 +1,94 @@ ++ .text ++ .org 0x100 ++ .global note1.s ++note1.s: ++ .word 0 ++ ++ .pushsection .gnu.build.attributes, "0x100000", %note ++ .balign 4 ++ .dc.l 4 ++ .dc.l 8 ++ .dc.l 0x100 ++ .asciz "$1" ++ .8byte note1.s ++ ++ .dc.l 12 ++ .dc.l 0 ++ .dc.l 0x100 ++ .asciz "$gcc 7.0.1" ++ ++ .dc.l 2 ++ .dc.l 0 ++ .dc.l 0x100 ++ .dc.b 0x2b, 0x2 ++ .dc.b 0, 0 ++ ++ .dc.l 3 ++ .dc.l 0 ++ .dc.l 0x100 ++ .dc.b 0x2a, 0x7, 0 ++ .dc.b 0 ++ ++ .dc.l 3 ++ .dc.l 0 ++ .dc.l 0x100 ++ .dc.b 0x2a, 0x6, 0 ++ .dc.b 0 ++ .popsection ++ ++ ++ .global note2.s ++note2.s: ++ .word 0x100 ++ ++ .pushsection .gnu.build.attributes, "0x100000", %note ++ .dc.l 4 ++ .dc.l 8 ++ .dc.l 0x100 ++ .asciz "$1" ++ .8byte note2.s ++ ++ .dc.l 12 ++ .dc.l 0 ++ .dc.l 0x100 ++ .asciz "$gcc 7.0.1" ++ ++ .dc.l 2 ++ .dc.l 0 ++ .dc.l 0x100 ++ .dc.b 0x21, 0x2 ++ .dc.b 0, 0 ++ ++ .dc.l 3 ++ .dc.l 0 ++ .dc.l 0x101 ++ .dc.b 0x2a, 0x7, 1 ++ .dc.b 0 ++ ++ .dc.l 3 ++ .dc.l 0 ++ .dc.l 0x100 ++ .dc.b 0x2a, 0x6, 0 ++ .dc.b 0 ++ .popsection ++ ++ ++ .global note3.s ++note3.s: ++ .word 0x100 ++ ++ .pushsection .gnu.build.attributes, "0x100000", %note ++ .dc.l 4 ++ .dc.l 8 ++ .dc.l 0x100 ++ .asciz "$1" ++ .8byte note3.s ++ ++ .dc.l 12 ++ .dc.l 0 ++ .dc.l 0x100 ++ .asciz "$gcc 7.0.1" ++ ++ .popsection ++ ++ +--- binutils.orig/binutils/readelf.c 2017-03-06 16:55:38.741902216 +0000 ++++ binutils-2.28/binutils/readelf.c 2017-03-06 16:55:50.435746360 +0000 +@@ -16529,7 +16529,9 @@ print_gnu_build_attribute_name (Elf_Inte + + while (bytes --) + { +- val |= ((* name ++) << shift); ++ unsigned long byte = (* name ++) & 0xff; ++ ++ val |= byte << shift; + shift += 8; + } + +@@ -16798,7 +16800,7 @@ process_notes_at (FILE * fi + break; + } + +- strncpy (temp, inote.namedata, inote.namesz); ++ memcpy (temp, inote.namedata, inote.namesz); + temp[inote.namesz] = 0; + + /* warn (_("'%s' NOTE name not properly null terminated\n"), temp); */ diff --git a/cross-binutils.spec b/cross-binutils.spec index a37fe1b..f0afbbd 100644 --- a/cross-binutils.spec +++ b/cross-binutils.spec @@ -56,8 +56,8 @@ Summary: A GNU collection of cross-compilation binary utilities Name: %{cross}-binutils -Version: 2.27 -Release: 6%{?dist} +Version: 2.28 +Release: 1%{?dist} License: GPLv3+ Group: Development/Tools URL: http://sources.redhat.com/binutils @@ -74,41 +74,38 @@ Source2: binutils-2.19.50.0.1-output-format.sed Patch01: binutils-2.20.51.0.2-libtool-lib64.patch Patch02: binutils-2.20.51.0.10-ppc64-pie.patch -# Patch03: binutils-2.20.51.0.2-ia64-lib64.patch -Patch04: binutils-2.25-version.patch -Patch05: binutils-2.25-set-long-long.patch -Patch06: binutils-2.20.51.0.10-sec-merge-emit.patch +Patch03: binutils-2.25-version.patch +Patch04: binutils-2.25-set-long-long.patch +Patch05: binutils-2.20.51.0.10-sec-merge-emit.patch # Enable -zrelro by default: BZ #621983 -Patch07: binutils-2.22.52.0.1-relro-on-by-default.patch +Patch06: binutils-2.22.52.0.1-relro-on-by-default.patch # Local patch - export demangle.h with the binutils-devel rpm. -Patch08: binutils-2.22.52.0.1-export-demangle.h.patch +Patch07: binutils-2.22.52.0.1-export-demangle.h.patch # Disable checks that config.h has been included before system headers. BZ #845084 -Patch09: binutils-2.22.52.0.4-no-config-h-check.patch -# Fix addr2line to use the dynamic symbol table if it could not find any ordinary symbols. -Patch10: binutils-2.23.52.0.1-addr2line-dynsymtab.patch +Patch08: binutils-2.22.52.0.4-no-config-h-check.patch # Fix detections little endian PPC shared libraries -Patch11: binutils-2.24-ldforcele.patch -Patch12: binutils-2.25.1-cleansweep.patch -Patch13: binutils-2.26-fix-compile-warnings.patch +Patch09: binutils-2.24-ldforcele.patch +Patch10: binutils-2.25.1-cleansweep.patch +Patch11: binutils-2.26-fix-compile-warnings.patch # Import H.J.Lu's Kernel LTO patch. -Patch14: binutils-2.26-lto.patch -# Fix computation of sh_info field for .dynsym sections -Patch15: binutils-2.27-local-dynsym-count.patch -# Put sections in a monotonically increasing order of file offset. -Patch16: binutils-2.27-monotonic-section-offsets.patch -# Make ARM and AArch64 ports properly support relro on by default. -Patch17: binutils-2.27-arm-aarch64-default-relro.patch +Patch12: binutils-2.26-lto.patch # Skip PR14918 linker test for ARM native targets. -Patch18: binutils-2.27-skip-rp14918-test-for-arm.patch -# Fix GOLD for ARM/AARCh64. -Patch19: binutils-2.28-gold.patch -# Improve objdump's disassembly of dynamic executables. -Patch20: binutils-2.27-objdump-improvements.patch -# Improve objdump's speed when mixing disassembly with source code -Patch21: binutils-2.27-dwarf-parse-speedup.patch -# Import upstream xtensa bug fix causing cross-gcc FTBFS -# https://sourceware.org/ml/binutils/2016-09/msg00179.html -Patch22: binutils-2.27-fix-xtensa-bug.patch +Patch13: binutils-2.27-skip-rp14918-test-for-arm.patch +# Include the filename concerned in readelf error messages. +Patch14: binutils-2.27-filename-in-error-messages.patch +# Fix a couple of buffer overflows when printing messages in translated strings. +Patch15: binutils-2.27-ld-buffer-overflow.patch +# Sync libiberty sources with FSF GCC mainline. +Patch16: binutils-2.28-libiberty-bugfixes.patch +# Add support for GNU BUILD NOTEs. +Patch17: binutils-gnu-build-notes.patch +# GAS: Emit name, comp_dir and producer strings in .debug_str. +Patch18: binutils-2.28-gas-comp_dir.patch +# Import fix for PR 21124 and 20519 +Patch19: binutils-2.28-ppc-dynamic-relocs.patch + +# NOTE!!! Don't add cross-binutils patches here as "binutils-xxx". Name them +# cross-binutils-xxx instead! %if %{build_sh64} Patch100: cross-binutils-2.25-fixup-for-sh64.patch @@ -228,34 +225,27 @@ cd %{srcdir} #%patch00 -p1 -b .latest-git~ %patch01 -p1 -b .libtool-lib64~ %patch02 -p1 -b .ppc64-pie~ -# % ifarch ia64 -# % if "%{_lib}" == "lib64" -# % patch03 -p1 -b .ia64-lib64~ -# % endif -# % endif -%patch04 -p1 -b .version~ -%patch05 -p1 -b .set-long-long~ -%patch06 -p1 -b .sec-merge-emit~ +%patch03 -p1 -b .version~ +%patch04 -p1 -b .set-long-long~ +%patch05 -p1 -b .sec-merge-emit~ %if 0%{?fedora} >= 18 || 0%{?rhel} >= 7 -%patch07 -p1 -b .relro~ +%patch06 -p1 -b .relro~ %endif -%patch08 -p1 -b .export-demangle-h~ -%patch09 -p1 -b .no-config-h-check~ -%patch10 -p1 -b .addr2line~ +%patch07 -p1 -b .export-demangle-h~ +%patch08 -p1 -b .no-config-h-check~ %ifarch ppc64le -%patch11 -p1 -b .ldforcele~ +%patch09 -p1 -b .ldforcele~ %endif -%patch12 -p0 +%patch10 -p0 +%patch11 -p1 +%patch12 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 %patch16 -p1 %patch17 -p1 %patch18 -p1 -%patch19 -p0 -%patch20 -p1 -%patch21 -p1 -%patch22 -p1 +%patch19 -p1 %if %{build_sh64} %patch100 -p1 -b .sh64-fixup~ @@ -725,8 +715,12 @@ rm -rf %{buildroot} %do_files xtensa-linux-gnu %{build_xtensa} %changelog -* Fri Feb 10 2017 Fedora Release Engineering - 2.27-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild +* Wed Mar 15 2017 David Howells - 2.28-1 +- Sync with binutils-2.28-4. + +* Mon Feb 6 2017 David Howells - 2.27-6 +- Sync with binutils-2.27-16. +- Install COPYING[*] files using the %license macro. * Wed Dec 14 2016 Merlin Mathesius - 2.27-5 - Import upstream xtensa bug fix causing cross-gcc FTBFS (BZ#1404857). diff --git a/sources b/sources index 6976a1c..59a30a1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -2869c9bf3e60ee97c74ac2a6bf4e9d68 binutils-2.27.tar.bz2 +SHA512 (binutils-2.28.tar.bz2) = ede2e4e59a800260eea8c14eafbaee94e30abadafd5c419a3370f9f62213cf027d6400a1d4970b6958bd4d220e675dcd483a708107016e7abd5c99d7392ba8fd