The fix has been committed as r271780. Apologies for the failure everyone.

Sam

On 29/05/2019 15:22, Sam Tebbs wrote:
> 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.te...@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.te...@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.te...@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.te...@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 via email to