aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2014-02-24 14:34:05 +0100
committerRickard Green <[email protected]>2014-02-24 14:34:05 +0100
commit093966d9c04b0ad4f194981df7e3c16d9eb519fd (patch)
tree2fe7e582be555a6cc267fdf55e28189ef7ed5211
parent4acee7b02b53d785c444e886c39ed82ab76b52fe (diff)
parentc7ddafbe6dbcc805a9758c4313f2d6b902983343 (diff)
downloadotp-093966d9c04b0ad4f194981df7e3c16d9eb519fd.tar.gz
otp-093966d9c04b0ad4f194981df7e3c16d9eb519fd.tar.bz2
otp-093966d9c04b0ad4f194981df7e3c16d9eb519fd.zip
Merge branch 'rickard/configure-defaults/OTP-11723'
* rickard/configure-defaults/OTP-11723: Always default to disabled floating point exceptions on Linux
-rw-r--r--HOWTO/INSTALL.md7
-rw-r--r--erts/configure.in5
-rwxr-xr-xotp_build18
3 files changed, 19 insertions, 11 deletions
diff --git a/HOWTO/INSTALL.md b/HOWTO/INSTALL.md
index fb18676699..bbde5bc08c 100644
--- a/HOWTO/INSTALL.md
+++ b/HOWTO/INSTALL.md
@@ -268,6 +268,11 @@ Some of the available `configure` options are:
default if possible)
* `--{enable,disable}-hipe` - HiPE support (enabled by default on supported
platforms)
+* `--{enable,disable}-fp-exceptions` - Floating point exceptions (an
+ optimization for floating point operations). The default differs
+ depending on operating system and hardware platform. Note that by
+ enabling this you might get a seemingly working system that sometimes
+ fail on floating point operations.
* `--enable-darwin-universal` - Build universal binaries on darwin i386.
* `--enable-darwin-64bit` - Build 64-bit binaries on darwin
* `--enable-m64-build` - Build 64-bit binaries using the `-m64` flag to
@@ -293,7 +298,7 @@ Some of the available `configure` options are:
memory accesses. If `configure` should inform you about no native atomic
implementation available, you typically want to try using the
`libatomic_ops` library. It can be downloaded from
- <http://www.hpl.hp.com/research/linux/atomic_ops/>.
+ <https://github.com/ivmai/libatomic_ops/>.
* `--disable-smp-require-native-atomics` - By default `configure` will
fail if an SMP runtime system is about to be built, and no implementation
for native atomic memory accesses can be found. If this happens, you are
diff --git a/erts/configure.in b/erts/configure.in
index 46e5a15751..eecd8eb889 100644
--- a/erts/configure.in
+++ b/erts/configure.in
@@ -2798,6 +2798,11 @@ esac
if test X${enable_fp_exceptions} = Xauto ; then
case $host_os in
+ *linux*)
+ enable_fp_exceptions=no
+ AC_MSG_NOTICE([Floating point exceptions disabled by default on Linux]) ;;
+ *)
+ ;;
darwin*)
enable_fp_exceptions=no
AC_MSG_NOTICE([Floating point exceptions disabled by default on MacOS X]) ;;
diff --git a/otp_build b/otp_build
index a636aefc01..6e016c88d2 100755
--- a/otp_build
+++ b/otp_build
@@ -173,6 +173,14 @@ determine_version_controller ()
# Special static config flags for certain platforms are set here
set_config_flags ()
{
+ #
+ # NOTE! Do not add special flags here without a *very good*
+ # reason. We normally do not want "./otp_build configure"
+ # and "./configure" to produce different results.
+ # However, in the Windows case this does not matter, since
+ # the only supported way to build on Windows is using
+ # otp_build.
+ #
# * Extra flags to pass to configure are placed in `CONFIG_FLAGS'.
# * The command line is no longer added to `CONFIG_FLAGS' by
# `set_config_flags'. It is instead passed directly to
@@ -183,16 +191,6 @@ set_config_flags ()
# (in the cross compilation case the whole command line as well as
# the cross configuration have been moved here).
- if target_contains linux; then
- XX=`echo $* | grep -v able-fp-exceptions`
- if [ "$*" = "$XX" ]; then
- CONFIG_FLAGS="$CONFIG_FLAGS --disable-fp-exceptions"
- fi
- fi
- if target_contains "univel-sysv4"; then
- CONFIG_FLAGS="$CONFIG_FLAGS --x-libraries=/usr/lib/X11"
- fi
-
if target_contains free_source; then
CONFIG_FLAGS="$CONFIG_FLAGS --host=$TARGET"
fi