summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/ChangeLog4
-rw-r--r--config/dfp.m453
2 files changed, 57 insertions, 0 deletions
diff --git a/config/ChangeLog b/config/ChangeLog
index 40e51f15212..cc20f81233d 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,7 @@
+2010-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ * dfp.m4: New file.
+
2010-09-01 Andi Kleen <ak@linux.intel.com>
* bootstrap-lto.mk (STAGE2_CFLAGS, STAGE3_CFLAGS): Change
diff --git a/config/dfp.m4 b/config/dfp.m4
new file mode 100644
index 00000000000..4cace763fa4
--- /dev/null
+++ b/config/dfp.m4
@@ -0,0 +1,53 @@
+dnl @synopsis GCC_AC_ENABLE_DECIMAL_FLOAT([target triplet])
+dnl
+dnl Enable C extension for decimal float if target supports it.
+dnl
+dnl @author Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+AC_DEFUN([GCC_AC_ENABLE_DECIMAL_FLOAT],
+[
+AC_ARG_ENABLE(decimal-float,
+[ --enable-decimal-float={no,yes,bid,dpd}
+ enable decimal float extension to C. Selecting 'bid'
+ or 'dpd' choses which decimal floating point format
+ to use],
+[
+ case $enable_decimal_float in
+ yes | no | bid | dpd) ;;
+ *) AC_MSG_ERROR(['$enable_decimal_float' is an invalid value for --enable-decimal-float.
+Valid choices are 'yes', 'bid', 'dpd', and 'no'.]) ;;
+ esac
+],
+[
+ case $1 in
+ powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux* | s390*-*-linux*)
+ enable_decimal_float=yes
+ ;;
+ *)
+ AC_MSG_WARN(decimal float is not supported for this target, ignored)
+ enable_decimal_float=no
+ ;;
+ esac
+])
+
+# x86's use BID format instead of DPD
+case x$enable_decimal_float in
+ xyes)
+ case $1 in
+ i?86*-*-* | x86_64*-*-*)
+ enable_decimal_float=bid
+ ;;
+ *)
+ enable_decimal_float=dpd
+ ;;
+ esac
+ ;;
+ xno)
+ # ENABLE_DECIMAL_FLOAT is set to 0. But we have to have proper
+ # dependency on libdecnumber.
+ enable_decimal_float=dpd
+ ;;
+esac
+AC_SUBST(enable_decimal_float)
+
+]) \ No newline at end of file