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); >