This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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]

Re: RFC: Add PT_GNU_PROPERTY to cover .note.gnu.property section


On Wed, Nov 28, 2018 at 9:27 AM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> On Tue, Nov 27, 2018 at 3:59 PM H.J. Lu <hjl.tools@gmail.com> wrote:
> >
> > On Tue, Nov 27, 2018 at 11:25 AM H.J. Lu <hjl.tools@gmail.com> wrote:
> > >
> > > On Tue, Nov 27, 2018 at 9:56 AM Cary Coutant <ccoutant@gmail.com> wrote:
> > > >
> > > > > > > PT_GNU_PROPERTY isn't compatible with existing loaders.  This needs
> > > > > > > to be both forward and backward compatible.
> > > > > >
> > > > > > Which loaders?  The kernel?
> > > > >
> > > > > Kernel, glibc, gdb, .....
> > > >
> > > > How is that any different from using PT_NOTE? Existing loaders don't
> > > > handle that either.
> > > >
> > > > If you're claiming that a new PT_ value in the program header table
> > > > will be rejected by existing loaders, that's a bug. It should be
> > > > fixed. The whole principle of ELF extensibility relies on that.
> > >
> > > Add PT_GNU_PROPERTY to cover .note.gnu.property section?
> >
> > Like:
> >
> > 1. Add PT_GNU_PROPERTY segment type.
> >
> >  # define PT_GNU_PROPERTY (PT_LOOS + 0x474e553)
> >
> > which covers .note.gnu.property section.
> > 2. Remove GNU_PROPERTY_X86_UINT32_VALID.
> >
>
> Here is a patch.  The updated pdf is at
>
> https://github.com/hjl-tools/linux-abi/wiki/linux-abi-draft.pdf

Here is the patch to support PT_GNU_PROPERTY.   Any comments?

-- 
H.J.
From 77d5a8e3eef110608d822490bfb329dde5c50962 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Tue, 27 Nov 2018 15:55:11 -0800
Subject: [PATCH] elf: Add PT_GNU_PROPERTY segment type

Linkers group input note sections with the same name into one output
note section with the same name.  One output note section is placed in
one PT_NOTE segment.  New linkers merge all input .note.gnu.property
sections into one output .note.gnu.property section with a single
NT_GNU_PROPERTY_TYPE_0 note in a single PT_NOTE segment.  Since older
linkers treat input .note.gnu.property section as a generic note section
and just concatenate all input .note.gnu.property sections into one
output .note.gnu.property section without merging them, we may
see one or more NT_GNU_PROPERTY_TYPE_0 notes in PT_NOTE segment, which
are invalid.

GNU_PROPERTY_X86_UINT32_VALID was defined to address this issue such
that linker sets the bit for non-relocatable outputs.  But it isn't
sufficient:

1. It doesn't cover generic properties.
2. When -mx86-used-note=yes is passed to x86 assembler, the
GNU_PROPERTY_X86_UINT32_VALID bit is set in GNU_PROPERTY_X86_ISA_1_USED
property in object file and older linkers generate invalid
NT_GNU_PROPERTY_TYPE_0 notes with the GNU_PROPERTY_X86_UINT32_VALID bit
set.

I am proposing the following changes:

1. Add PT_GNU_PROPERTY segment type:

 # define PT_GNU_PROPERTY (PT_LOOS + 0x474e553)

which covers .note.gnu.property section.
2. Remove GNU_PROPERTY_X86_UINT32_VALID.

bfd/

	PR ld/23900
	* elf.c (get_program_header_size): Add a PT_GNU_PROPERTY
	segment for NOTE_GNU_PROPERTY_SECTION_NAME.
	(_bfd_elf_map_sections_to_segments): Create a PT_GNU_PROPERTY
	segment for NOTE_GNU_PROPERTY_SECTION_NAME.
	* elfxx-x86.c (_bfd_elf_link_setup_gnu_properties): Don't set
	GNU_PROPERTY_X86_UINT32_VALID.

binutils/

	PR ld/23900
	* readelf.c (get_segment_type): Support PT_GNU_PROPERTY.
	(decode_x86_isa): Don't check GNU_PROPERTY_X86_UINT32_VALID.
	(decode_x86_feature_1): Likewise.
	(decode_x86_feature_2): Likewise.
	(print_gnu_property_note): Remove GNU_PROPERTY_X86_UINT32_VALID
	check.
	* testsuite/binutils-all/i386/empty.d: Updated.
	* testsuite/binutils-all/x86-64/empty-x32.d: Likewise.
	* testsuite/binutils-all/x86-64/empty.d: Likewise.
	* testsuite/binutils-all/i386/pr21231b.s: Change
	GNU_PROPERTY_X86_ISA_1_USED bits to 0x7fffffff.
	* testsuite/binutils-all/x86-64/pr21231b.s: Likewise.

gas/

	PR ld/23900
	* config/tc-i386.c (x86_cleanup): Don't set
	GNU_PROPERTY_X86_UINT32_VALID.
	* testsuite/gas/i386/property-1.s: Change
	GNU_PROPERTY_X86_ISA_1_USED bits to 0.

include/

	PR ld/23900
	* elf/common.h (PT_GNU_PROPERTY): New.
	(GNU_PROPERTY_X86_UINT32_VALID): Removed.

ld/

	PR ld/23900
	* testsuite/ld-elf/pr23900-1.s: New file.
	* testsuite/ld-elf/pr23900-1a.d: Likewise.
	* testsuite/ld-elf/pr23900-1b.d: Likewise.
	* testsuite/ld-elf/pr23900-2.s: Likewise.
	* testsuite/ld-elf/pr23900-2a.d: Likewise.
	* testsuite/ld-elf/pr23900-2b.d: Likewise.
	* testsuite/ld-i386/ibt-plt-1.d: Adjusted.
	* testsuite/ld-i386/ibt-plt-2c.d: Likewise.
	* testsuite/ld-i386/ibt-plt-2d.d: Likewise.
	* testsuite/ld-i386/ibt-plt-3d.d: Likewise.
	* testsuite/ld-x86-64/ibt-plt-1-x32.d: Likewise.
	* testsuite/ld-x86-64/ibt-plt-1.d: Likewise.
	* testsuite/ld-x86-64/ibt-plt-2c-x32.d: Likewise.
	* testsuite/ld-x86-64/ibt-plt-2c.d: Likewise.
	* testsuite/ld-x86-64/ibt-plt-2d-x32.d: Likewise.
	* testsuite/ld-x86-64/ibt-plt-2c.d: Likewise.
	* testsuite/ld-x86-64/ibt-plt-3c-x32.d: Likewise.
	* testsuite/ld-x86-64/ibt-plt-3c.d: Likewise.
	* testsuite/ld-x86-64/ibt-plt-3d-x32.d: Likewise.
	* testsuite/ld-x86-64/ibt-plt-3d.d: Likewise.
	* testsuite/ld-i386/pr23372c.d: Expect <None>
	for GNU_PROPERTY_X86_ISA_1_USED.
	* testsuite/ld-x86-64/pr23372c-x32.d: Likewise.
	* testsuite/ld-x86-64/pr23372c.d: Likewise.
	* testsuite/ld-x86-64/pr23372d-x32.d: Likewise.
	* testsuite/ld-x86-64/pr23372d.d: Likewise.
	* testsuite/ld-x86-64/property-x86-5a.s: Change
	GNU_PROPERTY_X86_ISA_1_USED bits to 0.
	* testsuite/ld-x86-64/property-x86-5b.s: Likewise.
