This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Enhance GAS's .section directive so that it can take numeric values for the flags and type fields.


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=9fb71ee49fc37163697e4f34e16097928eb83d66

commit 9fb71ee49fc37163697e4f34e16097928eb83d66
Author: Nick Clifton <nickc@redhat.com>
Date:   Mon Feb 15 11:11:46 2016 +0000

    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.

Diff:
---
 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(-)

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  <nickc@redhat.com>
+
+	* 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  <hongjiu.lu@intel.com>
 
 	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  <nickc@redhat.com>
+
+	* 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  <hongjiu.lu@intel.com>
 
 	* 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  <nickc@redhat.com>
+
+	* 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  <nickc@redhat.com>
 
 	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
+[ 	]*\[<unknown>: 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: <unknown>[ 	].*
+[ 	]*\[.*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  <nickc@redhat.com>
+
+	* 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  <hongjiu.lu@intel.com>
 
 	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]+


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]