[v2,testsuite,arm] add effective target and options for pacbti tests
Checks
Context |
Check |
Description |
linaro-tcwg-bot/tcwg_gcc_build--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gcc_check--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gcc_check--master-aarch64 |
success
|
Testing passed
|
Commit Message
Hello, Richard,
Thanks, your response was very informative.
Here's a revised patch.
arm pac and bti tests that use -march=armv8.1-m.main get an implicit
-mthumb, that is incompatible with vxworks kernel mode. Declaring the
requirement for a 8.1-m.main-compatible toolchain is enough to avoid
those fails, because the toolchain feature test fails in kernel mode,
but taking the -march options from the standardized arch tests, after
testing for support for the corresponding effective target, makes it
generally safer, and enables us to drop skip directives and extraneous
option variants.
Tested all 6 modified testcases with an x86_64-linux-gnu-x-arm-eabi
uberbaum build. Ok to install?
for gcc/testsuite/ChangeLog
* gcc.target/arm/bti-1.c: Require arch, use its opts, drop skip.
* gcc.target/arm/bti-2.c: Likewise.
* gcc.target/arm/acle/pacbti-m-predef-11.c: Likewise.
* gcc.target/arm/acle/pacbti-m-predef-12.c: Likewise.
* gcc.target/arm/acle/pacbti-m-predef-7.c: Likewise.
* g++.target/arm/pac-1.C: Likewise. Drop +mve.
---
gcc/testsuite/g++.target/arm/pac-1.C | 5 +++--
.../gcc.target/arm/acle/pacbti-m-predef-11.c | 4 ++--
.../gcc.target/arm/acle/pacbti-m-predef-12.c | 5 +++--
.../gcc.target/arm/acle/pacbti-m-predef-7.c | 5 +++--
gcc/testsuite/gcc.target/arm/bti-1.c | 5 +++--
gcc/testsuite/gcc.target/arm/bti-2.c | 5 +++--
6 files changed, 17 insertions(+), 12 deletions(-)
Comments
On Apr 19, 2024, Alexandre Oliva <oliva@adacore.com> wrote:
> for gcc/testsuite/ChangeLog
> * gcc.target/arm/bti-1.c: Require arch, use its opts, drop skip.
> * gcc.target/arm/bti-2.c: Likewise.
> * gcc.target/arm/acle/pacbti-m-predef-11.c: Likewise.
> * gcc.target/arm/acle/pacbti-m-predef-12.c: Likewise.
> * gcc.target/arm/acle/pacbti-m-predef-7.c: Likewise.
> * g++.target/arm/pac-1.C: Likewise. Drop +mve.
Ping? https://gcc.gnu.org/pipermail/gcc-patches/2024-April/649732.html
On 19/04/2024 17:37, Alexandre Oliva wrote:
> Hello, Richard,
>
> Thanks, your response was very informative.
>
> Here's a revised patch.
>
> arm pac and bti tests that use -march=armv8.1-m.main get an implicit
> -mthumb, that is incompatible with vxworks kernel mode. Declaring the
> requirement for a 8.1-m.main-compatible toolchain is enough to avoid
> those fails, because the toolchain feature test fails in kernel mode,
> but taking the -march options from the standardized arch tests, after
> testing for support for the corresponding effective target, makes it
> generally safer, and enables us to drop skip directives and extraneous
> option variants.
>
> Tested all 6 modified testcases with an x86_64-linux-gnu-x-arm-eabi
> uberbaum build. Ok to install?
Apologies for the delay replying. Yes, this is OK.
Thanks,
R.
>
>
> for gcc/testsuite/ChangeLog
>
> * gcc.target/arm/bti-1.c: Require arch, use its opts, drop skip.
> * gcc.target/arm/bti-2.c: Likewise.
> * gcc.target/arm/acle/pacbti-m-predef-11.c: Likewise.
> * gcc.target/arm/acle/pacbti-m-predef-12.c: Likewise.
> * gcc.target/arm/acle/pacbti-m-predef-7.c: Likewise.
> * g++.target/arm/pac-1.C: Likewise. Drop +mve.
> ---
> gcc/testsuite/g++.target/arm/pac-1.C | 5 +++--
> .../gcc.target/arm/acle/pacbti-m-predef-11.c | 4 ++--
> .../gcc.target/arm/acle/pacbti-m-predef-12.c | 5 +++--
> .../gcc.target/arm/acle/pacbti-m-predef-7.c | 5 +++--
> gcc/testsuite/gcc.target/arm/bti-1.c | 5 +++--
> gcc/testsuite/gcc.target/arm/bti-2.c | 5 +++--
> 6 files changed, 17 insertions(+), 12 deletions(-)
>
> diff --git a/gcc/testsuite/g++.target/arm/pac-1.C b/gcc/testsuite/g++.target/arm/pac-1.C
> index f671a27b048c6..ac15ae18197ca 100644
> --- a/gcc/testsuite/g++.target/arm/pac-1.C
> +++ b/gcc/testsuite/g++.target/arm/pac-1.C
> @@ -1,7 +1,8 @@
> /* Check that GCC does .save and .cfi_offset directives with RA_AUTH_CODE pseudo hard-register. */
> /* { dg-do compile } */
> -/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */
> -/* { dg-options "-march=armv8.1-m.main+mve+pacbti -mbranch-protection=pac-ret -mthumb -mfloat-abi=hard -g -O0" } */
> +/* { dg-require-effective-target arm_arch_v8_1m_main_pacbti_ok } */
> +/* { dg-add-options arm_arch_v8_1m_main_pacbti } */
> +/* { dg-additional-options "-mbranch-protection=pac-ret -mfloat-abi=hard -g -O0" } */
>
> __attribute__((noinline)) void
> fn1 (int a, int b, int c)
> diff --git a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-11.c b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-11.c
> index 6a5ae92c567f3..c9c40f44027d4 100644
> --- a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-11.c
> +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-11.c
> @@ -1,6 +1,6 @@
> /* { dg-do compile } */
> -/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" "-mfloat-abi=*" } } */
> -/* { dg-options "-march=armv8.1-m.main+fp+pacbti" } */
> +/* { dg-require-effective-target arm_arch_v8_1m_main_pacbti_ok } */
> +/* { dg-add-options arm_arch_v8_1m_main_pacbti } */
>
> #if (__ARM_FEATURE_BTI != 1)
> #error "Feature test macro __ARM_FEATURE_BTI_DEFAULT should be defined to 1."
> diff --git a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-12.c b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-12.c
> index db40b17c3b030..c26051347a2cc 100644
> --- a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-12.c
> +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-12.c
> @@ -1,6 +1,7 @@
> /* { dg-do compile } */
> -/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */
> -/* { dg-options "-march=armv8-m.main+fp -mfloat-abi=softfp" } */
> +/* { dg-require-effective-target arm_arch_v8_1m_main_ok } */
> +/* { dg-add-options arm_arch_v8_1m_main } */
> +/* { dg-additional-options "-mfloat-abi=softfp" } */
>
> #if defined (__ARM_FEATURE_BTI)
> #error "Feature test macro __ARM_FEATURE_BTI should not be defined."
> diff --git a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-7.c b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-7.c
> index 1b25907635e24..92f500c1449b3 100644
> --- a/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-7.c
> +++ b/gcc/testsuite/gcc.target/arm/acle/pacbti-m-predef-7.c
> @@ -1,6 +1,7 @@
> /* { dg-do compile } */
> -/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */
> -/* { dg-additional-options "-march=armv8.1-m.main+pacbti+fp --save-temps -mfloat-abi=hard" } */
> +/* { dg-require-effective-target arm_arch_v8_1m_main_pacbti_ok } */
> +/* { dg-add-options arm_arch_v8_1m_main_pacbti } */
> +/* { dg-additional-options "--save-temps -mfloat-abi=hard" } */
>
> #if defined (__ARM_FEATURE_BTI_DEFAULT)
> #error "Feature test macro __ARM_FEATURE_BTI_DEFAULT should be undefined."
> diff --git a/gcc/testsuite/gcc.target/arm/bti-1.c b/gcc/testsuite/gcc.target/arm/bti-1.c
> index 79dd8010d2dab..a34bb0842b632 100644
> --- a/gcc/testsuite/gcc.target/arm/bti-1.c
> +++ b/gcc/testsuite/gcc.target/arm/bti-1.c
> @@ -1,7 +1,8 @@
> /* Check that GCC does bti instruction. */
> /* { dg-do compile } */
> -/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */
> -/* { dg-options "-march=armv8.1-m.main -mthumb -mfloat-abi=softfp -mbranch-protection=bti --save-temps" } */
> +/* { dg-require-effective-target arm_arch_v8_1m_main_ok } */
> +/* { dg-add-options arm_arch_v8_1m_main } */
> +/* { dg-additional-options "-mfloat-abi=softfp -mbranch-protection=bti --save-temps" } */
>
> int
> main (void)
> diff --git a/gcc/testsuite/gcc.target/arm/bti-2.c b/gcc/testsuite/gcc.target/arm/bti-2.c
> index 33910563849a4..e5bc4d5543a8d 100644
> --- a/gcc/testsuite/gcc.target/arm/bti-2.c
> +++ b/gcc/testsuite/gcc.target/arm/bti-2.c
> @@ -1,8 +1,9 @@
> /* { dg-do compile } */
> /* -Os to create jump table. */
> /* { dg-options "-Os" } */
> -/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */
> -/* { dg-options "-march=armv8.1-m.main -mthumb -mfloat-abi=softfp -mbranch-protection=bti --save-temps" } */
> +/* { dg-require-effective-target arm_arch_v8_1m_main_ok } */
> +/* { dg-add-options arm_arch_v8_1m_main } */
> +/* { dg-additional-options "-mfloat-abi=softfp -mbranch-protection=bti --save-temps" } */
>
> extern int f1 (void);
> extern int f2 (void);
>
@@ -1,7 +1,8 @@
/* Check that GCC does .save and .cfi_offset directives with RA_AUTH_CODE pseudo hard-register. */
/* { dg-do compile } */
-/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */
-/* { dg-options "-march=armv8.1-m.main+mve+pacbti -mbranch-protection=pac-ret -mthumb -mfloat-abi=hard -g -O0" } */
+/* { dg-require-effective-target arm_arch_v8_1m_main_pacbti_ok } */
+/* { dg-add-options arm_arch_v8_1m_main_pacbti } */
+/* { dg-additional-options "-mbranch-protection=pac-ret -mfloat-abi=hard -g -O0" } */
__attribute__((noinline)) void
fn1 (int a, int b, int c)
@@ -1,6 +1,6 @@
/* { dg-do compile } */
-/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" "-mfloat-abi=*" } } */
-/* { dg-options "-march=armv8.1-m.main+fp+pacbti" } */
+/* { dg-require-effective-target arm_arch_v8_1m_main_pacbti_ok } */
+/* { dg-add-options arm_arch_v8_1m_main_pacbti } */
#if (__ARM_FEATURE_BTI != 1)
#error "Feature test macro __ARM_FEATURE_BTI_DEFAULT should be defined to 1."
@@ -1,6 +1,7 @@
/* { dg-do compile } */
-/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */
-/* { dg-options "-march=armv8-m.main+fp -mfloat-abi=softfp" } */
+/* { dg-require-effective-target arm_arch_v8_1m_main_ok } */
+/* { dg-add-options arm_arch_v8_1m_main } */
+/* { dg-additional-options "-mfloat-abi=softfp" } */
#if defined (__ARM_FEATURE_BTI)
#error "Feature test macro __ARM_FEATURE_BTI should not be defined."
@@ -1,6 +1,7 @@
/* { dg-do compile } */
-/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */
-/* { dg-additional-options "-march=armv8.1-m.main+pacbti+fp --save-temps -mfloat-abi=hard" } */
+/* { dg-require-effective-target arm_arch_v8_1m_main_pacbti_ok } */
+/* { dg-add-options arm_arch_v8_1m_main_pacbti } */
+/* { dg-additional-options "--save-temps -mfloat-abi=hard" } */
#if defined (__ARM_FEATURE_BTI_DEFAULT)
#error "Feature test macro __ARM_FEATURE_BTI_DEFAULT should be undefined."
@@ -1,7 +1,8 @@
/* Check that GCC does bti instruction. */
/* { dg-do compile } */
-/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */
-/* { dg-options "-march=armv8.1-m.main -mthumb -mfloat-abi=softfp -mbranch-protection=bti --save-temps" } */
+/* { dg-require-effective-target arm_arch_v8_1m_main_ok } */
+/* { dg-add-options arm_arch_v8_1m_main } */
+/* { dg-additional-options "-mfloat-abi=softfp -mbranch-protection=bti --save-temps" } */
int
main (void)
@@ -1,8 +1,9 @@
/* { dg-do compile } */
/* -Os to create jump table. */
/* { dg-options "-Os" } */
-/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" "-mcpu=*" } } */
-/* { dg-options "-march=armv8.1-m.main -mthumb -mfloat-abi=softfp -mbranch-protection=bti --save-temps" } */
+/* { dg-require-effective-target arm_arch_v8_1m_main_ok } */
+/* { dg-add-options arm_arch_v8_1m_main } */
+/* { dg-additional-options "-mfloat-abi=softfp -mbranch-protection=bti --save-temps" } */
extern int f1 (void);
extern int f2 (void);