---
 bfd/elf.c                                     | 26 +++++++++++++++
 bfd/elfxx-x86.c                               | 10 ++----
 binutils/readelf.c                            | 21 +++---------
 binutils/testsuite/binutils-all/i386/empty.d  |  2 +-
 .../testsuite/binutils-all/i386/pr21231b.s    |  2 +-
 .../testsuite/binutils-all/x86-64/empty-x32.d |  2 +-
 .../testsuite/binutils-all/x86-64/empty.d     |  2 +-
 .../testsuite/binutils-all/x86-64/pr21231b.s  |  2 +-
 gas/config/tc-i386.c                          |  1 -
 gas/testsuite/gas/i386/property-1.s           |  3 +-
 include/elf/common.h                          |  4 +--
 ld/testsuite/ld-elf/pr23900-1.s               | 30 +++++++++++++++++
 ld/testsuite/ld-elf/pr23900-1a.d              |  9 ++++++
 ld/testsuite/ld-elf/pr23900-1b.d              | 14 ++++++++
 ld/testsuite/ld-elf/pr23900-2.s               | 32 +++++++++++++++++++
 ld/testsuite/ld-elf/pr23900-2a.d              |  9 ++++++
 ld/testsuite/ld-elf/pr23900-2b.d              |  9 ++++++
 ld/testsuite/ld-i386/ibt-plt-1.d              | 22 ++++++-------
 ld/testsuite/ld-i386/ibt-plt-2c.d             | 22 ++++++-------
 ld/testsuite/ld-i386/ibt-plt-2d.d             | 20 ++++++------
 ld/testsuite/ld-i386/ibt-plt-3d.d             | 20 ++++++------
 ld/testsuite/ld-i386/pr23372c.d               |  2 +-
 ld/testsuite/ld-x86-64/ibt-plt-1-x32.d        | 24 +++++++-------
 ld/testsuite/ld-x86-64/ibt-plt-1.d            | 24 +++++++-------
 ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d       | 24 +++++++-------
 ld/testsuite/ld-x86-64/ibt-plt-2c.d           | 24 +++++++-------
 ld/testsuite/ld-x86-64/ibt-plt-2d-x32.d       | 14 ++++----
 ld/testsuite/ld-x86-64/ibt-plt-2d.d           | 14 ++++----
 ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d       | 24 +++++++-------
 ld/testsuite/ld-x86-64/ibt-plt-3c.d           | 24 +++++++-------
 ld/testsuite/ld-x86-64/ibt-plt-3d-x32.d       | 14 ++++----
 ld/testsuite/ld-x86-64/ibt-plt-3d.d           | 14 ++++----
 ld/testsuite/ld-x86-64/pr23372c-x32.d         |  2 +-
 ld/testsuite/ld-x86-64/pr23372c.d             |  2 +-
 ld/testsuite/ld-x86-64/property-x86-5a.s      |  3 +-
 ld/testsuite/ld-x86-64/property-x86-5b.s      |  3 +-
 36 files changed, 291 insertions(+), 183 deletions(-)
 create mode 100644 ld/testsuite/ld-elf/pr23900-1.s
 create mode 100644 ld/testsuite/ld-elf/pr23900-1a.d
 create mode 100644 ld/testsuite/ld-elf/pr23900-1b.d
 create mode 100644 ld/testsuite/ld-elf/pr23900-2.s
 create mode 100644 ld/testsuite/ld-elf/pr23900-2a.d
 create mode 100644 ld/testsuite/ld-elf/pr23900-2b.d

diff --git a/bfd/elf.c b/bfd/elf.c
index 604971dd4c..0cc74e51a4 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -4372,6 +4372,14 @@ get_program_header_size (bfd *abfd, struct bfd_link_info *info)
       ++segs;
     }
 
