embedded-test.sh 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200
  1. #!/usr/bin/env mksh
  2. #
  3. # Copyright © 2014-2016
  4. # Waldemar Brodkorb <wbx@embedded-test.org>
  5. #
  6. # Provided that these terms and disclaimer and all copyright notices
  7. # are retained or reproduced in an accompanying document, permission
  8. # is granted to deal in this work without restriction, including un‐
  9. # limited rights to use, publicly perform, distribute, sell, modify,
  10. # merge, give away, or sublicence.
  11. #
  12. # This work is provided “AS IS” and WITHOUT WARRANTY of any kind, to
  13. # the utmost extent permitted by applicable law, neither express nor
  14. # implied; without malicious intent or gross negligence. In no event
  15. # may a licensor, author or contributor be held liable for indirect,
  16. # direct, other damage, loss, or other issues arising in any way out
  17. # of dealing in the work, even if advised of the possibility of such
  18. # damage or existence of a defect, except proven that it results out
  19. # of said person’s immediate fault when using the work as intended.
  20. #
  21. # Alternatively, this work may be distributed under the Terms of the
  22. # General Public License, any version as published by the Free Soft‐
  23. # ware Foundation.
  24. # uClibc-ng
  25. arch_list_uclibcng="alpha armv5 armv6 armv7 armeb arcv1 arcv2 arcv1-be arcv2-be avr32 bfin c6x crisv10 crisv32 lm32 m68k m68k-nommu metag microblazeel microblazebe mips mipssf mipsel mipselsf mips64 mips64n32 mips64n64 mips64el mips64eln32 mips64eln64 or1k ppc ppcsf sh2 sh3 sh4 sh4eb sparc sparc-leon3 x86 x86_64 xtensa xtensa-nommu"
  26. # musl
  27. arch_list_musl="aarch64 armv5 armv6 armv7 armeb microblazeel microblazebe mips mipssf mipsel mipselsf or1k ppc ppcsf sh4 sh4eb x86 x86_64"
  28. # glibc
  29. arch_list_glibc="aarch64 alpha armv5 armv6 armv7 armeb ia64 microblazeel microblazebe mips mipssf mipsel mipselsf mips64 mips64n32 mips64n64 mips64el mips64eln32 mips64eln64 nios2 ppc ppcsf ppc64 ppc64le s390 sh4 sh4eb sparc64 tilegx x86 x86_64"
  30. # newlib
  31. arch_list_newlib="aarch64 arcv1 armv5 armeb bfin crisv10 crisv32 frv lm32 m68k microblazeel mips mipsel or1k ppc sparc x86"
  32. topdir=$(pwd)
  33. giturl=http://git.openadk.org/openadk.git
  34. valid_libc="uclibc-ng musl glibc newlib"
  35. valid_tests="toolchain boot libc ltp mksh native"
  36. bootserver=10.0.0.1
  37. buildserver=10.0.0.2
  38. tools='make git wget xz cpio tar awk sed'
  39. f=0
  40. for tool in $tools; do
  41. if ! which $tool >/dev/null; then
  42. echo "Checking if $tool is installed... failed"
  43. f=1
  44. fi
  45. done
  46. if [ $f -eq 1 ]; then
  47. exit 1
  48. fi
  49. help() {
  50. cat >&2 <<EOF
  51. Syntax: $0 [ --libc=<libc> --arch=<arch> --test=<test> ]
  52. Explanation:
  53. --libc=<libc> C library to use (${valid_libc})
  54. --arch=<arch> architecture to check (otherwise all supported)
  55. --skiparch=<arch> architectures to skip when all choosen
  56. --targets=<targets.txt> a list of remote targets to test via nfsroot or chroot
  57. --test=<test> run test (${valid_tests}), default toolchain
  58. --libc-source=<dir> use directory with source for C library
  59. --gcc-source=<dir> use directory with source for gcc
  60. --binutils-source=<dir> use directory with source for binutils
  61. --gdb-source=<dir> use directory with source for gdb
  62. --libc-version=<version> use version of C library
  63. --gcc-version=<version> use version of gcc
  64. --binutils-version=<version> use version of binutils
  65. --gdb-version=<version> use version of gdb
  66. --ntp=<ntpserver> set NTP server for test run
  67. --packages=<packagelist> add extra packages to the build
  68. --update update OpenADK source via git pull, before building
  69. --continue continue on a broken build
  70. --cleandir clean OpenADK build directories before build
  71. --clean clean OpenADK build directory for single arch
  72. --no-clean do not clean OpenADK build directory for single arch
  73. --debug enable debug output from OpenADK
  74. --shell start a shell instead of test autorun
  75. --help this help text
  76. EOF
  77. exit 1
  78. }
  79. cont=0
  80. clean=0
  81. noclean=0
  82. cleandir=0
  83. shell=0
  84. update=0
  85. debug=0
  86. ntp=""
  87. libc=""
  88. test="toolchain"
  89. while [[ $1 != -- && $1 = -* ]]; do case $1 {
  90. (--cleandir) cleandir=1; shift ;;
  91. (--clean) clean=1; shift ;;
  92. (--no-clean) noclean=1; shift ;;
  93. (--debug) debug=1; shift ;;
  94. (--update) update=1; shift ;;
  95. (--continue) cont=1; shift ;;
  96. (--shell) shell=1 shift ;;
  97. (--libc=*) libc=${1#*=}; shift ;;
  98. (--arch=*) archs=${1#*=}; shift ;;
  99. (--skiparch=*) skiparchs=${1#*=}; shift ;;
  100. (--targets=*) targets=${1#*=}; shift ;;
  101. (--test=*) test=${1#*=}; shift ;;
  102. (--libc-source=*) libcsource=${1#*=}; shift ;;
  103. (--gcc-source=*) gccsource=${1#*=}; shift ;;
  104. (--binutils-source=*) binutilssource=${1#*=}; shift ;;
  105. (--gdb-source=*) gdbsource=${1#*=}; shift ;;
  106. (--libc-version=*) libcversion=${1#*=}; shift ;;
  107. (--gcc-version=*) gccversion=${1#*=}; shift ;;
  108. (--binutils-version=*) binutilsversion=${1#*=}; shift ;;
  109. (--gdb-version=*) gdbversion=${1#*=}; shift ;;
  110. (--packages=*) packages=${1#*=}; shift ;;
  111. (--ntp=*) ntp=${1#*=}; shift ;;
  112. (--help) help; shift ;;
  113. (--*) echo "unknown option $1"; exit 1 ;;
  114. (-*) help ;;
  115. }; done
  116. if [ ! -z $targets ]; then
  117. targetmode=1
  118. fi
  119. if [ -z "$libc" ]; then
  120. if [[ $libcversion ]]; then
  121. echo "You can not use a specific C library version without setting the C library"
  122. exit 1
  123. else
  124. libc="uclibc-ng musl glibc newlib"
  125. fi
  126. fi
  127. if [ ! -d openadk ]; then
  128. git clone $giturl
  129. if [ $? -ne 0 ]; then
  130. echo "Cloning from $giturl failed."
  131. exit 1
  132. fi
  133. else
  134. if [ $update -eq 1 ]; then
  135. (cd openadk && git pull)
  136. if [ $? -ne 0 ]; then
  137. echo "Updating from $giturl failed."
  138. exit 1
  139. fi
  140. fi
  141. fi
  142. get_arch_info() {
  143. arch=$1
  144. lib=$2
  145. emulator=qemu
  146. noappend=0
  147. piggyback=0
  148. suffix=
  149. allowed_libc=
  150. runtime_test=
  151. qemu_args=-nographic
  152. case ${arch} in
  153. aarch64)
  154. allowed_libc="musl glibc newlib"
  155. runtime_test="musl glibc"
  156. allowed_tests="toolchain boot libc ltp mksh native"
  157. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=aarch64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-aarch64"
  158. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=aarch64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-aarch64"
  159. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=aarch64"
  160. cpu_arch=aarch64
  161. qemu_machine=virt
  162. qemu_args="${qemu_args} -cpu cortex-a57 -netdev user,id=eth0 -device virtio-net-device,netdev=eth0"
  163. ;;
  164. alpha)
  165. allowed_libc="uclibc-ng glibc"
  166. runtime_test="uclibc-ng glibc"
  167. allowed_tests="toolchain boot libc ltp mksh native"
  168. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=alpha ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-alpha"
  169. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=alpha ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-alpha"
  170. march=alpha
  171. qemu=qemu-system-alpha
  172. qemu_machine=clipper
  173. qemu_args="${qemu_args} -monitor null"
  174. ;;
  175. armv5)
  176. allowed_libc="uclibc-ng musl glibc newlib"
  177. runtime_test="uclibc-ng musl glibc"
  178. allowed_tests="toolchain boot libc ltp mksh native"
  179. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-versatilepb"
  180. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-versatilepb"
  181. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-versatilepb"
  182. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arm ADK_TARGET_ENDIAN=little ADK_TARGET_CPU=arm926ej-s"
  183. cpu_arch=arm926ej_s
  184. march=arm-versatilepb
  185. qemu=qemu-system-arm
  186. qemu_machine=versatilepb
  187. suffix=${cpu_arch}_soft_eabi
  188. dtbdir=openadk/firmware/qemu-${march}_${lib}_${suffix}
  189. qemu_args="${qemu_args} -cpu arm926 -net user -net nic,model=smc91c111"
  190. ;;
  191. armv6)
  192. allowed_libc="uclibc-ng musl glibc"
  193. runtime_test="uclibc-ng musl glibc"
  194. allowed_tests="toolchain boot libc ltp mksh native"
  195. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-realview-eb-mpcore"
  196. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-realview-eb-mpcore"
  197. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-realview-eb-mpcore"
  198. cpu_arch=mpcore
  199. march=arm-realview-eb-mpcore
  200. qemu=qemu-system-arm
  201. qemu_machine=realview-eb-mpcore
  202. suffix=${cpu_arch}_hard_eabihf
  203. dtbdir=openadk/firmware/qemu-${march}_${lib}_${suffix}
  204. qemu_args="${qemu_args} -net user -net nic"
  205. ;;
  206. armv7)
  207. allowed_libc="uclibc-ng musl glibc"
  208. runtime_test="uclibc-ng musl glibc"
  209. allowed_tests="toolchain boot libc ltp mksh native"
  210. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-vexpress-a9"
  211. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-vexpress-a9"
  212. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-vexpress-a9"
  213. cpu_arch=cortex_a9
  214. march=arm-vexpress-a9
  215. qemu=qemu-system-arm
  216. qemu_machine=vexpress-a9
  217. suffix=${cpu_arch}_hard_eabihf
  218. dtbdir=openadk/firmware/qemu-${march}_${lib}_${suffix}
  219. qemu_args="${qemu_args} -cpu cortex-a9 -net user -net nic,model=lan9118 -dtb ${dtbdir}/vexpress-v2p-ca9.dtb"
  220. ;;
  221. armeb)
  222. allowed_libc="uclibc-ng musl glibc"
  223. runtime_test=""
  224. allowed_tests="toolchain"
  225. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=generic-arm ADK_TARGET_FLOAT=soft ADK_TARGET_ENDIAN=big"
  226. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=generic-arm ADK_TARGET_FLOAT=soft ADK_TARGET_ENDIAN=big"
  227. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=generic-arm ADK_TARGET_FLOAT=soft ADK_TARGET_ENDIAN=big"
  228. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arm ADK_TARGET_ENDIAN=big ADK_TARGET_CPU=arm926ej-s"
  229. ;;
  230. arcv1)
  231. allowed_libc="uclibc-ng newlib"
  232. runtime_test="uclibc-ng"
  233. allowed_tests="toolchain boot libc ltp mksh native"
  234. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arc ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=nsim-arcv1 ADK_TARGET_ENDIAN=little"
  235. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arc ADK_TARGET_ENDIAN=little"
  236. emulator=nsim
  237. cpu_arch=arc700
  238. suffix=${cpu_arch}
  239. piggyback=1
  240. ;;
  241. arcv2)
  242. allowed_libc="uclibc-ng"
  243. runtime_test="uclibc-ng"
  244. allowed_tests="toolchain boot libc ltp mksh native"
  245. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arc ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=nsim-arcv2 ADK_TARGET_ENDIAN=little"
  246. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arc ADK_TARGET_ENDIAN=little"
  247. emulator=nsim
  248. cpu_arch=archs
  249. suffix=${cpu_arch}
  250. piggyback=1
  251. ;;
  252. arcv1-be)
  253. allowed_libc="uclibc-ng"
  254. runtime_test="uclibc-ng"
  255. allowed_tests="toolchain boot libc ltp mksh native"
  256. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arc ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=nsim-arcv1 ADK_TARGET_ENDIAN=big"
  257. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arc ADK_TARGET_ENDIAN=big"
  258. emulator=nsim
  259. cpu_arch=arc700
  260. suffix=${cpu_arch}
  261. march=arcv1be
  262. piggyback=1
  263. ;;
  264. arcv2-be)
  265. allowed_libc="uclibc-ng"
  266. runtime_test="uclibc-ng"
  267. allowed_tests="toolchain boot libc ltp mksh native"
  268. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arc ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=nsim-arcv2 ADK_TARGET_ENDIAN=big"
  269. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arc ADK_TARGET_ENDIAN=big"
  270. emulator=nsim
  271. cpu_arch=archs
  272. march=arcv2be
  273. suffix=${cpu_arch}
  274. piggyback=1
  275. ;;
  276. avr32)
  277. allowed_libc="uclibc-ng"
  278. runtime_test=""
  279. allowed_tests="toolchain"
  280. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=avr32 ADK_TARGET_SYSTEM=generic-avr32"
  281. ;;
  282. bfin)
  283. allowed_libc="uclibc-ng"
  284. runtime_test=""
  285. allowed_tests="toolchain"
  286. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=bfin ADK_TARGET_SYSTEM=generic-bfin"
  287. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=bfin"
  288. ;;
  289. c6x)
  290. allowed_libc="uclibc-ng"
  291. runtime_test=""
  292. allowed_tests="toolchain"
  293. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=c6x ADK_TARGET_SYSTEM=generic-c6x ADK_TARGET_ENDIAN=little"
  294. ;;
  295. crisv10)
  296. allowed_libc="uclibc-ng newlib"
  297. runtime_test=""
  298. allowed_tests="toolchain"
  299. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=cris ADK_TARGET_SYSTEM=generic-cris ADK_TARGET_CPU=crisv10"
  300. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=cris ADK_TARGET_CPU=crisv10"
  301. ;;
  302. crisv32)
  303. allowed_libc="uclibc-ng newlib"
  304. runtime_test="uclibc-ng"
  305. allowed_tests="toolchain boot libc ltp native"
  306. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=cris ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-cris"
  307. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=cris ADK_TARGET_CPU=crisv32"
  308. cpu_arch=crisv32
  309. march=cris
  310. qemu=qemu-system-${march}
  311. qemu_machine=axis-dev88
  312. piggyback=1
  313. ;;
  314. frv)
  315. allowed_libc="newlib"
  316. runtime_test=""
  317. allowed_tests="toolchain"
  318. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=frv"
  319. ;;
  320. ia64)
  321. allowed_libc="uclibc-ng glibc"
  322. runtime_test=""
  323. allowed_tests="toolchain"
  324. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=ia64 ADK_TARGET_SYSTEM=generic-ia64"
  325. default_glibc="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=ia64 ADK_TARGET_SYSTEM=generic-ia64"
  326. ;;
  327. h8300)
  328. allowed_libc="uclibc-ng newlib"
  329. runtime_test=""
  330. allowed_tests="toolchain"
  331. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=h8300 ADK_TARGET_SYSTEM=sim-h8300"
  332. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=h8300"
  333. ;;
  334. lm32)
  335. allowed_libc="uclibc-ng newlib"
  336. runtime_test=""
  337. allowed_tests="toolchain"
  338. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=lm32 ADK_TARGET_SYSTEM=qemu-lm32"
  339. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=lm32"
  340. ;;
  341. m68k)
  342. allowed_libc="uclibc-ng newlib"
  343. runtime_test=""
  344. allowed_tests="toolchain"
  345. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=m68k ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-m68k-q800"
  346. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=m68k ADK_TARGET_CPU=68040"
  347. ;;
  348. m68k-nommu)
  349. allowed_libc="uclibc-ng"
  350. runtime_test=""
  351. allowed_tests="toolchain"
  352. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=m68k ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-m68k-mcf5208"
  353. ;;
  354. metag)
  355. allowed_libc="uclibc-ng"
  356. runtime_test="uclibc-ng"
  357. allowed_tests="toolchain boot"
  358. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=metag ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-metag"
  359. cpu_arch=metag
  360. qemu=qemu-system-meta
  361. qemu_args="-nographic -display none -device da,exit_threads=1 -chardev stdio,id=chan1 -chardev pty,id=chan2"
  362. qemu_machine=01sp
  363. piggyback=1
  364. ;;
  365. microblazeel)
  366. allowed_libc="uclibc-ng musl glibc newlib"
  367. runtime_test="musl glibc"
  368. allowed_tests="toolchain boot libc mksh ltp native"
  369. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=microblaze ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-microblaze-s3adsp1800 ADK_TARGET_ENDIAN=little"
  370. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=microblaze ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-microblaze-s3adsp1800 ADK_TARGET_ENDIAN=little"
  371. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=microblaze ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-microblaze-s3adsp1800 ADK_TARGET_ENDIAN=little"
  372. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=microblaze ADK_TARGET_ENDIAN=little"
  373. cpu_arch=microblazeel
  374. march=microblaze-s3adsp1800
  375. qemu_machine=petalogix-s3adsp1800
  376. ;;
  377. microblazebe)
  378. allowed_libc="uclibc-ng musl glibc newlib"
  379. runtime_test="musl glibc"
  380. allowed_tests="toolchain boot libc mksh ltp native"
  381. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=microblaze ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-microblaze-s3adsp1800 ADK_TARGET_ENDIAN=big"
  382. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=microblaze ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-microblaze-s3adsp1800 ADK_TARGET_ENDIAN=big"
  383. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=microblaze ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-microblaze-s3adsp1800 ADK_TARGET_ENDIAN=big"
  384. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=microblaze ADK_TARGET_ENDIAN=big"
  385. cpu_arch=microblaze
  386. march=microblaze-s3adsp1800
  387. qemu=qemu-system-${cpu_arch}
  388. qemu_machine=petalogix-s3adsp1800
  389. ;;
  390. mips)
  391. allowed_libc="uclibc-ng musl glibc newlib"
  392. runtime_test="uclibc-ng musl glibc"
  393. allowed_tests="toolchain boot libc mksh ltp native"
  394. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips ADK_TARGET_ENDIAN=big ADK_TARGET_FLOAT=hard"
  395. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips ADK_TARGET_ENDIAN=big ADK_TARGET_FLOAT=hard"
  396. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips ADK_TARGET_ENDIAN=big ADK_TARGET_FLOAT=hard"
  397. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=mips ADK_TARGET_ENDIAN=big"
  398. cpu_arch=mips32
  399. qemu=qemu-system-mips
  400. qemu_machine=malta
  401. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  402. suffix=${cpu_arch}_hard
  403. ;;
  404. mipssf)
  405. allowed_libc="uclibc-ng musl glibc"
  406. runtime_test="uclibc-ng musl glibc"
  407. allowed_tests="toolchain boot libc mksh ltp native"
  408. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips ADK_TARGET_ENDIAN=big ADK_TARGET_FLOAT=soft"
  409. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips ADK_TARGET_ENDIAN=big ADK_TARGET_FLOAT=soft"
  410. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips ADK_TARGET_ENDIAN=big ADK_TARGET_FLOAT=soft"
  411. cpu_arch=mips32
  412. march=mips
  413. qemu=qemu-system-mips
  414. qemu_machine=malta
  415. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  416. suffix=${cpu_arch}_soft
  417. ;;
  418. mipsel)
  419. allowed_libc="uclibc-ng musl glibc newlib"
  420. runtime_test="uclibc-ng musl glibc"
  421. allowed_tests="toolchain boot libc mksh ltp native"
  422. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips ADK_TARGET_ENDIAN=little ADK_TARGET_FLOAT=hard"
  423. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips ADK_TARGET_ENDIAN=little ADK_TARGET_FLOAT=hard"
  424. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips ADK_TARGET_ENDIAN=little ADK_TARGET_FLOAT=hard"
  425. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=mips ADK_TARGET_ENDIAN=little"
  426. cpu_arch=mips32
  427. march=mips
  428. qemu=qemu-system-mipsel
  429. qemu_machine=malta
  430. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  431. suffix=${cpu_arch}_hard
  432. ;;
  433. mipselsf)
  434. allowed_libc="uclibc-ng musl glibc"
  435. runtime_test="uclibc-ng musl glibc"
  436. allowed_tests="toolchain boot libc mksh ltp native"
  437. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips ADK_TARGET_ENDIAN=little ADK_TARGET_FLOAT=soft"
  438. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips ADK_TARGET_ENDIAN=little ADK_TARGET_FLOAT=soft"
  439. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips ADK_TARGET_ENDIAN=little ADK_TARGET_FLOAT=soft"
  440. cpu_arch=mips32
  441. march=mips
  442. qemu=qemu-system-mipsel
  443. qemu_machine=malta
  444. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  445. suffix=${cpu_arch}_soft
  446. ;;
  447. mips64)
  448. allowed_libc="uclibc-ng glibc"
  449. runtime_test="uclibc-ng glibc"
  450. allowed_tests="toolchain boot libc mksh ltp native"
  451. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips64 ADK_TARGET_ENDIAN=big ADK_TARGET_ABI=o32"
  452. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips64 ADK_TARGET_ENDIAN=big ADK_TARGET_ABI=o32"
  453. cpu_arch=mips64
  454. qemu_machine=malta
  455. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  456. suffix=${cpu_arch}_o32
  457. ;;
  458. mips64n32)
  459. allowed_libc="uclibc-ng glibc"
  460. runtime_test="uclibc-ng glibc"
  461. allowed_tests="toolchain boot libc mksh ltp native"
  462. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips64 ADK_TARGET_ENDIAN=big ADK_TARGET_ABI=n32"
  463. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips64 ADK_TARGET_ENDIAN=big ADK_TARGET_ABI=n32"
  464. cpu_arch=mips64
  465. march=mips64
  466. qemu=qemu-system-${cpu_arch}
  467. qemu_machine=malta
  468. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  469. suffix=${cpu_arch}_n32
  470. ;;
  471. mips64n64)
  472. allowed_libc="uclibc-ng glibc"
  473. runtime_test="uclibc-ng glibc"
  474. allowed_tests="toolchain boot libc mksh ltp native"
  475. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips64 ADK_TARGET_ENDIAN=big ADK_TARGET_ABI=n64"
  476. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips64 ADK_TARGET_ENDIAN=big ADK_TARGET_ABI=n64"
  477. cpu_arch=mips64
  478. march=mips64
  479. qemu=qemu-system-${cpu_arch}
  480. qemu_machine=malta
  481. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  482. suffix=${cpu_arch}_n64
  483. ;;
  484. mips64el)
  485. allowed_libc="uclibc-ng glibc"
  486. runtime_test="uclibc-ng glibc"
  487. allowed_tests="toolchain boot libc mksh ltp native"
  488. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips64 ADK_TARGET_ENDIAN=little ADK_TARGET_ABI=o32"
  489. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips64 ADK_TARGET_ENDIAN=little ADK_TARGET_ABI=o32"
  490. cpu_arch=mips64
  491. march=mips64
  492. endian=el
  493. qemu=qemu-system-mips64el
  494. qemu_machine=malta
  495. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  496. suffix=${cpu_arch}_o32
  497. ;;
  498. mips64eln32)
  499. allowed_libc="uclibc-ng glibc"
  500. runtime_test="uclibc-ng glibc"
  501. allowed_tests="toolchain boot libc mksh ltp native"
  502. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips64 ADK_TARGET_ENDIAN=little ADK_TARGET_ABI=n32"
  503. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips64 ADK_TARGET_ENDIAN=little ADK_TARGET_ABI=n32"
  504. cpu_arch=mips64
  505. march=mips64
  506. endian=el
  507. qemu=qemu-system-mips64el
  508. qemu=qemu-system-${cpu_arch}
  509. qemu_machine=malta
  510. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  511. suffix=${cpu_arch}_n32
  512. ;;
  513. mips64eln64)
  514. allowed_libc="uclibc-ng glibc"
  515. runtime_test="uclibc-ng glibc"
  516. allowed_tests="toolchain boot libc mksh ltp native"
  517. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips64 ADK_TARGET_ENDIAN=little ADK_TARGET_ABI=n64"
  518. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=mips64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-mips64 ADK_TARGET_ENDIAN=little ADK_TARGET_ABI=n64"
  519. cpu_arch=mips64
  520. march=mips64
  521. endian=el
  522. qemu=qemu-system-mips64el
  523. qemu_machine=malta
  524. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  525. suffix=${cpu_arch}_n64
  526. ;;
  527. nios2)
  528. allowed_libc="glibc"
  529. runtime_test=""
  530. allowed_tests="toolchain"
  531. default_glibc="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=nios2 ADK_TARGET_SYSTEM=generic-nios2"
  532. ;;
  533. or1k)
  534. allowed_libc="uclibc-ng musl newlib"
  535. runtime_test=""
  536. allowed_tests="toolchain"
  537. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=or1k ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-or1k"
  538. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=or1k ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-or1k"
  539. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=or1k"
  540. ;;
  541. ppc)
  542. allowed_libc="uclibc-ng musl glibc newlib"
  543. runtime_test="uclibc-ng musl glibc"
  544. allowed_tests="toolchain boot libc mksh ltp native"
  545. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=ppc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-ppc-macppc ADK_TARGET_FLOAT=hard"
  546. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=ppc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-ppc-macppc ADK_TARGET_FLOAT=hard"
  547. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=ppc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-ppc-macppc ADK_TARGET_FLOAT=hard"
  548. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=ppc"
  549. cpu_arch=ppc
  550. march=ppc-macppc
  551. qemu=qemu-system-${cpu_arch}
  552. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  553. qemu_machine=mac99
  554. suffix=hard
  555. noappend=1
  556. ;;
  557. ppcsf)
  558. allowed_libc="uclibc-ng musl glibc newlib"
  559. runtime_test="uclibc-ng musl glibc"
  560. allowed_tests="toolchain boot libc mksh ltp native"
  561. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=ppc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-ppc-bamboo ADK_TARGET_FLOAT=soft"
  562. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=ppc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-ppc-bamboo ADK_TARGET_FLOAT=soft"
  563. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=ppc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-ppc-bamboo ADK_TARGET_FLOAT=soft"
  564. cpu_arch=ppc
  565. march=ppc-bamboo
  566. qemu=qemu-system-${cpu_arch}
  567. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  568. qemu_machine=bamboo
  569. suffix=soft
  570. ;;
  571. ppc64)
  572. allowed_libc="glibc"
  573. runtime_test="glibc"
  574. allowed_tests="toolchain boot libc mksh ltp native"
  575. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=ppc64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-ppc64 ADK_TARGET_ENDIAN=big"
  576. cpu_arch=ppc64
  577. qemu=qemu-system-${cpu_arch}
  578. qemu_machine=pseries
  579. ;;
  580. ppc64le)
  581. allowed_libc="glibc"
  582. runtime_test="glibc"
  583. allowed_tests="toolchain"
  584. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=ppc64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-ppc64 ADK_TARGET_ENDIAN=little"
  585. cpu_arch=ppc64
  586. qemu=qemu-system-${cpu_arch}
  587. qemu_machine=pseries
  588. ;;
  589. s390)
  590. allowed_libc="glibc"
  591. runtime_test="glibc"
  592. allowed_tests="toolchain boot libc mksh ltp native"
  593. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=s390 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-s390"
  594. cpu_arch=s390x
  595. qemu=qemu-system-${cpu_arch}
  596. qemu_machine=s390-ccw-virtio-2.4
  597. ;;
  598. sh2)
  599. allowed_libc="uclibc-ng"
  600. runtime_test=""
  601. allowed_tests="toolchain"
  602. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=sh ADK_TARGET_SYSTEM=generic-sh ADK_TARGET_CPU=sh2"
  603. cpu_arch=sh2
  604. ;;
  605. sh3)
  606. allowed_libc="uclibc-ng"
  607. runtime_test=""
  608. allowed_tests="toolchain"
  609. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=sh ADK_TARGET_SYSTEM=generic-sh ADK_TARGET_CPU=sh3"
  610. cpu_arch=sh3
  611. ;;
  612. sh4)
  613. allowed_libc="uclibc-ng musl glibc"
  614. runtime_test="uclibc-ng musl glibc"
  615. allowed_tests="toolchain boot libc mksh ltp native"
  616. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sh ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=little"
  617. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sh ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=little"
  618. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sh ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=little"
  619. cpu_arch=sh4
  620. march=sh
  621. qemu=qemu-system-sh4
  622. qemu_machine=r2d
  623. qemu_args="${qemu_args} -monitor null -serial null -serial stdio"
  624. suffix=${cpu_arch}
  625. ;;
  626. sh4eb)
  627. allowed_libc="uclibc-ng musl glibc"
  628. runtime_test=""
  629. allowed_tests="toolchain"
  630. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sh ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=big"
  631. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sh ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=big"
  632. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sh ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=big"
  633. cpu_arch=sh4eb
  634. march=sh
  635. qemu=qemu-system-sh4eb
  636. qemu_machine=r2d
  637. qemu_args="${qemu_args} -monitor null -serial null -serial stdio"
  638. suffix=${cpu_arch}
  639. ;;
  640. sparc)
  641. allowed_libc="uclibc-ng glibc newlib"
  642. runtime_test="uclibc-ng glibc"
  643. allowed_tests="toolchain boot libc mksh ltp native"
  644. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sparc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sparc"
  645. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sparc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sparc"
  646. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=sparc"
  647. cpu_arch=v8
  648. qemu=qemu-system-sparc
  649. qemu_machine=SS-10
  650. suffix=${cpu_arch}
  651. ;;
  652. sparc-leon3)
  653. allowed_libc="uclibc-ng"
  654. runtime_test=""
  655. allowed_tests="toolchain"
  656. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_ARCH=sparc ADK_TARGET_CPU=leon3 ADK_TARGET_SYSTEM=generic-sparc"
  657. cpu_arch=leon
  658. suffix=${cpu_arch}
  659. ;;
  660. sparc64)
  661. allowed_libc="glibc"
  662. runtime_test="glibc"
  663. allowed_tests="toolchain boot libc mksh ltp native"
  664. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sparc64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sparc64"
  665. cpu_arch=v9
  666. qemu=qemu-system-sparc64
  667. qemu_machine=sun4u
  668. qemu_args="${qemu_args} -net nic,model=e1000 -net user"
  669. suffix=${cpu_arch}
  670. ;;
  671. tilegx)
  672. allowed_libc="glibc"
  673. runtime_test=""
  674. allowed_tests="toolchain"
  675. default_glibc="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=tile ADK_TARGET_CPU=tilegx ADK_TARGET_SYSTEM=generic-tile"
  676. ;;
  677. x86)
  678. allowed_libc="uclibc-ng musl glibc newlib"
  679. runtime_test="uclibc-ng musl glibc"
  680. allowed_tests="toolchain boot libc mksh ltp native"
  681. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86"
  682. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86"
  683. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86"
  684. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=x86"
  685. cpu_arch=i686
  686. qemu=qemu-system-i386
  687. qemu_machine=pc
  688. qemu_args="${qemu_args}"
  689. ;;
  690. x86_64)
  691. allowed_libc="uclibc-ng musl glibc"
  692. runtime_test="uclibc-ng musl glibc"
  693. allowed_tests="toolchain boot libc mksh ltp native"
  694. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86_64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86_64"
  695. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86_64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86_64"
  696. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86_64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86_64"
  697. cpu_arch=x86_64
  698. qemu_machine=pc
  699. libdir=lib64
  700. ;;
  701. x86_64_x32)
  702. allowed_libc="musl glibc"
  703. runtime_test=""
  704. allowed_tests="toolchain"
  705. cpu_arch=x86_64
  706. qemu=qemu-system-${cpu_arch}
  707. qemu_machine=pc
  708. libdir=libx32
  709. ;;
  710. xtensa)
  711. allowed_libc="uclibc-ng"
  712. runtime_test="uclibc-ng"
  713. allowed_tests="toolchain boot libc mksh ltp native"
  714. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=xtensa ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-xtensa ADK_TARGET_CPU=dc233c"
  715. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=xtensa"
  716. cpu_arch=dc233c
  717. qemu=qemu-system-xtensa
  718. qemu_machine=ml605
  719. qemu_args="${qemu_args} -cpu dc233c"
  720. suffix=${cpu_arch}
  721. ;;
  722. xtensa-nommu)
  723. allowed_libc="uclibc-ng"
  724. runtime_test="uclibc-ng"
  725. allowed_tests="toolchain"
  726. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=xtensa ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-xtensa ADK_TARGET_CPU=de212"
  727. cpu_arch=de212
  728. qemu=qemu-system-xtensa
  729. qemu_machine=ml605
  730. qemu_args="${qemu_args} -cpu de212"
  731. suffix=${cpu_arch}
  732. ;;
  733. *)
  734. echo "architecture ${arch} not supported"; exit 1;;
  735. esac
  736. }
  737. # creating test script to be run on boot
  738. create_run_sh() {
  739. test=$1
  740. file=$2
  741. type=$3
  742. if [ "$type" = "netcat" ]; then
  743. tee="| tee -a /REPORT"
  744. fi
  745. cat > $file << EOF
  746. #!/bin/sh
  747. uname -a
  748. if [ \$ntpserver ]; then
  749. rdate \$ntpserver
  750. else
  751. rdate time.fu-berlin.de
  752. fi
  753. EOF
  754. if [ "$type" = "netcat" ]; then
  755. cat >> $file << EOF
  756. dmesg >> /REPORT
  757. EOF
  758. fi
  759. # boot test
  760. if [ $test = "boot" ]; then
  761. cat >> $file << EOF
  762. file /bin/busybox $tee
  763. size /bin/busybox $tee
  764. for i in \$(ls /lib/*.so|grep -v libgcc);do
  765. size \$i $tee
  766. done
  767. EOF
  768. fi
  769. # ltp test
  770. if [ $test = "ltp" ]; then
  771. cat >> $file << EOF
  772. /opt/ltp/runltp $tee
  773. EOF
  774. fi
  775. # mksh test
  776. if [ $test = "mksh" ]; then
  777. cat >> $file << EOF
  778. tty=\$(cat /proc/consoles |cut -f 1 -d " ")
  779. mksh -T !/dev/\$tty -c '/opt/mksh/test.sh' $tee
  780. EOF
  781. fi
  782. # libc test
  783. if [ $test = "libc" ]; then
  784. case $lib in
  785. uclibc-ng)
  786. cat >> $file << EOF
  787. cd /opt/uclibc-ng/test
  788. sh ./uclibcng-testrunner.sh $tee
  789. EOF
  790. ;;
  791. musl|glibc)
  792. cat >> $file << EOF
  793. cd /opt/libc-test
  794. CC=: make run $tee
  795. EOF
  796. ;;
  797. esac
  798. fi
  799. if [ "$type" = "netcat" ]; then
  800. cat >> $file << EOF
  801. echo quit|nc $buildserver 9999
  802. EOF
  803. fi
  804. if [ "$type" = "quit" ]; then
  805. cat >> $file << EOF
  806. exit
  807. EOF
  808. fi
  809. chmod u+x $file
  810. }
  811. runtest() {
  812. lib=$1
  813. arch=$2
  814. test=$3
  815. if [ $ntp ]; then
  816. qemu_append="-append ntpserver=$ntp"
  817. fi
  818. if [ $shell -eq 1 ]; then
  819. qemu_append="-append shell"
  820. fi
  821. qemu=qemu-system-${arch}
  822. march=${arch}
  823. get_arch_info $arch $lib
  824. case $emulator in
  825. qemu)
  826. echo "Using QEMU as emulator"
  827. if ! which $qemu >/dev/null; then
  828. echo "Checking if $qemu is installed... failed"
  829. exit 1
  830. fi
  831. qemuver=$(${qemu} -version|awk '{ print $4 }')
  832. if [ "$arch" != "metag" ]; then
  833. if [ $(echo $qemuver |sed -e "s#\.##g" -e "s#,##") -lt 240 ]; then
  834. echo "Your qemu version is too old. Please update to 2.4 or greater"
  835. exit 1
  836. fi
  837. fi
  838. ;;
  839. nsim)
  840. echo "Using Synopsys NSIM as simulator"
  841. if ! which nsimdrv >/dev/null; then
  842. echo "Checking if $emulator is installed... failed"
  843. exit 1
  844. fi
  845. ;;
  846. *)
  847. echo "emulator/simulator not supported"
  848. exit 1
  849. ;;
  850. esac
  851. echo "Starting test for $lib and $arch"
  852. # check if initramfs or piggyback is used
  853. if [ $piggyback -eq 1 ]; then
  854. echo "Using extra directory for test image creation"
  855. root=openadk/extra
  856. rm -rf openadk/extra 2>/dev/null
  857. mkdir openadk/extra 2>/dev/null
  858. if [ ! -z $suffix ]; then
  859. kernel=openadk/firmware/${emulator}-${march}${endian}_${lib}_${suffix}/${emulator}-${march}-initramfspiggyback-kernel
  860. else
  861. kernel=openadk/firmware/${emulator}-${march}${endian}_${lib}/${emulator}-${march}-initramfspiggyback-kernel
  862. fi
  863. else
  864. echo "Generating root filesystem for test run"
  865. root=$(mktemp -d /tmp/XXXX)
  866. if [ ! -z $suffix ]; then
  867. archive=openadk/firmware/${emulator}-${march}${endian}_${lib}_${suffix}/qemu-${march}-${lib}-initramfsarchive.tar.xz
  868. kernel=openadk/firmware/${emulator}-${march}${endian}_${lib}_${suffix}/qemu-${march}-initramfsarchive-kernel
  869. else
  870. archive=openadk/firmware/${emulator}-${march}${endian}_${lib}/${emulator}-${march}-${lib}-initramfsarchive.tar.xz
  871. kernel=openadk/firmware/${emulator}-${march}${endian}_${lib}/${emulator}-${march}-initramfsarchive-kernel
  872. fi
  873. if [ ! -f $archive ]; then
  874. echo "No root filesystem available for architecture ${arch} tried $archive"
  875. exit 1
  876. fi
  877. tar -xf $archive -C $root
  878. fi
  879. create_run_sh $test ${root}/run.sh quit
  880. if [ $piggyback -eq 1 ]; then
  881. (cd openadk && make v)
  882. else
  883. echo "Creating initramfs filesystem"
  884. (cd $root; find . | cpio -o -C512 -Hnewc |xz --check=crc32 --stdout > ${topdir}/initramfs.${arch})
  885. rm -rf $root
  886. qemu_args="$qemu_args -initrd initramfs.${arch}"
  887. fi
  888. # qemu-ppc overwrites existing commandline
  889. if [ $noappend -eq 0 ]; then
  890. qemu_args="$qemu_args ${qemu_append}"
  891. fi
  892. echo "Now running the test ${test} in ${emulator} for architecture ${arch} and ${lib}"
  893. case $emulator in
  894. qemu)
  895. echo "${qemu} -M ${qemu_machine} ${qemu_args} -kernel ${kernel} -qmp tcp:127.0.0.1:4444,server,nowait -no-reboot"
  896. ${qemu} -M ${qemu_machine} ${qemu_args} -kernel ${kernel} -qmp tcp:127.0.0.1:4444,server,nowait -no-reboot | tee REPORT.${arch}.${emulator}.${test}.${libver}
  897. ;;
  898. nsim)
  899. echo "./openadk/scripts/nsim.sh ${arch} ${kernel}"
  900. ./openadk/scripts/nsim.sh ${arch} ${kernel} | tee REPORT.${arch}.${emulator}.${test}.${libver}
  901. ;;
  902. esac
  903. if [ $? -eq 0 ]; then
  904. echo "Test ${test} for ${arch} finished. See REPORT.${arch}.${emulator}.${test}.${libver}"
  905. else
  906. echo "Test ${test} failed for ${arch} with ${lib} ${libver}."
  907. fi
  908. }
  909. build() {
  910. lib=$1
  911. arch=$2
  912. test=$3
  913. system=$4
  914. rootfs=$5
  915. DEFAULT=
  916. cd openadk
  917. if [[ $targetmode ]]; then
  918. DEFAULT="ADK_APPLIANCE=test ADK_TARGET_ARCH=$arch ADK_TARGET_SYSTEM=$system ADK_TARGET_FS=$rootfs"
  919. else
  920. get_arch_info $arch $lib
  921. fi
  922. if [ $debug -eq 1 ]; then
  923. DEFAULT="$DEFAULT ADK_VERBOSE=1"
  924. fi
  925. # build defaults for different tests
  926. if [ $test = "boot" ]; then
  927. DEFAULT="$DEFAULT ADK_TEST_BASE=y"
  928. fi
  929. if [ $test = "ltp" ]; then
  930. DEFAULT="$DEFAULT ADK_TEST_LTP=y"
  931. fi
  932. if [ $test = "mksh" ]; then
  933. DEFAULT="$DEFAULT ADK_TEST_MKSH=y"
  934. REBUILD=.rebuild.mksh
  935. fi
  936. if [ $test = "libc" ]; then
  937. case $lib in
  938. uclibc-ng)
  939. DEFAULT="$DEFAULT ADK_TEST_UCLIBC_NG_TESTSUITE=y"
  940. REBUILD=.rebuild.uclibc-ng
  941. ;;
  942. glibc)
  943. DEFAULT="$DEFAULT ADK_TEST_GLIBC_TESTSUITE=y"
  944. ;;
  945. musl)
  946. DEFAULT="$DEFAULT ADK_TEST_MUSL_TESTSUITE=y"
  947. ;;
  948. esac
  949. fi
  950. if [ $test = "native" ]; then
  951. case $lib in
  952. uclibc-ng)
  953. DEFAULT="$DEFAULT ADK_TEST_UCLIBC_NG_NATIVE=y"
  954. ;;
  955. musl)
  956. DEFAULT="$DEFAULT ADK_TEST_MUSL_NATIVE=y"
  957. ;;
  958. glibc)
  959. DEFAULT="$DEFAULT ADK_TEST_GLIBC_NATIVE=y"
  960. ;;
  961. esac
  962. fi
  963. # build defaults for different C library
  964. DEFAULT="$DEFAULT ADK_TARGET_LIBC=$lib"
  965. case $lib in
  966. uclibc-ng)
  967. DEFAULT="$DEFAULT $default_uclibc_ng"
  968. ;;
  969. musl)
  970. DEFAULT="$DEFAULT $default_musl"
  971. ;;
  972. glibc)
  973. DEFAULT="$DEFAULT $default_glibc"
  974. ;;
  975. newlib)
  976. DEFAULT="$DEFAULT $default_newlib"
  977. ;;
  978. esac
  979. # use special C library version
  980. if [[ $libcversion ]]; then
  981. DEFAULT="$DEFAULT ADK_TARGET_LIBC_VERSION=$libcversion"
  982. fi
  983. rm .config* .defconfig 2>/dev/null
  984. echo "Using following defaults: $DEFAULT"
  985. make $DEFAULT defconfig
  986. for pkg in $packages; do
  987. p=$(echo $pkg|tr '[:lower:]' '[:upper:]');printf "ADK_COMPILE_$p=y\nADK_PACKAGE_$p=y" >> .config
  988. yes|make oldconfig
  989. done
  990. if [ $clean -eq 1 ]; then
  991. echo "cleaning openadk build directory"
  992. make cleansystem
  993. fi
  994. if [ ! -z $REBUILD ]; then
  995. touch $REBUILD
  996. fi
  997. make $DEFAULT all
  998. if [ $? -ne 0 ];then
  999. echo "build failed"
  1000. exit 1
  1001. fi
  1002. cd ..
  1003. }
  1004. for lib in ${libc}; do
  1005. case $lib in
  1006. uclibc-ng)
  1007. archlist=$arch_list_uclibcng
  1008. if [[ $libcversion ]]; then
  1009. version=$libcversion
  1010. else
  1011. version=1.0.12
  1012. fi
  1013. libver=uClibc-ng-${version}
  1014. libdir=uClibc-ng
  1015. ;;
  1016. glibc)
  1017. archlist=$arch_list_glibc
  1018. if [[ $libcversion ]]; then
  1019. version=$libcversion
  1020. else
  1021. version=2.23
  1022. fi
  1023. libver=glibc-${version}
  1024. libdir=glibc
  1025. ;;
  1026. musl)
  1027. archlist=$arch_list_musl
  1028. if [[ $libcversion ]]; then
  1029. version=$libcversion
  1030. else
  1031. version=1.1.14
  1032. fi
  1033. libver=musl-${version}
  1034. libdir=musl
  1035. ;;
  1036. newlib)
  1037. archlist=$arch_list_newlib
  1038. if [[ $libcversion ]]; then
  1039. version=$libcversion
  1040. else
  1041. version=2.2.0
  1042. fi
  1043. libver=newlib-${version}
  1044. libdir=newlib
  1045. ;;
  1046. *)
  1047. echo "$lib not supported"
  1048. exit 1
  1049. ;;
  1050. esac
  1051. if [ ! -z $archs ]; then
  1052. archlist="$archs"
  1053. fi
  1054. # libc source used?
  1055. if [ ! -z $libcsource ]; then
  1056. if [ ! -d $libcsource ]; then
  1057. echo "Not a directory."
  1058. exit 1
  1059. fi
  1060. usrc=$(mktemp -d /tmp/XXXX)
  1061. echo "Creating C library source tarball openadk/dl/${libver}.tar.xz"
  1062. cp -a $libcsource $usrc/$libver
  1063. mkdir -p $topdir/openadk/dl 2>/dev/null
  1064. rm $topdir/openadk/dl/${libver}.tar.xz 2>/dev/null
  1065. (cd $usrc && tar cJf $topdir/openadk/dl/${libver}.tar.xz ${libver} )
  1066. touch $topdir/openadk/dl/${libver}.tar.xz.nohash
  1067. # we need to clean system, when external source is used
  1068. if [ $noclean -eq 0 ]; then
  1069. clean=1
  1070. fi
  1071. fi
  1072. if [ ! -z $binutilssource ]; then
  1073. if [ ! -d $binutilssource ]; then
  1074. echo "Not a directory."
  1075. exit 1
  1076. fi
  1077. usrc=$(mktemp -d /tmp/XXXX)
  1078. echo "Creating binutils source tarball openadk/dl/binutils-git.tar.xz"
  1079. cp -a $binutilssource $usrc/binutils-git
  1080. mkdir -p $topdir/openadk/dl 2>/dev/null
  1081. rm $topdir/openadk/dl/binutils-git.tar.xz 2>/dev/null
  1082. (cd $usrc && tar cJf $topdir/openadk/dl/binutils-git.tar.xz binutils-git)
  1083. touch $topdir/openadk/dl/binutils-git.tar.xz.nohash
  1084. # we need to clean system, when external source is used
  1085. if [ $noclean -eq 0 ]; then
  1086. clean=1
  1087. fi
  1088. fi
  1089. # start with a clean dir
  1090. if [ $cleandir -eq 1 ]; then
  1091. echo "completely cleaning openadk build directory"
  1092. (cd openadk && make cleandir)
  1093. fi
  1094. if [[ $targetmode ]]; then
  1095. create_run_sh $test run.sh netcat
  1096. while read -u3 line; do
  1097. target_host=$(echo $line|cut -f 1 -d ,)
  1098. target_ip=$(echo $line|cut -f 2 -d ,)
  1099. target_arch=$(echo $line|cut -f 3 -d ,)
  1100. target_system=$(echo $line|cut -f 4 -d ,)
  1101. target_suffix=$(echo $line|cut -f 5 -d ,)
  1102. target_rootfs=$(echo $line|cut -f 6 -d ,)
  1103. target_powerid=$(echo $line|cut -f 7 -d ,)
  1104. echo "Testing target system $target_system ($target_arch) with $target_rootfs on $target_host"
  1105. build $lib $target_arch $test $target_system $target_rootfs
  1106. kernel=openadk/firmware/${target_system}_${lib}_${target_suffix}/${target_system}-${target_rootfs}-kernel
  1107. tarball=openadk/firmware/${target_system}_${lib}_${target_suffix}/${target_system}-${lib}-${target_rootfs}.tar.xz
  1108. scp $kernel root@${bootserver}:/tftpboot/${target_host}
  1109. ssh -n root@${bootserver} "cd /tftpboot; ln -sf ${target_host} vmlinux"
  1110. ssh -n root@${bootserver} "mkdir /nfsroot/${target_host} 2>/dev/null"
  1111. xzcat $tarball | ssh root@${bootserver} "tar -xf - -C /nfsroot/${target_host}"
  1112. scp run.sh root@${bootserver}:/nfsroot/${target_host}
  1113. echo "Powering on target system"
  1114. ssh -n root@${bootserver} "sispmctl -o $target_powerid"
  1115. echo "Waiting for target system to finish"
  1116. nc -l -p 9999
  1117. echo "Test finished. Powering off target system"
  1118. ssh -n root@${bootserver} "sispmctl -f $target_powerid"
  1119. scp root@${bootserver}:/nfsroot/${target_host}/REPORT REPORT.${target_arch}.${target_system}.${test}.${libver}
  1120. ssh -n root@${bootserver} "rm /nfsroot/${target_host}/REPORT"
  1121. done 3< $targets
  1122. else
  1123. for arch in $archlist; do
  1124. get_arch_info $arch $lib
  1125. if [ $cont -eq 1 ]; then
  1126. if [ -f "REPORT.${arch}.${emulator}.${test}.${libver}" ]; then
  1127. echo "Skipping already run test $test for $arch and $lib"
  1128. continue
  1129. fi
  1130. fi
  1131. if [ "$arch" = "$skiparchs" ]; then
  1132. echo "Skipping $skiparchs"
  1133. continue
  1134. fi
  1135. if [[ "$allowed_tests" = *${test}* ]]; then
  1136. if [[ "$allowed_libc" = *${lib}* ]]; then
  1137. echo "Compiling for $lib and $arch testing $test"
  1138. build $lib $arch $test
  1139. if [ "$test" != "toolchain" ]; then
  1140. if [[ "$runtime_test" = *${lib}* ]]; then
  1141. runtest $lib $arch $test
  1142. fi
  1143. else
  1144. # fake stamp for continue
  1145. touch REPORT.${arch}.${emulator}.${test}.${libver}
  1146. fi
  1147. else
  1148. echo "$lib not available for $arch"
  1149. fi
  1150. else
  1151. echo "$test not available for $arch and $lib"
  1152. fi
  1153. done
  1154. fi
  1155. done
  1156. echo "All tests finished."
  1157. exit 0