Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/testing/ktest/examples/crosstests.conf
26296 views
1
#
2
# Example config for cross compiling
3
#
4
# In this config, it is expected that the tool chains from:
5
#
6
# https://kernel.org/pub/tools/crosstool/files/bin/x86_64/
7
#
8
# running on a x86_64 system have been downloaded and installed into:
9
#
10
# /usr/local/
11
#
12
# such that the compiler binaries are something like:
13
#
14
# /usr/local/gcc-4.5.2-nolibc/mips-linux/bin/mips-linux-gcc
15
#
16
# Some of the archs will use gcc-4.5.1 instead of gcc-4.5.2
17
# this config uses variables to differentiate them.
18
#
19
# Comments describe some of the options, but full descriptions of
20
# options are described in the samples.conf file.
21
22
# ${PWD} is defined by ktest.pl to be the directory that the user
23
# was in when they executed ktest.pl. It may be better to hardcode the
24
# path name here. THIS_DIR is the variable used through out the config file
25
# in case you want to change it.
26
27
THIS_DIR := ${PWD}
28
29
# Update the BUILD_DIR option to the location of your git repo you want to test.
30
BUILD_DIR = ${THIS_DIR}/linux.git
31
32
# The build will go into this directory. It will be created when you run the test.
33
OUTPUT_DIR = ${THIS_DIR}/cross-compile
34
35
# The build will be compiled with -j8
36
BUILD_OPTIONS = -j8
37
38
# The test will not stop when it hits a failure.
39
DIE_ON_FAILURE = 0
40
41
# If you want to have ktest.pl store the failure somewhere, uncomment this option
42
# and change the directory where ktest should store the failures.
43
#STORE_FAILURES = ${THIS_DIR}/failures
44
45
# The log file is stored in the OUTPUT_DIR called cross.log
46
# If you enable this, you need to create the OUTPUT_DIR. It wont be created for you.
47
LOG_FILE = ${OUTPUT_DIR}/cross.log
48
49
# The log file will be cleared each time you run ktest.
50
CLEAR_LOG = 1
51
52
# As some archs do not build with the defconfig, they have been marked
53
# to be ignored. If you want to test them anyway, change DO_FAILED to 1.
54
# If a test that has been marked as DO_FAILED passes, then you should change
55
# that test to be DO_DEFAULT
56
57
DO_FAILED := 0
58
DO_DEFAULT := 1
59
60
# By setting both DO_FAILED and DO_DEFAULT to zero, you can pick a single
61
# arch that you want to test. (uncomment RUN and chose your arch)
62
#RUN := arm
63
64
# At the bottom of the config file exists a bisect test. You can update that
65
# test and set DO_FAILED and DO_DEFAULT to zero, and uncomment this variable
66
# to run the bisect on the arch.
67
#RUN := bisect
68
69
# By default all tests will be running gcc 4.5.2. Some tests are using 4.5.1
70
# and they select that in the test.
71
# Note: GCC_VER is declared as on option and not a variable ('=' instead of ':=')
72
# This is important. A variable is used only in the config file and if it is set
73
# it stays that way for the rest of the config file until it is change again.
74
# Here we want GCC_VER to remain persistent and change for each test, as it is used in
75
# the MAKE_CMD. By using '=' instead of ':=' we achieve our goal.
76
77
GCC_VER = 4.5.2
78
MAKE_CMD = PATH=/usr/local/gcc-${GCC_VER}-nolibc/${CROSS}/bin:$PATH CROSS_COMPILE=${CROSS}- make ARCH=${ARCH}
79
80
# all tests are only doing builds.
81
TEST_TYPE = build
82
83
# If you want to add configs on top of the defconfig, you can add those configs into
84
# the add-config file and uncomment this option. This is useful if you want to test
85
# all cross compiles with PREEMPT set, or TRACING on, etc.
86
#ADD_CONFIG = ${THIS_DIR}/add-config
87
88
# All tests are using defconfig
89
BUILD_TYPE = defconfig
90
91
# The test names will have the arch and cross compiler used. This will be shown in
92
# the results.
93
TEST_NAME = ${ARCH} ${CROSS}
94
95
# alpha
96
TEST_START IF ${RUN} == alpha || ${DO_DEFAULT}
97
# Notice that CROSS and ARCH are also options and not variables (again '=' instead
98
# of ':='). This is because TEST_NAME and MAKE_CMD wil use them for each test.
99
# Only options are available during runs. Variables are only present in parsing the
100
# config file.
101
CROSS = alpha-linux
102
ARCH = alpha
103
104
# arm
105
TEST_START IF ${RUN} == arm || ${DO_DEFAULT}
106
CROSS = arm-unknown-linux-gnueabi
107
ARCH = arm
108
109
# ia64
110
TEST_START IF ${RUN} == ia64 || ${DO_DEFAULT}
111
CROSS = ia64-linux
112
ARCH = ia64
113
114
# m68k fails with error?
115
TEST_START IF ${RUN} == m68k || ${DO_DEFAULT}
116
CROSS = m68k-linux
117
ARCH = m68k
118
119
# mips64
120
TEST_START IF ${RUN} == mips || ${RUN} == mips64 || ${DO_DEFAULT}
121
CROSS = mips64-linux
122
ARCH = mips
123
124
# mips32
125
TEST_START IF ${RUN} == mips || ${RUN} == mips32 || ${DO_DEFAULT}
126
CROSS = mips-linux
127
ARCH = mips
128
129
# parisc64 failed?
130
TEST_START IF ${RUN} == hppa || ${RUN} == hppa64 || ${DO_FAILED}
131
CROSS = hppa64-linux
132
ARCH = parisc
133
134
# parisc
135
TEST_START IF ${RUN} == hppa || ${RUN} == hppa32 || ${DO_FAILED}
136
CROSS = hppa-linux
137
ARCH = parisc
138
139
# ppc
140
TEST_START IF ${RUN} == ppc || ${RUN} == ppc32 || ${DO_DEFAULT}
141
CROSS = powerpc-linux
142
ARCH = powerpc
143
144
# ppc64
145
TEST_START IF ${RUN} == ppc || ${RUN} == ppc64 || ${DO_DEFAULT}
146
CROSS = powerpc64-linux
147
ARCH = powerpc
148
149
# s390
150
TEST_START IF ${RUN} == s390 || ${DO_DEFAULT}
151
CROSS = s390x-linux
152
ARCH = s390
153
154
# sh
155
TEST_START IF ${RUN} == sh || ${DO_DEFAULT}
156
CROSS = sh4-linux
157
ARCH = sh
158
159
# sparc64
160
TEST_START IF ${RUN} == sparc || ${RUN} == sparc64 || ${DO_DEFAULT}
161
CROSS = sparc64-linux
162
ARCH = sparc64
163
164
# sparc
165
TEST_START IF ${RUN} == sparc || ${RUN} == sparc32 || ${DO_DEFAULT}
166
CROSS = sparc-linux
167
ARCH = sparc
168
169
# xtensa failed
170
TEST_START IF ${RUN} == xtensa || ${DO_FAILED}
171
CROSS = xtensa-linux
172
ARCH = xtensa
173
174
# UML
175
TEST_START IF ${RUN} == uml || ${DO_DEFAULT}
176
MAKE_CMD = make ARCH=um SUBARCH=x86_64
177
ARCH = uml
178
CROSS =
179
180
TEST_START IF ${RUN} == x86 || ${RUN} == i386 || ${DO_DEFAULT}
181
MAKE_CMD = make ARCH=i386
182
ARCH = i386
183
CROSS =
184
185
TEST_START IF ${RUN} == x86 || ${RUN} == x86_64 || ${DO_DEFAULT}
186
MAKE_CMD = make ARCH=x86_64
187
ARCH = x86_64
188
CROSS =
189
190
#################################
191
192
# This is a bisect if needed. You need to give it a MIN_CONFIG that
193
# will be the config file it uses. Basically, just copy the created defconfig
194
# for the arch someplace and point MIN_CONFIG to it.
195
TEST_START IF ${RUN} == bisect
196
MIN_CONFIG = ${THIS_DIR}/min-config
197
CROSS = s390x-linux
198
ARCH = s390
199
TEST_TYPE = bisect
200
BISECT_TYPE = build
201
BISECT_GOOD = v3.1
202
BISECT_BAD = v3.2
203
CHECKOUT = v3.2
204
205
#################################
206
207
# These defaults are needed to keep ktest.pl from complaining. They are
208
# ignored because the test does not go pass the build. No install or
209
# booting of the target images.
210
211
DEFAULTS
212
MACHINE = crosstest
213
SSH_USER = root
214
BUILD_TARGET = cross
215
TARGET_IMAGE = image
216
POWER_CYCLE = cycle
217
CONSOLE = console
218
LOCALVERSION = version
219
GRUB_MENU = grub
220
221
REBOOT_ON_ERROR = 0
222
POWEROFF_ON_ERROR = 0
223
POWEROFF_ON_SUCCESS = 0
224
REBOOT_ON_SUCCESS = 0
225
226
227