aboutsummaryrefslogtreecommitdiff
path: root/config.mk.dist
blob: 7a8497507a81bae26f4ba3777761b16e199507ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# Example config.mk
#
# Copyright (c) 2018-2022, 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 vector math code
#math-cflags += -DWANT_VMATH=0

# Disable/enable SVE vector math code and tests
WANT_SVE_MATH = 0
ifeq ($(WANT_SVE_MATH), 1)
  math-cflags += -march=armv8.2-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