From 9fb71ee49fc37163697e4f34e16097928eb83d66 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 15 Feb 2016 11:11:46 +0000 Subject: [PATCH] Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only) gas * doc/as.texinfo (.section): Document that numeric values can now be used for the flags and type fields of the ELF target's .section directive. Add notes about the restrictions on setting flags and types. * config/obj-elf.c (obj_elf_change_section): Allow known sections to be given processor specific section types. Allow processor and application specific flags of a section to be set after definition. (obj_elf_parse_section_letters): Handle parsing numeric values. (obj_elf_section_type): Handle parsing numeric values. (obj_elf_section): Allow numeric type values. * config/obj-elf.h (obj_elf_change_section): Update prototype. * testsuite/gas/elf/section10.d: New test. * testsuite/gas/elf/section10.s: Source file for new test. * testsuite/gas/elf/elf.exp: Run the new test. * testsuite/gas/i386/ilp32/x86-64-unwind.d: Remove dependency upon the description of the flags produced by readelf. * testsuite/gas/tic6x/scomm-directive-4.d: Likewise. * NEWS: Mention the new feature. bfd * elf-bfd.h (struct bfd_elf_special_section): Use unsigned values for length and type fields. Use a signed value for the suffix_length field. binutils* readelf.c (get_section_type_name): Add hex prefix to offsets printed for LOPROC and LOOS values. Ensure that a result is always returned for the V850 target, even when an unrecognised processor specific value is encountered. (process_section_headers): Display key values in the order in which they appear to the user. Add the "C (compressed)" value to the list. ld * testsuite/ld-i386/pr12718.d: Remove dependency upon the description of the flags produced by readelf. * testsuite/ld-i386/pr12921.d: Likewise. * testsuite/ld-i386/tlsbin-nacl.rd: Likewise. * testsuite/ld-i386/tlsbin.rd: Likewise. * testsuite/ld-i386/tlsbindesc-nacl.rd: Likewise. * testsuite/ld-i386/tlsbindesc.rd: Likewise. * testsuite/ld-i386/tlsdesc-nacl.rd: Likewise. * testsuite/ld-i386/tlsdesc.rd: Likewise. * testsuite/ld-i386/tlsgdesc-nacl.rd: Likewise. * testsuite/ld-i386/tlsgdesc.rd: Likewise. * testsuite/ld-i386/tlsnopic-nacl.rd: Likewise. * testsuite/ld-i386/tlsnopic.rd: Likewise. * testsuite/ld-i386/tlspic-nacl.rd: Likewise. * testsuite/ld-i386/tlspic.rd: Likewise. * testsuite/ld-s390/tlsbin.rd: Likewise. * testsuite/ld-s390/tlsbin_64.rd: Likewise. * testsuite/ld-s390/tlspic.rd: Likewise. * testsuite/ld-s390/tlspic_64.rd: Likewise. * testsuite/ld-sh/tlsbin-2.d: Likewise. * testsuite/ld-sh/tlspic-2.d: Likewise. * testsuite/ld-tic6x/common.d: Likewise. * testsuite/ld-tic6x/shlib-1.rd: Likewise. * 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. * testsuite/ld-x86-64/ilp32-4-nacl.d: Likewise. * testsuite/ld-x86-64/ilp32-4.d: Likewise. * testsuite/ld-x86-64/pr12718.d: Likewise. * testsuite/ld-x86-64/pr12921.d: Likewise. * testsuite/ld-x86-64/split-by-file-nacl.rd: Likewise. * testsuite/ld-x86-64/split-by-file.rd: Likewise. * testsuite/ld-x86-64/tlsbin-nacl.rd: Likewise. * testsuite/ld-x86-64/tlsbin.rd: Likewise. * testsuite/ld-x86-64/tlsbindesc-nacl.rd: Likewise. * testsuite/ld-x86-64/tlsbindesc.rd: Likewise. * testsuite/ld-x86-64/tlsdesc-nacl.rd: Likewise. * testsuite/ld-x86-64/tlsdesc.rd: Likewise. * testsuite/ld-x86-64/tlsgdesc-nacl.rd: Likewise. * testsuite/ld-x86-64/tlsgdesc.rd: Likewise. * testsuite/ld-x86-64/tlspic-nacl.rd: Likewise. * testsuite/ld-x86-64/tlspic.rd: Likewise. * testsuite/ld-xtensa/tlsbin.rd: Likewise. * testsuite/ld-xtensa/tlspic.rd: Likewise. --- bfd/ChangeLog | 6 +++ bfd/elf-bfd.h | 6 +-- binutils/ChangeLog | 10 +++++ binutils/readelf.c | 40 ++++++++++---------- gas/ChangeLog | 22 +++++++++++ gas/NEWS | 2 + gas/config/obj-elf.c | 56 ++++++++++++++++++++++++---- gas/config/obj-elf.h | 2 +- gas/doc/as.texinfo | 25 ++++++++++++- gas/testsuite/gas/elf/elf.exp | 1 + gas/testsuite/gas/elf/section10.d | 36 ++++++++++++++++++ gas/testsuite/gas/elf/section10.s | 35 +++++++++++++++++ gas/testsuite/gas/i386/ilp32/x86-64-unwind.d | 3 -- gas/testsuite/gas/rx/mvtacgu.d | 8 ++-- gas/testsuite/gas/tic6x/scomm-directive-4.d | 4 +- ld/ChangeLog | 56 ++++++++++++++++++++++++++++ ld/testsuite/ld-i386/pr12718.d | 3 -- ld/testsuite/ld-i386/pr12921.d | 3 -- ld/testsuite/ld-i386/tlsbin-nacl.rd | 4 +- ld/testsuite/ld-i386/tlsbin.rd | 4 +- ld/testsuite/ld-i386/tlsbindesc-nacl.rd | 4 +- ld/testsuite/ld-i386/tlsbindesc.rd | 4 +- ld/testsuite/ld-i386/tlsdesc-nacl.rd | 4 +- ld/testsuite/ld-i386/tlsdesc.rd | 4 +- ld/testsuite/ld-i386/tlsgdesc-nacl.rd | 4 +- ld/testsuite/ld-i386/tlsgdesc.rd | 4 +- ld/testsuite/ld-i386/tlsnopic-nacl.rd | 4 +- ld/testsuite/ld-i386/tlsnopic.rd | 4 +- ld/testsuite/ld-i386/tlspic-nacl.rd | 4 +- ld/testsuite/ld-i386/tlspic.rd | 4 +- ld/testsuite/ld-s390/tlsbin.rd | 4 +- ld/testsuite/ld-s390/tlsbin_64.rd | 4 +- ld/testsuite/ld-s390/tlspic.rd | 4 +- ld/testsuite/ld-s390/tlspic_64.rd | 4 +- ld/testsuite/ld-sh/tlsbin-2.d | 4 +- ld/testsuite/ld-sh/tlspic-2.d | 4 +- ld/testsuite/ld-tic6x/common.d | 4 +- ld/testsuite/ld-tic6x/shlib-1.rd | 4 +- ld/testsuite/ld-tic6x/shlib-1b.rd | 4 +- ld/testsuite/ld-tic6x/shlib-1r.rd | 4 +- ld/testsuite/ld-tic6x/shlib-1rb.rd | 4 +- ld/testsuite/ld-tic6x/shlib-app-1.rd | 4 +- ld/testsuite/ld-tic6x/shlib-app-1b.rd | 4 +- ld/testsuite/ld-tic6x/shlib-app-1r.rd | 4 +- ld/testsuite/ld-tic6x/shlib-app-1rb.rd | 4 +- ld/testsuite/ld-tic6x/shlib-noindex.rd | 4 +- ld/testsuite/ld-tic6x/static-app-1.rd | 4 +- ld/testsuite/ld-tic6x/static-app-1b.rd | 4 +- ld/testsuite/ld-tic6x/static-app-1r.rd | 4 +- ld/testsuite/ld-tic6x/static-app-1rb.rd | 4 +- ld/testsuite/ld-x86-64/ilp32-4-nacl.d | 4 +- ld/testsuite/ld-x86-64/ilp32-4.d | 4 +- ld/testsuite/ld-x86-64/pr12718.d | 3 -- ld/testsuite/ld-x86-64/pr12921.d | 3 -- ld/testsuite/ld-x86-64/split-by-file-nacl.rd | 4 +- ld/testsuite/ld-x86-64/split-by-file.rd | 4 +- ld/testsuite/ld-x86-64/tlsbin-nacl.rd | 4 +- ld/testsuite/ld-x86-64/tlsbin.rd | 4 +- ld/testsuite/ld-x86-64/tlsbindesc-nacl.rd | 4 +- ld/testsuite/ld-x86-64/tlsbindesc.rd | 4 +- ld/testsuite/ld-x86-64/tlsdesc-nacl.rd | 4 +- ld/testsuite/ld-x86-64/tlsdesc.rd | 4 +- ld/testsuite/ld-x86-64/tlsgdesc-nacl.rd | 4 +- ld/testsuite/ld-x86-64/tlsgdesc.rd | 4 +- ld/testsuite/ld-x86-64/tlspic-nacl.rd | 4 +- ld/testsuite/ld-x86-64/tlspic.rd | 4 +- ld/testsuite/ld-xtensa/tlsbin.rd | 4 +- ld/testsuite/ld-xtensa/tlspic.rd | 4 +- 68 files changed, 316 insertions(+), 200 deletions(-) create mode 100644 gas/testsuite/gas/elf/section10.d create mode 100644 gas/testsuite/gas/elf/section10.s diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 017bbc1..29aac39 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2016-02-15 Nick Clifton + + * elf-bfd.h (struct bfd_elf_special_section): Use unsigned values + for length and type fields. Use a signed value for the + suffix_length field. + 2016-02-10 H.J. Lu PR ld/19601 diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index 6a04f04..ea4d59a 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -731,15 +731,15 @@ typedef enum { struct bfd_elf_special_section { const char *prefix; - int prefix_length; + unsigned int prefix_length; /* 0 means name must match PREFIX exactly. -1 means name must start with PREFIX followed by an arbitrary string. -2 means name must match PREFIX exactly or consist of PREFIX followed by a dot then anything. > 0 means name must start with the first PREFIX_LENGTH chars of PREFIX and finish with the last SUFFIX_LENGTH chars of PREFIX. */ - int suffix_length; - int type; + signed int suffix_length; + unsigned int type; bfd_vma attr; }; diff --git a/binutils/ChangeLog b/binutils/ChangeLog index c11da45..96ce7a8 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,13 @@ +2016-02-15 Nick Clifton + + * readelf.c (get_section_type_name): Add hex prefix to offsets + printed for LOPROC and LOOS values. Ensure that a result is + always returned for the V850 target, even when an unrecognised + processor specific value is encountered. + (process_section_headers): Display key values in the order in + which they appear to the user. Add the "C (compressed)" value to + the list. + 2016-02-12 H.J. Lu * doc/binutils.texi: Fix a typo. diff --git a/binutils/readelf.c b/binutils/readelf.c index b3a28a8..f33257b 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -3893,6 +3893,7 @@ static const char * get_section_type_name (unsigned int sh_type) { static char buff[32]; + const char * result; switch (sh_type) { @@ -3926,8 +3927,6 @@ get_section_type_name (unsigned int sh_type) default: if ((sh_type >= SHT_LOPROC) && (sh_type <= SHT_HIPROC)) { - const char * result; - switch (elf_header.e_machine) { case EM_MIPS: @@ -3970,12 +3969,10 @@ get_section_type_name (unsigned int sh_type) if (result != NULL) return result; - sprintf (buff, "LOPROC+%x", sh_type - SHT_LOPROC); + sprintf (buff, "LOPROC+%#x", sh_type - SHT_LOPROC); } else if ((sh_type >= SHT_LOOS) && (sh_type <= SHT_HIOS)) { - const char * result; - switch (elf_header.e_machine) { case EM_IA_64: @@ -3989,7 +3986,7 @@ get_section_type_name (unsigned int sh_type) if (result != NULL) return result; - sprintf (buff, "LOOS+%x", sh_type - SHT_LOOS); + sprintf (buff, "LOOS+%#x", sh_type - SHT_LOOS); } else if ((sh_type >= SHT_LOUSER) && (sh_type <= SHT_HIUSER)) { @@ -3998,12 +3995,16 @@ get_section_type_name (unsigned int sh_type) case EM_V800: case EM_V850: case EM_CYGNUS_V850: - return get_v850_section_type_name (sh_type); + result = get_v850_section_type_name (sh_type); default: + result = NULL; break; } - sprintf (buff, "LOUSER+%x", sh_type - SHT_LOUSER); + if (result != NULL) + return result; + + sprintf (buff, "LOUSER+%#x", sh_type - SHT_LOUSER); } else /* This message is probably going to be displayed in a 15 @@ -6003,23 +6004,20 @@ process_section_headers (FILE * file) if (!do_section_details) { + /* The ordering of the letters shown here matches the ordering of the + corresponding SHF_xxx values, and hence the order in which these + letters will be displayed to the user. */ + printf (_("Key to Flags:\n\ + W (write), A (alloc), X (execute), M (merge), S (strings), I (info),\n\ + L (link order), O (extra OS processing required), G (group), T (TLS),\n\ + C (compressed), x (unknown), o (OS specific), E (exclude),\n")); if (elf_header.e_machine == EM_X86_64 || elf_header.e_machine == EM_L1OM || elf_header.e_machine == EM_K1OM) - printf (_("Key to Flags:\n\ - W (write), A (alloc), X (execute), M (merge), S (strings), l (large)\n\ - I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)\n\ - O (extra OS processing required) o (OS specific), p (processor specific)\n")); + printf (_("l (large), ")); else if (elf_header.e_machine == EM_ARM) - printf (_("Key to Flags:\n\ - W (write), A (alloc), X (execute), M (merge), S (strings), y (noread)\n\ - I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)\n\ - O (extra OS processing required) o (OS specific), p (processor specific)\n")); - else - printf (_("Key to Flags:\n\ - W (write), A (alloc), X (execute), M (merge), S (strings)\n\ - I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)\n\ - O (extra OS processing required) o (OS specific), p (processor specific)\n")); + printf (_("y (noread), ")); + printf ("p (processor specific)\n"); } return 1; diff --git a/gas/ChangeLog b/gas/ChangeLog index c72e504..57a34ca 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,25 @@ +2016-02-15 Nick Clifton + + * doc/as.texinfo (.section): Document that numeric values can now + be used for the flags and type fields of the ELF target's .section + directive. Add notes about the restrictions on setting flags and + types. + * config/obj-elf.c (obj_elf_change_section): Allow known sections + to be given processor specific section types. Allow processor and + application specific flags of a section to be set after + definition. + (obj_elf_parse_section_letters): Handle parsing numeric values. + (obj_elf_section_type): Handle parsing numeric values. + (obj_elf_section): Allow numeric type values. + * config/obj-elf.h (obj_elf_change_section): Update prototype. + * testsuite/gas/elf/section10.d: New test. + * testsuite/gas/elf/section10.s: Source file for new test. + * testsuite/gas/elf/elf.exp: Run the new test. + * testsuite/gas/i386/ilp32/x86-64-unwind.d: Remove dependency upon + the description of the flags produced by readelf. + * testsuite/gas/tic6x/scomm-directive-4.d: Likewise. + * NEWS: Mention the new feature. + 2016-02-11 Nick Clifton PR gas/19614 diff --git a/gas/NEWS b/gas/NEWS index 87bdbd9..dd34a9f 100644 --- a/gas/NEWS +++ b/gas/NEWS @@ -1,4 +1,6 @@ -*- text -*- +* Add ability to set section flags and types via numeric values for ELF + based targets. * Add a configure option --enable-x86-relax-relocations to decide whether x86 assembler should generate relax relocations by default. Default to diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c index f4726ff..9af349c 100644 --- a/gas/config/obj-elf.c +++ b/gas/config/obj-elf.c @@ -547,7 +547,7 @@ get_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf) void obj_elf_change_section (const char *name, - int type, + unsigned int type, bfd_vma attr, int entsize, const char *group_name, @@ -621,7 +621,9 @@ obj_elf_change_section (const char *name, && ssect->type != SHT_PREINIT_ARRAY) { /* We allow to specify any type for a .note section. */ - if (ssect->type != SHT_NOTE) + if (ssect->type != SHT_NOTE + /* Processor and application defined types are allowed too. */ + && type < SHT_LOPROC) as_warn (_("setting incorrect section type for %s"), name); } @@ -633,7 +635,8 @@ obj_elf_change_section (const char *name, } } - if (old_sec == NULL && (attr & ~ssect->attr) != 0) + if (old_sec == NULL && ((attr & ~(SHF_MASKOS | SHF_MASKPROC)) + & ~ssect->attr) != 0) { /* As a GNU extension, we permit a .note section to be allocatable. If the linker sees an allocatable .note @@ -682,6 +685,7 @@ obj_elf_change_section (const char *name, override = TRUE; } } + if (!override && old_sec == NULL) attr |= ssect->attr; } @@ -745,6 +749,11 @@ obj_elf_change_section (const char *name, | SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD | SEC_THREAD_LOCAL))) as_warn (_("ignoring changed section attributes for %s"), name); + else + /* FIXME: Maybe we should consider removing a previously set + processor or application specific attribute as suspicious ? */ + elf_section_flags (sec) = attr; + if ((flags & SEC_MERGE) && old_sec->entsize != (unsigned) entsize) as_warn (_("ignoring changed section entity size for %s"), name); } @@ -806,14 +815,26 @@ obj_elf_parse_section_letters (char *str, size_t len, bfd_boolean *is_clone) } default: { - char *bad_msg = _("unrecognized .section attribute: want a,e,w,x,M,S,G,T"); + char *bad_msg = _("unrecognized .section attribute: want a,e,w,x,M,S,G,T or number"); #ifdef md_elf_section_letter bfd_vma md_attr = md_elf_section_letter (*str, &bad_msg); if (md_attr != (bfd_vma) -1) attr |= md_attr; else #endif - as_fatal ("%s", bad_msg); + if (ISDIGIT (*str)) + { + char * end; + + attr |= strtoul (str, & end, 0); + /* Update str and len, allowing for the fact that + we will execute str++ and len-- below. */ + end --; + len -= (end - str); + str = end; + } + else + as_fatal ("%s", bad_msg); } break; } @@ -847,6 +868,17 @@ obj_elf_section_type (char *str, size_t len, bfd_boolean warn) } #endif + if (ISDIGIT (*str)) + { + char * end; + int type = strtoul (str, & end, 0); + + if (warn && (size_t) (end - str) != len) + as_warn (_("extraneous characters at end of numeric section type")); + + return type; + } + if (warn) as_warn (_("unrecognized section type")); return 0; @@ -1046,9 +1078,17 @@ obj_elf_section (int push) else if (c == '@' || c == '%') { ++input_line_pointer; - c = get_symbol_name (& beg); - (void) restore_line_pointer (c); - type = obj_elf_section_type (beg, input_line_pointer - beg, TRUE); + + if (ISDIGIT (* input_line_pointer)) + { + type = strtoul (input_line_pointer, & input_line_pointer, 0); + } + else + { + c = get_symbol_name (& beg); + (void) restore_line_pointer (c); + type = obj_elf_section_type (beg, input_line_pointer - beg, TRUE); + } } else input_line_pointer = save; diff --git a/gas/config/obj-elf.h b/gas/config/obj-elf.h index f3424a5..257d877 100644 --- a/gas/config/obj-elf.h +++ b/gas/config/obj-elf.h @@ -162,7 +162,7 @@ extern void obj_elf_common (int); extern void obj_elf_data (int); extern void obj_elf_text (int); extern void obj_elf_change_section - (const char *, int, bfd_vma, int, const char *, int, int); + (const char *, unsigned int, bfd_vma, int, const char *, int, int); extern struct fix *obj_elf_vtable_inherit (int); extern struct fix *obj_elf_vtable_entry (int); extern bfd_boolean obj_elf_seen_attribute diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo index 917781b..86b09fc 100644 --- a/gas/doc/as.texinfo +++ b/gas/doc/as.texinfo @@ -6375,8 +6375,22 @@ section is a member of a section group section is used for thread-local-storage @item ? section is a member of the previously-current section's group, if any +@item @var{number} +a numeric value indicating the bits to be set in the ELF section header's flags +field. Note - if one or more of the alphabetic characters described above is +also included in the flags field, their bit values will be ORed into the +resulting value. +@item @{target specific} +some targets extend this list with their own types @end table +Note - once a section's flags have been set they cannot be changed. There are +a few exceptions to this rule however. Processor and application specific +flags can be added to an already defined section. The @code{.interp}, +@code{.strtab} and @code{.symtab} sections can have the allocate flag +(@code{a}) set after they are initially defined, and the @code{.note-GNU-stack} +section may have the executable (@code(x)) flag added. + The optional @var{type} argument may contain one of the following constants: @table @code @item @@progbits @@ -6391,14 +6405,23 @@ section contains an array of pointers to init functions section contains an array of pointers to finish functions @item @@preinit_array section contains an array of pointers to pre-init functions +@item @@@var{number} +a numeric value to be set as the ELF section header's type field. +@item @@@{target specific} +some targets extend this list with their own types @end table -Many targets only support the first three section types. +Many targets only support the first three section types. The type may be +enclosed in double quotes if necessary. Note on targets where the @code{@@} character is the start of a comment (eg ARM) then another character is used instead. For example the ARM port uses the @code{%} character. +Note - some sections, eg @code{.text} and @code{.data} are considered to be +special and have fixed types. Any attempt to declare them with a different +type will generate an error from the assembler. + If @var{flags} contains the @code{M} symbol then the @var{type} argument must be specified as well as an extra argument---@var{entsize}---like this: diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp index 1c94016..40dfd12 100644 --- a/gas/testsuite/gas/elf/elf.exp +++ b/gas/testsuite/gas/elf/elf.exp @@ -201,6 +201,7 @@ if { [is_elf_format] } then { run_dump_test "section7" run_dump_test "section8" run_dump_test "section9" + run_dump_test "section10" run_dump_test "dwarf2-1" run_dump_test "dwarf2-2" run_dump_test "dwarf2-3" diff --git a/gas/testsuite/gas/elf/section10.d b/gas/testsuite/gas/elf/section10.d new file mode 100644 index 0000000..aa5ca3c --- /dev/null +++ b/gas/testsuite/gas/elf/section10.d @@ -0,0 +1,36 @@ +#readelf: -N --wide +#name: numeric section flags and types +# The RX port annoyingly reorders the sections so that they do not match the sequence expected below. +#skip: rx-*-* + +#... +[ ]*\[.*\][ ]+.text +[ ]*PROGBITS.* +[ ]*\[.*4000006\]: ALLOC, EXEC, OS \(.*4000000\) +#... +[ ]*\[.*\][ ]+sec1 +[ ]*PROGBITS.* +[ ]*\[.*6000000\]: OS \(.*6000000\) +[ ]*\[.*\][ ]+sec2 +[ ]*PROGBITS.* +[ ]*\[0+00806\]: ALLOC, EXEC, COMPRESSED +[ ]*\[: 0x[0-9]+\], .* +#... +[ ]*\[.*\][ ]+sec3 +[ ]*PROGBITS.* +[ ]*\[.*ffff030\]: MERGE, STRINGS,.* EXCLUDE, OS \(.*ff00000\), PROC \(.*[347]0000000\), UNKNOWN \(0+0ff000\) +#... +[ ]*\[.*\][ ]+sec4 +[ ]*LOOS\+0x11[ ].* +[ ]*\[0+06\]: ALLOC, EXEC +#... +[ ]*\[.*\][ ]+sec5 +[ ]*LOUSER\+0x9[ ].* +[ ]*\[.*fff0000\]:.* EXCLUDE, OS \(.*ff00000\), PROC \(.*[347]0000000\), UNKNOWN \(.*f0000\) +[ ]*\[.*\][ ]+.data.foo +[ ]*LOUSER\+0x7f000000[ ].* +[ ]*\[0+003\]: WRITE, ALLOC +[ ]*\[.*\][ ]+sec6 +[ ]*0000162e: [ ].* +[ ]*\[.*120004\]: EXEC, OS \(.*100000\), UNKNOWN \(.*20000\) +#pass diff --git a/gas/testsuite/gas/elf/section10.s b/gas/testsuite/gas/elf/section10.s new file mode 100644 index 0000000..0576007 --- /dev/null +++ b/gas/testsuite/gas/elf/section10.s @@ -0,0 +1,35 @@ + # Test numeric values for the section's flags field. + .section sec1, "0x06000000" + .word 1 + + # Make sure that a numeric value can be mixed with alpha values. + .section sec2, "a2048x" + .word 2 + + # Make sure that specifying further arguments to .sections is still supported + .section sec3, "0xfffff000MS", %progbits, 32 + .word 3 + + # Make sure that extra flags can be set for well known sections as well. + .section .text, "0x04000006" + .word 4 + + # Test numeric values for the section's type field. + .section sec4, "ax", %0x60000011 + .word 5 + + # Test both together, with a quoted type value. + .section sec5, "0xffff0000", "0x80000009" + .word 6 + + # Test that declaring an extended version of a known special section works. + .section .data.foo, "aw", %0xff000000 + .word 7 + + # Check that .pushsection works as well. + .pushsection sec6, 2, "0x120004", %5678 + .word 8 + + .popsection + + # FIXME: We ought to check setting 64-bit flag values for 64-bit ELF targets... diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d b/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d index 4f6f155..0bac7a2 100644 --- a/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d +++ b/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d @@ -15,7 +15,4 @@ Section Headers: \[ 6\] .symtab SYMTAB 00000000 [0-9a-f]+ 000050 10 7 5 4 \[ 7\] .strtab STRTAB 00000000 [0-9a-f]+ 000001 00 0 0 1 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\), l \(large\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) #pass diff --git a/gas/testsuite/gas/rx/mvtacgu.d b/gas/testsuite/gas/rx/mvtacgu.d index 96fe2ce..07053d0 100644 --- a/gas/testsuite/gas/rx/mvtacgu.d +++ b/gas/testsuite/gas/rx/mvtacgu.d @@ -6,7 +6,7 @@ dump\.o: file format .* Disassembly of section \.text: 00000000 <\.text>: - 0: fd 17 30 mvtacgu r0, a0 - 3: fd 17 3f mvtacgu r15, a0 - 6: fd 17 b0 mvtacgu r0, a1 - 9: fd 17 bf mvtacgu r15, a1 + 0: fd 17 30 mvtacgu a0, r0 + 3: fd 17 3f mvtacgu a0, r15 + 6: fd 17 b0 mvtacgu a1, r0 + 9: fd 17 bf mvtacgu a1, r15 diff --git a/gas/testsuite/gas/tic6x/scomm-directive-4.d b/gas/testsuite/gas/tic6x/scomm-directive-4.d index 18497ec..7822e8f 100644 --- a/gas/testsuite/gas/tic6x/scomm-directive-4.d +++ b/gas/testsuite/gas/tic6x/scomm-directive-4.d @@ -16,9 +16,7 @@ Section Headers: \[ 6\] \.symtab SYMTAB 00000000 [0-9a-f]+ 0000d0 10 7 5 4 \[ 7\] \.strtab STRTAB 00000000 [0-9a-f]+ 00001d 00 0 0 1 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Symbol table '\.symtab' contains 13 entries: Num: Value Size Type Bind Vis Ndx Name diff --git a/ld/ChangeLog b/ld/ChangeLog index 34da59b..8f133de 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,59 @@ +2016-02-15 Nick Clifton + + * testsuite/ld-i386/pr12718.d: Remove dependency upon the + description of the flags produced by readelf. + * testsuite/ld-i386/pr12921.d: Likewise. + * testsuite/ld-i386/tlsbin-nacl.rd: Likewise. + * testsuite/ld-i386/tlsbin.rd: Likewise. + * testsuite/ld-i386/tlsbindesc-nacl.rd: Likewise. + * testsuite/ld-i386/tlsbindesc.rd: Likewise. + * testsuite/ld-i386/tlsdesc-nacl.rd: Likewise. + * testsuite/ld-i386/tlsdesc.rd: Likewise. + * testsuite/ld-i386/tlsgdesc-nacl.rd: Likewise. + * testsuite/ld-i386/tlsgdesc.rd: Likewise. + * testsuite/ld-i386/tlsnopic-nacl.rd: Likewise. + * testsuite/ld-i386/tlsnopic.rd: Likewise. + * testsuite/ld-i386/tlspic-nacl.rd: Likewise. + * testsuite/ld-i386/tlspic.rd: Likewise. + * testsuite/ld-s390/tlsbin.rd: Likewise. + * testsuite/ld-s390/tlsbin_64.rd: Likewise. + * testsuite/ld-s390/tlspic.rd: Likewise. + * testsuite/ld-s390/tlspic_64.rd: Likewise. + * testsuite/ld-sh/tlsbin-2.d: Likewise. + * testsuite/ld-sh/tlspic-2.d: Likewise. + * testsuite/ld-tic6x/common.d: Likewise. + * testsuite/ld-tic6x/shlib-1.rd: Likewise. + * 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. + * testsuite/ld-x86-64/ilp32-4-nacl.d: Likewise. + * testsuite/ld-x86-64/ilp32-4.d: Likewise. + * testsuite/ld-x86-64/pr12718.d: Likewise. + * testsuite/ld-x86-64/pr12921.d: Likewise. + * testsuite/ld-x86-64/split-by-file-nacl.rd: Likewise. + * testsuite/ld-x86-64/split-by-file.rd: Likewise. + * testsuite/ld-x86-64/tlsbin-nacl.rd: Likewise. + * testsuite/ld-x86-64/tlsbin.rd: Likewise. + * testsuite/ld-x86-64/tlsbindesc-nacl.rd: Likewise. + * testsuite/ld-x86-64/tlsbindesc.rd: Likewise. + * testsuite/ld-x86-64/tlsdesc-nacl.rd: Likewise. + * testsuite/ld-x86-64/tlsdesc.rd: Likewise. + * testsuite/ld-x86-64/tlsgdesc-nacl.rd: Likewise. + * testsuite/ld-x86-64/tlsgdesc.rd: Likewise. + * testsuite/ld-x86-64/tlspic-nacl.rd: Likewise. + * testsuite/ld-x86-64/tlspic.rd: Likewise. + * testsuite/ld-xtensa/tlsbin.rd: Likewise. + * testsuite/ld-xtensa/tlspic.rd: Likewise. + 2016-02-11 H.J. Lu PR ld/19615 diff --git a/ld/testsuite/ld-i386/pr12718.d b/ld/testsuite/ld-i386/pr12718.d index 6bcea85..87905c3 100644 --- a/ld/testsuite/ld-i386/pr12718.d +++ b/ld/testsuite/ld-i386/pr12718.d @@ -13,7 +13,4 @@ Section Headers: +\[ 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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) #pass diff --git a/ld/testsuite/ld-i386/pr12921.d b/ld/testsuite/ld-i386/pr12921.d index 891db8b..c72b04c 100644 --- a/ld/testsuite/ld-i386/pr12921.d +++ b/ld/testsuite/ld-i386/pr12921.d @@ -15,7 +15,4 @@ Section Headers: +\[ 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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) #pass diff --git a/ld/testsuite/ld-i386/tlsbin-nacl.rd b/ld/testsuite/ld-i386/tlsbin-nacl.rd index 8061ccc..1e1cf7c 100644 --- a/ld/testsuite/ld-i386/tlsbin-nacl.rd +++ b/ld/testsuite/ld-i386/tlsbin-nacl.rd @@ -27,9 +27,7 @@ Section Headers: +\[[ 0-9]+\] \.symtab +.* +\[[ 0-9]+\] \.strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is EXEC \(Executable file\) Entry point 0x0*21188 diff --git a/ld/testsuite/ld-i386/tlsbin.rd b/ld/testsuite/ld-i386/tlsbin.rd index 6a641dc..12b3e81 100644 --- a/ld/testsuite/ld-i386/tlsbin.rd +++ b/ld/testsuite/ld-i386/tlsbin.rd @@ -27,9 +27,7 @@ Section Headers: +\[[ 0-9]+\] \.symtab +.* +\[[ 0-9]+\] \.strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is EXEC \(Executable file\) Entry point 0x8049188 diff --git a/ld/testsuite/ld-i386/tlsbindesc-nacl.rd b/ld/testsuite/ld-i386/tlsbindesc-nacl.rd index 7d51f71..51cffc0 100644 --- a/ld/testsuite/ld-i386/tlsbindesc-nacl.rd +++ b/ld/testsuite/ld-i386/tlsbindesc-nacl.rd @@ -25,9 +25,7 @@ Section Headers: +\[[ 0-9]+\] \.symtab +.* +\[[ 0-9]+\] \.strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is EXEC \(Executable file\) Entry point 0x0*20156 diff --git a/ld/testsuite/ld-i386/tlsbindesc.rd b/ld/testsuite/ld-i386/tlsbindesc.rd index 3127de4..7f7194c 100644 --- a/ld/testsuite/ld-i386/tlsbindesc.rd +++ b/ld/testsuite/ld-i386/tlsbindesc.rd @@ -25,9 +25,7 @@ Section Headers: +\[[ 0-9]+\] \.symtab +.* +\[[ 0-9]+\] \.strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is EXEC \(Executable file\) Entry point 0x8049156 diff --git a/ld/testsuite/ld-i386/tlsdesc-nacl.rd b/ld/testsuite/ld-i386/tlsdesc-nacl.rd index c8c82f3..b28744f 100644 --- a/ld/testsuite/ld-i386/tlsdesc-nacl.rd +++ b/ld/testsuite/ld-i386/tlsdesc-nacl.rd @@ -25,9 +25,7 @@ Section Headers: +\[[ 0-9]+\] \.symtab +.* +\[[ 0-9]+\] \.strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-i386/tlsdesc.rd b/ld/testsuite/ld-i386/tlsdesc.rd index 9b00c39..68695ff 100644 --- a/ld/testsuite/ld-i386/tlsdesc.rd +++ b/ld/testsuite/ld-i386/tlsdesc.rd @@ -25,9 +25,7 @@ Section Headers: +\[[ 0-9]+\] \.symtab +.* +\[[ 0-9]+\] \.strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-i386/tlsgdesc-nacl.rd b/ld/testsuite/ld-i386/tlsgdesc-nacl.rd index 43f9a3d..ba5fa62 100644 --- a/ld/testsuite/ld-i386/tlsgdesc-nacl.rd +++ b/ld/testsuite/ld-i386/tlsgdesc-nacl.rd @@ -23,9 +23,7 @@ Section Headers: +\[[ 0-9]+\] \.symtab +.* +\[[ 0-9]+\] \.strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-i386/tlsgdesc.rd b/ld/testsuite/ld-i386/tlsgdesc.rd index 1e074c7..929ffa2 100644 --- a/ld/testsuite/ld-i386/tlsgdesc.rd +++ b/ld/testsuite/ld-i386/tlsgdesc.rd @@ -23,9 +23,7 @@ Section Headers: +\[[ 0-9]+\] \.symtab +.* +\[[ 0-9]+\] \.strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-i386/tlsnopic-nacl.rd b/ld/testsuite/ld-i386/tlsnopic-nacl.rd index d3fe642..b14164a 100644 --- a/ld/testsuite/ld-i386/tlsnopic-nacl.rd +++ b/ld/testsuite/ld-i386/tlsnopic-nacl.rd @@ -23,9 +23,7 @@ Section Headers: +\[[ 0-9]+\] \.symtab +.* +\[[ 0-9]+\] \.strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x0+ diff --git a/ld/testsuite/ld-i386/tlsnopic.rd b/ld/testsuite/ld-i386/tlsnopic.rd index 9b163c8..b754158 100644 --- a/ld/testsuite/ld-i386/tlsnopic.rd +++ b/ld/testsuite/ld-i386/tlsnopic.rd @@ -23,9 +23,7 @@ Section Headers: +\[[ 0-9]+\] \.symtab +.* +\[[ 0-9]+\] \.strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x1000 diff --git a/ld/testsuite/ld-i386/tlspic-nacl.rd b/ld/testsuite/ld-i386/tlspic-nacl.rd index 77dd9ce..b7d3e35 100644 --- a/ld/testsuite/ld-i386/tlspic-nacl.rd +++ b/ld/testsuite/ld-i386/tlspic-nacl.rd @@ -26,9 +26,7 @@ Section Headers: +\[[ 0-9]+\] \.symtab +.* +\[[ 0-9]+\] \.strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-i386/tlspic.rd b/ld/testsuite/ld-i386/tlspic.rd index e26dc70..f693760 100644 --- a/ld/testsuite/ld-i386/tlspic.rd +++ b/ld/testsuite/ld-i386/tlspic.rd @@ -26,9 +26,7 @@ Section Headers: +\[[ 0-9]+\] \.symtab +.* +\[[ 0-9]+\] \.strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-s390/tlsbin.rd b/ld/testsuite/ld-s390/tlsbin.rd index b9efe8a..32c883a 100644 --- a/ld/testsuite/ld-s390/tlsbin.rd +++ b/ld/testsuite/ld-s390/tlsbin.rd @@ -26,9 +26,7 @@ Section Headers: +\[[ 0-9]+\] .symtab .* +\[[ 0-9]+\] .strtab .* Key to Flags: -.* -.* -.* +#... Elf file type is EXEC \(Executable file\) Entry point 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-s390/tlsbin_64.rd b/ld/testsuite/ld-s390/tlsbin_64.rd index f461f51..38d5789 100644 --- a/ld/testsuite/ld-s390/tlsbin_64.rd +++ b/ld/testsuite/ld-s390/tlsbin_64.rd @@ -26,9 +26,7 @@ Section Headers: +\[[ 0-9]+\] .symtab .* +\[[ 0-9]+\] .strtab .* Key to Flags: -.* -.* -.* +#... Elf file type is EXEC \(Executable file\) Entry point 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-s390/tlspic.rd b/ld/testsuite/ld-s390/tlspic.rd index 37ebe47..07d29c2 100644 --- a/ld/testsuite/ld-s390/tlspic.rd +++ b/ld/testsuite/ld-s390/tlspic.rd @@ -25,9 +25,7 @@ Section Headers: +\[[ 0-9]+\] .symtab .* +\[[ 0-9]+\] .strtab .* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-s390/tlspic_64.rd b/ld/testsuite/ld-s390/tlspic_64.rd index 9b4105c..6197f8a 100644 --- a/ld/testsuite/ld-s390/tlspic_64.rd +++ b/ld/testsuite/ld-s390/tlspic_64.rd @@ -25,9 +25,7 @@ Section Headers: +\[[ 0-9]+\] .symtab .* +\[[ 0-9]+\] .strtab .* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-sh/tlsbin-2.d b/ld/testsuite/ld-sh/tlsbin-2.d index cd30833..167270f 100644 --- a/ld/testsuite/ld-sh/tlsbin-2.d +++ b/ld/testsuite/ld-sh/tlsbin-2.d @@ -27,9 +27,7 @@ Section Headers: +\[[0-9a-f]+\] \.symtab .* +\[[0-9a-f]+\] \.strtab .* Key to Flags: -.* -.* -.* +#... Elf file type is EXEC \(Executable file\) Entry point 0x402000 diff --git a/ld/testsuite/ld-sh/tlspic-2.d b/ld/testsuite/ld-sh/tlspic-2.d index d8e355f..0b47878 100644 --- a/ld/testsuite/ld-sh/tlspic-2.d +++ b/ld/testsuite/ld-sh/tlspic-2.d @@ -26,9 +26,7 @@ Section Headers: +\[[0-9a-f]+\] \.symtab .* +\[[0-9a-f]+\] \.strtab .* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-tic6x/common.d b/ld/testsuite/ld-tic6x/common.d index 83f533d..30521fc 100644 --- a/ld/testsuite/ld-tic6x/common.d +++ b/ld/testsuite/ld-tic6x/common.d @@ -15,9 +15,7 @@ Section Headers: \[ 4\] \.symtab SYMTAB 00000000 [0-9a-f]+ 000050 10 5 3 4 \[ 5\] \.strtab STRTAB 00000000 [0-9a-f]+ 000005 00 0 0 1 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Symbol table '\.symtab' contains 5 entries: Num: Value Size Type Bind Vis Ndx Name diff --git a/ld/testsuite/ld-tic6x/shlib-1.rd b/ld/testsuite/ld-tic6x/shlib-1.rd index b4a3c30..4b6e026 100644 --- a/ld/testsuite/ld-tic6x/shlib-1.rd +++ b/ld/testsuite/ld-tic6x/shlib-1.rd @@ -20,9 +20,7 @@ Section Headers: \[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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Elf file type is DYN \(Shared object file\) Entry point 0x10000080 diff --git a/ld/testsuite/ld-tic6x/shlib-1b.rd b/ld/testsuite/ld-tic6x/shlib-1b.rd index b4a3c30..4b6e026 100644 --- a/ld/testsuite/ld-tic6x/shlib-1b.rd +++ b/ld/testsuite/ld-tic6x/shlib-1b.rd @@ -20,9 +20,7 @@ Section Headers: \[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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Elf file type is DYN \(Shared object file\) Entry point 0x10000080 diff --git a/ld/testsuite/ld-tic6x/shlib-1r.rd b/ld/testsuite/ld-tic6x/shlib-1r.rd index b4a3c30..4b6e026 100644 --- a/ld/testsuite/ld-tic6x/shlib-1r.rd +++ b/ld/testsuite/ld-tic6x/shlib-1r.rd @@ -20,9 +20,7 @@ Section Headers: \[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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Elf file type is DYN \(Shared object file\) Entry point 0x10000080 diff --git a/ld/testsuite/ld-tic6x/shlib-1rb.rd b/ld/testsuite/ld-tic6x/shlib-1rb.rd index b4a3c30..4b6e026 100644 --- a/ld/testsuite/ld-tic6x/shlib-1rb.rd +++ b/ld/testsuite/ld-tic6x/shlib-1rb.rd @@ -20,9 +20,7 @@ Section Headers: \[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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Elf file type is DYN \(Shared object file\) Entry point 0x10000080 diff --git a/ld/testsuite/ld-tic6x/shlib-app-1.rd b/ld/testsuite/ld-tic6x/shlib-app-1.rd index 23fb91c..35cc92f 100644 --- a/ld/testsuite/ld-tic6x/shlib-app-1.rd +++ b/ld/testsuite/ld-tic6x/shlib-app-1.rd @@ -21,9 +21,7 @@ Section Headers: \[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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Elf file type is EXEC \(Executable file\) Entry point 0x10000060 diff --git a/ld/testsuite/ld-tic6x/shlib-app-1b.rd b/ld/testsuite/ld-tic6x/shlib-app-1b.rd index 7509e0a..a16c4fa 100644 --- a/ld/testsuite/ld-tic6x/shlib-app-1b.rd +++ b/ld/testsuite/ld-tic6x/shlib-app-1b.rd @@ -21,9 +21,7 @@ Section Headers: \[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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Elf file type is EXEC \(Executable file\) Entry point 0x10000060 diff --git a/ld/testsuite/ld-tic6x/shlib-app-1r.rd b/ld/testsuite/ld-tic6x/shlib-app-1r.rd index ba0e84d..d12ee1c 100644 --- a/ld/testsuite/ld-tic6x/shlib-app-1r.rd +++ b/ld/testsuite/ld-tic6x/shlib-app-1r.rd @@ -20,9 +20,7 @@ Section Headers: \[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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Elf file type is EXEC \(Executable file\) Entry point 0x10000060 diff --git a/ld/testsuite/ld-tic6x/shlib-app-1rb.rd b/ld/testsuite/ld-tic6x/shlib-app-1rb.rd index f7ff5a0..6026e2a 100644 --- a/ld/testsuite/ld-tic6x/shlib-app-1rb.rd +++ b/ld/testsuite/ld-tic6x/shlib-app-1rb.rd @@ -20,9 +20,7 @@ Section Headers: \[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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Elf file type is EXEC \(Executable file\) Entry point 0x10000060 diff --git a/ld/testsuite/ld-tic6x/shlib-noindex.rd b/ld/testsuite/ld-tic6x/shlib-noindex.rd index aae19f7..3d9a724 100644 --- a/ld/testsuite/ld-tic6x/shlib-noindex.rd +++ b/ld/testsuite/ld-tic6x/shlib-noindex.rd @@ -21,9 +21,7 @@ Section Headers: \[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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Elf file type is DYN \(Shared object file\) Entry point 0x10000080 diff --git a/ld/testsuite/ld-tic6x/static-app-1.rd b/ld/testsuite/ld-tic6x/static-app-1.rd index 01ff975..1efa574 100644 --- a/ld/testsuite/ld-tic6x/static-app-1.rd +++ b/ld/testsuite/ld-tic6x/static-app-1.rd @@ -18,9 +18,7 @@ Section Headers: \[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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Elf file type is EXEC \(Executable file\) Entry point 0x10000000 diff --git a/ld/testsuite/ld-tic6x/static-app-1b.rd b/ld/testsuite/ld-tic6x/static-app-1b.rd index 01ff975..1efa574 100644 --- a/ld/testsuite/ld-tic6x/static-app-1b.rd +++ b/ld/testsuite/ld-tic6x/static-app-1b.rd @@ -18,9 +18,7 @@ Section Headers: \[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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Elf file type is EXEC \(Executable file\) Entry point 0x10000000 diff --git a/ld/testsuite/ld-tic6x/static-app-1r.rd b/ld/testsuite/ld-tic6x/static-app-1r.rd index 041caf4..4ee2c85 100644 --- a/ld/testsuite/ld-tic6x/static-app-1r.rd +++ b/ld/testsuite/ld-tic6x/static-app-1r.rd @@ -18,9 +18,7 @@ Section Headers: \[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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Elf file type is EXEC \(Executable file\) Entry point 0x10000000 diff --git a/ld/testsuite/ld-tic6x/static-app-1rb.rd b/ld/testsuite/ld-tic6x/static-app-1rb.rd index 041caf4..4ee2c85 100644 --- a/ld/testsuite/ld-tic6x/static-app-1rb.rd +++ b/ld/testsuite/ld-tic6x/static-app-1rb.rd @@ -18,9 +18,7 @@ Section Headers: \[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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Elf file type is EXEC \(Executable file\) Entry point 0x10000000 diff --git a/ld/testsuite/ld-x86-64/ilp32-4-nacl.d b/ld/testsuite/ld-x86-64/ilp32-4-nacl.d index 181868c..ac49a6e 100644 --- a/ld/testsuite/ld-x86-64/ilp32-4-nacl.d +++ b/ld/testsuite/ld-x86-64/ilp32-4-nacl.d @@ -18,9 +18,7 @@ Section Headers: +\[ 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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\), l \(large\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Dynamic section at offset 0x15c contains 6 entries: Tag Type Name/Value diff --git a/ld/testsuite/ld-x86-64/ilp32-4.d b/ld/testsuite/ld-x86-64/ilp32-4.d index 6b63e5a..cfdfde7 100644 --- a/ld/testsuite/ld-x86-64/ilp32-4.d +++ b/ld/testsuite/ld-x86-64/ilp32-4.d @@ -17,9 +17,7 @@ Section Headers: \[ 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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\), l \(large\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#... Dynamic section at offset 0x13c contains 6 entries: Tag Type Name/Value diff --git a/ld/testsuite/ld-x86-64/pr12718.d b/ld/testsuite/ld-x86-64/pr12718.d index 8e28651..4b81d71 100644 --- a/ld/testsuite/ld-x86-64/pr12718.d +++ b/ld/testsuite/ld-x86-64/pr12718.d @@ -13,7 +13,4 @@ Section Headers: +\[ 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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\), l \(large\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) #pass diff --git a/ld/testsuite/ld-x86-64/pr12921.d b/ld/testsuite/ld-x86-64/pr12921.d index 61939e4..8d09616 100644 --- a/ld/testsuite/ld-x86-64/pr12921.d +++ b/ld/testsuite/ld-x86-64/pr12921.d @@ -15,7 +15,4 @@ Section Headers: +\[ 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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\), l \(large\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) #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 340c5fc..d11988a 100644 --- a/ld/testsuite/ld-x86-64/split-by-file-nacl.rd +++ b/ld/testsuite/ld-x86-64/split-by-file-nacl.rd @@ -12,6 +12,4 @@ Section Headers: \[ 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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\), l \(large\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#pass diff --git a/ld/testsuite/ld-x86-64/split-by-file.rd b/ld/testsuite/ld-x86-64/split-by-file.rd index 340c5fc..d11988a 100644 --- a/ld/testsuite/ld-x86-64/split-by-file.rd +++ b/ld/testsuite/ld-x86-64/split-by-file.rd @@ -12,6 +12,4 @@ Section Headers: \[ 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 Key to Flags: - W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\), l \(large\) - I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) - O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) +#pass diff --git a/ld/testsuite/ld-x86-64/tlsbin-nacl.rd b/ld/testsuite/ld-x86-64/tlsbin-nacl.rd index 94c14a0..5de5e1a 100644 --- a/ld/testsuite/ld-x86-64/tlsbin-nacl.rd +++ b/ld/testsuite/ld-x86-64/tlsbin-nacl.rd @@ -27,9 +27,7 @@ Section Headers: +\[[ 0-9]+\] .symtab +.* +\[[ 0-9]+\] .strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is EXEC \(Executable file\) Entry point 0x21139 diff --git a/ld/testsuite/ld-x86-64/tlsbin.rd b/ld/testsuite/ld-x86-64/tlsbin.rd index 9aaddbf..6f73b98 100644 --- a/ld/testsuite/ld-x86-64/tlsbin.rd +++ b/ld/testsuite/ld-x86-64/tlsbin.rd @@ -27,9 +27,7 @@ Section Headers: +\[[ 0-9]+\] .symtab +.* +\[[ 0-9]+\] .strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is EXEC \(Executable file\) Entry point 0x401139 diff --git a/ld/testsuite/ld-x86-64/tlsbindesc-nacl.rd b/ld/testsuite/ld-x86-64/tlsbindesc-nacl.rd index 6ae8daa..39a5abe 100644 --- a/ld/testsuite/ld-x86-64/tlsbindesc-nacl.rd +++ b/ld/testsuite/ld-x86-64/tlsbindesc-nacl.rd @@ -25,9 +25,7 @@ Section Headers: +\[[ 0-9]+\] .symtab +.* +\[[ 0-9]+\] .strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is EXEC \(Executable file\) Entry point 0x20105 diff --git a/ld/testsuite/ld-x86-64/tlsbindesc.rd b/ld/testsuite/ld-x86-64/tlsbindesc.rd index 48bbdb9..8c9a342 100644 --- a/ld/testsuite/ld-x86-64/tlsbindesc.rd +++ b/ld/testsuite/ld-x86-64/tlsbindesc.rd @@ -25,9 +25,7 @@ Section Headers: +\[[ 0-9]+\] .symtab +.* +\[[ 0-9]+\] .strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is EXEC \(Executable file\) Entry point 0x401105 diff --git a/ld/testsuite/ld-x86-64/tlsdesc-nacl.rd b/ld/testsuite/ld-x86-64/tlsdesc-nacl.rd index 25bbd9b..25c557d 100644 --- a/ld/testsuite/ld-x86-64/tlsdesc-nacl.rd +++ b/ld/testsuite/ld-x86-64/tlsdesc-nacl.rd @@ -26,9 +26,7 @@ Section Headers: +\[[ 0-9]+\] .symtab +.* +\[[ 0-9]+\] .strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x1000 diff --git a/ld/testsuite/ld-x86-64/tlsdesc.rd b/ld/testsuite/ld-x86-64/tlsdesc.rd index 1efea46..08ded71 100644 --- a/ld/testsuite/ld-x86-64/tlsdesc.rd +++ b/ld/testsuite/ld-x86-64/tlsdesc.rd @@ -26,9 +26,7 @@ Section Headers: +\[[ 0-9]+\] .symtab +.* +\[[ 0-9]+\] .strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x1000 diff --git a/ld/testsuite/ld-x86-64/tlsgdesc-nacl.rd b/ld/testsuite/ld-x86-64/tlsgdesc-nacl.rd index e867862..6fbce68 100644 --- a/ld/testsuite/ld-x86-64/tlsgdesc-nacl.rd +++ b/ld/testsuite/ld-x86-64/tlsgdesc-nacl.rd @@ -23,9 +23,7 @@ Section Headers: +\[[ 0-9]+\] \.symtab +.* +\[[ 0-9]+\] \.strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-x86-64/tlsgdesc.rd b/ld/testsuite/ld-x86-64/tlsgdesc.rd index 2eb2ec0..7914c0d 100644 --- a/ld/testsuite/ld-x86-64/tlsgdesc.rd +++ b/ld/testsuite/ld-x86-64/tlsgdesc.rd @@ -23,9 +23,7 @@ Section Headers: +\[[ 0-9]+\] \.symtab +.* +\[[ 0-9]+\] \.strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-x86-64/tlspic-nacl.rd b/ld/testsuite/ld-x86-64/tlspic-nacl.rd index 2233690..1be2e48 100644 --- a/ld/testsuite/ld-x86-64/tlspic-nacl.rd +++ b/ld/testsuite/ld-x86-64/tlspic-nacl.rd @@ -26,9 +26,7 @@ Section Headers: +\[[ 0-9]+\] .symtab +.* +\[[ 0-9]+\] .strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x1000 diff --git a/ld/testsuite/ld-x86-64/tlspic.rd b/ld/testsuite/ld-x86-64/tlspic.rd index c2830e9..39bd779 100644 --- a/ld/testsuite/ld-x86-64/tlspic.rd +++ b/ld/testsuite/ld-x86-64/tlspic.rd @@ -26,9 +26,7 @@ Section Headers: +\[[ 0-9]+\] .symtab +.* +\[[ 0-9]+\] .strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x1000 diff --git a/ld/testsuite/ld-xtensa/tlsbin.rd b/ld/testsuite/ld-xtensa/tlsbin.rd index 6226ea7..2361139 100644 --- a/ld/testsuite/ld-xtensa/tlsbin.rd +++ b/ld/testsuite/ld-xtensa/tlsbin.rd @@ -26,9 +26,7 @@ Section Headers: +\[[ 0-9]+\] .symtab +.* +\[[ 0-9]+\] .strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is EXEC \(Executable file\) Entry point 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-xtensa/tlspic.rd b/ld/testsuite/ld-xtensa/tlspic.rd index 2edd54f..379334c 100644 --- a/ld/testsuite/ld-xtensa/tlspic.rd +++ b/ld/testsuite/ld-xtensa/tlspic.rd @@ -27,9 +27,7 @@ Section Headers: +\[[ 0-9]+\] .symtab +.* +\[[ 0-9]+\] .strtab +.* Key to Flags: -.* -.* -.* +#... Elf file type is DYN \(Shared object file\) Entry point 0x[0-9a-f]+ -- 2.7.4