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/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.
This commit is contained in:
parent
0681fa5ee5
commit
0a59decbb8
43 changed files with 411 additions and 191 deletions
|
@ -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
|
||||
|
|
26
bfd/elf.c
26
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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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'.
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
35
ld/ChangeLog
35
ld/ChangeLog
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
14
ld/testsuite/ld-elf/pr23900-1-32.rd
Normal file
14
ld/testsuite/ld-elf/pr23900-1-32.rd
Normal file
|
@ -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
|
||||
#...
|
14
ld/testsuite/ld-elf/pr23900-1-64.rd
Normal file
14
ld/testsuite/ld-elf/pr23900-1-64.rd
Normal file
|
@ -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
|
||||
#...
|
8
ld/testsuite/ld-elf/pr23900-1.d
Normal file
8
ld/testsuite/ld-elf/pr23900-1.d
Normal file
|
@ -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
|
30
ld/testsuite/ld-elf/pr23900-1.s
Normal file
30
ld/testsuite/ld-elf/pr23900-1.s
Normal file
|
@ -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:
|
32
ld/testsuite/ld-elf/pr23900-2.s
Normal file
32
ld/testsuite/ld-elf/pr23900-2.s
Normal file
|
@ -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:
|
9
ld/testsuite/ld-elf/pr23900-2a.d
Normal file
9
ld/testsuite/ld-elf/pr23900-2a.d
Normal file
|
@ -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
|
9
ld/testsuite/ld-elf/pr23900-2b.d
Normal file
9
ld/testsuite/ld-elf/pr23900-2b.d
Normal file
|
@ -0,0 +1,9 @@
|
|||
#source: pr23900-2.s
|
||||
#ld:
|
||||
#readelf: -l --wide
|
||||
#target: *-*-linux* *-*-gnu* *-*-nacl*
|
||||
|
||||
#failif
|
||||
#...
|
||||
GNU_PROPERTY .*
|
||||
#...
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue