1# $FreeBSD$ 2 3.include <bsd.own.mk> 4 5TESTSRC= ${SRCTOP}/contrib/netbsd-tests/lib/libm 6 7# All architectures on FreeBSD have fenv.h 8CFLAGS+= -DHAVE_FENV_H 9 10# For isqemu.h 11CFLAGS+= -I${TESTSRC:H}/libc/gen 12 13# Define __HAVE_LONG_DOUBLE for architectures whose long double has greater 14# precision than their double. 15.if ${MACHINE_CPUARCH} == "aarch64" || \ 16 ${MACHINE_CPUARCH} == "amd64" || \ 17 ${MACHINE_CPUARCH} == "i386" || \ 18 ${MACHINE_CPUARCH} == "riscv" 19CFLAGS+= -D__HAVE_LONG_DOUBLE 20.endif 21 22# Avoid builtins, to force the compiler to emit calls to the libm 23# functions, and not calculate any results in advance. 24CFLAGS+= -fno-builtin 25 26NETBSD_ATF_TESTS_C= acos_test 27NETBSD_ATF_TESTS_C+= asin_test 28NETBSD_ATF_TESTS_C+= atan_test 29NETBSD_ATF_TESTS_C+= cbrt_test 30NETBSD_ATF_TESTS_C+= ceil_test 31NETBSD_ATF_TESTS_C+= casinh_test 32NETBSD_ATF_TESTS_C+= cos_test 33NETBSD_ATF_TESTS_C+= cosh_test 34NETBSD_ATF_TESTS_C+= erf_test 35NETBSD_ATF_TESTS_C+= exp_test 36NETBSD_ATF_TESTS_C+= fmod_test 37NETBSD_ATF_TESTS_C+= fe_round_test 38NETBSD_ATF_TESTS_C+= hypot_test 39NETBSD_ATF_TESTS_C+= infinity_test 40NETBSD_ATF_TESTS_C+= ilogb_test 41NETBSD_ATF_TESTS_C+= ldexp_test 42NETBSD_ATF_TESTS_C+= log_test 43NETBSD_ATF_TESTS_C+= pow_test 44NETBSD_ATF_TESTS_C+= precision_test 45NETBSD_ATF_TESTS_C+= round_test 46NETBSD_ATF_TESTS_C+= scalbn_test 47NETBSD_ATF_TESTS_C+= sin_test 48NETBSD_ATF_TESTS_C+= sinh_test 49NETBSD_ATF_TESTS_C+= sqrt_test 50NETBSD_ATF_TESTS_C+= tan_test 51NETBSD_ATF_TESTS_C+= tanh_test 52 53TAP_TESTS_C+= cexp_test 54TAP_TESTS_C+= conj_test 55.if ${MACHINE_CPUARCH} != "aarch64" 56# Hits an assert in llvm when building for arm64: 57# https://llvm.org/bugs/show_bug.cgi?id=26081 58TAP_TESTS_C+= csqrt_test 59.endif 60ATF_TESTS_C+= ctrig_test 61TAP_TESTS_C+= exponential_test 62TAP_TESTS_C+= fenv_test 63TAP_TESTS_C+= fma_test 64TAP_TESTS_C+= fmaxmin_test 65TAP_TESTS_C+= ilogb2_test 66TAP_TESTS_C+= invtrig_test 67TAP_TESTS_C+= invctrig_test 68TAP_TESTS_C+= logarithm_test 69TAP_TESTS_C+= lrint_test 70# XXX: the testcase crashes on all platforms, but only on head 71# (bug 205451) 72#TAP_TESTS_C+= lround_test 73TAP_TESTS_C+= nan_test 74TAP_TESTS_C+= nearbyint_test 75TAP_TESTS_C+= next_test 76TAP_TESTS_C+= rem_test 77ATF_TESTS_C+= trig_test 78 79.if !empty(PROG) && !empty(TAP_TESTS_C:M${PROG}) 80CFLAGS+= -O0 81.endif 82 83#COPTS+= -Wfloat-equal 84 85IGNORE_PRAGMA= 86 87SRCS.ilogb2_test= ilogb_test.c 88 89LIBADD+= m 90 91WARNS?= 1 92 93# Copied from lib/msun/Makefile 94.if ${MACHINE_CPUARCH} == "i386" 95ARCH_SUBDIR= i387 96.else 97ARCH_SUBDIR= ${MACHINE_CPUARCH} 98.endif 99 100.include "../${ARCH_SUBDIR}/Makefile.inc" 101 102# XXX: for some odd reason float.h doesn't tell the full story about what the 103# precision is. 104CFLAGS+= -DLDBL_PREC=${LDBL_PREC} 105 106CFLAGS.fe_round_test+= -D__HAVE_FENV 107 108.include <netbsd-tests.test.mk> 109 110.include <bsd.test.mk> 111