diff options
author | Ben Elliston <bje@au.ibm.com> | 2006-01-18 00:39:23 +0000 |
---|---|---|
committer | Ben Elliston <bje@gcc.gnu.org> | 2006-01-18 11:39:23 +1100 |
commit | d190d56b7e7921a58656cded35fe4722c57c9bb8 (patch) | |
tree | a4e9f0e450527bbfd03032f71afeae530de8a991 /gcc/mklibgcc.in | |
parent | 242f8e90d075b38403a00fe30a3610aa8df60701 (diff) | |
download | gcc-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.in | 55 |
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,.*/,,'` |