On Wed, 6 Nov 2024 at 14:52, Torbjorn SVENSSON <torbjorn.svens...@foss.st.com> wrote: > > > > On 2024-11-06 14:04, Richard Earnshaw (lists) wrote: > > On 06/11/2024 12:23, Torbjorn SVENSSON wrote: > >> > >> > >> On 2024-11-06 12:26, Richard Earnshaw (lists) wrote: > >>> On 06/11/2024 07:44, Christophe Lyon wrote: > >>>> On Wed, 6 Nov 2024 at 07:20, Torbjörn SVENSSON > >>>> <torbjorn.svens...@foss.st.com> wrote: > >>>>> > >>>>> While the regression was reported on GCC15, I'm sure that same > >>>>> regression will be seen on GCC14 when it's tested in the > >>>>> arm-linux-gnueabihf configuration. > >>>>> > >>>>> Ok for trunk and releases/gcc-14? > >>>>> > >>>>> -- > >>>>> > >>>>> This fixes reported regression at > >>>>> https://linaro.atlassian.net/browse/GNU-1407. > >>>>> > >>>>> gcc/testsuite/ChangeLog: > >>>>> > >>>>> * gcc.target/arm/pr68620.c: Use effective-target arm_fp. > >>>>> > >>>>> Signed-off-by: Torbjörn SVENSSON <torbjorn.svens...@foss.st.com> > >>>>> --- > >>>>> gcc/testsuite/gcc.target/arm/pr68620.c | 4 +++- > >>>>> 1 file changed, 3 insertions(+), 1 deletion(-) > >>>>> > >>>>> diff --git a/gcc/testsuite/gcc.target/arm/pr68620.c > >>>>> b/gcc/testsuite/gcc.target/arm/pr68620.c > >>>>> index 6e38671752f..1ed84f4ac75 100644 > >>>>> --- a/gcc/testsuite/gcc.target/arm/pr68620.c > >>>>> +++ b/gcc/testsuite/gcc.target/arm/pr68620.c > >>>>> @@ -1,8 +1,10 @@ > >>>>> /* { dg-do compile } */ > >>>>> /* { dg-skip-if "-mpure-code supports M-profile without Neon only" { > >>>>> *-*-* } { "-mpure-code" } } */ > >>>>> /* { dg-require-effective-target arm_arch_v7a_ok } */ > >>>>> -/* { dg-options "-mfp16-format=ieee -mfpu=auto -mfloat-abi=softfp" } */ > >>>>> +/* { dg-require-effective-target arm_fp_ok } */ > >>>>> +/* { dg-options "-mfp16-format=ieee -mfpu=auto" } */ > >>>>> /* { dg-add-options arm_arch_v7a } */ > >>>>> +/* { dg-add-options arm_fp } */ > >>>>> > >>>> > >>>> So... this partially reverts your previous patch (bringing back > >>>> arm_fp). What is the problem now? > >>>> > >>> > >>> Yeah, that sounds wrong. arm_fp_ok tries to find options to add to the > >>> basic testsuite options, but it can't be combined with arm_arch_v7a as > >>> that picks a totally different set of flags for the architecture. > >> > >> The problem is that for arm-linux-gnueabihf, we cannot use > >> -mfloat-abi=softfp as there is no multilib available for that ABI, or at > >> least that's my interpretation of below error message. > >> > >> This is the output from the CI run: > >> > >> Executing on host: > >> /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/destdir/armv8l-unknown-linux-gnueabihf/bin/armv8l-unknown-linux-gnueabihf-gcc > >> /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/snapshots/gcc.git~master/gcc/testsuite/gcc.target/arm/pr68620.c > >> -fdiagnostics-plain-output -mfp16-format=ieee -mfpu=auto > >> -mfloat-abi=softfp -mcpu=unset -march=armv7-a+fp -S -o pr68620.s (timeout > >> = 600) > >> spawn -ignore SIGHUP > >> /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/destdir/armv8l-unknown-linux-gnueabihf/bin/armv8l-unknown-linux-gnueabihf-gcc > >> > >> /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/snapshots/gcc.git~master/gcc/testsuite/gcc.target/arm/pr68620.c > >> -fdiagnostics-plain-output -mfp16-format=ieee -mfpu=auto > >> -mfloat-abi=softfp -mcpu=unset -march=armv7-a+fp -S -o pr68620.s > >> In file included from /usr/include/features.h:510, > >> from > >> /usr/include/arm-linux-gnueabihf/bits/libc-header-start.h:33, > >> from /usr/include/stdint.h:26, > >> from > >> /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/destdir/armv8l-unknown-linux-gnueabihf/lib/gcc/armv8l-unknown-linux-gnueabihf/15.0.0/include/stdint.h:11, > >> from > >> /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/destdir/armv8l-unknown-linux-gnueabihf/lib/gcc/armv8l-unknown-linux-gnueabihf/15.0.0/include/arm_fp16.h:34, > >> from > >> /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/destdir/armv8l-unknown-linux-gnueabihf/lib/gcc/armv8l-unknown-linux-gnueabihf/15.0.0/include/arm_neon.h:41, > >> from > >> /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/snapshots/gcc.git~master/gcc/testsuite/gcc.target/arm/pr68620.c:7: > >> /usr/include/arm-linux-gnueabihf/gnu/stubs.h:7:11: fatal error: > >> gnu/stubs-soft.h: No such file or directory > >> compilation terminated. > >> compiler exited with status 1 > >> output is: > >> In file included from /usr/include/features.h:510, > >> from > >> /usr/include/arm-linux-gnueabihf/bits/libc-header-start.h:33, > >> from /usr/include/stdint.h:26, > >> from > >> /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/destdir/armv8l-unknown-linux-gnueabihf/lib/gcc/armv8l-unknown-linux-gnueabihf/15.0.0/include/stdint.h:11, > >> from > >> /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/destdir/armv8l-unknown-linux-gnueabihf/lib/gcc/armv8l-unknown-linux-gnueabihf/15.0.0/include/arm_fp16.h:34, > >> from > >> /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/destdir/armv8l-unknown-linux-gnueabihf/lib/gcc/armv8l-unknown-linux-gnueabihf/15.0.0/include/arm_neon.h:41, > >> from > >> /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/snapshots/gcc.git~master/gcc/testsuite/gcc.target/arm/pr68620.c:7: > >> /usr/include/arm-linux-gnueabihf/gnu/stubs.h:7:11: fatal error: > >> gnu/stubs-soft.h: No such file or directory > >> compilation terminated. > >> > >> comp_output (pruned) is: > >> In file included from /usr/include/features.h:510, > >> from > >> /usr/include/arm-linux-gnueabihf/bits/libc-header-start.h:33, > >> from /usr/include/stdint.h:26, > >> from > >> /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/destdir/armv8l-unknown-linux-gnueabihf/lib/gcc/armv8l-unknown-linux-gnueabihf/15.0.0/include/stdint.h:11, > >> from > >> /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/destdir/armv8l-unknown-linux-gnueabihf/lib/gcc/armv8l-unknown-linux-gnueabihf/15.0.0/include/arm_fp16.h:34, > >> from > >> /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/destdir/armv8l-unknown-linux-gnueabihf/lib/gcc/armv8l-unknown-linux-gnueabihf/15.0.0/include/arm_neon.h:41, > >> from > >> /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/snapshots/gcc.git~master/gcc/testsuite/gcc.target/arm/pr68620.c:7: > >> /usr/include/arm-linux-gnueabihf/gnu/stubs.h:7:11: fatal error: > >> gnu/stubs-soft.h: No such file or directory > >> compilation terminated. > >> > >> FAIL: gcc.target/arm/pr68620.c (test for excess errors) > >> > >> So, if we cannot use arm_fp, what can we use instead to check if it needs > >> -mfloat-abi=softfp or -mfloat-abi=hard? > >> > >> Kind regards, > >> Torbjörn > > > > Ah, got you. Interestingly my ubuntu armhf instalation has booth > > stubs-soft.h and stubs-hard.h even though it's a hard-float environment, so > > I wouldn't see this error. I'm not sure if that's something ubuntu has > > fixed, or whether it's because the tcwg install is slightly non-standard. > > > > Technically this isn't a multilib - because we aren't linking, but I see > > where you're coming from. I need to think a bit about this one. What we > > really need is some way of checking if stdint.h works in a soft-fp > > environment; we might need a new check for this in target-supports.exp. > > An alternative is to add an entry in the list that is > arm_arch_v7a_softfp and then do dg-require-effective-target on it, but > then it will not be tested for HF only-targets. Is this a good enough > compromise? We could also go the other way and do the "hard" way, but > either way, one of them would not be tested in that case. > > Let me know what you think.
It reminds me of something I proposed a long time ago: add #include <stdint.h> in arm_arch_FUNC_ok and arm_arch_FUNC_multilib (not sure why we do it only for arm_arch_FUNC_link) Would that help/work? Thanks, Christophe > > It's the same problem in the attr-neon* patch that I have in parallell > to this one, but I'll wait for this one to have a way forward before > working more on that one. > > Kind regards, > Torbjörn