mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-17 13:10:12 +08:00
i386/x32: Align .eh_frame section to 4 bytes
.eh_frame section covering PLT sections should be aligned to 4 bytes for i386 and x32. bfd/ * elf32-i386.c (elf_i386_check_relocs): Align .eh_frame section to 4 bytes. * elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Align .eh_frame section to 4 bytes for x32. (elf_x86_64_check_relocs): Likewise. ld/ * testsuite/ld-x86-64/pr20830b.d: Updated.
This commit is contained in:
parent
59a1e29d9e
commit
52b232b366
@ -1,3 +1,11 @@
|
||||
2017-01-10 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* elf32-i386.c (elf_i386_check_relocs): Align .eh_frame section
|
||||
to 4 bytes.
|
||||
* elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Align
|
||||
.eh_frame section to 4 bytes for x32.
|
||||
(elf_x86_64_check_relocs): Likewise.
|
||||
|
||||
2017-01-10 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/20830
|
||||
|
@ -2395,7 +2395,7 @@ do_size:
|
||||
if (htab->plt_got_eh_frame == NULL
|
||||
|| !bfd_set_section_alignment (htab->elf.dynobj,
|
||||
htab->plt_got_eh_frame,
|
||||
3))
|
||||
2))
|
||||
goto error_return;
|
||||
}
|
||||
}
|
||||
|
@ -1172,7 +1172,8 @@ elf_x86_64_create_dynamic_sections (bfd *dynobj,
|
||||
htab->plt_eh_frame
|
||||
= bfd_make_section_anyway_with_flags (dynobj, ".eh_frame", flags);
|
||||
if (htab->plt_eh_frame == NULL
|
||||
|| !bfd_set_section_alignment (dynobj, htab->plt_eh_frame, 3))
|
||||
|| !bfd_set_section_alignment (dynobj, htab->plt_eh_frame,
|
||||
ABI_64_P (dynobj) ? 3 : 2))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -2796,7 +2797,7 @@ do_size:
|
||||
if (htab->plt_got_eh_frame == NULL
|
||||
|| !bfd_set_section_alignment (htab->elf.dynobj,
|
||||
htab->plt_got_eh_frame,
|
||||
3))
|
||||
ABI_64_P (htab->elf.dynobj) ? 3 : 2))
|
||||
goto error_return;
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,7 @@
|
||||
2017-01-10 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* testsuite/ld-x86-64/pr20830b.d: Updated.
|
||||
|
||||
2017-01-10 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* emulparams/elf32_x86_64.sh (TINY_READONLY_SECTION): New.
|
||||
|
@ -26,20 +26,14 @@ Contents of the .eh_frame section:
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
0+2c ZERO terminator
|
||||
|
||||
|
||||
0+30 0000000000000020 00000034 FDE cie=00000000 pc=0000000000000170..0000000000000180
|
||||
0+2c 0000000000000020 00000030 FDE cie=00000000 pc=0000000000000170..0000000000000180
|
||||
DW_CFA_def_cfa_offset: 16
|
||||
DW_CFA_advance_loc: 6 to 0000000000000176
|
||||
DW_CFA_def_cfa_offset: 24
|
||||
DW_CFA_advance_loc: 10 to 0000000000000180
|
||||
DW_CFA_def_cfa_expression \(DW_OP_breg7 \(rsp\): 8; DW_OP_breg16 \(rip\): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit11; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus\)
|
||||
|
||||
0+54 ZERO terminator
|
||||
|
||||
|
||||
0+58 0000000000000010 0000005c FDE cie=00000000 pc=0000000000000180..0000000000000188
|
||||
0+50 0000000000000010 00000054 FDE cie=00000000 pc=0000000000000180..0000000000000188
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
Loading…
Reference in New Issue
Block a user