elf: Add PT_GNU_PROPERTY segment type
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 14 Dec 2018 12:55:08 +0000 (04:55 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 14 Dec 2018 12:55:34 +0000 (04:55 -0800)
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/elf.exp: Run PR ld/23900 test.
* testsuite/ld-elf/pr23900-1-32.rd: New file.
* testsuite/ld-elf/pr23900-1-64.rd: Likewise.
* testsuite/ld-elf/pr23900-1.d: Likewise.
* testsuite/ld-elf/pr23900-1.s: 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.

43 files changed:
bfd/ChangeLog
bfd/elf.c
bfd/elfxx-x86.c
binutils/ChangeLog
binutils/readelf.c
binutils/testsuite/binutils-all/i386/empty.d
binutils/testsuite/binutils-all/i386/pr21231b.s
binutils/testsuite/binutils-all/x86-64/empty-x32.d
binutils/testsuite/binutils-all/x86-64/empty.d
binutils/testsuite/binutils-all/x86-64/pr21231b.s
gas/ChangeLog
gas/config/tc-i386.c
gas/testsuite/gas/i386/property-1.s
include/ChangeLog
include/elf/common.h
ld/ChangeLog
ld/testsuite/ld-elf/elf.exp
ld/testsuite/ld-elf/pr23900-1-32.rd [new file with mode: 0644]
ld/testsuite/ld-elf/pr23900-1-64.rd [new file with mode: 0644]
ld/testsuite/ld-elf/pr23900-1.d [new file with mode: 0644]
ld/testsuite/ld-elf/pr23900-1.s [new file with mode: 0644]
ld/testsuite/ld-elf/pr23900-2.s [new file with mode: 0644]
ld/testsuite/ld-elf/pr23900-2a.d [new file with mode: 0644]
ld/testsuite/ld-elf/pr23900-2b.d [new file with mode: 0644]
ld/testsuite/ld-i386/ibt-plt-1.d
ld/testsuite/ld-i386/ibt-plt-2c.d
ld/testsuite/ld-i386/ibt-plt-2d.d
ld/testsuite/ld-i386/ibt-plt-3d.d
ld/testsuite/ld-i386/pr23372c.d
ld/testsuite/ld-x86-64/ibt-plt-1-x32.d
ld/testsuite/ld-x86-64/ibt-plt-1.d
ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d
ld/testsuite/ld-x86-64/ibt-plt-2c.d
ld/testsuite/ld-x86-64/ibt-plt-2d-x32.d
ld/testsuite/ld-x86-64/ibt-plt-2d.d
ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d
ld/testsuite/ld-x86-64/ibt-plt-3c.d
ld/testsuite/ld-x86-64/ibt-plt-3d-x32.d
ld/testsuite/ld-x86-64/ibt-plt-3d.d
ld/testsuite/ld-x86-64/pr23372c-x32.d
ld/testsuite/ld-x86-64/pr23372c.d
ld/testsuite/ld-x86-64/property-x86-5a.s
ld/testsuite/ld-x86-64/property-x86-5b.s

index 9acd28dc7ba46a3166b61483320ac54d908b17b4..7ddcf7efa25db6cdcb38036dd3b54e30828c555a 100644 (file)
@@ -1,3 +1,13 @@
+2018-12-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       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.
+
 2018-12-11  Max Filippov  <jcmvbkbc@gmail.com>
 
        * elf32-xtensa.c (elf_xtensa_do_reloc): Limit const16 opcode
index 79a76bea2f3c549cfb59156aab747dc0977d43eb..688429b73e44efa3d3854c87165e7517925ddccc 100644 (file)
--- 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);
index eaa1a82b07aee024b197ac4ecf5ab4cbafec34a6..a58522deda1b76f92d9974f9fa402d3207c14025 100644 (file)
@@ -2944,8 +2944,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;
 
