summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/cc/gcc.in.246
-rw-r--r--scripts/build/cc/gcc.sh10
2 files changed, 56 insertions, 0 deletions
diff --git a/config/cc/gcc.in.2 b/config/cc/gcc.in.2
index 20b70d8..822cfd7 100644
--- a/config/cc/gcc.in.2
+++ b/config/cc/gcc.in.2
@@ -255,6 +255,52 @@ config CC_GCC_LNK_HASH_STYLE
default "gnu" if CC_GCC_LNK_HASH_STYLE_GNU
default "both" if CC_GCC_LNK_HASH_STYLE_BOTH
+choice CC_GCC_DEC_FLOATS_CHOICE
+ bool "Decimal floats"
+ default CC_GCC_DEC_FLOATS_AUTO
+ help
+ Choose what type of decimal floats to support.
+
+ Note that using decimal floats requires a C library that provides
+ support for fenv (namely, the fenv.h header). This is the case
+ for (e)glibc, and uClibc on x86/32. For other C libraries, or
+ uClibc on other archs, this might not be the case, so you should
+ disable support for decimal floats.
+
+ The default is to let ./configure decide.
+
+config CC_GCC_DEC_FLOAT_AUTO
+ bool "auto"
+ help
+ Let ./configure decide. If you say 'y' here, gcc will default to:
+ - 'bid' for x86 (32- and 64-bit)
+ - 'dpd' for powerpc
+ - 'no' for the other architectures
+
+config CC_GCC_DEC_FLOAT_BID
+ bool "bid"
+ help
+ Use the 'binary integer decimal' format for decimal floats.
+
+config CC_GCC_DEC_FLOAT_DPD
+ bool "dpd"
+ help
+ Use the 'densely packed decimal' for decimal floats.
+
+config CC_GCC_DEC_FLOATS_NO
+ bool "no"
+ help
+ Do not support decimal floats. The default.
+
+endchoice # CC_GCC_DEC_FLOATS_CHOICE
+
+config CC_GCC_DEC_FLOATS
+ string
+ default "" if CC_GCC_DEC_FLOATS_AUTO
+ default "bid" if CC_GCC_DEC_FLOATS_BID
+ default "dpd" if CC_GCC_DEC_FLOATS_DPD
+ default "no" if CC_GCC_DEC_FLOATS_NO
+
#-----------------------------------------------------------------------------
config CC_GCC_HAS_ARCH_OPTIONS
diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh
index a443d84..7f3415c 100644
--- a/scripts/build/cc/gcc.sh
+++ b/scripts/build/cc/gcc.sh
@@ -333,6 +333,11 @@ do_cc_core_backend() {
*) extra_config+=( "--with-linker-hash-style=${CT_CC_GCC_LNK_HASH_STYLE}" );;
esac
+ case "${CT_CC_GCC_DEC_FLOATS}" in
+ "") ;;
+ *) extra_config+=( "--enable-decimal-float=${CT_CC_GCC_DEC_FLOATS}" );;
+ esac
+
case "${CT_ARCH}" in
mips)
case "${CT_CC_GCC_mips_llsc}" in
@@ -784,6 +789,11 @@ do_cc_backend() {
*) extra_config+=( "--with-linker-hash-style=${CT_CC_GCC_LNK_HASH_STYLE}" );;
esac
+ case "${CT_CC_GCC_DEC_FLOATS}" in
+ "") ;;
+ *) extra_config+=( "--enable-decimal-float=${CT_CC_GCC_DEC_FLOATS}" );;
+ esac
+
if [ "${CT_CC_GCC_ENABLE_PLUGINS}" = "y" ]; then
extra_config+=( --enable-plugin )
fi