mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
Compile with -fexcess-precision=standard for i[3456]86 when we can
* configure.ac: when -fexcess-precision=standard is available and we're building for i[3456]86, use it. This fixes floating point precision problems caused by x87 (80-bit) floating point, and detected by numbers.test. Closes: 43262
This commit is contained in:
parent
1c96e4ab6d
commit
9b1effb585
2 changed files with 26 additions and 0 deletions
2
NEWS
2
NEWS
|
@ -24,6 +24,8 @@ Changes in 3.0.11 (since 3.0.10)
|
||||||
(<https://bugs.gnu.org/71891>)
|
(<https://bugs.gnu.org/71891>)
|
||||||
** Compiler no longer crashes when inlining 3.0.9 procedure with kw args
|
** Compiler no longer crashes when inlining 3.0.9 procedure with kw args
|
||||||
(<https://bugs.gnu.org/72936>)
|
(<https://bugs.gnu.org/72936>)
|
||||||
|
** Guile is compiled with -fexcess-precision=standard for i[3456]86 when possible
|
||||||
|
(<https://debbugs.gnu.org/43262>)
|
||||||
|
|
||||||
|
|
||||||
Changes in 3.0.10 (since 3.0.9)
|
Changes in 3.0.10 (since 3.0.9)
|
||||||
|
|
24
configure.ac
24
configure.ac
|
@ -62,6 +62,30 @@ AC_PROG_INSTALL
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
gl_EARLY
|
gl_EARLY
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([whether the compiler supports -fexcess-precision=standard])
|
||||||
|
old_CFLAGS="$CFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -fexcess-precision=standard"
|
||||||
|
fexcess_precision=''
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo;], [])], [fexcess_precision=1]])
|
||||||
|
CFLAGS="$old_CFLAGS"
|
||||||
|
if test -n "$fexcess_precision"; then
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
fi
|
||||||
|
AC_MSG_CHECKING([whether we want -fexcess-precision=standard for $target_cpu])
|
||||||
|
case "$target_cpu" in
|
||||||
|
i[[3456]]86)
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
if test -n "$fexcess_precision"; then
|
||||||
|
CFLAGS="$CFLAGS -fexcess-precision=standard"
|
||||||
|
else
|
||||||
|
AC_MSG_WARN([floating-point precision may exceed C99 rules])
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*) AC_MSG_RESULT([no]) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether the compiler supports -flto])
|
AC_MSG_CHECKING([whether the compiler supports -flto])
|
||||||
old_CFLAGS="$CFLAGS"
|
old_CFLAGS="$CFLAGS"
|
||||||
LTO_CFLAGS="-flto"
|
LTO_CFLAGS="-flto"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue