1#
2# Example config for cross compiling
3#
4# In this config, it is expected that the tool chains from:
5#
6#   http://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
27THIS_DIR := ${PWD}
28
29# Update the BUILD_DIR option to the location of your git repo you want to test.
30BUILD_DIR = ${THIS_DIR}/linux.git
31
32# The build will go into this directory. It will be created when you run the test.
33OUTPUT_DIR = ${THIS_DIR}/cross-compile
34
35# The build will be compiled with -j8
36BUILD_OPTIONS = -j8
37
38# The test will not stop when it hits a failure.
39DIE_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.
47LOG_FILE = ${OUTPUT_DIR}/cross.log
48
49# The log file will be cleared each time you run ktest.
50CLEAR_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
57DO_FAILED := 0
58DO_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 := m32r
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
77GCC_VER = 4.5.2
78MAKE_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.
81TEST_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
89BUILD_TYPE = defconfig
90
91# The test names will have the arch and cross compiler used. This will be shown in
92# the results.
93TEST_NAME = ${ARCH} ${CROSS}
94
95# alpha
96TEST_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.
101CROSS = alpha-linux
102ARCH = alpha
103
104# arm
105TEST_START IF ${RUN} == arm || ${DO_DEFAULT}
106CROSS = arm-unknown-linux-gnueabi
107ARCH = arm
108
109# black fin
110TEST_START IF ${RUN} == bfin || ${DO_DEFAULT}
111CROSS = bfin-uclinux
112ARCH = blackfin
113BUILD_OPTIONS = -j8 vmlinux
114
115# cris - FAILS?
116TEST_START IF ${RUN} == cris || ${RUN} == cris64 || ${DO_FAILED}
117CROSS = cris-linux
118ARCH = cris
119
120# cris32 - not right arch?
121TEST_START IF ${RUN} == cris || ${RUN} == cris32 || ${DO_FAILED}
122CROSS = crisv32-linux
123ARCH = cris
124
125# ia64
126TEST_START IF ${RUN} == ia64 || ${DO_DEFAULT}
127CROSS = ia64-linux
128ARCH = ia64
129
130# frv
131TEST_START IF ${RUN} == frv || ${DO_FAILED}
132CROSS = frv-linux
133ARCH = frv
134GCC_VER = 4.5.1
135
136# m68k fails with error?
137TEST_START IF ${RUN} == m68k || ${DO_DEFAULT}
138CROSS = m68k-linux
139ARCH = m68k
140
141# mips64
142TEST_START IF ${RUN} == mips || ${RUN} == mips64 || ${DO_DEFAULT}
143CROSS = mips64-linux
144ARCH = mips
145
146# mips32
147TEST_START IF ${RUN} == mips || ${RUN} == mips32 || ${DO_DEFAULT}
148CROSS = mips-linux
149ARCH = mips
150
151# m32r
152TEST_START IF ${RUN} == m32r || ${DO_FAILED}
153CROSS = m32r-linux
154ARCH = m32r
155GCC_VER = 4.5.1
156BUILD_OPTIONS = -j8 vmlinux
157
158# parisc64 failed?
159TEST_START IF ${RUN} == hppa || ${RUN} == hppa64 || ${DO_FAILED}
160CROSS = hppa64-linux
161ARCH = parisc
162
163# parisc
164TEST_START IF ${RUN} == hppa || ${RUN} == hppa32 || ${DO_FAILED}
165CROSS = hppa-linux
166ARCH = parisc
167
168# ppc
169TEST_START IF ${RUN} == ppc || ${RUN} == ppc32 || ${DO_DEFAULT}
170CROSS = powerpc-linux
171ARCH = powerpc
172
173# ppc64
174TEST_START IF ${RUN} == ppc || ${RUN} == ppc64 || ${DO_DEFAULT}
175CROSS = powerpc64-linux
176ARCH = powerpc
177
178# s390
179TEST_START IF ${RUN} == s390 || ${DO_DEFAULT}
180CROSS = s390x-linux
181ARCH = s390
182
183# sh
184TEST_START IF ${RUN} == sh || ${DO_DEFAULT}
185CROSS = sh4-linux
186ARCH = sh
187
188# sparc64
189TEST_START IF ${RUN} == sparc || ${RUN} == sparc64 || ${DO_DEFAULT}
190CROSS = sparc64-linux
191ARCH = sparc64
192
193# sparc
194TEST_START IF ${RUN} == sparc || ${RUN} == sparc32 || ${DO_DEFAULT}
195CROSS = sparc-linux
196ARCH = sparc
197
198# xtensa failed
199TEST_START IF ${RUN} == xtensa || ${DO_FAILED}
200CROSS = xtensa-linux
201ARCH = xtensa
202
203# UML
204TEST_START IF ${RUN} == uml || ${DO_DEFAULT}
205MAKE_CMD = make ARCH=um SUBARCH=x86_64
206ARCH = uml
207CROSS =
208
209TEST_START IF ${RUN} == x86 || ${RUN} == i386 || ${DO_DEFAULT}
210MAKE_CMD = make ARCH=i386
211ARCH = i386
212CROSS = 
213
214TEST_START IF ${RUN} == x86 || ${RUN} == x86_64 || ${DO_DEFAULT}
215MAKE_CMD = make ARCH=x86_64
216ARCH = x86_64
217CROSS = 
218
219#################################
220
221# This is a bisect if needed. You need to give it a MIN_CONFIG that
222# will be the config file it uses. Basically, just copy the created defconfig
223# for the arch someplace and point MIN_CONFIG to it.
224TEST_START IF ${RUN} == bisect
225MIN_CONFIG = ${THIS_DIR}/min-config
226CROSS = s390x-linux
227ARCH = s390
228TEST_TYPE = bisect
229BISECT_TYPE = build
230BISECT_GOOD = v3.1
231BISECT_BAD = v3.2
232CHECKOUT = v3.2
233
234#################################
235
236# These defaults are needed to keep ktest.pl from complaining. They are
237# ignored because the test does not go pass the build. No install or
238# booting of the target images.
239
240DEFAULTS
241MACHINE = crosstest
242SSH_USER = root
243BUILD_TARGET = cross
244TARGET_IMAGE = image
245POWER_CYCLE = cycle
246CONSOLE = console
247LOCALVERSION = version
248GRUB_MENU = grub
249
250REBOOT_ON_ERROR = 0
251POWEROFF_ON_ERROR = 0
252POWEROFF_ON_SUCCESS = 0
253REBOOT_ON_SUCCESS = 0
254
255