From: Vladimir Mezentsev <vladimir.mezent...@oracle.com> FMA (floating-point multiply-add) instructions are supported on aarch64. These instructions can produce different result if two operations executed separately. -ffp-contract=off doesn't allow the FMA instructions.
Tested on two platforms: aarch64-unknown-linux-gnu: No regression. Two failed tests now passed. sparc64-unknown-linux-gnu: No regression. ChangeLog: 2017-10-18 Vladimir Mezentsev <vladimir.mezent...@oracle.com> PR libgcc/59714 * libgcc/Makefile.in: Add -ffp-contract=off --- libgcc/Makefile.in | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in index a1a392d..b771875 100644 --- a/libgcc/Makefile.in +++ b/libgcc/Makefile.in @@ -237,12 +237,16 @@ else DECNUMINC = endif +# Disable floating-point expression contraction +LIBGCC2_FFP_CONTRAST_CFLAGS = -ffp-contract=off + # Options to use when compiling libgcc2.a. # LIBGCC2_DEBUG_CFLAGS = -g LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \ $(LIBGCC2_DEBUG_CFLAGS) -DIN_LIBGCC2 \ -fbuilding-libgcc -fno-stack-protector \ + $(LIBGCC2_FFP_CONTRAST_CFLAGS) \ $(INHIBIT_LIBC_CFLAGS) # Additional options to use when compiling libgcc2.a. -- 1.7.1