[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