|
Packit |
8f70b4 |
# float_h.m4 serial 12
|
|
Packit |
8f70b4 |
dnl Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
|
|
Packit |
8f70b4 |
dnl This file is free software; the Free Software Foundation
|
|
Packit |
8f70b4 |
dnl gives unlimited permission to copy and/or distribute it,
|
|
Packit |
8f70b4 |
dnl with or without modifications, as long as this notice is preserved.
|
|
Packit |
8f70b4 |
|
|
Packit |
8f70b4 |
AC_DEFUN([gl_FLOAT_H],
|
|
Packit |
8f70b4 |
[
|
|
Packit |
8f70b4 |
AC_REQUIRE([AC_PROG_CC])
|
|
Packit |
8f70b4 |
AC_REQUIRE([AC_CANONICAL_HOST])
|
|
Packit |
8f70b4 |
FLOAT_H=
|
|
Packit |
8f70b4 |
REPLACE_FLOAT_LDBL=0
|
|
Packit |
8f70b4 |
case "$host_os" in
|
|
Packit |
8f70b4 |
aix* | beos* | openbsd* | mirbsd* | irix*)
|
|
Packit |
8f70b4 |
FLOAT_H=float.h
|
|
Packit |
8f70b4 |
;;
|
|
Packit |
8f70b4 |
freebsd* | dragonfly*)
|
|
Packit |
8f70b4 |
case "$host_cpu" in
|
|
Packit |
8f70b4 |
changequote(,)dnl
|
|
Packit |
8f70b4 |
i[34567]86 )
|
|
Packit |
8f70b4 |
changequote([,])dnl
|
|
Packit |
8f70b4 |
FLOAT_H=float.h
|
|
Packit |
8f70b4 |
;;
|
|
Packit |
8f70b4 |
x86_64 )
|
|
Packit |
8f70b4 |
# On x86_64 systems, the C compiler may still be generating
|
|
Packit |
8f70b4 |
# 32-bit code.
|
|
Packit |
8f70b4 |
AC_COMPILE_IFELSE(
|
|
Packit |
8f70b4 |
[AC_LANG_SOURCE(
|
|
Packit |
8f70b4 |
[[#if defined __LP64__ || defined __x86_64__ || defined __amd64__
|
|
Packit |
8f70b4 |
int ok;
|
|
Packit |
8f70b4 |
#else
|
|
Packit |
8f70b4 |
error fail
|
|
Packit |
8f70b4 |
#endif
|
|
Packit |
8f70b4 |
]])],
|
|
Packit |
8f70b4 |
[],
|
|
Packit |
8f70b4 |
[FLOAT_H=float.h])
|
|
Packit |
8f70b4 |
;;
|
|
Packit |
8f70b4 |
esac
|
|
Packit |
8f70b4 |
;;
|
|
Packit |
8f70b4 |
linux*)
|
|
Packit |
8f70b4 |
case "$host_cpu" in
|
|
Packit |
8f70b4 |
powerpc*)
|
|
Packit |
8f70b4 |
FLOAT_H=float.h
|
|
Packit |
8f70b4 |
;;
|
|
Packit |
8f70b4 |
esac
|
|
Packit |
8f70b4 |
;;
|
|
Packit |
8f70b4 |
esac
|
|
Packit |
8f70b4 |
case "$host_os" in
|
|
Packit |
8f70b4 |
aix* | freebsd* | dragonfly* | linux*)
|
|
Packit |
8f70b4 |
if test -n "$FLOAT_H"; then
|
|
Packit |
8f70b4 |
REPLACE_FLOAT_LDBL=1
|
|
Packit |
8f70b4 |
fi
|
|
Packit |
8f70b4 |
;;
|
|
Packit |
8f70b4 |
esac
|
|
Packit |
8f70b4 |
|
|
Packit |
8f70b4 |
dnl Test against glibc-2.7 Linux/SPARC64 bug.
|
|
Packit |
8f70b4 |
REPLACE_ITOLD=0
|
|
Packit |
8f70b4 |
AC_CACHE_CHECK([whether conversion from 'int' to 'long double' works],
|
|
Packit |
8f70b4 |
[gl_cv_func_itold_works],
|
|
Packit |
8f70b4 |
[
|
|
Packit |
8f70b4 |
AC_RUN_IFELSE(
|
|
Packit |
8f70b4 |
[AC_LANG_SOURCE([[
|
|
Packit |
8f70b4 |
int i = -1;
|
|
Packit |
8f70b4 |
volatile long double ld;
|
|
Packit |
8f70b4 |
int main ()
|
|
Packit |
8f70b4 |
{
|
|
Packit |
8f70b4 |
ld += i * 1.0L;
|
|
Packit |
8f70b4 |
if (ld > 0)
|
|
Packit |
8f70b4 |
return 1;
|
|
Packit |
8f70b4 |
return 0;
|
|
Packit |
8f70b4 |
}]])],
|
|
Packit |
8f70b4 |
[gl_cv_func_itold_works=yes],
|
|
Packit |
8f70b4 |
[gl_cv_func_itold_works=no],
|
|
Packit |
8f70b4 |
[case "$host" in
|
|
Packit |
8f70b4 |
sparc*-*-linux*)
|
|
Packit |
8f70b4 |
AC_COMPILE_IFELSE(
|
|
Packit |
8f70b4 |
[AC_LANG_SOURCE(
|
|
Packit |
8f70b4 |
[[#if defined __LP64__ || defined __arch64__
|
|
Packit |
8f70b4 |
int ok;
|
|
Packit |
8f70b4 |
#else
|
|
Packit |
8f70b4 |
error fail
|
|
Packit |
8f70b4 |
#endif
|
|
Packit |
8f70b4 |
]])],
|
|
Packit |
8f70b4 |
[gl_cv_func_itold_works="guessing no"],
|
|
Packit |
8f70b4 |
[gl_cv_func_itold_works="guessing yes"])
|
|
Packit |
8f70b4 |
;;
|
|
Packit |
8f70b4 |
# Guess yes on native Windows.
|
|
Packit |
8f70b4 |
mingw*) gl_cv_func_itold_works="guessing yes" ;;
|
|
Packit |
8f70b4 |
*) gl_cv_func_itold_works="guessing yes" ;;
|
|
Packit |
8f70b4 |
esac
|
|
Packit |
8f70b4 |
])
|
|
Packit |
8f70b4 |
])
|
|
Packit |
8f70b4 |
case "$gl_cv_func_itold_works" in
|
|
Packit |
8f70b4 |
*no)
|
|
Packit |
8f70b4 |
REPLACE_ITOLD=1
|
|
Packit |
8f70b4 |
dnl We add the workaround to <float.h> but also to <math.h>,
|
|
Packit |
8f70b4 |
dnl to increase the chances that the fix function gets pulled in.
|
|
Packit |
8f70b4 |
FLOAT_H=float.h
|
|
Packit |
8f70b4 |
;;
|
|
Packit |
8f70b4 |
esac
|
|
Packit |
8f70b4 |
|
|
Packit |
8f70b4 |
if test -n "$FLOAT_H"; then
|
|
Packit |
8f70b4 |
gl_NEXT_HEADERS([float.h])
|
|
Packit |
8f70b4 |
fi
|
|
Packit |
8f70b4 |
AC_SUBST([FLOAT_H])
|
|
Packit |
8f70b4 |
AM_CONDITIONAL([GL_GENERATE_FLOAT_H], [test -n "$FLOAT_H"])
|
|
Packit |
8f70b4 |
AC_SUBST([REPLACE_ITOLD])
|
|
Packit |
8f70b4 |
])
|