libstdc++: Remove handling for underscore-prefixed libm functions [PR111638]

The checks in linkage.m4 try to support math functions prefixed with
underscores, like _acosf and _isinf. However, that doesn't work because
they're renamed to the standard names using a macro, but then <cmath>
undefines that macro again.

This simply removes everything related to those underscored functions.

libstdc++-v3/ChangeLog:

	PR libstdc++/111638
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* linkage.m4 (GLIBCXX_MAYBE_UNDERSCORED_FUNCS): Remove.
	(GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1): Do not check for _foo.
	(GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1): Likewise.
	(GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2): Likewise.
	(GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3): Likewise.
	(GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2): Do not use
	GLIBCXX_MAYBE_UNDERSCORED_FUNCS.
This commit is contained in:
Jonathan Wakely 2023-09-29 14:29:16 +01:00
parent 0b880466e9
commit 898fd81b83
3 changed files with 0 additions and 19849 deletions

View File

@ -541,195 +541,9 @@
/* Define to 1 if you have the <xlocale.h> header file. */ /* Define to 1 if you have the <xlocale.h> header file. */
#undef HAVE_XLOCALE_H #undef HAVE_XLOCALE_H
/* Define to 1 if you have the `_acosf' function. */
#undef HAVE__ACOSF
/* Define to 1 if you have the `_acosl' function. */
#undef HAVE__ACOSL
/* Define to 1 if you have the `_aligned_malloc' function. */ /* Define to 1 if you have the `_aligned_malloc' function. */
#undef HAVE__ALIGNED_MALLOC #undef HAVE__ALIGNED_MALLOC
/* Define to 1 if you have the `_asinf' function. */
#undef HAVE__ASINF
/* Define to 1 if you have the `_asinl' function. */
#undef HAVE__ASINL
/* Define to 1 if you have the `_atan2f' function. */
#undef HAVE__ATAN2F
/* Define to 1 if you have the `_atan2l' function. */
#undef HAVE__ATAN2L
/* Define to 1 if you have the `_atanf' function. */
#undef HAVE__ATANF
/* Define to 1 if you have the `_atanl' function. */
#undef HAVE__ATANL
/* Define to 1 if you have the `_ceilf' function. */
#undef HAVE__CEILF
/* Define to 1 if you have the `_ceill' function. */
#undef HAVE__CEILL
/* Define to 1 if you have the `_cosf' function. */
#undef HAVE__COSF
/* Define to 1 if you have the `_coshf' function. */
#undef HAVE__COSHF
/* Define to 1 if you have the `_coshl' function. */
#undef HAVE__COSHL
/* Define to 1 if you have the `_cosl' function. */
#undef HAVE__COSL
/* Define to 1 if you have the `_expf' function. */
#undef HAVE__EXPF
/* Define to 1 if you have the `_expl' function. */
#undef HAVE__EXPL
/* Define to 1 if you have the `_fabsf' function. */
#undef HAVE__FABSF
/* Define to 1 if you have the `_fabsl' function. */
#undef HAVE__FABSL
/* Define to 1 if you have the `_finite' function. */
#undef HAVE__FINITE
/* Define to 1 if you have the `_finitef' function. */
#undef HAVE__FINITEF
/* Define to 1 if you have the `_finitel' function. */
#undef HAVE__FINITEL
/* Define to 1 if you have the `_floorf' function. */
#undef HAVE__FLOORF
/* Define to 1 if you have the `_floorl' function. */
#undef HAVE__FLOORL
/* Define to 1 if you have the `_fmodf' function. */
#undef HAVE__FMODF
/* Define to 1 if you have the `_fmodl' function. */
#undef HAVE__FMODL
/* Define to 1 if you have the `_fpclass' function. */
#undef HAVE__FPCLASS
/* Define to 1 if you have the `_frexpf' function. */
#undef HAVE__FREXPF
/* Define to 1 if you have the `_frexpl' function. */
#undef HAVE__FREXPL
/* Define to 1 if you have the `_hypot' function. */
#undef HAVE__HYPOT
/* Define to 1 if you have the `_hypotf' function. */
#undef HAVE__HYPOTF
/* Define to 1 if you have the `_hypotl' function. */
#undef HAVE__HYPOTL
/* Define to 1 if you have the `_isinf' function. */
#undef HAVE__ISINF
/* Define to 1 if you have the `_isinff' function. */
#undef HAVE__ISINFF
/* Define to 1 if you have the `_isinfl' function. */
#undef HAVE__ISINFL
/* Define to 1 if you have the `_isnan' function. */
#undef HAVE__ISNAN
/* Define to 1 if you have the `_isnanf' function. */
#undef HAVE__ISNANF
/* Define to 1 if you have the `_isnanl' function. */
#undef HAVE__ISNANL
/* Define to 1 if you have the `_ldexpf' function. */
#undef HAVE__LDEXPF
/* Define to 1 if you have the `_ldexpl' function. */
#undef HAVE__LDEXPL
/* Define to 1 if you have the `_log10f' function. */
#undef HAVE__LOG10F
/* Define to 1 if you have the `_log10l' function. */
#undef HAVE__LOG10L
/* Define to 1 if you have the `_logf' function. */
#undef HAVE__LOGF
/* Define to 1 if you have the `_logl' function. */
#undef HAVE__LOGL
/* Define to 1 if you have the `_modf' function. */
#undef HAVE__MODF
/* Define to 1 if you have the `_modff' function. */
#undef HAVE__MODFF
/* Define to 1 if you have the `_modfl' function. */
#undef HAVE__MODFL
/* Define to 1 if you have the `_powf' function. */
#undef HAVE__POWF
/* Define to 1 if you have the `_powl' function. */
#undef HAVE__POWL
/* Define to 1 if you have the `_qfpclass' function. */
#undef HAVE__QFPCLASS
/* Define to 1 if you have the `_sincos' function. */
#undef HAVE__SINCOS
/* Define to 1 if you have the `_sincosf' function. */
#undef HAVE__SINCOSF
/* Define to 1 if you have the `_sincosl' function. */
#undef HAVE__SINCOSL
/* Define to 1 if you have the `_sinf' function. */
#undef HAVE__SINF
/* Define to 1 if you have the `_sinhf' function. */
#undef HAVE__SINHF
/* Define to 1 if you have the `_sinhl' function. */
#undef HAVE__SINHL
/* Define to 1 if you have the `_sinl' function. */
#undef HAVE__SINL
/* Define to 1 if you have the `_sqrtf' function. */
#undef HAVE__SQRTF
/* Define to 1 if you have the `_sqrtl' function. */
#undef HAVE__SQRTL
/* Define to 1 if you have the `_tanf' function. */
#undef HAVE__TANF
/* Define to 1 if you have the `_tanhf' function. */
#undef HAVE__TANHF
/* Define to 1 if you have the `_tanhl' function. */
#undef HAVE__TANHL
/* Define to 1 if you have the `_tanl' function. */
#undef HAVE__TANL
/* Define to 1 if you have the `_wfopen' function. */ /* Define to 1 if you have the `_wfopen' function. */
#undef HAVE__WFOPEN #undef HAVE__WFOPEN
@ -1125,323 +939,3 @@
#if __cplusplus >= 201103L #if __cplusplus >= 201103L
#undef __CORRECT_ISO_CPP11_MATH_H_PROTO_INT #undef __CORRECT_ISO_CPP11_MATH_H_PROTO_INT
#endif #endif
#if defined (HAVE__ACOSF) && ! defined (HAVE_ACOSF)
# define HAVE_ACOSF 1
# define acosf _acosf
#endif
#if defined (HAVE__ACOSL) && ! defined (HAVE_ACOSL)
# define HAVE_ACOSL 1
# define acosl _acosl
#endif
#if defined (HAVE__ASINF) && ! defined (HAVE_ASINF)
# define HAVE_ASINF 1
# define asinf _asinf
#endif
#if defined (HAVE__ASINL) && ! defined (HAVE_ASINL)
# define HAVE_ASINL 1
# define asinl _asinl
#endif
#if defined (HAVE__ATAN2F) && ! defined (HAVE_ATAN2F)
# define HAVE_ATAN2F 1
# define atan2f _atan2f
#endif
#if defined (HAVE__ATAN2L) && ! defined (HAVE_ATAN2L)
# define HAVE_ATAN2L 1
# define atan2l _atan2l
#endif
#if defined (HAVE__ATANF) && ! defined (HAVE_ATANF)
# define HAVE_ATANF 1
# define atanf _atanf
#endif
#if defined (HAVE__ATANL) && ! defined (HAVE_ATANL)
# define HAVE_ATANL 1
# define atanl _atanl
#endif
#if defined (HAVE__CEILF) && ! defined (HAVE_CEILF)
# define HAVE_CEILF 1
# define ceilf _ceilf
#endif
#if defined (HAVE__CEILL) && ! defined (HAVE_CEILL)
# define HAVE_CEILL 1
# define ceill _ceill
#endif
#if defined (HAVE__COSF) && ! defined (HAVE_COSF)
# define HAVE_COSF 1
# define cosf _cosf
#endif
#if defined (HAVE__COSHF) && ! defined (HAVE_COSHF)
# define HAVE_COSHF 1
# define coshf _coshf
#endif
#if defined (HAVE__COSHL) && ! defined (HAVE_COSHL)
# define HAVE_COSHL 1
# define coshl _coshl
#endif
#if defined (HAVE__COSL) && ! defined (HAVE_COSL)
# define HAVE_COSL 1
# define cosl _cosl
#endif
#if defined (HAVE__EXPF) && ! defined (HAVE_EXPF)
# define HAVE_EXPF 1
# define expf _expf
#endif
#if defined (HAVE__EXPL) && ! defined (HAVE_EXPL)
# define HAVE_EXPL 1
# define expl _expl
#endif
#if defined (HAVE__FABSF) && ! defined (HAVE_FABSF)
# define HAVE_FABSF 1
# define fabsf _fabsf
#endif
#if defined (HAVE__FABSL) && ! defined (HAVE_FABSL)
# define HAVE_FABSL 1
# define fabsl _fabsl
#endif
#if defined (HAVE__FINITE) && ! defined (HAVE_FINITE)
# define HAVE_FINITE 1
# define finite _finite
#endif
#if defined (HAVE__FINITEF) && ! defined (HAVE_FINITEF)
# define HAVE_FINITEF 1
# define finitef _finitef
#endif
#if defined (HAVE__FINITEL) && ! defined (HAVE_FINITEL)
# define HAVE_FINITEL 1
# define finitel _finitel
#endif
#if defined (HAVE__FLOORF) && ! defined (HAVE_FLOORF)
# define HAVE_FLOORF 1
# define floorf _floorf
#endif
#if defined (HAVE__FLOORL) && ! defined (HAVE_FLOORL)
# define HAVE_FLOORL 1
# define floorl _floorl
#endif
#if defined (HAVE__FMODF) && ! defined (HAVE_FMODF)
# define HAVE_FMODF 1
# define fmodf _fmodf
#endif
#if defined (HAVE__FMODL) && ! defined (HAVE_FMODL)
# define HAVE_FMODL 1
# define fmodl _fmodl
#endif
#if defined (HAVE__FPCLASS) && ! defined (HAVE_FPCLASS)
# define HAVE_FPCLASS 1
# define fpclass _fpclass
#endif
#if defined (HAVE__FREXPF) && ! defined (HAVE_FREXPF)
# define HAVE_FREXPF 1
# define frexpf _frexpf
#endif
#if defined (HAVE__FREXPL) && ! defined (HAVE_FREXPL)
# define HAVE_FREXPL 1
# define frexpl _frexpl
#endif
#if defined (HAVE__HYPOT) && ! defined (HAVE_HYPOT)
# define HAVE_HYPOT 1
# define hypot _hypot
#endif
#if defined (HAVE__HYPOTF) && ! defined (HAVE_HYPOTF)
# define HAVE_HYPOTF 1
# define hypotf _hypotf
#endif
#if defined (HAVE__HYPOTL) && ! defined (HAVE_HYPOTL)
# define HAVE_HYPOTL 1
# define hypotl _hypotl
#endif
#if defined (HAVE__ISINF) && ! defined (HAVE_ISINF)
# define HAVE_ISINF 1
# define isinf _isinf
#endif
#if defined (HAVE__ISINFF) && ! defined (HAVE_ISINFF)
# define HAVE_ISINFF 1
# define isinff _isinff
#endif
#if defined (HAVE__ISINFL) && ! defined (HAVE_ISINFL)
# define HAVE_ISINFL 1
# define isinfl _isinfl
#endif
#if defined (HAVE__ISNAN) && ! defined (HAVE_ISNAN)
# define HAVE_ISNAN 1
# define isnan _isnan
#endif
#if defined (HAVE__ISNANF) && ! defined (HAVE_ISNANF)
# define HAVE_ISNANF 1
# define isnanf _isnanf
#endif
#if defined (HAVE__ISNANL) && ! defined (HAVE_ISNANL)
# define HAVE_ISNANL 1
# define isnanl _isnanl
#endif
#if defined (HAVE__LDEXPF) && ! defined (HAVE_LDEXPF)
# define HAVE_LDEXPF 1
# define ldexpf _ldexpf
#endif
#if defined (HAVE__LDEXPL) && ! defined (HAVE_LDEXPL)
# define HAVE_LDEXPL 1
# define ldexpl _ldexpl
#endif
#if defined (HAVE__LOG10F) && ! defined (HAVE_LOG10F)
# define HAVE_LOG10F 1
# define log10f _log10f
#endif
#if defined (HAVE__LOG10L) && ! defined (HAVE_LOG10L)
# define HAVE_LOG10L 1
# define log10l _log10l
#endif
#if defined (HAVE__LOGF) && ! defined (HAVE_LOGF)
# define HAVE_LOGF 1
# define logf _logf
#endif
#if defined (HAVE__LOGL) && ! defined (HAVE_LOGL)
# define HAVE_LOGL 1
# define logl _logl
#endif
#if defined (HAVE__MODF) && ! defined (HAVE_MODF)
# define HAVE_MODF 1
# define modf _modf
#endif
#if defined (HAVE__MODFF) && ! defined (HAVE_MODFF)
# define HAVE_MODFF 1
# define modff _modff
#endif
#if defined (HAVE__MODFL) && ! defined (HAVE_MODFL)
# define HAVE_MODFL 1
# define modfl _modfl
#endif
#if defined (HAVE__POWF) && ! defined (HAVE_POWF)
# define HAVE_POWF 1
# define powf _powf
#endif
#if defined (HAVE__POWL) && ! defined (HAVE_POWL)
# define HAVE_POWL 1
# define powl _powl
#endif
#if defined (HAVE__QFPCLASS) && ! defined (HAVE_QFPCLASS)
# define HAVE_QFPCLASS 1
# define qfpclass _qfpclass
#endif
#if defined (HAVE__SINCOS) && ! defined (HAVE_SINCOS)
# define HAVE_SINCOS 1
# define sincos _sincos
#endif
#if defined (HAVE__SINCOSF) && ! defined (HAVE_SINCOSF)
# define HAVE_SINCOSF 1
# define sincosf _sincosf
#endif
#if defined (HAVE__SINCOSL) && ! defined (HAVE_SINCOSL)
# define HAVE_SINCOSL 1
# define sincosl _sincosl
#endif
#if defined (HAVE__SINF) && ! defined (HAVE_SINF)
# define HAVE_SINF 1
# define sinf _sinf
#endif
#if defined (HAVE__SINHF) && ! defined (HAVE_SINHF)
# define HAVE_SINHF 1
# define sinhf _sinhf
#endif
#if defined (HAVE__SINHL) && ! defined (HAVE_SINHL)
# define HAVE_SINHL 1
# define sinhl _sinhl
#endif
#if defined (HAVE__SINL) && ! defined (HAVE_SINL)
# define HAVE_SINL 1
# define sinl _sinl
#endif
#if defined (HAVE__SQRTF) && ! defined (HAVE_SQRTF)
# define HAVE_SQRTF 1
# define sqrtf _sqrtf
#endif
#if defined (HAVE__SQRTL) && ! defined (HAVE_SQRTL)
# define HAVE_SQRTL 1
# define sqrtl _sqrtl
#endif
#if defined (HAVE__STRTOF) && ! defined (HAVE_STRTOF)
# define HAVE_STRTOF 1
# define strtof _strtof
#endif
#if defined (HAVE__STRTOLD) && ! defined (HAVE_STRTOLD)
# define HAVE_STRTOLD 1
# define strtold _strtold
#endif
#if defined (HAVE__TANF) && ! defined (HAVE_TANF)
# define HAVE_TANF 1
# define tanf _tanf
#endif
#if defined (HAVE__TANHF) && ! defined (HAVE_TANHF)
# define HAVE_TANHF 1
# define tanhf _tanhf
#endif
#if defined (HAVE__TANHL) && ! defined (HAVE_TANHL)
# define HAVE_TANHL 1
# define tanhl _tanhl
#endif
#if defined (HAVE__TANL) && ! defined (HAVE_TANL)
# define HAVE_TANL 1
# define tanl _tanl
#endif

