[PATCH, BFD, AArch64, x86] Improve warning for --force-bti.
Sudakshina Das
Sudi.Das@arm.com
Wed Apr 3 14:36:00 GMT 2019
Hi HJ
On 02/04/2019 13:31, H.J. Lu wrote:
> On Tue, Apr 2, 2019 at 2:05 AM Sudakshina Das <Sudi.Das@arm.com> wrote:
>>
>> Hi HJ
>>
>> On 01/04/2019 20:26, H.J. Lu wrote:
>>> On Thu, Mar 21, 2019 at 9:25 AM Sudakshina Das <Sudi.Das@arm.com> wrote:
>>>>
>>>> Hi Nick
>>>>
>>>> On 21/03/2019 15:14, Nick Clifton wrote:
>>>>> Hi Sudi,
>>>>>
>>>>>> *** bfd/ChangeLog ***
>>>>>>
>>>>>> 2019-xx-xx Sudakshina Das <sudi.das@arm.com>
>>>>>>
>>>>>> * elf-bfd.h (struct elf_backend_data): Add argument to
>>>>>> merge_gnu_properties.
>>>>>> * elf-properties.c (elf_merge_gnu_properties): Add argument to
>>>>>> itself and while calling bed->merge_gnu_properties.
>>>>>> (elf_merge_gnu_property_list): Update the calls for
>>>>>> elf_merge_gnu_properties.
>>>>>> * elfnn-aarch64.c (elfNN_aarch64_merge_gnu_properties): Update handling
>>>>>> of --force-bti warning and add argument.
>>>>>> * elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Add
>>>>>> warning.
>>>>>> * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Add argument.
>>>>>> * elfxx-x86.h (_bfd_x86_elf_merge_gnu_properties): Likewise in
>>>>>> declaration.
>>>>>>
>>>>>> *** ld/ChangeLog ***
>>>>>>
>>>>>> 2019-xx-xx Sudakshina Das <sudi.das@arm.com>
>>>>>>
>>>>>> * testsuite/ld-aarch64/aarch64-elf.exp: Add new test.
>>>>>> * testsuite/ld-aarch64/bti-plt-1.s: Add .ifdef for PAC note section.
>>>>>> * testsuite/ld-aarch64/bti-plt-6.d: Update warning.
>>>>>> * testsuite/ld-aarch64/bti-plt-7.d: Likewise.
>>>>>> * testsuite/ld-aarch64/bti-warn.d: New test.
>>>>>
>>>>> Approved - please apply.
>>>>
>>>> Thanks for the approval. Committed as
>>>> 4e5391148d51c58785aad637f1a92d47b91b3ae6
>>>>
>>>> Sudi
>>>>
>>>
>>> Isn't --force-bti for ELF only? Shouldn't it use "-z force-bti"?
>>
>> Sorry I was not aware of any elf specific meaning given to -z. Is this a
>> convention? I can not seem to find any particular documentation for it.
>>
>
> This is the convention. See how PARSE_AND_LIST_ARGS_CASE_Z
> is used. You can also define PARSE_AND_LIST_OPTIONS to update
> "ld --help".
The current options that are defined for bti and pac are defined in
ld/emultempl/aarch64elf.em which "is sourced from elf32.em, and defines
extra aarch64-elf specific routines". They do appear
PARSE_AND_LIST_OPTIONS and hence appear in ld --help.
Example
aarch64elf:
--no-enum-size-warning Don't warn about objects with incompatible
enum sizes
--no-wchar-size-warning Don't warn about objects with incompatible
wchar_t sizes
--pic-veneer Always generate PIC interworking veneers
--stub-group-size=N Maximum size of a group of input sections
that
can be handled by one stub section. A
negative
value locates all stubs after their
branches
(with a group size of -N), while a positive
value allows two groups of input
sections, one
before, and one after each stub section.
Values of +/-1 indicate the linker should
choose suitable defaults.
--fix-cortex-a53-835769 Fix erratum 835769
--fix-cortex-a53-843419 Fix erratum 843419
--no-apply-dynamic-relocs Do not apply link-time values for
dynamic relocations
--force-bti Turn on Branch Target Identification
mechanism and generate PLTs with BTI. Generate warnings for missing BTI
on inputs
--pac-plt Protect PLTs with Pointer Authentication.
From what I can see in the Arm or AArch64 backend, none of the the
target specific options are defined using the -z option. Though I have
to admit I don not know if those options are all generic to the target
rather than being ELF only.
I would like to gather opinions of other port maintainers before I move
these to -z.
Thanks
Sudi
>
More information about the Binutils
mailing list