1# $OpenBSD: Makefile,v 1.1.1.1 2018/08/21 18:35:18 bluhm Exp $ 2 3PROGS = fenv fdump fdfl feget fxproc0 4SRCS_fenv = fenv.S 5LDADD_fenv = -nostdlib -nopie 6LDADD_fdfl = -lm 7LDADD_feget = -lm 8LDADD_fxproc0 = -lkvm 9CFLAGS = -O2 ${PIPE} ${DEBUG} 10CFLAGS += -Wformat -Wno-compare-distinct-pointer-types 11WARNINGS = yes 12CLEANFILES = *.out 13 14MODEL != sysctl -n hw.model | tr -c '[:alnum:]' '_' 15ALLOWKMEM != sysctl -n kern.allowkmem 16 17REGRESS_TARGETS += run-regress-fenv 18run-regress-fenv: fenv fdump 19 @echo '\n======== $@ ========' 20.if ${MODEL:C/.*_AMD_Opteron_.*/opteron/} != opteron 21 # Load FPU environment directly at _start and write it. 22 # Read FPU environment and print it to stdout. 23 ./fenv | ./fdump >fenv.out 24 diff ${.CURDIR}/fenv_t.ok fenv.out 25.else 26 # Early AMD Opteron processors behave differently. 27 @echo SKIPPED 28.endif 29 30REGRESS_TARGETS += run-regress-fdfl 31run-regress-fdfl: fdfl 32 @echo '\n======== $@ ========' 33 # Print default libm FPU environment to stdout. 34 ./fdfl >fdfl.out 35 diff ${.CURDIR}/fenv_t.ok fdfl.out 36 37REGRESS_TARGETS += run-regress-feget 38run-regress-feget: feget 39 @echo '\n======== $@ ========' 40.if ${MODEL:C/.*_AMD_Opteron_.*/opteron/} != opteron 41 # Get FPU environment via libm and print it to stdout. 42 ./feget >feget.out 43 diff ${.CURDIR}/fenv_t.ok feget.out 44.else 45 # Early AMD Opteron processors behave differently. 46 @echo SKIPPED 47.endif 48 49REGRESS_TARGETS += run-regress-fxproc0 50run-regress-fxproc0: fxproc0 51 @echo '\n======== $@ ========' 52.if ${ALLOWKMEM} 53 # Read FPU storage area from proc0 via /dev/mem and print it to stdout. 54 ${SUDO} ./fxproc0 >fxproc0.out 55 diff ${.CURDIR}/fxsave64.ok fxproc0.out 56.else 57 # Set sysctl kern.allowkmem=1 for additional tests. 58 @echo SKIPPED 59.endif 60 61.include <bsd.regress.mk> 62