aboutsummaryrefslogtreecommitdiff
path: root/gcc/mklibgcc.in
diff options
context:
space:
mode:
authorBen Elliston <bje@au.ibm.com>2006-01-18 00:39:23 +0000
committerBen Elliston <bje@gcc.gnu.org>2006-01-18 11:39:23 +1100
commitd190d56b7e7921a58656cded35fe4722c57c9bb8 (patch)
treea4e9f0e450527bbfd03032f71afeae530de8a991 /gcc/mklibgcc.in
parent242f8e90d075b38403a00fe30a3610aa8df60701 (diff)
downloadgcc-d190d56b7e7921a58656cded35fe4722c57c9bb8.zip
gcc-d190d56b7e7921a58656cded35fe4722c57c9bb8.tar.gz
gcc-d190d56b7e7921a58656cded35fe4722c57c9bb8.tar.bz2
Makefile.in (D32PBIT_FUNCS): New.
* Makefile.in (D32PBIT_FUNCS): New. (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise. (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS, D64PBIT_FUNCS and D128PBIT_FUNCS. (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT). * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or D128PBIT are set. (decnumber_dep): Define. * doc/libgcc.texi (Decimal float library routines): New node. * config/dfp-bit.h, config/dfp-bit.c: New files. From-SVN: r109856
Diffstat (limited to 'gcc/mklibgcc.in')
-rw-r--r--gcc/mklibgcc.in55
1 files changed, 55 insertions, 0 deletions
diff --git a/gcc/mklibgcc.in b/gcc/mklibgcc.in
index ba85363..2162c05 100644
--- a/gcc/mklibgcc.in
+++ b/gcc/mklibgcc.in
@@ -28,6 +28,12 @@
# DPBIT_FUNCS
# TPBIT
# TPBIT_FUNCS
+# D32PBIT
+# D32PBIT_FUNCS
+# D64PBIT
+# D64PBIT_FUNCS
+# D128PBIT
+# D128PBIT_FUNCS
# LIBGCC
# MULTILIBS
# EXTRA_MULTILIB_PARTS
@@ -96,6 +102,12 @@ libgcov_c_dep='stmp-dirs $(srcdir)/libgcov.c $(srcdir)/gcov-io.h $(srcdir)/gcov-
# Dependencies for fp-bit.c
fpbit_c_dep='stmp-dirs config.status tsystem.h'
+# Dependencies for decnumber and friends. This is an overzealous set,
+# but at least we can be sure to recompile if anything gets modified.
+decnumber_dep='stmp-dirs $(srcdir)/../libdecnumber/decContext.h $(srcdir)/../libdecnumber/decNumber.h
+ $(srcdir)/../libdecnumber/decNumberLocal.h $(srcdir)/../libdecnumber/decimal32.h $(srcdir)/../libdecnumber/decimal64.h
+ $(srcdir)/../libdecnumber/decimal128.h $(srcdir)/../libdecnumber/decDPD.h $(srcdir)/../libdecnumber/decUtility.h'
+
# Flag whether we need eh_dummy.c
need_eh_dummy=
@@ -349,6 +361,49 @@ for ml in $MULTILIBS; do
fi
done
+ if [ "@enable_decimal_float@" = "yes" -a -z "$libgcc_so" ]; then
+ # Bring in the DFP support code if D32PBIT, D64PBIT or D128PBIT are set.
+ if [ -n "$D32PBIT" -o -n "$D64PBIT" -o -n "$D128PBIT" ] ; then
+ dec_filenames="decContext decNumber decRound decLibrary decUtility"
+ fi
+
+ # Only bring in decimal*.c files for types we support.
+ if [ -n "$D32PBIT" ] ; then
+ dec_filenames="$dec_filenames decimal32"
+ fi
+ if [ -n "$D64PBIT" ] ; then
+ dec_filenames="$dec_filenames decimal64"
+ fi
+ if [ -n "$D128PBIT" ] ; then
+ dec_filenames="$dec_filenames decimal128"
+ fi
+
+ for name in $dec_filenames ; do
+ out="libgcc/${dir}/${name}${objext}"
+ echo $out: "\$(srcdir)/../libdecnumber/${name}.c" $decnumber_dep
+ echo " $gcc_compile" $flags -c "\$(srcdir)/../libdecnumber/${name}.c" -o $out
+ echo $libgcc_a: $out
+ done
+
+ # For individual functions, loop over each variable by name.
+ for dpbit_var in D32PBIT D64PBIT D128PBIT ; do
+ dpfuncs_var="${dpbit_var}_FUNCS"
+ eval dpbit=\$$dpbit_var
+ eval dpfuncs=\$$dpfuncs_var
+
+ if [ "$dpbit" ]; then
+ for name in $dpfuncs; do
+ out="libgcc/${dir}/${name}${objext}"
+ echo $out: $dpbit $fpbit_c_dep
+ echo " $gcc_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \
+ -c $dpbit -o $out
+
+ echo $libgcc_a: $out
+ done
+ fi
+ done
+ fi
+
for file in $LIB2ADD; do
name=`echo $file | sed -e 's/[.][cS]$//' -e 's/[.]asm$//'`
oname=`echo $name | sed -e 's,.*/,,'`