public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Sam Tebbs <Sam.Tebbs@arm.com>
To: Christophe Lyon <christophe.lyon@linaro.org>
Cc: Kyrill Tkachov <kyrylo.tkachov@foss.arm.com>,
	James Greenhalgh	<James.Greenhalgh@arm.com>,
	"gcc-patches@gcc.gnu.org"	<gcc-patches@gcc.gnu.org>,
	Richard Earnshaw <Richard.Earnshaw@arm.com>,
	Marcus Shawcroft <Marcus.Shawcroft@arm.com>, nd <nd@arm.com>,
	"ian@airs.com"	<ian@airs.com>, Jeff Law <law@redhat.com>
Subject: Re: [PATCH 3/3][GCC][AARCH64] Add support for pointer authentication B key
Date: Wed, 29 May 2019 14:24:00 -0000	[thread overview]
Message-ID: <cb4820ab-4f9d-727b-cee1-c33700eb7612@arm.com> (raw)
In-Reply-To: <CAKdteObiD1-tToZVV4=1nimqpn9xs_7pctw_h=EuDcKt+RP-zQ@mail.gmail.com>

Thanks for finding this Christoph, I had this failure a while ago but it 
stopped happening so I thought all was good. I have a fix ready.

Sam

On 29/05/2019 12:22, Christophe Lyon wrote:
> On Wed, 29 May 2019 at 11:23, Sam Tebbs <Sam.Tebbs@arm.com> wrote:
>> The libgcc changes have been acknowledged off-list. Committed as r271735.
>>
> After this commit, I'm seeing errors while building libstdc++:
> 0x11c29f3 aarch64_return_address_signing_enabled()
>          /tmp/8467855_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/config/aarch64/aarch64.c:4865
> 0x11c2a08 aarch64_post_cfi_startproc(_IO_FILE*, tree_node*)
>          /tmp/8467855_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/config/aarch64/aarch64.c:15373
> 0xa27098 dwarf2out_do_cfi_startproc
>          /tmp/8467855_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/dwarf2out.c:972
> 0xa43d6e dwarf2out_begin_prologue(unsigned int, unsigned int, char const*)
>          /tmp/8467855_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/dwarf2out.c:1106
> 0xae05d5 final_start_function_1
>          /tmp/8467855_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/final.c:1735
> 0xae0c2f final_start_function(rtx_insn*, _IO_FILE*, int)
>          /tmp/8467855_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/final.c:1818
> 0x11c4442 aarch64_output_mi_thunk
>          /tmp/8467855_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/config/aarch64/aarch64.c:6085
> 0x9cfa4f cgraph_node::expand_thunk(bool, bool)
>          /tmp/8467855_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/cgraphunit.c:1831
> 0x9d0dba cgraph_node::assemble_thunks_and_aliases()
>          /tmp/8467855_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/cgraphunit.c:2122
> 0x9d0d89 cgraph_node::assemble_thunks_and_aliases()
>          /tmp/8467855_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/cgraphunit.c:2140
> 0x9d1068 cgraph_node::expand()
>          /tmp/8467855_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/cgraphunit.c:2259
> 0x9d23ec expand_all_functions
>          /tmp/8467855_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/cgraphunit.c:2332
> 0x9d23ec symbol_table::compile()
>          /tmp/8467855_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/cgraphunit.c:2683
> 0x9d5020 symbol_table::compile()
>          /tmp/8467855_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/cgraphunit.c:2595
> 0x9d5020 symbol_table::finalize_compilation_unit()
>          /tmp/8467855_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/cgraphunit.c:2861
> Please submit a full bug report,
> with preprocessed source if appropriate.
> Please include the complete backtrace with any bug report.
> See <https://gcc.gnu.org/bugs/> for instructions.
> make[5]: *** [Makefile:900: strstream.lo] Error 1
>
> in aarch64-none-linux-gnu/libstdc++-v3/src/c++98
>
> (same for aarch64[_be]-elf)
>
> Christophe
>
>> On 01/03/2019 14:12, Sam Tebbs wrote:
>>> On 31/01/2019 14:54, Sam Tebbs wrote:
>>>> <snip>
>>>>> ping 3. The preceding two patches were committed a while ago but require
>>>>> the minor libgcc changes in this patch, which are the only parts left to
>>>>> be reviewed.
>>>> ping 4
>>> Attached is a rebased patch made to work on top of Sudi Das' BTI patch
>>> (by renaming UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP in
>>> aarch64-bti-insert.c). The updated changelog is below.
>>>
>>> Are the libgcc changes OK for trunk?
>>>
>>> gcc/
>>> 2019-03-01  Sam Tebbs<sam.tebbs@arm.com>
>>>
>>>        * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
>>>        AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
>>>        * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
>>>        Add autib1716 and pacib1716 initialisation.
>>>        * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
>>>        for autib1716 and pacib1716.
>>>        * config/aarch64/aarch64-protos.h (aarch64_key_type,
>>>        aarch64_post_cfi_startproc): Define.
>>>        * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
>>>        * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
>>>        aarch64_handle_pac_ret_protection): Set default sign key to A.
>>>        * config/aarch64/aarch64.c (aarch64_expand_epilogue,
>>>        aarch64_expand_prologue): Add check for b-key.
>>>        * config/aarch64/aarch64.c (aarch64_ra_sign_key,
>>>        aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
>>>        * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
>>>        * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
>>>        * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
>>>        UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
>>>        UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
>>>        * config/aarch64/aarch64.md (do_return): Add check for b-key.
>>>        * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
>>>        pauth_hint_num_a with pauth_hint_num.
>>>        * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
>>>        pauth_hint_num_a with pauth_hint_num.
>>>        * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
>>>        * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
>>>        UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
>>>        * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
>>>        UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
>>>        * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
>>>        UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
>>>        UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
>>>        * config/aarch64/iterators.md (pauth_hint_num_a): Replace
>>>        UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
>>>        UNSPEC_AUTIA1716 respectively.
>>>        * config/aarch64/iterators.md (pauth_hint_num_a): Rename to pauth_hint_num
>>>        and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP, UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
>>>        * doc/invoke.texi (-mbranch-protection): Add b-key type.
>>>        * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
>>>        UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
>>>
>>> gcc/testsuite
>>> 2019-03-01  Sam Tebbs<sam.tebbs@arm.com>
>>>
>>>        * gcc.target/aarch64/return_address_sign_b_1.c: New file.
>>>        * gcc.target/aarch64/return_address_sign_b_2.c: New file.
>>>        * gcc.target/aarch64/return_address_sign_b_3.c: New file.
>>>        * gcc.target/aarch64/return_address_sign_b_exception.c: New file.
>>>        * gcc.target/aarch64/return_address_sign_ab_exception.c: New file.
>>>        * gcc.target/aarch64/return_address_sign_builtin.c: New file
>>>
>>> libgcc/
>>> 2019-03-01  Sam Tebbs<sam.tebbs@arm.com>
>>>
>>>        * config/aarch64/aarch64-unwind.h (aarch64_cie_signed_with_b_key): New
>>>        function.
>>>        * config/aarch64/aarch64-unwind.h (aarch64_post_extract_frame_addr,
>>>        aarch64_post_frob_eh_handler_addr): Add check for b-key.
>>>        * config/aarch64/aarch64-unwind-h (aarch64_post_extract_frame_addr,
>>>        aarch64_post_frob_eh_handler_addr, aarch64_post_frob_update_context):
>>>        Rename RA_A_SIGNED_BIT to RA_SIGNED_BIT.
>>>        * unwind-dw2-fde.c (get_cie_encoding): Add check for 'B' in augmentation
>>>        string.
>>>        * unwind-dw2.c (extract_cie_info): Add check for 'B' in augmentation
>>>        string.
>>>        (RA_A_SIGNED_BIT): Rename to RA_SIGNED_BIT.
>>>

  reply	other threads:[~2019-05-29 14:22 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-02 17:35 Sam Tebbs
2018-11-02 18:02 ` Sam Tebbs
2018-11-09 11:05   ` Sam Tebbs
2018-12-21 15:04     ` Sam Tebbs
2019-01-04 16:56       ` Sam Tebbs
2019-01-07 18:28       ` James Greenhalgh
2019-01-08 11:38         ` Sam Tebbs
2019-01-14 10:44           ` Kyrill Tkachov
2019-01-23 10:43             ` Sam Tebbs
2019-01-31 14:56               ` Sam Tebbs
2019-03-01 14:12                 ` Sam Tebbs
2019-05-29  9:29                   ` Sam Tebbs
2019-05-29 11:53                     ` Christophe Lyon
2019-05-29 14:24                       ` Sam Tebbs [this message]
2019-05-30 12:29                         ` Sam Tebbs

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cb4820ab-4f9d-727b-cee1-c33700eb7612@arm.com \
    --to=sam.tebbs@arm.com \
    --cc=James.Greenhalgh@arm.com \
    --cc=Marcus.Shawcroft@arm.com \
    --cc=Richard.Earnshaw@arm.com \
    --cc=christophe.lyon@linaro.org \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=ian@airs.com \
    --cc=kyrylo.tkachov@foss.arm.com \
    --cc=law@redhat.com \
    --cc=nd@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).