forked from herd/herdtools7
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile.aarch64
More file actions
187 lines (172 loc) · 7.65 KB
/
Makefile.aarch64
File metadata and controls
187 lines (172 loc) · 7.65 KB
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
ifneq ($(OS),Darwin)
AARCH64_PREFIX ?= aarch64-linux-gnu-
endif
litmus-aarch64-run: RUN_TESTS:=true
litmus-aarch64-norun: RUN_TESTS:=false
litmus-aarch64-test: litmus-aarch64-run litmus-aarch64-norun
litmus-aarch64-run:: litmus-cata-aarch64-test-std
litmus-cata-aarch64-test-std: TEMP_DIR:=$(shell mktemp -d)
litmus-cata-aarch64-test-std:
$(LITMUS) \
-set-libdir $(LITMUS_LIB_DIR) \
-gcc=$(AARCH64_PREFIX)gcc \
-ccopts='-march=armv8-a+lse' \
-o $(TEMP_DIR) \
-mode std -a 4 -s 1k -r 100 \
-outnames $(TEMP_DIR)/names.txt \
catalogue/aarch64/tests/@all
make $(SILENTOPT) -C $(TEMP_DIR) -j $(J)
if $(RUN_TESTS); then \
( cd $(TEMP_DIR) && sh run.sh ) | \
$(CHECK_OBS) -verbose $(TEMP_DIR)/names.txt; \
fi
$(RM) -r $(TEMP_DIR)
@ echo "litmus7 in -mode std catalogue aarch64 tests: OK"
catalogue/aarch64-cas/tests/@all:
@ cd catalogue/aarch64-cas/tests/ && ls *.litmus > @all
litmus-aarch64-run:: litmus-cata-aarch64-test-cas
litmus-cata-aarch64-test-cas: TEMP_DIR:=$(shell mktemp -d)
litmus-cata-aarch64-test-cas: catalogue/aarch64-cas/tests/@all
$(LITMUS) \
-set-libdir $(LITMUS_LIB_DIR) \
-gcc=$(AARCH64_PREFIX)gcc \
-ccopts='-march=armv8-a+lse' \
-o $(TEMP_DIR) \
-mode std -a 4 -s 1k -r 100 \
-driver C -ascall true \
-outnames $(TEMP_DIR)/names.txt \
catalogue/aarch64-cas/tests/@all
make $(SILENTOPT) -C $(TEMP_DIR) -j $(J)
if $(RUN_TESTS); then \
( cd $(TEMP_DIR) && ./run.exe ) | \
$(CHECK_OBS) -verbose $(TEMP_DIR)/names.txt ; \
fi
$(RM) -r $(TEMP_DIR)
@ echo "litmus7 in -mode std catalogue aarch64-cas tests: OK"
litmus-aarch64-run:: litmus-cata-aarch64-test-presi
litmus-cata-aarch64-test-presi: TEMP_DIR:=$(shell mktemp -d)
litmus-cata-aarch64-test-presi:
$(LITMUS) \
-set-libdir $(LITMUS_LIB_DIR) \
-gcc=$(AARCH64_PREFIX)gcc \
-ccopts='-march=armv8-a+lse' \
-o $(TEMP_DIR) \
-mode presi -a 4 -s 1k -r 100 \
-driver C \
-outnames $(TEMP_DIR)/names.txt \
catalogue/aarch64/tests/@all
make $(SILENTOPT) -C $(TEMP_DIR) -j $(J)
if $(RUN_TESTS); then \
( cd $(TEMP_DIR) && ./run.exe) | \
$(CHECK_OBS) -verbose $(TEMP_DIR)/names.txt ; \
fi
$(RM) -r $(TEMP_DIR)
@ echo "litmus7 in -mode presi catalogue aarch64 tests: OK"
#Notice do not execute tests by defaut: execution protect
litmus-aarch64-norun:: litmus-cata-aarch64-ifetch-test
litmus-cata-aarch64-ifetch-test: TEMP_DIR:=$(shell mktemp -d)
litmus-cata-aarch64-ifetch-test:
$(LITMUS) \
-set-libdir $(LITMUS_LIB_DIR) \
-gcc=$(AARCH64_PREFIX)gcc \
-ccopts='-march=armv8-a+lse' \
-o $(TEMP_DIR) \
-mode std -a 4 -s 1k -r 10 \
-driver C \
-outnames $(TEMP_DIR)/names.txt \
catalogue/aarch64-ifetch/tests/@nofault
make $(SILENTOPT) -C $(TEMP_DIR) -j $(J)
if $(RUN_TESTS); then \
( cd $(TEMP_DIR) && ./run.exe ) | \
$(CHECK_OBS) -verbose $(TEMP_DIR)/names.txt ; \
fi
$(RM) -r $(TEMP_DIR)
@ echo "litmus7 in -mode std catalogue aarch64-ifetch tests: OK"
KUT_AARCH64_PREFFIX = $(AARCH64_PREFIX)
ifeq ($(OS),Darwin)
KUT_AARCH64_PREFFIX = aarch64-elf-
endif
KUT_CONFIG_PARAMS=--arch=arm64 --page-size=4k --cross-prefix=$(KUT_AARCH64_PREFFIX)
KUT_DIR_AARCH64:=$(shell mktemp -d)
KUT_NAMES:=$(KUT_DIR_AARCH64)/kvm-unit-tests/t/names.txt
litmus-aarch64-dep:
cd $(KUT_DIR_AARCH64); \
git clone -q https://gitlab.com/kvm-unit-tests/kvm-unit-tests.git; \
cd kvm-unit-tests; \
./configure $(KUT_CONFIG_PARAMS); \
make $(SILENTOPT) -j $(J)
litmus-aarch64-run:: litmus-cata-aarch64-test-kvm
litmus-cata-aarch64-test-kvm: litmus-aarch64-dep
mkdir $(KUT_DIR_AARCH64)/kvm-unit-tests/t
$(LITMUS) \
-set-libdir $(LITMUS_LIB_DIR) \
-o $(KUT_DIR_AARCH64)/kvm-unit-tests/t \
-mach kvm-armv8.1 -a 4 \
-driver C -s 100 -r 100 \
-outnames $(KUT_NAMES) \
catalogue/aarch64/tests/@all
cd $(KUT_DIR_AARCH64)/kvm-unit-tests/t; make $(SILENTOPT) -j $(J)
if $(RUN_TESTS); then \
( cd $(KUT_DIR_AARCH64)/kvm-unit-tests && sh t/run.sh ) | \
$(CHECK_OBS) -verbose $(KUT_NAMES) ; \
fi
$(RM) -r $(KUT_DIR_AARCH64)/kvm-unit-tests/t
@ echo "litmus7 in -mode kvm catalogue aarch64 tests: OK"
#Cannot run yet, some tests fail at runtime
litmus-aarch64-norun:: litmus-cata-aarch64-VMSA-test-kvm
litmus-cata-aarch64-VMSA-test-kvm: litmus-aarch64-dep
mkdir $(KUT_DIR_AARCH64)/kvm-unit-tests/t
$(LITMUS) \
-set-libdir $(LITMUS_LIB_DIR) \
-o $(KUT_DIR_AARCH64)/kvm-unit-tests/t \
-mach kvm-armv8.1+rcpc -a 4 -s 10 -r 10 \
-driver C -ascall true \
-outnames $(KUT_NAMES) \
catalogue/aarch64-VMSA/tests/@all
cd $(KUT_DIR_AARCH64)/kvm-unit-tests/t; make $(SILENTOPT) -j $(J)
if $(RUN_TESTS); then \
( cd $(KUT_DIR_AARCH64)/kvm-unit-tests && sh t/run.sh ) | \
$(CHECK_OBS) -verbose $(KUT_NAMES) ; \
fi
$(RM) -r $(KUT_DIR_AARCH64)/kvm-unit-tests/t
@ echo "litmus7 in -mode kvm catalogue aarch64-VMSA tests: OK"
litmus-aarch64-run:: litmus-cata-aarch64-ifetch-test-kvm
# Test UDF+2H is not terminating, do not execute it.
# See NORUN below.
litmus-cata-aarch64-ifetch-test-kvm: litmus-aarch64-dep
mkdir $(KUT_DIR_AARCH64)/kvm-unit-tests/t
if $(RUN_TESTS); then NORUN=UDF+2FH; else NORUN=NO; fi ; \
$(LITMUS) \
-set-libdir $(LITMUS_LIB_DIR) \
-o $(KUT_DIR_AARCH64)/kvm-unit-tests/t \
-mach kvm-armv8.1 -variant self -a 4 -s 10 -r 10 \
-nonames $${NORUN} \
-driver C -ascall true \
-outnames $(KUT_NAMES) \
catalogue/aarch64-ifetch/tests/@all
cd $(KUT_DIR_AARCH64)/kvm-unit-tests/t; make $(SILENTOPT) -j $(J)
if $(RUN_TESTS); then \
( cd $(KUT_DIR_AARCH64)/kvm-unit-tests && sh t/run.sh ) | \
$(CHECK_OBS) -verbose $(KUT_NAMES) ; \
fi
$(RM) -r $(KUT_DIR_AARCH64)/kvm-unit-tests/t
@ echo "litmus7 in -mode kvm catalogue aarch64-ifetch tests: OK"
# MTE capabale HW is still rare, cannot run
litmus-aarch64-norun:: litmus-cata-aarch64-MTE-test-kvm
litmus-cata-aarch64-MTE-test-kvm: litmus-aarch64-dep
mkdir $(KUT_DIR_AARCH64)/kvm-unit-tests/t
$(LITMUS) \
-set-libdir $(LITMUS_LIB_DIR) \
-o $(KUT_DIR_AARCH64)/kvm-unit-tests/t \
-mach kvm-armv8.5-a+memtag -a 4 -s 10 -r 10 \
-driver C -ascall true \
-variant memtag,sync \
-outnames $(KUT_NAMES) \
catalogue/aarch64-MTE/tests/@sync
cd $(KUT_DIR_AARCH64)/kvm-unit-tests/t; make $(SILENTOPT) -j $(J)
if $(RUN_TESTS); then \
( cd $(KUT_DIR_AARCH64)/kvm-unit-tests && sh t/run.sh ) | \
$(CHECK_OBS) -verbose $(KUT_NAMES) ; \
fi
$(RM) -r $(KUT_DIR_AARCH64)/kvm-unit-tests/t
@ echo "litmus7 in -mode kvm catalogue aarch64-MTE (sync) tests: OK"