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

Reply via email to