19292
libstdc++-v3/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -28,27 +28,10 @@ AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_1], [
]) ])
dnl
dnl Define autoheader template for using the underscore functions
dnl For each parameter, create a macro where if func doesn't exist,
dnl but _func does, then it will "#define func _func".
dnl
dnl GLIBCXX_MAYBE_UNDERSCORED_FUNCS
AC_DEFUN([GLIBCXX_MAYBE_UNDERSCORED_FUNCS],
[AC_FOREACH([glibcxx_ufunc], [$1],
[AH_VERBATIM(_[]glibcxx_ufunc,
[#if defined (]AS_TR_CPP(HAVE__[]glibcxx_ufunc)[) && ! defined (]AS_TR_CPP(HAVE_[]glibcxx_ufunc)[)
# define ]AS_TR_CPP(HAVE_[]glibcxx_ufunc)[ 1
# define ]glibcxx_ufunc[ _]glibcxx_ufunc[
#endif])])
])
dnl dnl
dnl Check to see if the (math function) argument passed is dnl Check to see if the (math function) argument passed is
dnl 1) declared when using the c++ compiler dnl 1) declared when using the c++ compiler
dnl 2) has "C" linkage dnl 2) has "C" linkage
dnl 3) if not, see if 1) and 2) for argument prepended with '_'
dnl dnl
dnl Define HAVE_CARGF etc if "cargf" is declared and links dnl Define HAVE_CARGF etc if "cargf" is declared and links
dnl dnl
@ -61,13 +44,7 @@ AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1], [
GLIBCXX_CHECK_MATH_DECL_1($1) GLIBCXX_CHECK_MATH_DECL_1($1)
if test x$glibcxx_cv_func_$1_use = x"yes"; then if test x$glibcxx_cv_func_$1_use = x"yes"; then
AC_CHECK_FUNCS($1) AC_CHECK_FUNCS($1)
else
GLIBCXX_CHECK_MATH_DECL_1(_$1)
if test x$glibcxx_cv_func__$1_use = x"yes"; then
AC_CHECK_FUNCS(_$1)
fi
fi fi
GLIBCXX_MAYBE_UNDERSCORED_FUNCS($1)
]) ])
@ -90,22 +67,7 @@ AC_DEFUN([GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1], [
AC_MSG_RESULT($glibcxx_cv_func_$2_use) AC_MSG_RESULT($glibcxx_cv_func_$2_use)
if test x$glibcxx_cv_func_$2_use = x"yes"; then if test x$glibcxx_cv_func_$2_use = x"yes"; then
AC_CHECK_FUNCS(funclist) AC_CHECK_FUNCS(funclist)
else
AC_MSG_CHECKING([for _$1 functions])
AC_CACHE_VAL(glibcxx_cv_func__$2_use, [
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([#include <math.h>],
patsubst(funclist,[\w+],[_\& (0);]),
[glibcxx_cv_func__$2_use=yes],
[glibcxx_cv_func__$2_use=no])
AC_LANG_RESTORE])
AC_MSG_RESULT($glibcxx_cv_func__$2_use)
if test x$glibcxx_cv_func__$2_use = x"yes"; then
AC_CHECK_FUNCS(patsubst(funclist,[\w+],[_\&]))
fi
fi fi
GLIBCXX_MAYBE_UNDERSCORED_FUNCS(funclist)
undefine([funclist]) undefine([funclist])
]) ])
@ -146,13 +108,7 @@ AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2], [
GLIBCXX_CHECK_MATH_DECL_2($1) GLIBCXX_CHECK_MATH_DECL_2($1)
if test x$glibcxx_cv_func_$1_use = x"yes"; then if test x$glibcxx_cv_func_$1_use = x"yes"; then
AC_CHECK_FUNCS($1) AC_CHECK_FUNCS($1)
else
GLIBCXX_CHECK_MATH_DECL_2(_$1)
if test x$glibcxx_cv_func__$1_use = x"yes"; then
AC_CHECK_FUNCS(_$1)
fi
fi fi
GLIBCXX_MAYBE_UNDERSCORED_FUNCS($1)
]) ])
@ -193,13 +149,7 @@ AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3], [
GLIBCXX_CHECK_MATH_DECL_3($1) GLIBCXX_CHECK_MATH_DECL_3($1)
if test x$glibcxx_cv_func_$1_use = x"yes"; then if test x$glibcxx_cv_func_$1_use = x"yes"; then
AC_CHECK_FUNCS($1) AC_CHECK_FUNCS($1)
else
GLIBCXX_CHECK_MATH_DECL_3(_$1)
if test x$glibcxx_cv_func__$1_use = x"yes"; then
AC_CHECK_FUNCS(_$1)
fi
fi fi
GLIBCXX_MAYBE_UNDERSCORED_FUNCS($1)
]) ])
@ -287,7 +237,6 @@ AC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2], [
if test x$glibcxx_cv_func_$1_use = x"yes"; then if test x$glibcxx_cv_func_$1_use = x"yes"; then
AC_CHECK_FUNCS($1) AC_CHECK_FUNCS($1)
fi fi
GLIBCXX_MAYBE_UNDERSCORED_FUNCS($1)
]) ])