mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 21:05:08 +00:00
5a02ffc32e
Sponsored by: Arm Ltd
95 lines
2.6 KiB
Plaintext
95 lines
2.6 KiB
Plaintext
# Example config.mk
|
|
#
|
|
# Copyright (c) 2018-2023, Arm Limited.
|
|
# SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
|
|
|
|
# Subprojects to build
|
|
SUBS = math string networking
|
|
|
|
# Subsubprojects to build if subproject pl is built
|
|
PLSUBS = math
|
|
|
|
# Target architecture: aarch64, arm or x86_64
|
|
ARCH = aarch64
|
|
|
|
# Use for cross compilation with gcc.
|
|
#CROSS_COMPILE = aarch64-none-linux-gnu-
|
|
|
|
# Compiler for the target
|
|
CC = $(CROSS_COMPILE)gcc
|
|
CFLAGS = -std=c99 -pipe -O3
|
|
CFLAGS += -Wall -Wno-missing-braces
|
|
CFLAGS += -Werror=implicit-function-declaration
|
|
|
|
# Used for test case generator that is executed on the host
|
|
HOST_CC = gcc
|
|
HOST_CFLAGS = -std=c99 -O2
|
|
HOST_CFLAGS += -Wall -Wno-unused-function
|
|
|
|
# Enable debug info.
|
|
HOST_CFLAGS += -g
|
|
CFLAGS += -g
|
|
|
|
# Optimize the shared libraries on aarch64 assuming they fit in 1M.
|
|
#CFLAGS_SHARED = -fPIC -mcmodel=tiny
|
|
|
|
# Enable MTE support.
|
|
#CFLAGS += -march=armv8.5-a+memtag -DWANT_MTE_TEST=1
|
|
|
|
# Use with cross testing.
|
|
#EMULATOR = qemu-aarch64-static
|
|
#EMULATOR = sh -c 'scp $$1 user@host:/dir && ssh user@host /dir/"$$@"' --
|
|
|
|
# Additional flags for subprojects.
|
|
math-cflags =
|
|
math-ldlibs =
|
|
math-ulpflags =
|
|
math-testflags =
|
|
string-cflags =
|
|
networking-cflags =
|
|
|
|
# Use if mpfr is available on the target for ulp error checking.
|
|
#math-ldlibs += -lmpfr -lgmp
|
|
#math-cflags += -DUSE_MPFR
|
|
|
|
# Use with gcc.
|
|
math-cflags += -frounding-math -fexcess-precision=standard -fno-stack-protector
|
|
math-cflags += -ffp-contract=fast -fno-math-errno
|
|
|
|
# Use with clang.
|
|
#math-cflags += -ffp-contract=fast
|
|
|
|
# Disable/enable SVE vector math code and tests.
|
|
# If WANT_SVE_MATH is enabled, math-sve-cflags is added for SVE
|
|
# routines only so that SVE code does not leak into scalar
|
|
# routines. It is also necessary to add it for tools (e.g. ulp,
|
|
# mathbench)
|
|
WANT_SVE_MATH = 0
|
|
ifeq ($(WANT_SVE_MATH), 1)
|
|
math-sve-cflags = -march=armv8-a+sve
|
|
endif
|
|
math-cflags += -DWANT_SVE_MATH=$(WANT_SVE_MATH)
|
|
|
|
# If defined to 1, set errno in math functions according to ISO C. Many math
|
|
# libraries do not set errno, so this is 0 by default. It may need to be
|
|
# set to 1 if math.h has (math_errhandling & MATH_ERRNO) != 0.
|
|
WANT_ERRNO = 0
|
|
math-cflags += -DWANT_ERRNO=$(WANT_ERRNO)
|
|
|
|
# If set to 1, set fenv in vector math routines.
|
|
WANT_SIMD_EXCEPT = 0
|
|
math-cflags += -DWANT_SIMD_EXCEPT=$(WANT_SIMD_EXCEPT)
|
|
|
|
# Disable fenv checks
|
|
#math-ulpflags = -q -f
|
|
#math-testflags = -nostatus
|
|
|
|
# Remove GNU Property Notes from asm files.
|
|
#string-cflags += -DWANT_GNU_PROPERTY=0
|
|
|
|
# Enable assertion checks.
|
|
#networking-cflags += -DWANT_ASSERT
|
|
|
|
# Avoid auto-vectorization of scalar code and unroll loops
|
|
networking-cflags += -O2 -fno-tree-vectorize -funroll-loops
|