[BFD, AArch64] Fix PT_GNU_PROPERTY alignment issue
If the new GNU property section was being created by the linker (this will happen only if none of the inputs have any GNU property section but the command line to the linker forces a bti with --force-bti), the alignment of the section and hence the program header of PT_GNU_PROPERTY type was not being set correctly. This patch fixes this issue. bfd/ChangeLog: 2019-06-06 Sudakshina Das <sudi.das@arm.com> * elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Set alignment of the new gnu property section. ld/ChangeLog: 2019-06-06 Sudakshina Das <sudi.das@arm.com> * testsuite/ld-aarch64/aarch64-elf.exp: Add new tests. * testsuite/ld-aarch64/property-bti-pac4-a.d: New test. * testsuite/ld-aarch64/property-bti-pac4-b.d: New test. * testsuite/ld-aarch64/property-bti-pac4.s: New test.
This commit is contained in:
parent
8bf6d176b0
commit
237df8fe18
@ -1,3 +1,8 @@
|
||||
2019-06-06 Sudakshina Das <sudi.das@arm.com>
|
||||
|
||||
* elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Set
|
||||
alignment of the new gnu property section.
|
||||
|
||||
2019-06-06 Sudakshina Das <sudi.das@arm.com>
|
||||
|
||||
* bfd-in.h: Change comment.
|
||||
|
@ -695,6 +695,7 @@ _bfd_aarch64_elf_link_setup_gnu_properties (struct bfd_link_info *info,
|
||||
bfd *pbfd;
|
||||
bfd *ebfd = NULL;
|
||||
elf_property *prop;
|
||||
unsigned align;
|
||||
|
||||
uint32_t gnu_prop = *gprop;
|
||||
|
||||
@ -743,6 +744,13 @@ _bfd_aarch64_elf_link_setup_gnu_properties (struct bfd_link_info *info,
|
||||
info->callbacks->einfo (
|
||||
_("%F%P: failed to create GNU property section\n"));
|
||||
|
||||
align = (bfd_get_mach (ebfd) & bfd_mach_aarch64_ilp32) ? 2 : 3;
|
||||
if (!bfd_set_section_alignment (ebfd, sec, align))
|
||||
{
|
||||
info->callbacks->einfo (_("%F%pA: failed to align section\n"),
|
||||
sec);
|
||||
}
|
||||
|
||||
elf_section_type (sec) = SHT_NOTE;
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,10 @@
|
||||
2019-06-06 Sudakshina Das <sudi.das@arm.com>
|
||||
|
||||
* testsuite/ld-aarch64/aarch64-elf.exp: Add new tests.
|
||||
* testsuite/ld-aarch64/property-bti-pac4-a.d: New test.
|
||||
* testsuite/ld-aarch64/property-bti-pac4-b.d: New test.
|
||||
* testsuite/ld-aarch64/property-bti-pac4.s: New test.
|
||||
|
||||
2019-06-06 Sudakshina Das <sudi.das@arm.com>
|
||||
|
||||
* NEWS: Update options names.
|
||||
|
@ -381,6 +381,8 @@ run_dump_test_lp64 "pie-bind-locally"
|
||||
run_dump_test "property-bti-pac1"
|
||||
run_dump_test "property-bti-pac2"
|
||||
run_dump_test "property-bti-pac3"
|
||||
run_dump_test "property-bti-pac4-a"
|
||||
run_dump_test "property-bti-pac4-b"
|
||||
run_dump_test "bti-plt-1"
|
||||
run_dump_test "bti-plt-2"
|
||||
|
||||
|
11
ld/testsuite/ld-aarch64/property-bti-pac4-a.d
Normal file
11
ld/testsuite/ld-aarch64/property-bti-pac4-a.d
Normal file
@ -0,0 +1,11 @@
|
||||
#name: PT_GNU_PROPERTY alignment
|
||||
#source: property-bti-pac4.s
|
||||
#as: -mabi=lp64
|
||||
#ld: -z force-bti -e main
|
||||
#readelf: -l --wide
|
||||
#target: *linux*
|
||||
#warning: .*property-bti-pac4.*: warning: BTI turned on by -z force-bti.*
|
||||
|
||||
#...
|
||||
GNU_PROPERTY .* +0x8
|
||||
#...
|
11
ld/testsuite/ld-aarch64/property-bti-pac4-b.d
Normal file
11
ld/testsuite/ld-aarch64/property-bti-pac4-b.d
Normal file
@ -0,0 +1,11 @@
|
||||
#name: PT_GNU_PROPERTY alignment ILP32
|
||||
#source: property-bti-pac4.s
|
||||
#as: -mabi=ilp32
|
||||
#ld: -m [aarch64_choose_ilp32_emul] -z force-bti -e main
|
||||
#readelf: -l --wide
|
||||
#target: *linux*
|
||||
#warning: .*property-bti-pac4.*: warning: BTI turned on by -z force-bti.*
|
||||
|
||||
#...
|
||||
GNU_PROPERTY .* +0x4
|
||||
#...
|
21
ld/testsuite/ld-aarch64/property-bti-pac4.s
Normal file
21
ld/testsuite/ld-aarch64/property-bti-pac4.s
Normal file
@ -0,0 +1,21 @@
|
||||
.arch armv8-a
|
||||
.file "t.c"
|
||||
.text
|
||||
.align 2
|
||||
.p2align 3,,7
|
||||
.global f
|
||||
.type f, %function
|
||||
f:
|
||||
add w0, w0, 1
|
||||
ret
|
||||
.size f, .-f
|
||||
.section .text.startup,"ax",@progbits
|
||||
.align 2
|
||||
.p2align 3,,7
|
||||
.global main
|
||||
.type main, %function
|
||||
main:
|
||||
mov w0, 6
|
||||
ret
|
||||
.size main, .-main
|
||||
.section .note.GNU-stack,"",@progbits
|
Loading…
Reference in New Issue
Block a user