@@ -2973,11 +2974,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)
index 12d480215ce80f83e0aeeb92eeb767456bbb688b..3a251e9760502b9af58a842b9c903163a93d6ddc 100644 (file)
@@ -1,3 +1,19 @@
+2018-12-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       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.
+
 2018-12-13  Sam Tebbs  <sam.tebbs@arm.com>
 
        * dwarf.c (read_cie):  Add check for 'B'.
index 9969e46ea4ee6a7739ffad2dceda8e048a8e7098..dd84a1996fb130e1b742900c2d241938be627257 100644 (file)
@@ -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)
@@ -17048,13 +17049,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)
     {
@@ -17147,13 +17146,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)
     {
@@ -17180,13 +17177,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)
     {
@@ -17282,13 +17277,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;
 
index 809280f73f87178fc356100b6665ed10a63cb345..3c0e860a5eed2deffea74b102b660c940f78d2fd 100644 (file)
@@ -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
index 793e2824713ffc40158da9f04e380a8097578a0d..1fd2575e2a653e0284e6ef40c0a81e2a25cd1f89 100644 (file)
@@ -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 */
index f6503746e83bc13a733cabdccd0d88f3f5d8aaa5..32cc55e34941461bfc46fbb9a746d9072c53fe4d 100644 (file)
@@ -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
index 30a2ea48308213c038b22c78c6fb8fb1476ff56f..3cc52ba2e8bc271dbe0e5e488b371f5b07428463 100644 (file)
@@ -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
index add9227977fd2e03150e3d513d20c37e6a03b79f..8fefebdb2ff44476d572592eb070a37c56a84051 100644 (file)
@@ -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 */
index bac853da9827b045bd163e62dcba1406b72c7ee3..00159202d1d2e2b803cc01ea70dea441b935888f 100644 (file)
@@ -1,3 +1,11 @@
+2018-12-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       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.
+
 2018-12-13  Jeff Law  <law@redhat.com>
 
        * dw2gencfi.c (output_cie): Add missing semicolon in last
index 4fe9f0dda69abadb089395e0934b205b2e0582a2..8e25e6c7a04eec60a11aa1224852236d5d618285 100644 (file)
@@ -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:
index 8857c11496afe94eb14f523f2c95c524817109bb..4c2938044790e41d1939c796711b736b4fa861bb 100644 (file)
@@ -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
index 6ac2dd13e65f1392c55c47e56716d11737536308..5e6ed7e62b198de38ec768c9d989f0705822724d 100644 (file)
@@ -1,3 +1,9 @@
+2018-12-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/23900
+       * elf/common.h (PT_GNU_PROPERTY): New.
+       (GNU_PROPERTY_X86_UINT32_VALID): Removed.
+
 2018-12-11  Nick Clifton  <nickc@redhat.com>
 
        PR 88409
index da9ea036f49fa97a1ef5e827b34dbace111a9fa0..1b3d713689d8dd4934ed770b0227eece0ee00550 100644 (file)
 #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
 #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)
 
index f0324514074ba5ac00ea8ae5f018273dd074ac27..becd56058ce4fe8a467a38995f52b15cf7c37e95 100644 (file)
@@ -1,3 +1,38 @@
+2018-12-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/23900
+       * testsuite/ld-elf/elf.exp: Run PR ld/23900 test.
+       * testsuite/ld-elf/pr23900-1-32.rd: New file.
+       * testsuite/ld-elf/pr23900-1-64.rd: Likewise.
+       * testsuite/ld-elf/pr23900-1.d: Likewise.
+       * testsuite/ld-elf/pr23900-1.s: 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.
+
 2018-12-11  H.J. Lu  <hongjiu.lu@intel.com>
 
        * scripttempl/elf32xc16x.sc: Fix a typo.
index 96ee01f9b1618e6349f2271be5330db910f86bdd..3432f417208588074dab3be3eb4a7d85a521e65a 100644 (file)
@@ -75,8 +75,10 @@ run_ld_link_tests [list \
 
 if [is_elf64 tmpdir/symbol3w.a] {
     set ASFLAGS "$ASFLAGS --defsym ALIGN=3"
+    set pr23900_1_exp "pr23900-1-64.rd"
 } else {
     set ASFLAGS "$ASFLAGS --defsym ALIGN=2"
+    set pr23900_1_exp "pr23900-1-32.rd"
 }
 
 
@@ -144,14 +146,36 @@ if { [check_gc_sections_available] && ![istarget "v850-*-*"] } {
 if { [istarget *-*-*linux*]
      || [istarget *-*-nacl*]
      || [istarget *-*-gnu*] } {
-    run_ld_link_tests {
-       {"stack exec" "-z execstack" "" "" {stack.s}
-           {{readelf {-Wl} stack-exec.rd}} "stack-exec.exe"}
-       {"stack noexec" "-z noexecstack" "" "" {stack.s}
-           {{readelf {-Wl} stack-noexec.rd}} "stack-noexec.exe"}
-       {"stack size" "-z stack-size=0x123400" "" "" {stack.s}
-           {{readelf {-Wl} stack-size.rd}} "stack-size.exe"}
-    }
+    run_ld_link_tests [list \
+       [list "stack exec" \
+           "-z execstack" \
+           "" \
+           "" \
+           {stack.s} \
+           {{readelf {-Wl} stack-exec.rd}} \
+           "stack-exec.exe"] \
+       [list "stack noexec" \
+           "-z noexecstack" \
+           "" \
+           "" \
+           {stack.s} \
+           {{readelf {-Wl} stack-noexec.rd}} \
+           "stack-noexec.exe"] \
+       [list "stack size" \
+           "-z stack-size=0x123400" \
+           "" \
+           "" \
+           {stack.s} \
+           {{readelf {-Wl} stack-size.rd}} \
+           "stack-size.exe"] \
+       [list "PT_GNU_PROPERTY alignment" \
+           "" \
+           "" \
+           "" \
+           {pr23900-1.s} \
+           [list [list "readelf" {-Wl} $pr23900_1_exp]] \
+           "pr23900-1.exe"] \
+       ]
 }
 
 set LDFLAGS $old_ldflags
diff --git a/ld/testsuite/ld-elf/pr23900-1-32.rd b/ld/testsuite/ld-elf/pr23900-1-32.rd
new file mode 100644 (file)
index 0000000..953095a
--- /dev/null
@@ -0,0 +1,14 @@
+#source: pr23900-1.s
+#ld:
+#readelf: -l --wide
+#target: *-*-linux* *-*-gnu* *-*-nacl*
+
+#...
+  GNU_PROPERTY .* +0x4
+#...
+ +[0-9]+ +.*\ \.note\.gnu\.property .*
+#...
+ +[0-9]+ +\.note\.gnu\.property 
+#...
+ +[0-9]+ +\.note\.gnu\.property 
+#...
diff --git a/ld/testsuite/ld-elf/pr23900-1-64.rd b/ld/testsuite/ld-elf/pr23900-1-64.rd
new file mode 100644 (file)
index 0000000..62cd63c
--- /dev/null
@@ -0,0 +1,14 @@
+#source: pr23900-1.s
+#ld:
+#readelf: -l --wide
+#target: *-*-linux* *-*-gnu* *-*-nacl*
+
+#...
+  GNU_PROPERTY .* +0x8
+#...
+ +[0-9]+ +.*\ \.note\.gnu\.property .*
+#...
+ +[0-9]+ +\.note\.gnu\.property 
+#...
+ +[0-9]+ +\.note\.gnu\.property 
+#...
diff --git a/ld/testsuite/ld-elf/pr23900-1.d b/ld/testsuite/ld-elf/pr23900-1.d
new file mode 100644 (file)
index 0000000..2079c93
--- /dev/null
@@ -0,0 +1,8 @@
+#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-1.s b/ld/testsuite/ld-elf/pr23900-1.s
new file mode 100644 (file)
index 0000000..b0b54ed
--- /dev/null
@@ -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-2.s b/ld/testsuite/ld-elf/pr23900-2.s
new file mode 100644 (file)
index 0000000..cfff675
--- /dev/null
@@ -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 (file)
index 0000000..836606d
--- /dev/null
@@ -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 (file)
index 0000000..2aa04d7
--- /dev/null
@@ -0,0 +1,9 @@
+#source: pr23900-2.s
+#ld:
+#readelf: -l --wide
+#target: *-*-linux* *-*-gnu* *-*-nacl*
+
+#failif
+#...
+  GNU_PROPERTY .*
+#...
index 2a8e0438a1c84cadf8db0c1baad2bf777d6bcce9..beccbf7b2b5f950af17aa4918f9f70a47689c164 100644 (file)
@@ -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
index d71f34d27cf347f0d9155eeebb34aaeee18cda4f..7193034f789c47535315cc0a45c4776f23a89706 100644 (file)
@@ -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
index ec1a95ca4ccaa96aab0696b156d4c0bd17f69899..67260b855318ac77e929d2bee80ad7eb1b5235cb 100644 (file)
@@ -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
index 35742ca2d94ec65cd705303a6f7d8d7be400944e..42bd494c3e36e9d3743b59952223bc91e3b41a64 100644 (file)
@@ -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
index d5bcc4d7b2bac65a5d00862e25d2662e4b7f910c..58803ab4b89c500090b886b226426057ba3a4435 100644 (file)
@@ -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>
index 21568c9cf81ea7846738daebccc611bc0b2276f2..f0a2b92c295c05db8e4c6bdcda4292a2900805f9 100644 (file)
@@ -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
index 5a9dcb146e7ac7113c1eca677135700702be1123..a4064c68812f40f0fbafc1273006a6b0b3201b0a 100644 (file)
@@ -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
index e9f21b7252e00e41b2984e9058f75f9d6f45cc54..50b8fb1b2a7bb2b65b923a6e774774865007ec2d 100644 (file)
@@ -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
index fe28d893007d1889aeb08e7a487fca158e8f9ffc..ce1885ece2d48a70a46b7c65f01888242eec3037 100644 (file)
@@ -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
index 34e9f1cd12c2c0a8656bcfbc592bdd8a66c9b2ba..8ece382c0be8a85c37a2e031992e02a579382eca 100644 (file)
@@ -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
index 93cc26f3e7b8cada42fd6f364bed13df57aa62ee..dac86af946d2d6142cf74427ed7208c1e168677f 100644 (file)
@@ -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
index 37f9182e68b8dea774dac7fc165e8b80ec8e1cbc..c1c5ac41f78884648cdad53b4406c9c687fac555 100644 (file)
@@ -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
index 412245251099b10718bbb6bfa4b2b69b44769244..fcb8cb9f3780c277c0a487687111973efd6758e8 100644 (file)
@@ -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
index b6130a40e471150e13913d12d915d8bf319f997c..480a96a1c1fe04e481871bc14dbda33da8111ba8 100644 (file)
@@ -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
index 2bf9e5de68dd6aa6294cd0f408ff40a9d79a7f17..0278754da73b1ca0ca137900bc2f19b150ced50e 100644 (file)
@@ -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
index efd6e84aa2268ba5d2e503dac713ef16b7d24ded..4d56e0d6b554a6381efa0090de30880f21cc2b32 100644 (file)
@@ -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>
index f56859a014f4ae9fcedba280e62fb3a0fbe4c3db..358a9b472a81e08250a5592e6b7457d508b0f6ec 100644 (file)
@@ -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>
index 7b5b823e1287c57b7e7879e7c6e0c64a4123fa4b..990c4683e62670ee758e2817f5d8bb657bd4604a 100644 (file)
@@ -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
index 8857c11496afe94eb14f523f2c95c524817109bb..1f90dfc9f368a3362c8500d2ef65d749d95f4478 100644 (file)
@@ -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