Skip to content

Commit

Permalink
Fixes in the AArch64 nofp variants regarding RTTI and exceptions (#594)
Browse files Browse the repository at this point in the history
This patch fixes a few issues in the AArch64 nofp variants:

- AArch64 nofp variants without exceptions and RTTI must have higher
priority
    
    The presence of `-fno-exceptions` and `-fno-rtti` in the driver
    invocation causes matching with two variants: the one with
    RTTI/Exceptions and the one without.
    
In the multilib system, the last match is the one that wins, therefore
    in the JSON file we must list the variant without RTTI/Exceptions
    *after* the one with.

- Enable exceptions and RTTI in the build of aarch64 nofp variants
supposed to have them
  • Loading branch information
vhscampos authored Dec 11, 2024
1 parent 776a44c commit 5c4cebc
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 17 deletions.
25 changes: 12 additions & 13 deletions arm-multilib/json/multilib.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,31 +30,30 @@
"json": "aarch64a_strictalign.json",
"flags": "--target=aarch64-unknown-none-elf -mno-unaligned-access -fno-exceptions -fno-rtti"
},
{
"variant": "aarch64a_soft_nofp",
"json": "aarch64a_soft_nofp.json",
"flags": "--target=aarch64-unknown-none-elf -march=armv8-a+nofp+nosimd -mabi=aapcs-soft -fno-exceptions -fno-rtti",
"libraries_supported": "picolibc,newlib"
},
{
"variant": "aarch64a_be_soft_nofp",
"json": "aarch64a_be_soft_nofp.json",
"flags": "--target=aarch64_be-unknown-none-elf -march=armv8-a+nofp+nosimd -mabi=aapcs-soft -fno-exceptions -fno-rtti",
"libraries_supported": "picolibc,newlib"
},
{
"variant": "aarch64a_soft_nofp_exn_rtti",
"json": "aarch64a_soft_nofp_exn_rtti.json",
"flags": "--target=aarch64-unknown-none-elf -march=armv8-a+nofp+nosimd -mabi=aapcs-soft",
"libraries_supported": "picolibc,newlib"
},
{
"variant": "aarch64a_soft_nofp",
"json": "aarch64a_soft_nofp.json",
"flags": "--target=aarch64-unknown-none-elf -march=armv8-a+nofp+nosimd -mabi=aapcs-soft -fno-exceptions -fno-rtti",
"libraries_supported": "picolibc,newlib"
},
{
"variant": "aarch64a_be_soft_nofp_exn_rtti",
"json": "aarch64a_be_soft_nofp_exn_rtti.json",
"flags": "--target=aarch64_be-unknown-none-elf -march=armv8-a+nofp+nosimd -mabi=aapcs-soft",
"libraries_supported": "picolibc,newlib"
},

{
"variant": "aarch64a_be_soft_nofp",
"json": "aarch64a_be_soft_nofp.json",
"flags": "--target=aarch64_be-unknown-none-elf -march=armv8-a+nofp+nosimd -mabi=aapcs-soft -fno-exceptions -fno-rtti",
"libraries_supported": "picolibc,newlib"
},
{
"variant": "armv4t_exn_rtti",
"json": "armv4t_exn_rtti.json",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"TARGET_ARCH": "aarch64a",
"VARIANT": "aarch64a_be_soft_nofp_exn_rtti",
"COMPILE_FLAGS": "-march=armv8-a+nofp+nosimd -mbig-endian -mabi=aapcs-soft -mno-unaligned-access",
"ENABLE_EXCEPTIONS": "OFF",
"ENABLE_RTTI": "OFF",
"ENABLE_EXCEPTIONS": "ON",
"ENABLE_RTTI": "ON",
"TEST_EXECUTOR": "fvp",
"FVP_MODEL": "aem-a",
"FVP_CONFIG": "v8a-aarch64 big-endian",
Expand Down
4 changes: 2 additions & 2 deletions arm-multilib/json/variants/aarch64a_soft_nofp_exn_rtti.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"TARGET_ARCH": "aarch64a",
"VARIANT": "aarch64a_soft_nofp_exn_rtti",
"COMPILE_FLAGS": "-march=armv8-a+nofp+nosimd -mabi=aapcs-soft -mno-unaligned-access",
"ENABLE_EXCEPTIONS": "OFF",
"ENABLE_RTTI": "OFF",
"ENABLE_EXCEPTIONS": "ON",
"ENABLE_RTTI": "ON",
"TEST_EXECUTOR": "qemu",
"QEMU_MACHINE": "virt",
"QEMU_CPU": "cortex-a57",
Expand Down

0 comments on commit 5c4cebc

Please sign in to comment.