+  s = bfd_get_section_by_name (abfd,
+			       NOTE_GNU_PROPERTY_SECTION_NAME);
+  if (s != NULL && s->size != 0)
+    {
+      /* We need a PT_GNU_PROPERTY segment.  */
+      ++segs;
+    }
+
   for (s = abfd->sections; s != NULL; s = s->next)
     {
       if ((s->flags & SEC_LOAD) != 0
@@ -5055,6 +5063,24 @@ _bfd_elf_map_sections_to_segments (bfd *abfd, struct bfd_link_info *info)
 	      pm = &m->next;
 	    }
 
+      s = bfd_get_section_by_name (abfd,
+				   NOTE_GNU_PROPERTY_SECTION_NAME);
+      if (s != NULL && s->size != 0)
+	{
+	  amt = sizeof (struct elf_segment_map) + sizeof (asection *);
+	  m = bfd_zalloc (abfd, amt);
+	  if (m == NULL)
+	    goto error_return;
+	  m->next = NULL;
+	  m->p_type = PT_GNU_PROPERTY;
+	  m->count = 1;
+	  m->p_flags_valid = 1;
+	  m->sections[0] = s;
+	  m->p_flags = PF_R;
+	  *pm = m;
+	  pm = &m->next;
+	}
+
       /* If there is a .eh_frame_hdr section, throw in a PT_GNU_EH_FRAME
 	 segment.  */
       eh_frame_hdr = elf_eh_frame_hdr (abfd);
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index bf205d6d3b..56ae192ea6 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -2928,8 +2928,9 @@ error_alignment:
 /* Fix up x86 GNU properties.  */
 
 void
-_bfd_x86_elf_link_fixup_gnu_properties (struct bfd_link_info *info,
-					elf_property_list **listp)
+_bfd_x86_elf_link_fixup_gnu_properties
+  (struct bfd_link_info *info ATTRIBUTE_UNUSED,
+   elf_property_list **listp)
 {
   elf_property_list *p;
 
@@ -2957,11 +2958,6 @@ _bfd_x86_elf_link_fixup_gnu_properties (struct bfd_link_info *info,
 	      continue;
 	    }
 
-	  /* Mark x86-specific properties with X86_UINT32_VALID for
-	     non-relocatable output.  */
-	  if (!bfd_link_relocatable (info))
-	    p->property.u.number |= GNU_PROPERTY_X86_UINT32_VALID;
-
 	  listp = &p->next;
 	}
       else if (type > GNU_PROPERTY_HIPROC)
diff --git a/binutils/readelf.c b/binutils/readelf.c
index afb039f7b7..48388a5d15 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -3930,6 +3930,7 @@ get_segment_type (Filedata * filedata, unsigned long p_type)
     case PT_GNU_EH_FRAME: return "GNU_EH_FRAME";
     case PT_GNU_STACK:	return "GNU_STACK";
     case PT_GNU_RELRO:  return "GNU_RELRO";
+    case PT_GNU_PROPERTY: return "GNU_PROPERTY";
 
     default:
       if (p_type >= PT_GNU_MBIND_LO && p_type <= PT_GNU_MBIND_HI)
@@ -17018,13 +17019,11 @@ decode_x86_compat_isa (unsigned int bitmask)
 static void
 decode_x86_isa (unsigned int bitmask)
 {
-  if (bitmask == GNU_PROPERTY_X86_UINT32_VALID)
+  if (!bitmask)
     {
       printf (_("<None>"));
       return;
     }
-  else
-    bitmask &= ~GNU_PROPERTY_X86_UINT32_VALID;
 
   while (bitmask)
     {
@@ -17117,13 +17116,11 @@ decode_x86_isa (unsigned int bitmask)
 static void
 decode_x86_feature_1 (unsigned int bitmask)
 {
-  if (bitmask == GNU_PROPERTY_X86_UINT32_VALID)
+  if (!bitmask)
     {
       printf (_("<None>"));
       return;
     }
-  else
-    bitmask &= ~GNU_PROPERTY_X86_UINT32_VALID;
 
   while (bitmask)
     {
@@ -17150,13 +17147,11 @@ decode_x86_feature_1 (unsigned int bitmask)
 static void
 decode_x86_feature_2 (unsigned int bitmask)
 {
-  if (bitmask == GNU_PROPERTY_X86_UINT32_VALID)
+  if (!bitmask)
     {
       printf (_("<None>"));
       return;
     }
-  else
-    bitmask &= ~GNU_PROPERTY_X86_UINT32_VALID;
 
   while (bitmask)
     {
@@ -17252,13 +17247,7 @@ print_gnu_property_note (Filedata * filedata, Elf_Internal_Note * pnote)
 	      unsigned int bitmask;
 
 	      if (datasz == 4)
-		{
-		  bitmask = byte_get (ptr, 4);
-		  if ((filedata->file_header.e_type == ET_EXEC
-		       || filedata->file_header.e_type == ET_DYN)
-		      && !(bitmask & GNU_PROPERTY_X86_UINT32_VALID))
-		    printf ("Invalid ");
-		}
+		bitmask = byte_get (ptr, 4);
 	      else
 		bitmask = 0;
 
diff --git a/binutils/testsuite/binutils-all/i386/empty.d b/binutils/testsuite/binutils-all/i386/empty.d
index 809280f73f..3c0e860a5e 100644
--- a/binutils/testsuite/binutils-all/i386/empty.d
+++ b/binutils/testsuite/binutils-all/i386/empty.d
@@ -6,7 +6,7 @@
 Displaying notes found in: .note.gnu.property
   Owner                 Data size	Description
   GNU                  0x0000000c	NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 feature: 
+      Properties: x86 feature: <None>
   GNU                  0x00000018	NT_GNU_PROPERTY_TYPE_0
       Properties: x86 ISA used: <None>
 	x86 feature used: x86
diff --git a/binutils/testsuite/binutils-all/i386/pr21231b.s b/binutils/testsuite/binutils-all/i386/pr21231b.s
index 793e282471..1fd2575e2a 100644
--- a/binutils/testsuite/binutils-all/i386/pr21231b.s
+++ b/binutils/testsuite/binutils-all/i386/pr21231b.s
@@ -22,7 +22,7 @@
 	.long 0xc0010000	/* pr_type.  */
 	.long 4f - 3f		/* pr_datasz.  */
 3:
-	.long -1
+	.long 0x7fffffff
 4:
 	.p2align 2
 	/* GNU_PROPERTY_X86_ISA_1_NEEDED */
diff --git a/binutils/testsuite/binutils-all/x86-64/empty-x32.d b/binutils/testsuite/binutils-all/x86-64/empty-x32.d
index f6503746e8..32cc55e349 100644
--- a/binutils/testsuite/binutils-all/x86-64/empty-x32.d
+++ b/binutils/testsuite/binutils-all/x86-64/empty-x32.d
@@ -7,7 +7,7 @@
 Displaying notes found in: .note.gnu.property
   Owner                 Data size	Description
   GNU                  0x0000000c	NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 feature: 
+      Properties: x86 feature: <None>
   GNU                  0x00000018	NT_GNU_PROPERTY_TYPE_0
       Properties: x86 ISA used: <None>
 	x86 feature used: x86
diff --git a/binutils/testsuite/binutils-all/x86-64/empty.d b/binutils/testsuite/binutils-all/x86-64/empty.d
index 30a2ea4830..3cc52ba2e8 100644
--- a/binutils/testsuite/binutils-all/x86-64/empty.d
+++ b/binutils/testsuite/binutils-all/x86-64/empty.d
@@ -6,7 +6,7 @@
 Displaying notes found in: .note.gnu.property
   Owner                 Data size	Description
   GNU                  0x00000010	NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 feature: 
+      Properties: x86 feature: <None>
   GNU                  0x00000020	NT_GNU_PROPERTY_TYPE_0
       Properties: x86 ISA used: <None>
 	x86 feature used: x86
diff --git a/binutils/testsuite/binutils-all/x86-64/pr21231b.s b/binutils/testsuite/binutils-all/x86-64/pr21231b.s
index add9227977..8fefebdb2f 100644
--- a/binutils/testsuite/binutils-all/x86-64/pr21231b.s
+++ b/binutils/testsuite/binutils-all/x86-64/pr21231b.s
@@ -22,7 +22,7 @@
 	.long 0xc0010000	/* pr_type.  */
 	.long 4f - 3f		/* pr_datasz.  */
 3:
-	.long -1
+	.long 0x7fffffff
 4:
 	.p2align 3
 	/* GNU_PROPERTY_X86_ISA_1_NEEDED */
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 4fe9f0dda6..8e25e6c7a0 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -7896,7 +7896,6 @@ x86_cleanup (void)
   if (!IS_ELF || !x86_used_note)
     return;
 
-  x86_isa_1_used |= GNU_PROPERTY_X86_UINT32_VALID;
   x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_X86;
 
   /* The .note.gnu.property section layout:
diff --git a/gas/testsuite/gas/i386/property-1.s b/gas/testsuite/gas/i386/property-1.s
index 8857c11496..4c29380447 100644
--- a/gas/testsuite/gas/i386/property-1.s
+++ b/gas/testsuite/gas/i386/property-1.s
@@ -20,8 +20,7 @@
 	.long 0xc0010000	/* pr_type.  */
 	.long 5f - 4f		/* pr_datasz.  */
 4:
-	/* GNU_PROPERTY_X86_UINT32_VALID */
-	.long 0x80000000
+	.long 0
 5:
 .ifdef __64_bit__
 	.p2align 3
diff --git a/include/elf/common.h b/include/elf/common.h
index da9ea036f4..1b3d713689 100644
--- a/include/elf/common.h
+++ b/include/elf/common.h
@@ -469,6 +469,7 @@
 #define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME      /* Solaris uses the same value */
 #define PT_GNU_STACK	(PT_LOOS + 0x474e551) /* Stack flags */
 #define PT_GNU_RELRO	(PT_LOOS + 0x474e552) /* Read-only after relocation */
+#define PT_GNU_PROPERTY	(PT_LOOS + 0x474e553) /* GNU property */
 
 /* Mbind segments */
 #define PT_GNU_MBIND_NUM 4096
@@ -799,9 +800,6 @@
 #define GNU_PROPERTY_X86_FEATURE_2_USED \
   (GNU_PROPERTY_X86_UINT32_OR_AND_LO + 1)
 
-/* Set by linker to indicate that the property is valid.  */
-#define GNU_PROPERTY_X86_UINT32_VALID		(1U << 31)
-
 #define GNU_PROPERTY_X86_FEATURE_1_IBT		(1U << 0)
 #define GNU_PROPERTY_X86_FEATURE_1_SHSTK	(1U << 1)
 
diff --git a/ld/testsuite/ld-elf/pr23900-1.s b/ld/testsuite/ld-elf/pr23900-1.s
new file mode 100644
index 0000000000..b0b54ed448
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr23900-1.s
@@ -0,0 +1,30 @@
+	.text
+	.global start	/* Used by SH targets.  */
+start:
+	.global _start
+_start:
+	.global __start
+__start:
+	.global main	/* Used by HPPA targets.  */
+main:
+	.globl	_main	/* Used by LynxOS targets.  */
+_main:
+	.dc.a 0
+
+	.section .note.gnu.property, "a"
+	.p2align ALIGN
+	.dc.l .L1 - .L0		/* name length.  */
+	.dc.l .L3 - .L1		/* data length.  */
+	/* NT_GNU_PROPERTY_TYPE_0 */
+	.dc.l 5			/* note type.  */
+.L0:
+	.asciz "GNU"		/* vendor name.  */
+.L1:
+	.p2align ALIGN
+	/* GNU_PROPERTY_NO_COPY_ON_PROTECTED */
+	.dc.l 2			/* pr_type.  */
+	.dc.l .L5 - .L4		/* pr_datasz.  */
+.L4:
+.L5:
+	.p2align ALIGN
+.L3:
diff --git a/ld/testsuite/ld-elf/pr23900-1a.d b/ld/testsuite/ld-elf/pr23900-1a.d
new file mode 100644
index 0000000000..becde98814
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr23900-1a.d
@@ -0,0 +1,9 @@
+#source: pr23900-1.s
+#ld:
+#readelf: --notes --wide
+#target: *-*-linux* *-*-gnu* *-*-nacl*
+
+#...
+Displaying notes found in: \.note\.gnu\.property
+[ 	]+Owner[ 	]+Data size[ 	]+Description
+[ 	]+GNU[ 	]+0x0+..[ 	]+NT_GNU_PROPERTY_TYPE_0[ 	]+Properties: no copy on protected 
diff --git a/ld/testsuite/ld-elf/pr23900-1b.d b/ld/testsuite/ld-elf/pr23900-1b.d
new file mode 100644
index 0000000000..e1555c29f6
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr23900-1b.d
@@ -0,0 +1,14 @@
+#source: pr23900-1.s
+#ld:
+#readelf: -l --wide
+#target: *-*-linux* *-*-gnu* *-*-nacl*
+
+#...
+  GNU_PROPERTY .*
+#...
+ +[0-9]+ +\.note\.gnu\.property 
+#...
+ +[0-9]+ +\.note\.gnu\.property 
+#...
+ +[0-9]+ +\.note\.gnu\.property 
+#...
diff --git a/ld/testsuite/ld-elf/pr23900-2.s b/ld/testsuite/ld-elf/pr23900-2.s
new file mode 100644
index 0000000000..cfff675276
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr23900-2.s
@@ -0,0 +1,32 @@
+	.text
+	.global start	/* Used by SH targets.  */
+start:
+	.global _start
+_start:
+	.global __start
+__start:
+	.global main	/* Used by HPPA targets.  */
+main:
+	.globl	_main	/* Used by LynxOS targets.  */
+_main:
+	.dc.a 0
+
+	/* NB: Deliberately incorrect section name.  Should be
+	       .note.gnu.property.  */
+	.section .note, "a"
+	.p2align ALIGN
+	.dc.l .L1 - .L0		/* name length.  */
+	.dc.l .L3 - .L1		/* data length.  */
+	/* NT_GNU_PROPERTY_TYPE_0 */
+	.dc.l 5			/* note type.  */
+.L0:
+	.asciz "GNU"		/* vendor name.  */
+.L1:
+	.p2align ALIGN
+	/* GNU_PROPERTY_NO_COPY_ON_PROTECTED */
+	.dc.l 2			/* pr_type.  */
+	.dc.l .L5 - .L4		/* pr_datasz.  */
+.L4:
+.L5:
+	.p2align ALIGN
+.L3:
diff --git a/ld/testsuite/ld-elf/pr23900-2a.d b/ld/testsuite/ld-elf/pr23900-2a.d
new file mode 100644
index 0000000000..836606d410
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr23900-2a.d
@@ -0,0 +1,9 @@
+#source: pr23900-2.s
+#ld:
+#readelf: --notes --wide
+#target: *-*-linux* *-*-gnu* *-*-nacl*
+
+#...
+Displaying notes found in: \.note
+[ 	]+Owner[ 	]+Data size[ 	]+Description
+[ 	]+GNU[ 	]+0x0+..[ 	]+NT_GNU_PROPERTY_TYPE_0[ 	]+Properties: no copy on protected 
diff --git a/ld/testsuite/ld-elf/pr23900-2b.d b/ld/testsuite/ld-elf/pr23900-2b.d
new file mode 100644
index 0000000000..2aa04d760c
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr23900-2b.d
@@ -0,0 +1,9 @@
+#source: pr23900-2.s
+#ld:
+#readelf: -l --wide
+#target: *-*-linux* *-*-gnu* *-*-nacl*
+
+#failif
+#...
+  GNU_PROPERTY .*
+#...
diff --git a/ld/testsuite/ld-i386/ibt-plt-1.d b/ld/testsuite/ld-i386/ibt-plt-1.d
index 2a8e0438a1..beccbf7b2b 100644
--- a/ld/testsuite/ld-i386/ibt-plt-1.d
+++ b/ld/testsuite/ld-i386/ibt-plt-1.d
@@ -7,45 +7,45 @@
 
 Disassembly of section .plt:
 
-0+160 <.plt>:
+[a-f0-9]+ <.plt>:
  +[a-f0-9]+:	ff b3 04 00 00 00    	pushl  0x4\(%ebx\)
  +[a-f0-9]+:	ff a3 08 00 00 00    	jmp    \*0x8\(%ebx\)
  +[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%eax\)
  +[a-f0-9]+:	f3 0f 1e fb          	endbr32 
  +[a-f0-9]+:	68 00 00 00 00       	push   \$0x0
- +[a-f0-9]+:	e9 e2 ff ff ff       	jmp    160 <.plt>
+ +[a-f0-9]+:	e9 e2 ff ff ff       	jmp    [a-f0-9]+ <.plt>
  +[a-f0-9]+:	66 90                	xchg   %ax,%ax
  +[a-f0-9]+:	f3 0f 1e fb          	endbr32 
  +[a-f0-9]+:	68 08 00 00 00       	push   \$0x8
- +[a-f0-9]+:	e9 d2 ff ff ff       	jmp    160 <.plt>
+ +[a-f0-9]+:	e9 d2 ff ff ff       	jmp    [a-f0-9]+ <.plt>
  +[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 Disassembly of section .plt.sec:
 
-0+190 <bar1@plt>:
+[a-f0-9]+ <bar1@plt>:
  +[a-f0-9]+:	f3 0f 1e fb          	endbr32 
  +[a-f0-9]+:	ff a3 0c 00 00 00    	jmp    \*0xc\(%ebx\)
  +[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%eax,%eax,1\)
 
-0+1a0 <bar2@plt>:
+[a-f0-9]+ <bar2@plt>:
  +[a-f0-9]+:	f3 0f 1e fb          	endbr32 
  +[a-f0-9]+:	ff a3 10 00 00 00    	jmp    \*0x10\(%ebx\)
  +[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%eax,%eax,1\)
 
 Disassembly of section .text:
 
-0+1b0 <foo>:
+[a-f0-9]+ <foo>:
  +[a-f0-9]+:	53                   	push   %ebx
- +[a-f0-9]+:	e8 18 00 00 00       	call   1ce <__x86.get_pc_thunk.bx>
- +[a-f0-9]+:	81 c3 36 11 00 00    	add    \$0x1136,%ebx
+ +[a-f0-9]+:	e8 18 00 00 00       	call   [a-f0-9]+ <__x86.get_pc_thunk.bx>
+ +[a-f0-9]+:	81 c3 ([0-9a-f]{2} ){4}[ 	]+add    \$0x[a-f0-9]+,%ebx
  +[a-f0-9]+:	83 ec 08             	sub    \$0x8,%esp
- +[a-f0-9]+:	e8 dc ff ff ff       	call   1a0 <bar2@plt>
- +[a-f0-9]+:	e8 c7 ff ff ff       	call   190 <bar1@plt>
+ +[a-f0-9]+:	e8 dc ff ff ff       	call   [a-f0-9]+ <bar2@plt>
+ +[a-f0-9]+:	e8 c7 ff ff ff       	call   [a-f0-9]+ <bar1@plt>
  +[a-f0-9]+:	83 c4 08             	add    \$0x8,%esp
  +[a-f0-9]+:	5b                   	pop    %ebx
  +[a-f0-9]+:	c3                   	ret    
 
-0+1ce <__x86.get_pc_thunk.bx>:
+[a-f0-9]+ <__x86.get_pc_thunk.bx>:
  +[a-f0-9]+:	8b 1c 24             	mov    \(%esp\),%ebx
  +[a-f0-9]+:	c3                   	ret    
 #pass
diff --git a/ld/testsuite/ld-i386/ibt-plt-2c.d b/ld/testsuite/ld-i386/ibt-plt-2c.d
index d71f34d27c..7193034f78 100644
--- a/ld/testsuite/ld-i386/ibt-plt-2c.d
+++ b/ld/testsuite/ld-i386/ibt-plt-2c.d
@@ -8,45 +8,45 @@
 
 Disassembly of section .plt:
 
-0+160 <.plt>:
+[a-f0-9]+ <.plt>:
  +[a-f0-9]+:	ff b3 04 00 00 00    	pushl  0x4\(%ebx\)
  +[a-f0-9]+:	ff a3 08 00 00 00    	jmp    \*0x8\(%ebx\)
  +[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%eax\)
  +[a-f0-9]+:	f3 0f 1e fb          	endbr32 
  +[a-f0-9]+:	68 00 00 00 00       	push   \$0x0
- +[a-f0-9]+:	e9 e2 ff ff ff       	jmp    160 <.plt>
+ +[a-f0-9]+:	e9 e2 ff ff ff       	jmp    [a-f0-9]+ <.plt>
  +[a-f0-9]+:	66 90                	xchg   %ax,%ax
  +[a-f0-9]+:	f3 0f 1e fb          	endbr32 
  +[a-f0-9]+:	68 08 00 00 00       	push   \$0x8
- +[a-f0-9]+:	e9 d2 ff ff ff       	jmp    160 <.plt>
+ +[a-f0-9]+:	e9 d2 ff ff ff       	jmp    [a-f0-9]+ <.plt>
  +[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 Disassembly of section .plt.sec:
 
-0+190 <bar1@plt>:
+[a-f0-9]+ <bar1@plt>:
  +[a-f0-9]+:	f3 0f 1e fb          	endbr32 
  +[a-f0-9]+:	ff a3 0c 00 00 00    	jmp    \*0xc\(%ebx\)
  +[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%eax,%eax,1\)
 
-0+1a0 <bar2@plt>:
+[a-f0-9]+ <bar2@plt>:
  +[a-f0-9]+:	f3 0f 1e fb          	endbr32 
  +[a-f0-9]+:	ff a3 10 00 00 00    	jmp    \*0x10\(%ebx\)
  +[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%eax,%eax,1\)
 
 Disassembly of section .text:
 
-0+1b0 <foo>:
+[a-f0-9]+ <foo>:
  +[a-f0-9]+:	53                   	push   %ebx
- +[a-f0-9]+:	e8 18 00 00 00       	call   1ce <__x86.get_pc_thunk.bx>
- +[a-f0-9]+:	81 c3 36 11 00 00    	add    \$0x1136,%ebx
+ +[a-f0-9]+:	e8 18 00 00 00       	call   [0-9a-f]+ <__x86.get_pc_thunk.bx>
+ +[a-f0-9]+:	81 c3 ([0-9a-f]{2} ){4}[ 	]+add    \$0x[a-f0-9]+,%ebx
  +[a-f0-9]+:	83 ec 08             	sub    \$0x8,%esp
- +[a-f0-9]+:	e8 dc ff ff ff       	call   1a0 <bar2@plt>
- +[a-f0-9]+:	e8 c7 ff ff ff       	call   190 <bar1@plt>
+ +[a-f0-9]+:	e8 dc ff ff ff       	call   [a-f0-9]+ <bar2@plt>
+ +[a-f0-9]+:	e8 c7 ff ff ff       	call   [a-f0-9]+ <bar1@plt>
  +[a-f0-9]+:	83 c4 08             	add    \$0x8,%esp
  +[a-f0-9]+:	5b                   	pop    %ebx
  +[a-f0-9]+:	c3                   	ret    
 
-0+1ce <__x86.get_pc_thunk.bx>:
+[a-f0-9]+ <__x86.get_pc_thunk.bx>:
  +[a-f0-9]+:	8b 1c 24             	mov    \(%esp\),%ebx
  +[a-f0-9]+:	c3                   	ret    
 #pass
diff --git a/ld/testsuite/ld-i386/ibt-plt-2d.d b/ld/testsuite/ld-i386/ibt-plt-2d.d
index ec1a95ca4c..67260b8553 100644
--- a/ld/testsuite/ld-i386/ibt-plt-2d.d
+++ b/ld/testsuite/ld-i386/ibt-plt-2d.d
@@ -18,31 +18,31 @@ Contents of the .eh_frame section:
   DW_CFA_nop
   DW_CFA_nop
 
-0+18 0000001c 0000001c FDE cie=00000000 pc=000001b0..000001ce
-  DW_CFA_advance_loc: 1 to 000001b1
+0+18 0000001c 0000001c FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
+  DW_CFA_advance_loc: 1 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 8
   DW_CFA_offset: r3 \(ebx\) at cfa-8
-  DW_CFA_advance_loc: 14 to 000001bf
+  DW_CFA_advance_loc: 14 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 16
-  DW_CFA_advance_loc: 13 to 000001cc
+  DW_CFA_advance_loc: 13 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 8
-  DW_CFA_advance_loc: 1 to 000001cd
+  DW_CFA_advance_loc: 1 to [a-f0-9]+
   DW_CFA_restore: r3 \(ebx\)
   DW_CFA_def_cfa_offset: 4
 
-0+38 00000010 0000003c FDE cie=00000000 pc=000001ce..000001d2
+0+38 00000010 0000003c FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop
 
-0+4c 00000020 00000050 FDE cie=00000000 pc=00000160..00000190
+0+4c 00000020 00000050 FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
   DW_CFA_def_cfa_offset: 8
-  DW_CFA_advance_loc: 6 to 00000166
+  DW_CFA_advance_loc: 6 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 12
-  DW_CFA_advance_loc: 10 to 00000170
+  DW_CFA_advance_loc: 10 to [a-f0-9]+
   DW_CFA_def_cfa_expression \(DW_OP_breg4 \(esp\): 4; DW_OP_breg8 \(eip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit9; DW_OP_ge; DW_OP_lit2; DW_OP_shl; DW_OP_plus\)
 
-0+70 00000010 00000074 FDE cie=00000000 pc=00000190..000001b0
+0+70 00000010 00000074 FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop
diff --git a/ld/testsuite/ld-i386/ibt-plt-3d.d b/ld/testsuite/ld-i386/ibt-plt-3d.d
index 35742ca2d9..42bd494c3e 100644
--- a/ld/testsuite/ld-i386/ibt-plt-3d.d
+++ b/ld/testsuite/ld-i386/ibt-plt-3d.d
@@ -18,31 +18,31 @@ Contents of the .eh_frame section:
   DW_CFA_nop
   DW_CFA_nop
 
-0+18 0000001c 0000001c FDE cie=00000000 pc=000001b0..000001ce
-  DW_CFA_advance_loc: 1 to 000001b1
+0+18 0000001c 0000001c FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
+  DW_CFA_advance_loc: 1 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 8
   DW_CFA_offset: r3 \(ebx\) at cfa-8
-  DW_CFA_advance_loc: 14 to 000001bf
+  DW_CFA_advance_loc: 14 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 16
-  DW_CFA_advance_loc: 13 to 000001cc
+  DW_CFA_advance_loc: 13 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 8
-  DW_CFA_advance_loc: 1 to 000001cd
+  DW_CFA_advance_loc: 1 to [a-f0-9]+
   DW_CFA_restore: r3 \(ebx\)
   DW_CFA_def_cfa_offset: 4
 
-0+38 00000010 0000003c FDE cie=00000000 pc=000001ce..000001d2
+0+38 00000010 0000003c FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop
 
-0+4c 00000020 00000050 FDE cie=00000000 pc=00000160..00000190
+0+4c 00000020 00000050 FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
   DW_CFA_def_cfa_offset: 8
-  DW_CFA_advance_loc: 6 to 00000166
+  DW_CFA_advance_loc: 6 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 12
-  DW_CFA_advance_loc: 10 to 00000170
+  DW_CFA_advance_loc: 10 to [a-f0-9]+
   DW_CFA_def_cfa_expression \(DW_OP_breg4 \(esp\): 4; DW_OP_breg8 \(eip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit9; DW_OP_ge; DW_OP_lit2; DW_OP_shl; DW_OP_plus\)
 
-0+70 00000010 00000074 FDE cie=00000000 pc=00000190..000001b0
+0+70 00000010 00000074 FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop
diff --git a/ld/testsuite/ld-i386/pr23372c.d b/ld/testsuite/ld-i386/pr23372c.d
index d5bcc4d7b2..58803ab4b8 100644
--- a/ld/testsuite/ld-i386/pr23372c.d
+++ b/ld/testsuite/ld-i386/pr23372c.d
@@ -7,4 +7,4 @@
 Displaying notes found in: .note.gnu.property
   Owner                 Data size	Description
   GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: 
+      Properties: x86 ISA used: <None>
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-1-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-1-x32.d
index 21568c9cf8..f0a2b92c29 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-1-x32.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-1-x32.d
@@ -8,36 +8,36 @@
 
 Disassembly of section .plt:
 
-0+160 <.plt>:
- +[a-f0-9]+:	ff 35 62 01 20 00    	pushq  0x200162\(%rip\)        # 2002c8 <_GLOBAL_OFFSET_TABLE_\+0x8>
- +[a-f0-9]+:	ff 25 64 01 20 00    	jmpq   \*0x200164\(%rip\)        # 2002d0 <_GLOBAL_OFFSET_TABLE_\+0x10>
+[a-f0-9]+ <.plt>:
+ +[a-f0-9]+:	ff 35 ([0-9a-f]{2} ){4}[ 	]+pushq  0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <_GLOBAL_OFFSET_TABLE_\+0x8>
+ +[a-f0-9]+:	ff 25 ([0-9a-f]{2} ){4}[ 	]+jmpq   \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <_GLOBAL_OFFSET_TABLE_\+0x10>
  +[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
  +[a-f0-9]+:	68 00 00 00 00       	pushq  \$0x0
- +[a-f0-9]+:	e9 e2 ff ff ff       	jmpq   160 <.plt>
+ +[a-f0-9]+:	e9 e2 ff ff ff       	jmpq   [a-f0-9]+ <.plt>
  +[a-f0-9]+:	66 90                	xchg   %ax,%ax
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
  +[a-f0-9]+:	68 01 00 00 00       	pushq  \$0x1
- +[a-f0-9]+:	e9 d2 ff ff ff       	jmpq   160 <.plt>
+ +[a-f0-9]+:	e9 d2 ff ff ff       	jmpq   [a-f0-9]+ <.plt>
  +[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 Disassembly of section .plt.sec:
 
-0+190 <bar1@plt>:
+[a-f0-9]+ <bar1@plt>:
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
- +[a-f0-9]+:	ff 25 3e 01 20 00    	jmpq   \*0x20013e\(%rip\)        # 2002d8 <bar1>
+ +[a-f0-9]+:	ff 25 ([0-9a-f]{2} ){4}[ 	]+jmpq   \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <bar1>
  +[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
 
-0+1a0 <bar2@plt>:
+[a-f0-9]+ <bar2@plt>:
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
- +[a-f0-9]+:	ff 25 36 01 20 00    	jmpq   \*0x200136\(%rip\)        # 2002e0 <bar2>
+ +[a-f0-9]+:	ff 25 ([0-9a-f]{2} ){4}[ 	]+jmpq   \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <bar2>
  +[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
 
 Disassembly of section .text:
 
-0+1b0 <foo>:
+[a-f0-9]+ <foo>:
  +[a-f0-9]+:	48 83 ec 08          	sub    \$0x8,%rsp
- +[a-f0-9]+:	e8 e7 ff ff ff       	callq  1a0 <bar2@plt>
+ +[a-f0-9]+:	e8 e7 ff ff ff       	callq  [a-f0-9]+ <bar2@plt>
  +[a-f0-9]+:	48 83 c4 08          	add    \$0x8,%rsp
- +[a-f0-9]+:	e9 ce ff ff ff       	jmpq   190 <bar1@plt>
+ +[a-f0-9]+:	e9 ce ff ff ff       	jmpq   [a-f0-9]+ <bar1@plt>
 #pass
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-1.d b/ld/testsuite/ld-x86-64/ibt-plt-1.d
index 5a9dcb146e..a4064c6881 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-1.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-1.d
@@ -8,36 +8,36 @@
 
 Disassembly of section .plt:
 
-0+220 <.plt>:
- +[a-f0-9]+:	ff 35 ea 01 20 00    	pushq  0x2001ea\(%rip\)        # 200410 <_GLOBAL_OFFSET_TABLE_\+0x8>
- +[a-f0-9]+:	f2 ff 25 eb 01 20 00 	bnd jmpq \*0x2001eb\(%rip\)        # 200418 <_GLOBAL_OFFSET_TABLE_\+0x10>
+[a-f0-9]+ <.plt>:
+ +[a-f0-9]+:	ff 35 ([0-9a-f]{2} ){4}[ 	]+pushq  0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <_GLOBAL_OFFSET_TABLE_\+0x8>
+ +[a-f0-9]+:	f2 ff 25 ([0-9a-f]{2} ){4}[ 	]+bnd jmpq \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <_GLOBAL_OFFSET_TABLE_\+0x10>
  +[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
  +[a-f0-9]+:	68 00 00 00 00       	pushq  \$0x0
- +[a-f0-9]+:	f2 e9 e1 ff ff ff    	bnd jmpq 220 <.plt>
+ +[a-f0-9]+:	f2 e9 e1 ff ff ff    	bnd jmpq [a-f0-9]+ <.plt>
  +[a-f0-9]+:	90                   	nop
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
  +[a-f0-9]+:	68 01 00 00 00       	pushq  \$0x1
- +[a-f0-9]+:	f2 e9 d1 ff ff ff    	bnd jmpq 220 <.plt>
+ +[a-f0-9]+:	f2 e9 d1 ff ff ff    	bnd jmpq [a-f0-9]+ <.plt>
  +[a-f0-9]+:	90                   	nop
 
 Disassembly of section .plt.sec:
 
-0+250 <bar1@plt>:
+[a-f0-9]+ <bar1@plt>:
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
- +[a-f0-9]+:	f2 ff 25 c5 01 20 00 	bnd jmpq \*0x2001c5\(%rip\)        # 200420 <bar1>
+ +[a-f0-9]+:	f2 ff 25 ([0-9a-f]{2} ){4}[ 	]+bnd jmpq \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <bar1>
  +[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
 
-0+260 <bar2@plt>:
+[a-f0-9]+ <bar2@plt>:
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
- +[a-f0-9]+:	f2 ff 25 bd 01 20 00 	bnd jmpq \*0x2001bd\(%rip\)        # 200428 <bar2>
+ +[a-f0-9]+:	f2 ff 25 ([0-9a-f]{2} ){4}[ 	]+bnd jmpq \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <bar2>
  +[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
 
 Disassembly of section .text:
 
-0+270 <foo>:
+[a-f0-9]+ <foo>:
  +[a-f0-9]+:	48 83 ec 08          	sub    \$0x8,%rsp
- +[a-f0-9]+:	e8 e7 ff ff ff       	callq  260 <bar2@plt>
+ +[a-f0-9]+:	e8 e7 ff ff ff       	callq  [a-f0-9]+ <bar2@plt>
  +[a-f0-9]+:	48 83 c4 08          	add    \$0x8,%rsp
- +[a-f0-9]+:	e9 ce ff ff ff       	jmpq   250 <bar1@plt>
+ +[a-f0-9]+:	e9 ce ff ff ff       	jmpq   [a-f0-9]+ <bar1@plt>
 #pass
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d
index e9f21b7252..50b8fb1b2a 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d
@@ -8,36 +8,36 @@
 
 Disassembly of section .plt:
 
-0+160 <.plt>:
- +[a-f0-9]+:	ff 35 62 01 20 00    	pushq  0x200162\(%rip\)        # 2002c8 <_GLOBAL_OFFSET_TABLE_\+0x8>
- +[a-f0-9]+:	ff 25 64 01 20 00    	jmpq   \*0x200164\(%rip\)        # 2002d0 <_GLOBAL_OFFSET_TABLE_\+0x10>
+[a-f0-9]+ <.plt>:
+ +[a-f0-9]+:	ff 35 ([0-9a-f]{2} ){4}[ 	]+pushq  0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <_GLOBAL_OFFSET_TABLE_\+0x8>
+ +[a-f0-9]+:	ff 25 ([0-9a-f]{2} ){4}[ 	]+jmpq   \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <_GLOBAL_OFFSET_TABLE_\+0x10>
  +[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
  +[a-f0-9]+:	68 00 00 00 00       	pushq  \$0x0
- +[a-f0-9]+:	e9 e2 ff ff ff       	jmpq   160 <.plt>
+ +[a-f0-9]+:	e9 e2 ff ff ff       	jmpq   [a-f0-9]+ <.plt>
  +[a-f0-9]+:	66 90                	xchg   %ax,%ax
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
  +[a-f0-9]+:	68 01 00 00 00       	pushq  \$0x1
- +[a-f0-9]+:	e9 d2 ff ff ff       	jmpq   160 <.plt>
+ +[a-f0-9]+:	e9 d2 ff ff ff       	jmpq   [a-f0-9]+ <.plt>
  +[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 Disassembly of section .plt.sec:
 
-0+190 <bar1@plt>:
+[a-f0-9]+ <bar1@plt>:
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
- +[a-f0-9]+:	ff 25 3e 01 20 00    	jmpq   \*0x20013e\(%rip\)        # 2002d8 <bar1>
+ +[a-f0-9]+:	ff 25 ([0-9a-f]{2} ){4}[ 	]+jmpq   \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <bar1>
  +[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
 
-0+1a0 <bar2@plt>:
+[a-f0-9]+ <bar2@plt>:
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
- +[a-f0-9]+:	ff 25 36 01 20 00    	jmpq   \*0x200136\(%rip\)        # 2002e0 <bar2>
+ +[a-f0-9]+:	ff 25 ([0-9a-f]{2} ){4}[ 	]+jmpq   \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <bar2>
  +[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
 
 Disassembly of section .text:
 
-0+1b0 <foo>:
+[a-f0-9]+ <foo>:
  +[a-f0-9]+:	48 83 ec 08          	sub    \$0x8,%rsp
- +[a-f0-9]+:	e8 e7 ff ff ff       	callq  1a0 <bar2@plt>
+ +[a-f0-9]+:	e8 e7 ff ff ff       	callq  [a-f0-9]+ <bar2@plt>
  +[a-f0-9]+:	48 83 c4 08          	add    \$0x8,%rsp
- +[a-f0-9]+:	e9 ce ff ff ff       	jmpq   190 <bar1@plt>
+ +[a-f0-9]+:	e9 ce ff ff ff       	jmpq   [a-f0-9]+ <bar1@plt>
 #pass
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2c.d b/ld/testsuite/ld-x86-64/ibt-plt-2c.d
index fe28d89300..ce1885ece2 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-2c.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-2c.d
@@ -8,36 +8,36 @@
 
 Disassembly of section .plt:
 
-0+220 <.plt>:
- +[a-f0-9]+:	ff 35 ea 01 20 00    	pushq  0x2001ea\(%rip\)        # 200410 <_GLOBAL_OFFSET_TABLE_\+0x8>
- +[a-f0-9]+:	f2 ff 25 eb 01 20 00 	bnd jmpq \*0x2001eb\(%rip\)        # 200418 <_GLOBAL_OFFSET_TABLE_\+0x10>
+[a-f0-9]+ <.plt>:
+ +[a-f0-9]+:	ff 35 ([0-9a-f]{2} ){4}[ 	]+pushq  0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <_GLOBAL_OFFSET_TABLE_\+0x8>
+ +[a-f0-9]+:	f2 ff 25 ([0-9a-f]{2} ){4}[ 	]+bnd jmpq \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <_GLOBAL_OFFSET_TABLE_\+0x10>
  +[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
  +[a-f0-9]+:	68 00 00 00 00       	pushq  \$0x0
- +[a-f0-9]+:	f2 e9 e1 ff ff ff    	bnd jmpq 220 <.plt>
+ +[a-f0-9]+:	f2 e9 e1 ff ff ff    	bnd jmpq [a-f0-9]+ <.plt>
  +[a-f0-9]+:	90                   	nop
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
  +[a-f0-9]+:	68 01 00 00 00       	pushq  \$0x1
- +[a-f0-9]+:	f2 e9 d1 ff ff ff    	bnd jmpq 220 <.plt>
+ +[a-f0-9]+:	f2 e9 d1 ff ff ff    	bnd jmpq [a-f0-9]+ <.plt>
  +[a-f0-9]+:	90                   	nop
 
 Disassembly of section .plt.sec:
 
-0+250 <bar1@plt>:
+[a-f0-9]+ <bar1@plt>:
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
- +[a-f0-9]+:	f2 ff 25 c5 01 20 00 	bnd jmpq \*0x2001c5\(%rip\)        # 200420 <bar1>
+ +[a-f0-9]+:	f2 ff 25 ([0-9a-f]{2} ){4}[ 	]+bnd jmpq \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <bar1>
  +[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
 
-0+260 <bar2@plt>:
+[a-f0-9]+ <bar2@plt>:
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
- +[a-f0-9]+:	f2 ff 25 bd 01 20 00 	bnd jmpq \*0x2001bd\(%rip\)        # 200428 <bar2>
+ +[a-f0-9]+:	f2 ff 25 ([0-9a-f]{2} ){4}[ 	]+bnd jmpq \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <bar2>
  +[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
 
 Disassembly of section .text:
 
-0+270 <foo>:
+[a-f0-9]+ <foo>:
  +[a-f0-9]+:	48 83 ec 08          	sub    \$0x8,%rsp
- +[a-f0-9]+:	e8 e7 ff ff ff       	callq  260 <bar2@plt>
+ +[a-f0-9]+:	e8 e7 ff ff ff       	callq  [a-f0-9]+ <bar2@plt>
  +[a-f0-9]+:	48 83 c4 08          	add    \$0x8,%rsp
- +[a-f0-9]+:	e9 ce ff ff ff       	jmpq   250 <bar1@plt>
+ +[a-f0-9]+:	e9 ce ff ff ff       	jmpq   [a-f0-9]+ <bar1@plt>
 #pass
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2d-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-2d-x32.d
index 34e9f1cd12..8ece382c0b 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-2d-x32.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-2d-x32.d
@@ -18,21 +18,21 @@ Contents of the .eh_frame section:
   DW_CFA_nop
   DW_CFA_nop
 
-0+18 00000014 0000001c FDE cie=00000000 pc=000001b0..000001c2
-  DW_CFA_advance_loc: 4 to 000001b4
+0+18 00000014 0000001c FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
+  DW_CFA_advance_loc: 4 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 16
-  DW_CFA_advance_loc: 9 to 000001bd
+  DW_CFA_advance_loc: 9 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 8
   DW_CFA_nop
 
-0+30 00000020 00000034 FDE cie=00000000 pc=00000160..00000190
+0+30 00000020 00000034 FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
   DW_CFA_def_cfa_offset: 16
-  DW_CFA_advance_loc: 6 to 00000166
+  DW_CFA_advance_loc: 6 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 24
-  DW_CFA_advance_loc: 10 to 00000170
+  DW_CFA_advance_loc: 10 to [a-f0-9]+
   DW_CFA_def_cfa_expression \(DW_OP_breg7 \(rsp\): 8; DW_OP_breg16 \(rip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit9; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus\)
 
-0+54 00000010 00000058 FDE cie=00000000 pc=00000190..000001b0
+0+54 00000010 00000058 FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2d.d b/ld/testsuite/ld-x86-64/ibt-plt-2d.d
index 93cc26f3e7..dac86af946 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-2d.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-2d.d
@@ -18,25 +18,25 @@ Contents of the .eh_frame section:
   DW_CFA_nop
   DW_CFA_nop
 
-0+18 0000000000000014 0000001c FDE cie=00000000 pc=0000000000000270..0000000000000282
-  DW_CFA_advance_loc: 4 to 0000000000000274
+0+18 0000000000000014 0000001c FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
+  DW_CFA_advance_loc: 4 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 16
-  DW_CFA_advance_loc: 9 to 000000000000027d
+  DW_CFA_advance_loc: 9 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 8
   DW_CFA_nop
 
-0+30 0000000000000024 00000034 FDE cie=00000000 pc=0000000000000220..0000000000000250
+0+30 0000000000000024 00000034 FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
   DW_CFA_def_cfa_offset: 16
-  DW_CFA_advance_loc: 6 to 0000000000000226
+  DW_CFA_advance_loc: 6 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 24
-  DW_CFA_advance_loc: 10 to 0000000000000230
+  DW_CFA_advance_loc: 10 to [a-f0-9]+
   DW_CFA_def_cfa_expression \(DW_OP_breg7 \(rsp\): 8; DW_OP_breg16 \(rip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit10; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus\)
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop
 
-0+58 0000000000000010 0000005c FDE cie=00000000 pc=0000000000000250..0000000000000270
+0+58 0000000000000010 0000005c FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d
index 37f9182e68..c1c5ac41f7 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d
@@ -8,36 +8,36 @@
 
 Disassembly of section .plt:
 
-0+160 <.plt>:
- +[a-f0-9]+:	ff 35 62 01 20 00    	pushq  0x200162\(%rip\)        # 2002c8 <_GLOBAL_OFFSET_TABLE_\+0x8>
- +[a-f0-9]+:	ff 25 64 01 20 00    	jmpq   \*0x200164\(%rip\)        # 2002d0 <_GLOBAL_OFFSET_TABLE_\+0x10>
+[a-f0-9]+ <.plt>:
+ +[a-f0-9]+:	ff 35 ([0-9a-f]{2} ){4}[ 	]+pushq  0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <_GLOBAL_OFFSET_TABLE_\+0x8>
+ +[a-f0-9]+:	ff 25 ([0-9a-f]{2} ){4}[ 	]+jmpq   \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <_GLOBAL_OFFSET_TABLE_\+0x10>
  +[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
  +[a-f0-9]+:	68 00 00 00 00       	pushq  \$0x0
- +[a-f0-9]+:	e9 e2 ff ff ff       	jmpq   160 <.plt>
+ +[a-f0-9]+:	e9 e2 ff ff ff       	jmpq   [a-f0-9]+ <.plt>
  +[a-f0-9]+:	66 90                	xchg   %ax,%ax
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
  +[a-f0-9]+:	68 01 00 00 00       	pushq  \$0x1
- +[a-f0-9]+:	e9 d2 ff ff ff       	jmpq   160 <.plt>
+ +[a-f0-9]+:	e9 d2 ff ff ff       	jmpq   [a-f0-9]+ <.plt>
  +[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 Disassembly of section .plt.sec:
 
-0+190 <bar1@plt>:
+[a-f0-9]+ <bar1@plt>:
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
- +[a-f0-9]+:	ff 25 3e 01 20 00    	jmpq   \*0x20013e\(%rip\)        # 2002d8 <bar1>
+ +[a-f0-9]+:	ff 25 ([0-9a-f]{2} ){4}[ 	]+jmpq   \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <bar1>
  +[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
 
-0+1a0 <bar2@plt>:
+[a-f0-9]+ <bar2@plt>:
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
- +[a-f0-9]+:	ff 25 36 01 20 00    	jmpq   \*0x200136\(%rip\)        # 2002e0 <bar2>
+ +[a-f0-9]+:	ff 25 ([0-9a-f]{2} ){4}[ 	]+jmpq   \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <bar2>
  +[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
 
 Disassembly of section .text:
 
-0+1b0 <foo>:
+[a-f0-9]+ <foo>:
  +[a-f0-9]+:	48 83 ec 08          	sub    \$0x8,%rsp
- +[a-f0-9]+:	e8 e7 ff ff ff       	callq  1a0 <bar2@plt>
+ +[a-f0-9]+:	e8 e7 ff ff ff       	callq  [a-f0-9]+ <bar2@plt>
  +[a-f0-9]+:	48 83 c4 08          	add    \$0x8,%rsp
- +[a-f0-9]+:	e9 ce ff ff ff       	jmpq   190 <bar1@plt>
+ +[a-f0-9]+:	e9 ce ff ff ff       	jmpq   [a-f0-9]+ <bar1@plt>
 #pass
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3c.d b/ld/testsuite/ld-x86-64/ibt-plt-3c.d
index 4122452510..fcb8cb9f37 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-3c.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-3c.d
@@ -8,36 +8,36 @@
 
 Disassembly of section .plt:
 
-0+220 <.plt>:
- +[a-f0-9]+:	ff 35 ea 01 20 00    	pushq  0x2001ea\(%rip\)        # 200410 <_GLOBAL_OFFSET_TABLE_\+0x8>
- +[a-f0-9]+:	f2 ff 25 eb 01 20 00 	bnd jmpq \*0x2001eb\(%rip\)        # 200418 <_GLOBAL_OFFSET_TABLE_\+0x10>
+[a-f0-9]+ <.plt>:
+ +[a-f0-9]+:	ff 35 ([0-9a-f]{2} ){4}[ 	]+pushq  0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <_GLOBAL_OFFSET_TABLE_\+0x8>
+ +[a-f0-9]+:	f2 ff 25 ([0-9a-f]{2} ){4}[ 	]+bnd jmpq \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <_GLOBAL_OFFSET_TABLE_\+0x10>
  +[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
  +[a-f0-9]+:	68 00 00 00 00       	pushq  \$0x0
- +[a-f0-9]+:	f2 e9 e1 ff ff ff    	bnd jmpq 220 <.plt>
+ +[a-f0-9]+:	f2 e9 e1 ff ff ff    	bnd jmpq [a-f0-9]+ <.plt>
  +[a-f0-9]+:	90                   	nop
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
  +[a-f0-9]+:	68 01 00 00 00       	pushq  \$0x1
- +[a-f0-9]+:	f2 e9 d1 ff ff ff    	bnd jmpq 220 <.plt>
+ +[a-f0-9]+:	f2 e9 d1 ff ff ff    	bnd jmpq [a-f0-9]+ <.plt>
  +[a-f0-9]+:	90                   	nop
 
 Disassembly of section .plt.sec:
 
-0+250 <bar1@plt>:
+[a-f0-9]+ <bar1@plt>:
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
- +[a-f0-9]+:	f2 ff 25 c5 01 20 00 	bnd jmpq \*0x2001c5\(%rip\)        # 200420 <bar1>
+ +[a-f0-9]+:	f2 ff 25 ([0-9a-f]{2} ){4}[ 	]+bnd jmpq \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <bar1>
  +[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
 
-0+260 <bar2@plt>:
+[a-f0-9]+ <bar2@plt>:
  +[a-f0-9]+:	f3 0f 1e fa          	endbr64 
- +[a-f0-9]+:	f2 ff 25 bd 01 20 00 	bnd jmpq \*0x2001bd\(%rip\)        # 200428 <bar2>
+ +[a-f0-9]+:	f2 ff 25 ([0-9a-f]{2} ){4}[ 	]+bnd jmpq \*0x[a-f0-9]+\(%rip\)        # [a-f0-9]+ <bar2>
  +[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
 
 Disassembly of section .text:
 
-0+270 <foo>:
+[a-f0-9]+ <foo>:
  +[a-f0-9]+:	48 83 ec 08          	sub    \$0x8,%rsp
- +[a-f0-9]+:	e8 e7 ff ff ff       	callq  260 <bar2@plt>
+ +[a-f0-9]+:	e8 e7 ff ff ff       	callq  [a-f0-9]+ <bar2@plt>
  +[a-f0-9]+:	48 83 c4 08          	add    \$0x8,%rsp
- +[a-f0-9]+:	e9 ce ff ff ff       	jmpq   250 <bar1@plt>
+ +[a-f0-9]+:	e9 ce ff ff ff       	jmpq   [a-f0-9]+ <bar1@plt>
 #pass
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3d-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-3d-x32.d
index b6130a40e4..480a96a1c1 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-3d-x32.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-3d-x32.d
@@ -18,21 +18,21 @@ Contents of the .eh_frame section:
   DW_CFA_nop
   DW_CFA_nop
 
-0+18 00000014 0000001c FDE cie=00000000 pc=000001b0..000001c2
-  DW_CFA_advance_loc: 4 to 000001b4
+0+18 00000014 0000001c FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
+  DW_CFA_advance_loc: 4 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 16
-  DW_CFA_advance_loc: 9 to 000001bd
+  DW_CFA_advance_loc: 9 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 8
   DW_CFA_nop
 
-0+30 00000020 00000034 FDE cie=00000000 pc=00000160..00000190
+0+30 00000020 00000034 FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
   DW_CFA_def_cfa_offset: 16
-  DW_CFA_advance_loc: 6 to 00000166
+  DW_CFA_advance_loc: 6 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 24
-  DW_CFA_advance_loc: 10 to 00000170
+  DW_CFA_advance_loc: 10 to [a-f0-9]+
   DW_CFA_def_cfa_expression \(DW_OP_breg7 \(rsp\): 8; DW_OP_breg16 \(rip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit9; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus\)
 
-0+54 00000010 00000058 FDE cie=00000000 pc=00000190..000001b0
+0+54 00000010 00000058 FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop
diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3d.d b/ld/testsuite/ld-x86-64/ibt-plt-3d.d
index 2bf9e5de68..0278754da7 100644
--- a/ld/testsuite/ld-x86-64/ibt-plt-3d.d
+++ b/ld/testsuite/ld-x86-64/ibt-plt-3d.d
@@ -18,25 +18,25 @@ Contents of the .eh_frame section:
   DW_CFA_nop
   DW_CFA_nop
 
-0+18 0000000000000014 0000001c FDE cie=00000000 pc=0000000000000270..0000000000000282
-  DW_CFA_advance_loc: 4 to 0000000000000274
+0+18 0000000000000014 0000001c FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
+  DW_CFA_advance_loc: 4 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 16
-  DW_CFA_advance_loc: 9 to 000000000000027d
+  DW_CFA_advance_loc: 9 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 8
   DW_CFA_nop
 
-0+30 0000000000000024 00000034 FDE cie=00000000 pc=0000000000000220..0000000000000250
+0+30 0000000000000024 00000034 FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
   DW_CFA_def_cfa_offset: 16
-  DW_CFA_advance_loc: 6 to 0000000000000226
+  DW_CFA_advance_loc: 6 to [a-f0-9]+
   DW_CFA_def_cfa_offset: 24
-  DW_CFA_advance_loc: 10 to 0000000000000230
+  DW_CFA_advance_loc: 10 to [a-f0-9]+
   DW_CFA_def_cfa_expression \(DW_OP_breg7 \(rsp\): 8; DW_OP_breg16 \(rip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit10; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus\)
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop
 
-0+58 0000000000000010 0000005c FDE cie=00000000 pc=0000000000000250..0000000000000270
+0+58 0000000000000010 0000005c FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop
diff --git a/ld/testsuite/ld-x86-64/pr23372c-x32.d b/ld/testsuite/ld-x86-64/pr23372c-x32.d
index efd6e84aa2..4d56e0d6b5 100644
--- a/ld/testsuite/ld-x86-64/pr23372c-x32.d
+++ b/ld/testsuite/ld-x86-64/pr23372c-x32.d
@@ -7,4 +7,4 @@
 Displaying notes found in: .note.gnu.property
   Owner                 Data size	Description
   GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: 
+      Properties: x86 ISA used: <None>
diff --git a/ld/testsuite/ld-x86-64/pr23372c.d b/ld/testsuite/ld-x86-64/pr23372c.d
index f56859a014..358a9b472a 100644
--- a/ld/testsuite/ld-x86-64/pr23372c.d
+++ b/ld/testsuite/ld-x86-64/pr23372c.d
@@ -7,4 +7,4 @@
 Displaying notes found in: .note.gnu.property
   Owner                 Data size	Description
   GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: 
+      Properties: x86 ISA used: <None>
diff --git a/ld/testsuite/ld-x86-64/property-x86-5a.s b/ld/testsuite/ld-x86-64/property-x86-5a.s
index 7b5b823e12..990c4683e6 100644
--- a/ld/testsuite/ld-x86-64/property-x86-5a.s
+++ b/ld/testsuite/ld-x86-64/property-x86-5a.s
@@ -41,8 +41,7 @@ _start:
 	.long 0xc0010000	/* pr_type.  */
 	.long 5f - 4f		/* pr_datasz.  */
 4:
-	/* GNU_PROPERTY_X86_UINT32_VALID */
-	.long 0x80000000
+	.long 0x0
 5:
 .ifdef __64_bit__
 	.p2align 3
diff --git a/ld/testsuite/ld-x86-64/property-x86-5b.s b/ld/testsuite/ld-x86-64/property-x86-5b.s
index 8857c11496..1f90dfc9f3 100644
--- a/ld/testsuite/ld-x86-64/property-x86-5b.s
+++ b/ld/testsuite/ld-x86-64/property-x86-5b.s
@@ -20,8 +20,7 @@
 	.long 0xc0010000	/* pr_type.  */
 	.long 5f - 4f		/* pr_datasz.  */
 4:
-	/* GNU_PROPERTY_X86_UINT32_VALID */
-	.long 0x80000000
+	.long 0x0
 5:
 .ifdef __64_bit__
 	.p2align 3
-- 
2.19.2


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