1995-05-30 05:51:47 +00:00
|
|
|
# @(#)Makefile 5.1beta 93/09/24
|
1999-08-28 00:22:10 +00:00
|
|
|
# $FreeBSD$
|
1995-05-30 05:51:47 +00:00
|
|
|
#
|
1994-08-19 09:40:01 +00:00
|
|
|
# ====================================================
|
|
|
|
# Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
1995-05-30 05:51:47 +00:00
|
|
|
#
|
1994-08-19 09:40:01 +00:00
|
|
|
# Developed at SunPro, a Sun Microsystems, Inc. business.
|
|
|
|
# Permission to use, copy, modify, and distribute this
|
1995-05-30 05:51:47 +00:00
|
|
|
# software is freely granted, provided that this notice
|
1994-08-19 09:40:01 +00:00
|
|
|
# is preserved.
|
|
|
|
# ====================================================
|
1995-05-30 05:51:47 +00:00
|
|
|
#
|
|
|
|
#
|
1994-08-19 09:40:01 +00:00
|
|
|
|
2016-02-05 21:01:08 +00:00
|
|
|
PACKAGE= clibs
|
2016-09-28 17:44:03 +00:00
|
|
|
ARCH_SUBDIR= ${MACHINE_CPUARCH:S/i386/i387/}
|
2003-07-23 04:23:36 +00:00
|
|
|
|
2005-02-04 14:33:39 +00:00
|
|
|
.include "${ARCH_SUBDIR}/Makefile.inc"
|
2004-06-06 10:06:57 +00:00
|
|
|
|
2008-07-18 02:18:34 +00:00
|
|
|
.PATH: ${.CURDIR}/${ARCH_SUBDIR}
|
2013-06-05 05:33:01 +00:00
|
|
|
.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
|
|
|
|
.PATH: ${.CURDIR}/x86
|
|
|
|
CFLAGS+= -I${.CURDIR}/x86
|
|
|
|
.endif
|
1994-08-19 09:40:01 +00:00
|
|
|
|
2007-12-16 21:19:28 +00:00
|
|
|
# long double format
|
|
|
|
.if ${LDBL_PREC} == 64
|
|
|
|
.PATH: ${.CURDIR}/ld80
|
2008-07-31 22:41:26 +00:00
|
|
|
CFLAGS+= -I${.CURDIR}/ld80
|
2007-12-16 21:19:28 +00:00
|
|
|
.elif ${LDBL_PREC} == 113
|
|
|
|
.PATH: ${.CURDIR}/ld128
|
2008-07-31 22:41:26 +00:00
|
|
|
CFLAGS+= -I${.CURDIR}/ld128
|
2007-12-16 21:19:28 +00:00
|
|
|
.endif
|
|
|
|
|
2015-06-11 21:13:05 +00:00
|
|
|
CFLAGS+= -I${.CURDIR}/${ARCH_SUBDIR}
|
|
|
|
|
Avoid raising unexpected floating point exceptions in libm
When using clang with x86_64 CPUs that support AVX, some floating point
transformations may raise exceptions that would not have been raised by
the original code. To avoid this, use the -fp-exception-behavior=maytrap
flag, introduced in clang 10.0.0.
In particular, this fixes a number of test failures with ctanhf(3) and
ctanf(3), when libm is compiled with -mavx. An unexpected FE_INVALID
exception is then raised, because clang emits vdivps instructions to
perform certain divides. (The vdivps instruction operates on multiple
single-precision float operands simultaneously, but the exceptions may
be influenced by unused parts of the XMM registers. In this particular
case, it was calculating 0 / 0, which results in FE_INVALID.)
If -fp-exception-behavior=maytrap is specified however, clang uses
vdivss instructions instead, which work on one operand, and should not
raise unexpected exceptions.
Reported by: olivier
Reviewed by: arichardson
PR: 254911
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D29686
2021-04-09 23:07:54 +00:00
|
|
|
.include <bsd.compiler.mk>
|
2021-04-10 14:02:49 +00:00
|
|
|
.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 100000 && \
|
|
|
|
(${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386")
|
Avoid raising unexpected floating point exceptions in libm
When using clang with x86_64 CPUs that support AVX, some floating point
transformations may raise exceptions that would not have been raised by
the original code. To avoid this, use the -fp-exception-behavior=maytrap
flag, introduced in clang 10.0.0.
In particular, this fixes a number of test failures with ctanhf(3) and
ctanf(3), when libm is compiled with -mavx. An unexpected FE_INVALID
exception is then raised, because clang emits vdivps instructions to
perform certain divides. (The vdivps instruction operates on multiple
single-precision float operands simultaneously, but the exceptions may
be influenced by unused parts of the XMM registers. In this particular
case, it was calculating 0 / 0, which results in FE_INVALID.)
If -fp-exception-behavior=maytrap is specified however, clang uses
vdivss instructions instead, which work on one operand, and should not
raise unexpected exceptions.
Reported by: olivier
Reviewed by: arichardson
PR: 254911
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D29686
2021-04-09 23:07:54 +00:00
|
|
|
# When using clang with x86_64 CPUs that support AVX, some floating point
|
|
|
|
# transformations may raise exceptions that would not have been raised by the
|
|
|
|
# original code. To avoid this, use the -fp-exception-behavior=maytrap flag,
|
|
|
|
# introduced in clang 10.0.0.
|
|
|
|
# See also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=254911
|
|
|
|
CFLAGS+= -ffp-exception-behavior=maytrap
|
|
|
|
.endif
|
|
|
|
|
2008-07-18 02:18:34 +00:00
|
|
|
.PATH: ${.CURDIR}/bsdsrc
|
|
|
|
.PATH: ${.CURDIR}/src
|
|
|
|
.PATH: ${.CURDIR}/man
|
|
|
|
|
1994-08-19 09:40:01 +00:00
|
|
|
LIB= m
|
2015-06-15 19:28:07 +00:00
|
|
|
SHLIBDIR?= /lib
|
2007-05-21 02:49:08 +00:00
|
|
|
SHLIB_MAJOR= 5
|
2008-07-31 20:11:37 +00:00
|
|
|
WARNS?= 1
|
2014-02-21 18:49:08 +00:00
|
|
|
IGNORE_PRAGMA=
|
2002-03-26 11:59:29 +00:00
|
|
|
COMMON_SRCS= b_exp.c b_log.c b_tgamma.c \
|
|
|
|
e_acos.c e_acosf.c e_acosh.c e_acoshf.c e_asin.c e_asinf.c \
|
1994-08-19 09:40:01 +00:00
|
|
|
e_atan2.c e_atan2f.c e_atanh.c e_atanhf.c e_cosh.c e_coshf.c e_exp.c \
|
|
|
|
e_expf.c e_fmod.c e_fmodf.c e_gamma.c e_gamma_r.c e_gammaf.c \
|
|
|
|
e_gammaf_r.c e_hypot.c e_hypotf.c e_j0.c e_j0f.c e_j1.c e_j1f.c \
|
|
|
|
e_jn.c e_jnf.c e_lgamma.c e_lgamma_r.c e_lgammaf.c e_lgammaf_r.c \
|
2010-12-05 22:11:22 +00:00
|
|
|
e_log.c e_log10.c e_log10f.c e_log2.c e_log2f.c e_logf.c \
|
|
|
|
e_pow.c e_powf.c e_rem_pio2.c \
|
1994-08-19 09:40:01 +00:00
|
|
|
e_rem_pio2f.c e_remainder.c e_remainderf.c e_scalb.c e_scalbf.c \
|
2004-06-06 10:06:57 +00:00
|
|
|
e_sinh.c e_sinhf.c e_sqrt.c e_sqrtf.c fenv.c \
|
2013-09-06 07:58:23 +00:00
|
|
|
imprecise.c \
|
2011-10-21 06:27:56 +00:00
|
|
|
k_cos.c k_cosf.c k_exp.c k_expf.c k_rem_pio2.c k_sin.c k_sinf.c \
|
2005-02-04 14:08:32 +00:00
|
|
|
k_tan.c k_tanf.c \
|
2008-07-31 22:41:26 +00:00
|
|
|
s_asinh.c s_asinhf.c s_atan.c s_atanf.c s_carg.c s_cargf.c s_cargl.c \
|
2018-05-13 09:54:34 +00:00
|
|
|
s_cbrt.c s_cbrtf.c s_ceil.c s_ceilf.c s_clog.c s_clogf.c \
|
2007-12-15 08:38:44 +00:00
|
|
|
s_copysign.c s_copysignf.c s_cos.c s_cosf.c \
|
|
|
|
s_csqrt.c s_csqrtf.c s_erf.c s_erff.c \
|
2005-04-05 02:57:39 +00:00
|
|
|
s_exp2.c s_exp2f.c s_expm1.c s_expm1f.c s_fabsf.c s_fdim.c \
|
|
|
|
s_finite.c s_finitef.c \
|
2008-02-13 16:56:52 +00:00
|
|
|
s_floor.c s_floorf.c s_fma.c s_fmaf.c \
|
2016-10-11 20:31:59 +00:00
|
|
|
s_fmax.c s_fmaxf.c s_fmin.c \
|
|
|
|
s_fminf.c s_frexp.c s_frexpf.c s_ilogb.c s_ilogbf.c \
|
- Remove s_ldexpf.c (now aliased to scalbn.)
- Add nexttoward{,f,l} and nextafterl. On all platforms,
nexttowardl is an alias for nextafterl.
- Add fmal.
- Add man pages for new routines: fmal, nextafterl,
nexttoward{,f,l}, scalb{,l}nl.
Note that on platforms where long double is the same as double, we
generally just alias the double versions of the routines, since doing
so avoids extra work on the source code level and redundant code in
the binary. In particular:
ldbl53 ldbl64/113
fmal s_fma.c s_fmal.c
ldexpl s_scalbn.c s_scalbnl.c
nextafterl s_nextafter.c s_nextafterl.c
nexttoward s_nextafter.c s_nexttoward.c
nexttowardf s_nexttowardf.c s_nexttowardf.c
nexttowardl s_nextafter.c s_nextafterl.c
scalbnl s_scalbn.c s_scalbnl.c
2005-03-07 04:59:11 +00:00
|
|
|
s_ilogbl.c s_isfinite.c s_isnan.c s_isnormal.c \
|
2005-04-08 01:24:08 +00:00
|
|
|
s_llrint.c s_llrintf.c s_llround.c s_llroundf.c s_llroundl.c \
|
2005-01-11 23:12:55 +00:00
|
|
|
s_log1p.c s_log1pf.c s_logb.c s_logbf.c s_lrint.c s_lrintf.c \
|
2005-04-08 01:24:08 +00:00
|
|
|
s_lround.c s_lroundf.c s_lroundl.c s_modff.c \
|
2007-12-16 21:19:28 +00:00
|
|
|
s_nan.c s_nearbyint.c s_nextafter.c s_nextafterf.c \
|
2005-03-25 04:40:44 +00:00
|
|
|
s_nexttowardf.c s_remquo.c s_remquof.c \
|
2013-11-07 21:20:34 +00:00
|
|
|
s_rint.c s_rintf.c s_round.c s_roundf.c \
|
2004-07-19 08:16:10 +00:00
|
|
|
s_scalbln.c s_scalbn.c s_scalbnf.c s_signbit.c \
|
2017-05-28 06:13:38 +00:00
|
|
|
s_signgam.c s_significand.c s_significandf.c s_sin.c \
|
|
|
|
s_sincos.c s_sincosf.c s_sinf.c \
|
2008-02-18 17:27:11 +00:00
|
|
|
s_tan.c s_tanf.c s_tanh.c s_tanhf.c s_tgammaf.c s_trunc.c s_truncf.c \
|
2005-02-04 14:08:32 +00:00
|
|
|
w_cabs.c w_cabsf.c w_drem.c w_dremf.c
|
1994-08-19 09:40:01 +00:00
|
|
|
|
2003-10-25 09:32:18 +00:00
|
|
|
# Location of fpmath.h and _fpmath.h
|
2015-12-01 22:20:04 +00:00
|
|
|
.if exists(${LIBCSRCDIR}/${MACHINE_ARCH})
|
2010-08-28 15:03:11 +00:00
|
|
|
LIBC_ARCH=${MACHINE_ARCH}
|
|
|
|
.else
|
|
|
|
LIBC_ARCH=${MACHINE_CPUARCH}
|
|
|
|
.endif
|
2015-12-01 22:20:04 +00:00
|
|
|
CFLAGS+= -I${.CURDIR}/src -I${LIBCSRCDIR}/include \
|
|
|
|
-I${LIBCSRCDIR}/${LIBC_ARCH}
|
2006-03-27 23:59:45 +00:00
|
|
|
SYM_MAPS+= ${.CURDIR}/Symbol.map
|
|
|
|
|
2015-12-01 22:20:04 +00:00
|
|
|
VERSION_DEF= ${LIBCSRCDIR}/Versions.def
|
2006-03-27 23:59:45 +00:00
|
|
|
SYMBOL_MAPS= ${SYM_MAPS}
|
2003-10-25 09:32:18 +00:00
|
|
|
|
|
|
|
# C99 long double functions
|
2008-01-14 02:12:07 +00:00
|
|
|
COMMON_SRCS+= s_copysignl.c s_fabsl.c s_llrintl.c s_lrintl.c s_modfl.c
|
- Remove s_ldexpf.c (now aliased to scalbn.)
- Add nexttoward{,f,l} and nextafterl. On all platforms,
nexttowardl is an alias for nextafterl.
- Add fmal.
- Add man pages for new routines: fmal, nextafterl,
nexttoward{,f,l}, scalb{,l}nl.
Note that on platforms where long double is the same as double, we
generally just alias the double versions of the routines, since doing
so avoids extra work on the source code level and redundant code in
the binary. In particular:
ldbl53 ldbl64/113
fmal s_fma.c s_fmal.c
ldexpl s_scalbn.c s_scalbnl.c
nextafterl s_nextafter.c s_nextafterl.c
nexttoward s_nextafter.c s_nexttoward.c
nexttowardf s_nexttowardf.c s_nexttowardf.c
nexttowardl s_nextafter.c s_nextafterl.c
scalbnl s_scalbn.c s_scalbnl.c
2005-03-07 04:59:11 +00:00
|
|
|
.if ${LDBL_PREC} != 53
|
|
|
|
# If long double != double use these; otherwise, we alias the double versions.
|
2017-02-17 08:22:32 +00:00
|
|
|
COMMON_SRCS+= catrigl.c \
|
|
|
|
e_acoshl.c e_acosl.c e_asinl.c e_atan2l.c e_atanhl.c \
|
2013-12-30 01:06:21 +00:00
|
|
|
e_coshl.c e_fmodl.c e_hypotl.c \
|
2018-07-15 00:23:10 +00:00
|
|
|
e_lgammal.c e_lgammal_r.c e_powl.c \
|
2013-12-30 01:06:21 +00:00
|
|
|
e_remainderl.c e_sinhl.c e_sqrtl.c \
|
2008-07-31 22:41:26 +00:00
|
|
|
invtrig.c k_cosl.c k_sinl.c k_tanl.c \
|
2018-05-13 09:54:34 +00:00
|
|
|
s_asinhl.c s_atanl.c s_cbrtl.c s_ceill.c \
|
|
|
|
s_clogl.c s_cosl.c s_cprojl.c \
|
2014-07-13 17:05:03 +00:00
|
|
|
s_csqrtl.c s_erfl.c s_exp2l.c s_expl.c s_floorl.c s_fmal.c \
|
2016-10-11 20:31:59 +00:00
|
|
|
s_fmaxl.c s_fminl.c s_frexpl.c s_logbl.c s_logl.c s_nanl.c \
|
|
|
|
s_nextafterl.c s_nexttoward.c s_remquol.c s_rintl.c s_roundl.c \
|
2017-05-28 06:13:38 +00:00
|
|
|
s_scalbnl.c s_sinl.c s_sincosl.c \
|
|
|
|
s_tanhl.c s_tanl.c s_truncl.c w_cabsl.c
|
2020-05-12 15:22:40 +00:00
|
|
|
# Work around this warning from gcc:
|
2019-02-01 23:15:54 +00:00
|
|
|
# lib/msun/ld80/e_powl.c:275:1: error: floating constant exceeds range of
|
|
|
|
# 'long double' [-Werror=overflow]
|
|
|
|
# if( y >= LDBL_MAX )
|
|
|
|
# See also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=130067
|
2020-05-12 15:22:40 +00:00
|
|
|
.if ${COMPILER_TYPE} == "gcc"
|
2019-02-01 23:15:54 +00:00
|
|
|
CFLAGS.e_powl.c+= -Wno-error=overflow
|
|
|
|
.endif
|
- Remove s_ldexpf.c (now aliased to scalbn.)
- Add nexttoward{,f,l} and nextafterl. On all platforms,
nexttowardl is an alias for nextafterl.
- Add fmal.
- Add man pages for new routines: fmal, nextafterl,
nexttoward{,f,l}, scalb{,l}nl.
Note that on platforms where long double is the same as double, we
generally just alias the double versions of the routines, since doing
so avoids extra work on the source code level and redundant code in
the binary. In particular:
ldbl53 ldbl64/113
fmal s_fma.c s_fmal.c
ldexpl s_scalbn.c s_scalbnl.c
nextafterl s_nextafter.c s_nextafterl.c
nexttoward s_nextafter.c s_nexttoward.c
nexttowardf s_nexttowardf.c s_nexttowardf.c
nexttowardl s_nextafter.c s_nextafterl.c
scalbnl s_scalbn.c s_scalbnl.c
2005-03-07 04:59:11 +00:00
|
|
|
.endif
|
2003-10-25 09:32:18 +00:00
|
|
|
|
2004-05-30 09:21:56 +00:00
|
|
|
# C99 complex functions
|
2017-02-17 08:22:32 +00:00
|
|
|
COMMON_SRCS+= catrig.c catrigf.c \
|
2013-05-30 04:49:26 +00:00
|
|
|
s_ccosh.c s_ccoshf.c s_cexp.c s_cexpf.c \
|
2011-10-17 05:41:03 +00:00
|
|
|
s_cimag.c s_cimagf.c s_cimagl.c \
|
2011-03-07 03:09:24 +00:00
|
|
|
s_conj.c s_conjf.c s_conjl.c \
|
2018-07-15 00:23:10 +00:00
|
|
|
s_cpow.c s_cpowf.c s_cpowl.c \
|
2011-10-17 05:41:03 +00:00
|
|
|
s_cproj.c s_cprojf.c s_creal.c s_crealf.c s_creall.c \
|
|
|
|
s_csinh.c s_csinhf.c s_ctanh.c s_ctanhf.c
|
2004-05-30 09:21:56 +00:00
|
|
|
|
1994-08-19 09:40:01 +00:00
|
|
|
# FreeBSD's C library supplies these functions:
|
|
|
|
#COMMON_SRCS+= s_fabs.c s_frexp.c s_isnan.c s_ldexp.c s_modf.c
|
|
|
|
|
2003-07-23 04:53:47 +00:00
|
|
|
# Exclude the generic versions of what we provide in the MD area.
|
2004-06-06 10:06:57 +00:00
|
|
|
.if defined(ARCH_SRCS)
|
1995-03-08 01:41:40 +00:00
|
|
|
.for i in ${ARCH_SRCS}
|
2003-07-23 04:53:47 +00:00
|
|
|
COMMON_SRCS:= ${COMMON_SRCS:N${i:R}.c}
|
1995-03-08 01:41:40 +00:00
|
|
|
.endfor
|
2003-07-23 04:53:47 +00:00
|
|
|
.endif
|
|
|
|
|
|
|
|
SRCS= ${COMMON_SRCS} ${ARCH_SRCS}
|
1994-08-19 09:40:01 +00:00
|
|
|
|
2012-01-16 04:09:17 +00:00
|
|
|
INCS+= fenv.h math.h
|
2002-05-12 16:01:00 +00:00
|
|
|
|
2011-10-17 05:41:03 +00:00
|
|
|
MAN= acos.3 acosh.3 asin.3 asinh.3 atan.3 atan2.3 atanh.3 \
|
2013-05-30 04:49:26 +00:00
|
|
|
ceil.3 cacos.3 ccos.3 ccosh.3 cexp.3 \
|
2018-07-15 00:23:10 +00:00
|
|
|
cimag.3 clog.3 copysign.3 cos.3 cosh.3 cpow.3 csqrt.3 erf.3 \
|
2018-05-13 09:54:34 +00:00
|
|
|
exp.3 fabs.3 fdim.3 \
|
2005-03-16 19:04:28 +00:00
|
|
|
feclearexcept.3 feenableexcept.3 fegetenv.3 \
|
|
|
|
fegetround.3 fenv.3 floor.3 \
|
2005-01-27 05:46:17 +00:00
|
|
|
fma.3 fmax.3 fmod.3 hypot.3 ieee.3 ieee_test.3 ilogb.3 j0.3 \
|
2008-01-18 21:43:10 +00:00
|
|
|
lgamma.3 log.3 lrint.3 lround.3 math.3 nan.3 \
|
|
|
|
nextafter.3 remainder.3 rint.3 \
|
2017-05-28 06:13:38 +00:00
|
|
|
round.3 scalbn.3 signbit.3 sin.3 sincos.3 \
|
|
|
|
sinh.3 sqrt.3 tan.3 tanh.3 trunc.3 \
|
2011-02-20 05:29:00 +00:00
|
|
|
complex.3
|
1994-08-19 09:40:01 +00:00
|
|
|
|
2008-07-31 22:41:26 +00:00
|
|
|
MLINKS+=acos.3 acosf.3 acos.3 acosl.3
|
2013-06-10 06:04:58 +00:00
|
|
|
MLINKS+=acosh.3 acoshf.3 acosh.3 acoshl.3
|
2008-07-31 22:41:26 +00:00
|
|
|
MLINKS+=asin.3 asinf.3 asin.3 asinl.3
|
2013-06-10 06:04:58 +00:00
|
|
|
MLINKS+=asinh.3 asinhf.3 asinh.3 asinhl.3
|
2008-07-31 22:41:26 +00:00
|
|
|
MLINKS+=atan.3 atanf.3 atan.3 atanl.3
|
2013-06-10 06:04:58 +00:00
|
|
|
MLINKS+=atanh.3 atanhf.3 atanh.3 atanhl.3
|
2008-07-31 22:41:26 +00:00
|
|
|
MLINKS+=atan2.3 atan2f.3 atan2.3 atan2l.3 \
|
|
|
|
atan2.3 carg.3 atan2.3 cargf.3 atan2.3 cargl.3
|
2017-02-17 08:22:32 +00:00
|
|
|
MLINKS+=cacos.3 cacosf.3 cacos.3 cacosl.3 \
|
|
|
|
cacos.3 cacosh.3 cacos.3 cacoshf.3 cacos.3 cacoshl.3 \
|
|
|
|
cacos.3 casin.3 cacos.3 casinf.3 cacos.3 casinl.3 \
|
|
|
|
cacos.3 casinh.3 cacos.3 casinhf.3 cacos.3 casinhl.3 \
|
|
|
|
cacos.3 catan.3 cacos.3 catanf.3 cacos.3 catanl.3 \
|
|
|
|
cacos.3 catanh.3 cacos.3 catanhf.3 cacos.3 catanhl.3
|
2011-10-17 05:41:03 +00:00
|
|
|
MLINKS+=ccos.3 ccosf.3 ccos.3 csin.3 ccos.3 csinf.3 ccos.3 ctan.3 ccos.3 ctanf.3
|
|
|
|
MLINKS+=ccosh.3 ccoshf.3 ccosh.3 csinh.3 ccosh.3 csinhf.3 \
|
|
|
|
ccosh.3 ctanh.3 ccosh.3 ctanhf.3
|
2005-01-13 09:11:41 +00:00
|
|
|
MLINKS+=ceil.3 ceilf.3 ceil.3 ceill.3
|
2011-03-07 03:09:24 +00:00
|
|
|
MLINKS+=cexp.3 cexpf.3
|
2004-08-07 23:03:36 +00:00
|
|
|
MLINKS+=cimag.3 cimagf.3 cimag.3 cimagl.3 \
|
|
|
|
cimag.3 conj.3 cimag.3 conjf.3 cimag.3 conjl.3 \
|
2008-08-07 15:07:48 +00:00
|
|
|
cimag.3 cproj.3 cimag.3 cprojf.3 cimag.3 cprojl.3 \
|
2004-08-07 23:03:36 +00:00
|
|
|
cimag.3 creal.3 cimag.3 crealf.3 cimag.3 creall.3
|
2018-05-13 09:54:34 +00:00
|
|
|
MLINKS+=clog.3 clogf.3 clog.3 clogl.3
|
2005-01-27 05:46:17 +00:00
|
|
|
MLINKS+=copysign.3 copysignf.3 copysign.3 copysignl.3
|
2008-02-17 07:33:51 +00:00
|
|
|
MLINKS+=cos.3 cosf.3 cos.3 cosl.3
|
2013-12-30 01:06:21 +00:00
|
|
|
MLINKS+=cosh.3 coshf.3 cosh.3 coshl.3
|
2018-07-15 00:23:10 +00:00
|
|
|
MLINKS+=cpow.3 cpowf.3 cpow.3 cpowl.3
|
2008-03-30 20:07:15 +00:00
|
|
|
MLINKS+=csqrt.3 csqrtf.3 csqrt.3 csqrtl.3
|
2014-07-13 17:05:03 +00:00
|
|
|
MLINKS+=erf.3 erfc.3 erf.3 erff.3 erf.3 erfcf.3 erf.3 erfl.3 erf.3 erfcl.3
|
2013-06-04 05:41:38 +00:00
|
|
|
MLINKS+=exp.3 expm1.3 exp.3 expm1f.3 exp.3 expm1l.3 exp.3 pow.3 exp.3 powf.3 \
|
2015-11-09 10:40:16 +00:00
|
|
|
exp.3 powl.3 exp.3 exp2.3 exp.3 exp2f.3 exp.3 exp2l.3 exp.3 expf.3 \
|
|
|
|
exp.3 expl.3
|
2004-05-07 17:55:07 +00:00
|
|
|
MLINKS+=fabs.3 fabsf.3 fabs.3 fabsl.3
|
2004-06-30 07:04:01 +00:00
|
|
|
MLINKS+=fdim.3 fdimf.3 fdim.3 fdiml.3
|
2004-06-06 10:06:57 +00:00
|
|
|
MLINKS+=feclearexcept.3 fegetexceptflag.3 feclearexcept.3 feraiseexcept.3 \
|
|
|
|
feclearexcept.3 fesetexceptflag.3 feclearexcept.3 fetestexcept.3
|
2005-03-16 19:04:28 +00:00
|
|
|
MLINKS+=feenableexcept.3 fedisableexcept.3 feenableexcept.3 fegetexcept.3
|
2004-06-06 10:06:57 +00:00
|
|
|
MLINKS+=fegetenv.3 feholdexcept.3 fegetenv.3 fesetenv.3 \
|
|
|
|
fegetenv.3 feupdateenv.3
|
|
|
|
MLINKS+=fegetround.3 fesetround.3
|
2005-01-12 22:16:26 +00:00
|
|
|
MLINKS+=floor.3 floorf.3 floor.3 floorl.3
|
- Remove s_ldexpf.c (now aliased to scalbn.)
- Add nexttoward{,f,l} and nextafterl. On all platforms,
nexttowardl is an alias for nextafterl.
- Add fmal.
- Add man pages for new routines: fmal, nextafterl,
nexttoward{,f,l}, scalb{,l}nl.
Note that on platforms where long double is the same as double, we
generally just alias the double versions of the routines, since doing
so avoids extra work on the source code level and redundant code in
the binary. In particular:
ldbl53 ldbl64/113
fmal s_fma.c s_fmal.c
ldexpl s_scalbn.c s_scalbnl.c
nextafterl s_nextafter.c s_nextafterl.c
nexttoward s_nextafter.c s_nexttoward.c
nexttowardf s_nexttowardf.c s_nexttowardf.c
nexttowardl s_nextafter.c s_nextafterl.c
scalbnl s_scalbn.c s_scalbnl.c
2005-03-07 04:59:11 +00:00
|
|
|
MLINKS+=fma.3 fmaf.3 fma.3 fmal.3
|
2004-06-30 07:04:01 +00:00
|
|
|
MLINKS+=fmax.3 fmaxf.3 fmax.3 fmaxl.3 \
|
|
|
|
fmax.3 fmin.3 fmax.3 fminf.3 fmax.3 fminl.3
|
2008-06-19 22:39:53 +00:00
|
|
|
MLINKS+=fmod.3 fmodf.3 fmod.3 fmodl.3
|
2008-03-30 20:03:46 +00:00
|
|
|
MLINKS+=hypot.3 cabs.3 hypot.3 cabsf.3 hypot.3 cabsl.3 \
|
|
|
|
hypot.3 hypotf.3 hypot.3 hypotl.3
|
1996-02-09 00:45:45 +00:00
|
|
|
MLINKS+=ieee_test.3 scalb.3 ieee_test.3 scalbf.3
|
|
|
|
MLINKS+=ieee_test.3 significand.3 ieee_test.3 significandf.3
|
2005-11-06 12:18:27 +00:00
|
|
|
MLINKS+=ilogb.3 ilogbf.3 ilogb.3 ilogbl.3 \
|
2007-12-17 03:53:38 +00:00
|
|
|
ilogb.3 logb.3 ilogb.3 logbf.3 ilogb.3 logbl.3
|
1996-02-09 00:45:45 +00:00
|
|
|
MLINKS+=j0.3 j1.3 j0.3 jn.3 j0.3 y0.3 j0.3 y1.3 j0.3 y1f.3 j0.3 yn.3
|
|
|
|
MLINKS+=j0.3 j0f.3 j0.3 j1f.3 j0.3 jnf.3 j0.3 y0f.3 j0.3 ynf.3
|
2014-09-15 23:21:57 +00:00
|
|
|
MLINKS+=lgamma.3 gamma.3 lgamma.3 gammaf.3 \
|
|
|
|
lgamma.3 lgammaf.3 lgamma.3 lgammal.3 \
|
2008-02-18 17:27:11 +00:00
|
|
|
lgamma.3 tgamma.3 lgamma.3 tgammaf.3
|
2013-06-05 05:33:01 +00:00
|
|
|
MLINKS+=log.3 log10.3 log.3 log10f.3 log.3 log10l.3 \
|
|
|
|
log.3 log1p.3 log.3 log1pf.3 log.3 log1pl.3 \
|
|
|
|
log.3 logf.3 log.3 logl.3 \
|
2013-06-03 09:14:31 +00:00
|
|
|
log.3 log2.3 log.3 log2f.3 log.3 log2l.3
|
2008-01-14 02:12:07 +00:00
|
|
|
MLINKS+=lrint.3 llrint.3 lrint.3 llrintf.3 lrint.3 llrintl.3 \
|
|
|
|
lrint.3 lrintf.3 lrint.3 lrintl.3
|
2005-04-08 01:24:08 +00:00
|
|
|
MLINKS+=lround.3 llround.3 lround.3 llroundf.3 lround.3 llroundl.3 \
|
|
|
|
lround.3 lroundf.3 lround.3 lroundl.3
|
2007-12-16 21:19:28 +00:00
|
|
|
MLINKS+=nan.3 nanf.3 nan.3 nanl.3
|
- Remove s_ldexpf.c (now aliased to scalbn.)
- Add nexttoward{,f,l} and nextafterl. On all platforms,
nexttowardl is an alias for nextafterl.
- Add fmal.
- Add man pages for new routines: fmal, nextafterl,
nexttoward{,f,l}, scalb{,l}nl.
Note that on platforms where long double is the same as double, we
generally just alias the double versions of the routines, since doing
so avoids extra work on the source code level and redundant code in
the binary. In particular:
ldbl53 ldbl64/113
fmal s_fma.c s_fmal.c
ldexpl s_scalbn.c s_scalbnl.c
nextafterl s_nextafter.c s_nextafterl.c
nexttoward s_nextafter.c s_nexttoward.c
nexttowardf s_nexttowardf.c s_nexttowardf.c
nexttowardl s_nextafter.c s_nextafterl.c
scalbnl s_scalbn.c s_scalbnl.c
2005-03-07 04:59:11 +00:00
|
|
|
MLINKS+=nextafter.3 nextafterf.3 nextafter.3 nextafterl.3
|
|
|
|
MLINKS+=nextafter.3 nexttoward.3 nextafter.3 nexttowardf.3
|
|
|
|
MLINKS+=nextafter.3 nexttowardl.3
|
2008-03-30 20:48:02 +00:00
|
|
|
MLINKS+=remainder.3 remainderf.3 remainder.3 remainderl.3 \
|
|
|
|
remainder.3 remquo.3 remainder.3 remquof.3 remainder.3 remquol.3
|
2008-01-14 02:12:07 +00:00
|
|
|
MLINKS+=rint.3 rintf.3 rint.3 rintl.3 \
|
|
|
|
rint.3 nearbyint.3 rint.3 nearbyintf.3 rint.3 nearbyintl.3
|
2005-04-08 01:24:08 +00:00
|
|
|
MLINKS+=round.3 roundf.3 round.3 roundl.3
|
- Remove s_ldexpf.c (now aliased to scalbn.)
- Add nexttoward{,f,l} and nextafterl. On all platforms,
nexttowardl is an alias for nextafterl.
- Add fmal.
- Add man pages for new routines: fmal, nextafterl,
nexttoward{,f,l}, scalb{,l}nl.
Note that on platforms where long double is the same as double, we
generally just alias the double versions of the routines, since doing
so avoids extra work on the source code level and redundant code in
the binary. In particular:
ldbl53 ldbl64/113
fmal s_fma.c s_fmal.c
ldexpl s_scalbn.c s_scalbnl.c
nextafterl s_nextafter.c s_nextafterl.c
nexttoward s_nextafter.c s_nexttoward.c
nexttowardf s_nexttowardf.c s_nexttowardf.c
nexttowardl s_nextafter.c s_nextafterl.c
scalbnl s_scalbn.c s_scalbnl.c
2005-03-07 04:59:11 +00:00
|
|
|
MLINKS+=scalbn.3 scalbln.3 scalbn.3 scalblnf.3 scalbn.3 scalblnl.3
|
|
|
|
MLINKS+=scalbn.3 scalbnf.3 scalbn.3 scalbnl.3
|
2008-02-17 07:33:51 +00:00
|
|
|
MLINKS+=sin.3 sinf.3 sin.3 sinl.3
|
2017-05-28 06:13:38 +00:00
|
|
|
MLINKS+=sincos.3 sincosf.3 sin.3 sincosl.3
|
2013-12-30 01:06:21 +00:00
|
|
|
MLINKS+=sinh.3 sinhf.3 sinh.3 sinhl.3
|
2011-03-12 16:50:39 +00:00
|
|
|
MLINKS+=sqrt.3 cbrt.3 sqrt.3 cbrtf.3 sqrt.3 cbrtl.3 sqrt.3 sqrtf.3 \
|
|
|
|
sqrt.3 sqrtl.3
|
2008-02-17 07:33:51 +00:00
|
|
|
MLINKS+=tan.3 tanf.3 tan.3 tanl.3
|
2013-12-30 01:06:21 +00:00
|
|
|
MLINKS+=tanh.3 tanhf.3 tanh.3 tanhl.3
|
2005-04-17 19:57:52 +00:00
|
|
|
MLINKS+=trunc.3 truncf.3 trunc.3 truncl.3
|
1994-08-19 09:40:01 +00:00
|
|
|
|
2014-11-17 09:19:09 +00:00
|
|
|
.include <src.opts.mk>
|
|
|
|
|
2017-08-02 08:50:42 +00:00
|
|
|
HAS_TESTS=
|
2017-08-02 08:35:51 +00:00
|
|
|
SUBDIR.${MK_TESTS}+= tests
|
2014-11-17 09:19:09 +00:00
|
|
|
|
2021-04-15 15:27:52 +00:00
|
|
|
.include <bsd.compiler.mk>
|
|
|
|
.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 120000
|
|
|
|
# Silence '#pragma FENV_ACCESS' is not supported on this target - ignored
|
|
|
|
CWARNFLAGS+= -Wno-error=ignored-pragmas
|
|
|
|
.endif
|
|
|
|
|
1994-08-19 09:40:01 +00:00
|
|
|
.include <bsd.lib.mk>
|