2004-04-30 Andrew Cagney * configure.ac: Define HOST_FLOAT_FORMAT, HOST_DOUBLE_FORMAT, and HOST_LONG_DOUBLE_FORMAT. * configure, config.in: Re-generate. * floatformat.c (floatformat_float, floatformat_double) (floatformat_long_double): Index: include/ChangeLog 2004-04-30 Andrew Cagney * floatformat.h (floatformat_float, floatformat_double) (floatformat_long_double): Declare. Index: libiberty/configure.ac =================================================================== RCS file: /cvs/src/src/libiberty/configure.ac,v retrieving revision 1.6 diff -p -u -r1.6 configure.ac --- libiberty/configure.ac 26 Apr 2004 18:23:59 -0000 1.6 +++ libiberty/configure.ac 1 May 2004 12:46:58 -0000 @@ -520,6 +520,28 @@ case "${host}" in esac AC_SUBST(pexecute) +# Figure out which floatformat to use. +case "${host}" in +i[34567]86-*-*) + host_float_format="&floatformat_ieee_single_little" + host_double_format="&floatformat_ieee_double_little" + host_long_double_format="&floatformat_i387_ext" + ;; +hppa*-*-linux*) + host_float_format="&floatformat_ieee_single_big" + host_double_format="&floatformat_ieee_double_big" + host_long_double_format="&floatformat_ieee_double_big" + ;; +*) + host_float_format=0 + host_double_format=0 + host_long_double_format=0 + ;; +esac +AC_DEFINE_UNQUOTED(HOST_FLOAT_FORMAT,$host_float_format,[Host float floatformat]) +AC_DEFINE_UNQUOTED(HOST_DOUBLE_FORMAT,$host_double_format,[Host double floatformat]) +AC_DEFINE_UNQUOTED(HOST_LONG_DOUBLE_FORMAT,$host_long_double_format,[Host long double floatformat]) + libiberty_AC_FUNC_STRNCMP # Install a library built with a cross compiler in $(tooldir) rather Index: libiberty/floatformat.c =================================================================== RCS file: /cvs/src/src/libiberty/floatformat.c,v retrieving revision 1.12 diff -p -u -r1.12 floatformat.c --- libiberty/floatformat.c 3 Dec 2003 19:03:29 -0000 1.12 +++ libiberty/floatformat.c 1 May 2004 12:46:58 -0000 @@ -548,6 +548,10 @@ floatformat_is_valid (fmt, from) return fmt->is_valid (fmt, from); } +/* If non-NULL, the host's floatformat. */ +const struct floatformat *const floatformat_float = HOST_FLOAT_FORMAT; +const struct floatformat *const floatformat_double = HOST_DOUBLE_FORMAT; +const struct floatformat *const floatformat_long_double = HOST_LONG_DOUBLE_FORMAT; #ifdef IEEE_DEBUG Index: include/floatformat.h =================================================================== RCS file: /cvs/src/src/include/floatformat.h,v retrieving revision 1.9 diff -p -u -r1.9 floatformat.h --- include/floatformat.h 22 Sep 2003 17:41:02 -0000 1.9 +++ include/floatformat.h 1 May 2004 12:47:00 -0000 @@ -130,4 +130,9 @@ floatformat_from_double PARAMS ((const s extern int floatformat_is_valid PARAMS ((const struct floatformat *fmt, const char *from)); +/* If non-NULL, the host's floatformat. */ +extern const struct floatformat *const floatformat_float; +extern const struct floatformat *const floatformat_double; +extern const struct floatformat *const floatformat_long_double; + #endif /* defined (FLOATFORMAT_H) */