Message ID | CAKdteOZ11WJprVZm2CQc9gSSFOuS7moUZg91yyi7erZc+fD_4Q@mail.gmail.com |
---|---|
State | New |
Headers | show |
On 08/01/14 15:00, Christophe Lyon wrote: > Hi, > > Commit 206131 introduced check_effective_target_arm_crypto_ok in > lib/target-supports.exp, to check that the target supports > -mfpu=crypto-neon-fp-armv8 -mfloat-abi=softfp. > > However, when GCC is configured for target arm-none-linux-gnueabihf, I > can see all the new tests fail: > sysroot-arm-none-linux-gnueabihf/usr/include/gnu/stubs.h:7:29: fatal > error: gnu/stubs-soft.h: No such file or directory > > (stubs.h is included via arm_neon.h) > > This is because check_effective_target_arm_crypto_ok sample test is > too simple. Making it include arm_neon.h does the trick (and makes the > tests UNSUPPORTED rather than FAIL). > > OK? > > Christophe. Hi Christophe, I believe the best solution here is to figure out the best mfloat-abi and mfpu options combiation like we do for the NEON options (look for example at check_effective_target_arm_neon_ok_nocache in target-supports.exp). That way these tests will not add -mfloat-abi=softfp to an arm-none-linux-gnueabihf target (which is the root of the problem) and they will PASS instead of being just UNSUPPORTED. I have a patch for that in testing. Thanks, Kyrill
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a8910bb..cc10936 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-01-08 Christophe Lyon <christophe.lyon@linaro.org> + + * lib/target-supports.exp (check_effective_target_arm_crypto_ok): + Include arm_neon.h in sample test. + 2014-01-07 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/ext/is_base_of_incomplete-2.C: New. diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 5166679..7b40ccd 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -2305,6 +2305,7 @@ proc check_effective_target_arm_unaligned { } { proc check_effective_target_arm_crypto_ok {} { if { [check_effective_target_arm32] } { return [check_no_compiler_messages arm_crypto_ok object { + #include <arm_neon.h> int foo (void) { __asm__ volatile ("aese.8 q0, q0");