On 1/23/24 00:13, Alexandre Oliva wrote:
newlib-src/libc/include/sys/fenv.h doesn't define the FE_* macros that libgcc expects to enable decimal float support. Only after newlib is configured and built does an overriding header that defines those macros become available in objdir/<target>/newlib/targ-include/, but by then, libgcc has already been built without dfp and libbid. This has exposed a number of tests that attempt to link dfp programs without requiring a dfprt effective target. dfp.exp already skips if dfp support is missing altogether, and sets the default to compile rather than run if dfp support is present in the compiler but missing in the runtime libraries. However, some of the dfp tests override the default without requiring dfprt. Drop the overriders where reasonable, and add the explicit requirement elsewhere. Regstrapped on x86_64-linux-gnu; also tested on aarch64-elf with gcc-13, where the problem was observed. Ok to install? for gcc/testsuite/ChangeLog * c-c++-common/dfp/pr36800.c: Drop dg-do overrider. * c-c++-common/dfp/pr39034.c: Likewise. * c-c++-common/dfp/pr39035.c: Likewise. * gcc.dg/dfṕ/bid-non-canonical-d32-1.c: Likewise. * gcc.dg/dfṕ/bid-non-canonical-d32-2.c: Likewise. * gcc.dg/dfṕ/bid-non-canonical-d64-1.c: Likewise. * gcc.dg/dfṕ/bid-non-canonical-d64-2.c: Likewise. * gcc.dg/dfṕ/builtin-tgmath-dfp.c: Likewise. * gcc.dg/dfṕ/c23-float-dfp-4.c: Likewise. * gcc.dg/dfṕ/c23-float-dfp-5.c: Likewise. * gcc.dg/dfṕ/c23-float-dfp-6.c: Likewise. * gcc.dg/dfṕ/c23-float-dfp-7.c: Likewise. * gcc.dg/dfp/pr108068.c: Likewise. * gcc.dg/dfp/pr97439.c: Likewise. * g++.dg/compat/decimal/pass-1_main.C: Require dfprt. * g++.dg/compat/decimal/pass-2_main.C: Likewise. * g++.dg/compat/decimal/pass-3_main.C: Likewise. * g++.dg/compat/decimal/pass-4_main.C: Likewise. * g++.dg/compat/decimal/pass-5_main.C: Likewise. * g++.dg/compat/decimal/pass-6_main.C: Likewise. * g++.dg/compat/decimal/return-1_main.C: Likewise. * g++.dg/compat/decimal/return-2_main.C: Likewise. * g++.dg/compat/decimal/return-3_main.C: Likewise. * g++.dg/compat/decimal/return-4_main.C: Likewise. * g++.dg/compat/decimal/return-5_main.C: Likewise. * g++.dg/compat/decimal/return-6_main.C: Likewise. * g++.dg/eh/dfp-1.C: Likewise. * g++.dg/eh/dfp-2.C: Likewise. * g++.dg/eh/dfp-saves-aarch64.C: Likewise. * gcc.c-torture/execute/pr80692.c: Likewise. * gcc.dg/dfṕ/bid-non-canonical-d128-1.c: Likewise. * gcc.dg/dfṕ/bid-non-canonical-d128-2.c: Likewise. * gcc.dg/dfṕ/bid-non-canonical-d128-3.c: Likewise. * gcc.dg/dfṕ/bid-non-canonical-d128-4.c: Likewise.
OK jeff