137 lines
4.4 KiB
Plaintext
137 lines
4.4 KiB
Plaintext
# totalorder.m4
|
|
# serial 3
|
|
dnl Copyright 2023-2024 Free Software Foundation, Inc.
|
|
dnl This file is free software; the Free Software Foundation
|
|
dnl gives unlimited permission to copy and/or distribute it,
|
|
dnl with or without modifications, as long as this notice is preserved.
|
|
dnl This file is offered as-is, without any warranty.
|
|
|
|
AC_DEFUN([gl_FUNC_TOTALORDERF],
|
|
[
|
|
AC_REQUIRE([gl_MATH_H_DEFAULTS])
|
|
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
|
|
|
dnl glibc versions < 2.31 had an incompatible declaration of this function,
|
|
dnl see <https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=42760d764649ad82f5fe45a26cbdf2c2500409f7>
|
|
AC_CACHE_CHECK([whether totalorderf has a non-standard declaration],
|
|
[gl_cv_func_totalorderf_incompatible],
|
|
[AC_COMPILE_IFELSE(
|
|
[AC_LANG_PROGRAM(
|
|
[[#include <math.h>
|
|
]],
|
|
[[extern
|
|
#ifdef __cplusplus
|
|
"C"
|
|
#endif
|
|
int totalorderf (float const *, float const *);
|
|
]])
|
|
],
|
|
[gl_cv_func_totalorderf_incompatible=no],
|
|
[gl_cv_func_totalorderf_incompatible=yes])
|
|
])
|
|
if test $gl_cv_func_totalorderf_incompatible = yes; then
|
|
REPLACE_TOTALORDERF=1
|
|
else
|
|
gl_MATHFUNC([totalorderf], [int], [(float const *, float const *)])
|
|
if test $gl_cv_func_totalorderf_no_libm != yes \
|
|
&& test $gl_cv_func_totalorderf_in_libm != yes; then
|
|
HAVE_TOTALORDERF=0
|
|
fi
|
|
fi
|
|
if test $HAVE_TOTALORDERF = 0 || test $REPLACE_TOTALORDERF = 1; then
|
|
TOTALORDERF_LIBM='$(ISNANF_LIBM)'
|
|
dnl Prerequisite of lib/totalorderf.c.
|
|
gl_NAN_MIPS
|
|
fi
|
|
AC_SUBST([TOTALORDERF_LIBM])
|
|
])
|
|
|
|
AC_DEFUN([gl_FUNC_TOTALORDER],
|
|
[
|
|
AC_REQUIRE([gl_MATH_H_DEFAULTS])
|
|
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
|
|
|
dnl glibc versions < 2.31 had an incompatible declaration of this function,
|
|
dnl see <https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=42760d764649ad82f5fe45a26cbdf2c2500409f7>
|
|
AC_CACHE_CHECK([whether totalorder has a non-standard declaration],
|
|
[gl_cv_func_totalorder_incompatible],
|
|
[AC_COMPILE_IFELSE(
|
|
[AC_LANG_PROGRAM(
|
|
[[#include <math.h>
|
|
]],
|
|
[[extern
|
|
#ifdef __cplusplus
|
|
"C"
|
|
#endif
|
|
int totalorder (double const *, double const *);
|
|
]])
|
|
],
|
|
[gl_cv_func_totalorder_incompatible=no],
|
|
[gl_cv_func_totalorder_incompatible=yes])
|
|
])
|
|
if test $gl_cv_func_totalorder_incompatible = yes; then
|
|
REPLACE_TOTALORDER=1
|
|
else
|
|
gl_MATHFUNC([totalorder], [int], [(double const *, double const *)])
|
|
if test $gl_cv_func_totalorder_no_libm != yes \
|
|
&& test $gl_cv_func_totalorder_in_libm != yes; then
|
|
HAVE_TOTALORDER=0
|
|
fi
|
|
fi
|
|
if test $HAVE_TOTALORDER = 0 || test $REPLACE_TOTALORDER = 1; then
|
|
TOTALORDER_LIBM='$(ISNAND_LIBM)'
|
|
dnl Prerequisite of lib/totalorder.c.
|
|
gl_NAN_MIPS
|
|
fi
|
|
AC_SUBST([TOTALORDER_LIBM])
|
|
])
|
|
|
|
AC_DEFUN([gl_FUNC_TOTALORDERL],
|
|
[
|
|
AC_REQUIRE([gl_MATH_H_DEFAULTS])
|
|
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
|
AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
|
|
|
|
dnl glibc versions < 2.31 had an incompatible declaration of this function,
|
|
dnl see <https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=42760d764649ad82f5fe45a26cbdf2c2500409f7>
|
|
AC_CACHE_CHECK([whether totalorderl has a non-standard declaration],
|
|
[gl_cv_func_totalorderl_incompatible],
|
|
[AC_COMPILE_IFELSE(
|
|
[AC_LANG_PROGRAM(
|
|
[[#include <math.h>
|
|
]],
|
|
[[extern
|
|
#ifdef __cplusplus
|
|
"C"
|
|
#endif
|
|
int totalorderl (long double const *, long double const *);
|
|
]])
|
|
],
|
|
[gl_cv_func_totalorderl_incompatible=no],
|
|
[gl_cv_func_totalorderl_incompatible=yes])
|
|
])
|
|
if test $gl_cv_func_totalorderl_incompatible = yes; then
|
|
REPLACE_TOTALORDERL=1
|
|
else
|
|
gl_MATHFUNC([totalorderl], [int],
|
|
[(long double const *, long double const *)])
|
|
if test $gl_cv_func_totalorderl_no_libm != yes \
|
|
&& test $gl_cv_func_totalorderl_in_libm != yes; then
|
|
HAVE_TOTALORDERL=0
|
|
fi
|
|
fi
|
|
if test $HAVE_TOTALORDERL = 0 || test $REPLACE_TOTALORDERL = 1; then
|
|
dnl Find libraries needed to link lib/totalorderl.c.
|
|
if test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 1; then
|
|
AC_REQUIRE([gl_FUNC_TOTALORDER])
|
|
TOTALORDERL_LIBM="$TOTALORDER_LIBM"
|
|
else
|
|
TOTALORDERL_LIBM='$(ISNANL_LIBM)'
|
|
fi
|
|
dnl Prerequisite of lib/totalorderl.c.
|
|
gl_LONG_DOUBLE_SIGN_LOCATION
|
|
gl_NAN_MIPS
|
|
fi
|
|
AC_SUBST([TOTALORDERL_LIBM])
|
|
])
|