embedded-test.sh 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182
  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 ia64 lm32 m68k m68k-nommu metag microblazeel microblazebe mips mipssf mipsel mipselsf mips64 mips64eln32 mips64n32 mips64n64 mips64el mips64el 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 mips64eln32 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. cpu_arch=alpha
  171. march=alpha
  172. qemu=qemu-system-${cpu_arch}
  173. qemu_machine=clipper
  174. qemu_args="${qemu_args} -monitor null"
  175. ;;
  176. armv5)
  177. allowed_libc="uclibc-ng musl glibc newlib"
  178. runtime_test="uclibc-ng musl glibc"
  179. allowed_tests="toolchain boot libc ltp mksh native"
  180. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-versatilepb"
  181. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-versatilepb"
  182. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-versatilepb"
  183. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arm ADK_TARGET_ENDIAN=little ADK_TARGET_CPU=arm926ej-s"
  184. cpu_arch=arm
  185. march=arm-versatilepb
  186. qemu=qemu-system-${cpu_arch}
  187. qemu_machine=versatilepb
  188. suffix=soft_eabi
  189. dtbdir=openadk/firmware/qemu-${march}_${lib}_${cpu_arch}_${suffix}
  190. qemu_args="${qemu_args} -cpu arm926 -net user -net nic,model=smc91c111"
  191. ;;
  192. armv6)
  193. allowed_libc="uclibc-ng musl glibc"
  194. runtime_test="uclibc-ng musl glibc"
  195. allowed_tests="toolchain boot libc ltp mksh native"
  196. 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"
  197. 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"
  198. 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"
  199. cpu_arch=arm
  200. march=arm-realview-eb-mpcore
  201. qemu=qemu-system-${cpu_arch}
  202. qemu_machine=realview-eb-mpcore
  203. suffix=hard_eabihf
  204. dtbdir=openadk/firmware/qemu-${march}_${lib}_${cpu_arch}_${suffix}
  205. qemu_args="${qemu_args} -net user -net nic"
  206. ;;
  207. armv7)
  208. allowed_libc="uclibc-ng musl glibc"
  209. runtime_test="uclibc-ng musl glibc"
  210. allowed_tests="toolchain boot libc ltp mksh native"
  211. 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"
  212. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-vexpress-a9"
  213. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-vexpress-a9"
  214. cpu_arch=arm
  215. march=arm-vexpress-a9
  216. qemu=qemu-system-${cpu_arch}
  217. qemu_machine=vexpress-a9
  218. suffix=hard_eabihf
  219. dtbdir=openadk/firmware/qemu-${march}_${lib}_${cpu_arch}_${suffix}
  220. qemu_args="${qemu_args} -cpu cortex-a9 -net user -net nic,model=lan9118 -dtb ${dtbdir}/vexpress-v2p-ca9.dtb"
  221. ;;
  222. armeb)
  223. allowed_libc="uclibc-ng musl glibc"
  224. runtime_test=""
  225. allowed_tests="toolchain"
  226. 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"
  227. 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"
  228. 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"
  229. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arm ADK_TARGET_ENDIAN=big ADK_TARGET_CPU=arm926ej-s"
  230. ;;
  231. arcv1)
  232. allowed_libc="uclibc-ng newlib"
  233. runtime_test="uclibc-ng"
  234. allowed_tests="toolchain boot libc ltp mksh native"
  235. 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"
  236. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arc ADK_TARGET_ENDIAN=little"
  237. emulator=nsim
  238. cpu_arch=arc
  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=arc
  249. piggyback=1
  250. ;;
  251. arcv1-be)
  252. allowed_libc="uclibc-ng"
  253. runtime_test="uclibc-ng"
  254. allowed_tests="toolchain boot libc ltp mksh native"
  255. 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"
  256. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arc ADK_TARGET_ENDIAN=big"
  257. emulator=nsim
  258. cpu_arch=arceb
  259. march=arcv1
  260. piggyback=1
  261. ;;
  262. arcv2-be)
  263. allowed_libc="uclibc-ng"
  264. runtime_test="uclibc-ng"
  265. allowed_tests="toolchain boot libc ltp mksh native"
  266. 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"
  267. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arc ADK_TARGET_ENDIAN=big"
  268. emulator=nsim
  269. cpu_arch=arceb
  270. march=arcv2
  271. piggyback=1
  272. ;;
  273. avr32)
  274. allowed_libc="uclibc-ng"
  275. runtime_test=""
  276. allowed_tests="toolchain"
  277. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=avr32 ADK_TARGET_SYSTEM=generic-avr32"
  278. ;;
  279. bfin)
  280. allowed_libc="uclibc-ng"
  281. runtime_test=""
  282. allowed_tests="toolchain"
  283. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=bfin ADK_TARGET_SYSTEM=generic-bfin"
  284. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=bfin"
  285. ;;
  286. c6x)
  287. allowed_libc="uclibc-ng"
  288. runtime_test=""
  289. allowed_tests="toolchain"
  290. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=c6x ADK_TARGET_SYSTEM=generic-c6x ADK_TARGET_ENDIAN=little"
  291. ;;
  292. crisv10)
  293. allowed_libc="uclibc-ng newlib"
  294. runtime_test=""
  295. allowed_tests="toolchain"
  296. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=cris ADK_TARGET_SYSTEM=generic-cris ADK_TARGET_CPU=crisv10"
  297. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=cris ADK_TARGET_CPU=crisv10"
  298. ;;
  299. crisv32)
  300. allowed_libc="uclibc-ng newlib"
  301. runtime_test="uclibc-ng"
  302. allowed_tests="toolchain boot libc ltp native"
  303. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=cris ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-cris"
  304. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=cris ADK_TARGET_CPU=crisv32"
  305. cpu_arch=crisv32
  306. march=cris
  307. qemu=qemu-system-${march}
  308. qemu_machine=axis-dev88
  309. piggyback=1
  310. ;;
  311. frv)
  312. allowed_libc="newlib"
  313. runtime_test=""
  314. allowed_tests="toolchain"
  315. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=frv"
  316. ;;
  317. ia64)
  318. allowed_libc="uclibc-ng glibc"
  319. runtime_test=""
  320. allowed_tests="toolchain"
  321. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=ia64 ADK_TARGET_SYSTEM=generic-ia64"
  322. default_glibc="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=ia64 ADK_TARGET_SYSTEM=generic-ia64"
  323. ;;
  324. h8300)
  325. allowed_libc="uclibc-ng newlib"
  326. runtime_test=""
  327. allowed_tests="toolchain"
  328. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=h8300 ADK_TARGET_SYSTEM=sim-h8300"
  329. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=h8300"
  330. ;;
  331. lm32)
  332. allowed_libc="uclibc-ng newlib"
  333. runtime_test=""
  334. allowed_tests="toolchain"
  335. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=lm32 ADK_TARGET_SYSTEM=qemu-lm32"
  336. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=lm32"
  337. ;;
  338. m68k)
  339. allowed_libc="uclibc-ng newlib"
  340. runtime_test=""
  341. allowed_tests="toolchain"
  342. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=m68k ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-m68k-q800"
  343. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=m68k ADK_TARGET_CPU=68040"
  344. ;;
  345. m68k-nommu)
  346. allowed_libc="uclibc-ng"
  347. runtime_test=""
  348. allowed_tests="toolchain"
  349. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=m68k ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-m68k-mcf5208"
  350. ;;
  351. metag)
  352. allowed_libc="uclibc-ng"
  353. runtime_test="uclibc-ng"
  354. allowed_tests="toolchain boot"
  355. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=metag ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-metag"
  356. cpu_arch=metag
  357. qemu=qemu-system-meta
  358. qemu_args="-nographic -display none -device da,exit_threads=1 -chardev stdio,id=chan1 -chardev pty,id=chan2"
  359. qemu_machine=01sp
  360. piggyback=1
  361. ;;
  362. microblazeel)
  363. allowed_libc="uclibc-ng musl glibc newlib"
  364. runtime_test="musl glibc"
  365. allowed_tests="toolchain boot libc mksh ltp native"
  366. 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"
  367. 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"
  368. 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"
  369. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=microblaze ADK_TARGET_ENDIAN=little"
  370. cpu_arch=microblazeel
  371. march=microblaze-s3adsp1800
  372. qemu_machine=petalogix-s3adsp1800
  373. ;;
  374. microblazebe)
  375. allowed_libc="uclibc-ng musl glibc newlib"
  376. runtime_test="musl glibc"
  377. allowed_tests="toolchain boot libc mksh ltp native"
  378. 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"
  379. 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"
  380. 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"
  381. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=microblaze ADK_TARGET_ENDIAN=big"
  382. cpu_arch=microblaze
  383. march=microblaze-s3adsp1800
  384. qemu=qemu-system-${cpu_arch}
  385. qemu_machine=petalogix-s3adsp1800
  386. ;;
  387. mips)
  388. allowed_libc="uclibc-ng musl glibc newlib"
  389. runtime_test="uclibc-ng musl glibc"
  390. allowed_tests="toolchain boot libc mksh ltp native"
  391. 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"
  392. 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"
  393. 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"
  394. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=mips ADK_TARGET_ENDIAN=big"
  395. cpu_arch=mips
  396. qemu=qemu-system-${cpu_arch}
  397. qemu_machine=malta
  398. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  399. suffix=hard
  400. ;;
  401. mipssf)
  402. allowed_libc="uclibc-ng musl glibc"
  403. runtime_test="uclibc-ng musl glibc"
  404. allowed_tests="toolchain boot libc mksh ltp native"
  405. 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"
  406. 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"
  407. 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"
  408. cpu_arch=mips
  409. march=mips
  410. qemu=qemu-system-${cpu_arch}
  411. qemu_machine=malta
  412. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  413. suffix=soft
  414. ;;
  415. mipsel)
  416. allowed_libc="uclibc-ng musl glibc newlib"
  417. runtime_test="uclibc-ng musl glibc"
  418. allowed_tests="toolchain boot libc mksh ltp native"
  419. 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"
  420. 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"
  421. 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"
  422. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=mips ADK_TARGET_ENDIAN=little"
  423. cpu_arch=mipsel
  424. march=mips
  425. qemu=qemu-system-${cpu_arch}
  426. qemu_machine=malta
  427. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  428. suffix=hard
  429. ;;
  430. mipselsf)
  431. allowed_libc="uclibc-ng musl glibc"
  432. runtime_test="uclibc-ng musl glibc"
  433. allowed_tests="toolchain boot libc mksh ltp native"
  434. 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"
  435. 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"
  436. 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"
  437. cpu_arch=mipsel
  438. march=mips
  439. qemu=qemu-system-${cpu_arch}
  440. qemu_machine=malta
  441. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  442. suffix=soft
  443. ;;
  444. mips64)
  445. allowed_libc="uclibc-ng glibc"
  446. runtime_test="uclibc-ng glibc"
  447. allowed_tests="toolchain boot libc mksh ltp native"
  448. 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"
  449. 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"
  450. cpu_arch=mips64
  451. qemu_machine=malta
  452. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  453. suffix=o32
  454. ;;
  455. mips64n32)
  456. allowed_libc="uclibc-ng glibc"
  457. runtime_test="uclibc-ng glibc"
  458. allowed_tests="toolchain boot libc mksh ltp native"
  459. 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"
  460. 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"
  461. cpu_arch=mips64
  462. march=mips64
  463. qemu=qemu-system-${cpu_arch}
  464. qemu_machine=malta
  465. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  466. suffix=n32
  467. ;;
  468. mips64n64)
  469. allowed_libc="uclibc-ng glibc"
  470. runtime_test="uclibc-ng glibc"
  471. allowed_tests="toolchain boot libc mksh ltp native"
  472. 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"
  473. 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"
  474. cpu_arch=mips64
  475. march=mips64
  476. qemu=qemu-system-${cpu_arch}
  477. qemu_machine=malta
  478. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  479. suffix=n64
  480. ;;
  481. mips64el)
  482. allowed_libc="uclibc-ng glibc"
  483. runtime_test="uclibc-ng glibc"
  484. allowed_tests="toolchain boot libc mksh ltp native"
  485. 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"
  486. 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"
  487. cpu_arch=mips64el
  488. march=mips64
  489. qemu_machine=malta
  490. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  491. suffix=o32
  492. ;;
  493. mips64eln32)
  494. allowed_libc="uclibc-ng glibc"
  495. runtime_test="uclibc-ng glibc"
  496. allowed_tests="toolchain boot libc mksh ltp native"
  497. 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"
  498. 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"
  499. cpu_arch=mips64el
  500. march=mips64
  501. qemu=qemu-system-${cpu_arch}
  502. qemu_machine=malta
  503. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  504. suffix=n32
  505. ;;
  506. mips64eln64)
  507. allowed_libc="uclibc-ng glibc"
  508. runtime_test="uclibc-ng glibc"
  509. allowed_tests="toolchain boot libc mksh ltp native"
  510. 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"
  511. 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"
  512. cpu_arch=mips64el
  513. march=mips64
  514. qemu=qemu-system-${cpu_arch}
  515. qemu_machine=malta
  516. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  517. suffix=n64
  518. ;;
  519. nios2)
  520. allowed_libc="glibc"
  521. runtime_test=""
  522. allowed_tests="toolchain"
  523. default_glibc="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=nios2 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=generic-nios2"
  524. ;;
  525. or1k)
  526. allowed_libc="uclibc-ng musl newlib"
  527. runtime_test=""
  528. allowed_tests="toolchain"
  529. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=or1k ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-or1k"
  530. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=or1k ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-or1k"
  531. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=or1k"
  532. ;;
  533. ppc)
  534. allowed_libc="uclibc-ng musl glibc newlib"
  535. runtime_test="uclibc-ng musl glibc"
  536. allowed_tests="toolchain boot libc mksh ltp native"
  537. 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"
  538. 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"
  539. 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"
  540. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=ppc"
  541. cpu_arch=ppc
  542. march=ppc-macppc
  543. qemu=qemu-system-${cpu_arch}
  544. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  545. qemu_machine=mac99
  546. suffix=hard
  547. noappend=1
  548. ;;
  549. ppcsf)
  550. allowed_libc="uclibc-ng musl glibc newlib"
  551. runtime_test="uclibc-ng musl glibc"
  552. allowed_tests="toolchain boot libc mksh ltp native"
  553. 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"
  554. 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"
  555. 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"
  556. cpu_arch=ppc
  557. march=ppc-bamboo
  558. qemu=qemu-system-${cpu_arch}
  559. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  560. qemu_machine=bamboo
  561. suffix=soft
  562. ;;
  563. ppc64)
  564. allowed_libc="glibc"
  565. runtime_test="glibc"
  566. allowed_tests="toolchain boot libc mksh ltp native"
  567. 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"
  568. cpu_arch=ppc64
  569. qemu=qemu-system-${cpu_arch}
  570. qemu_machine=pseries
  571. ;;
  572. ppc64le)
  573. allowed_libc="glibc"
  574. runtime_test="glibc"
  575. allowed_tests="toolchain"
  576. 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"
  577. cpu_arch=ppc64
  578. qemu=qemu-system-${cpu_arch}
  579. qemu_machine=pseries
  580. ;;
  581. s390)
  582. allowed_libc="glibc"
  583. runtime_test="glibc"
  584. allowed_tests="toolchain boot libc mksh ltp native"
  585. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=s390 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-s390"
  586. cpu_arch=s390x
  587. qemu=qemu-system-${cpu_arch}
  588. qemu_machine=s390-ccw-virtio-2.4
  589. ;;
  590. sh2)
  591. allowed_libc="uclibc-ng"
  592. runtime_test=""
  593. allowed_tests="toolchain"
  594. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=sh ADK_TARGET_SYSTEM=generic-sh ADK_TARGET_CPU=sh2"
  595. cpu_arch=sh2
  596. ;;
  597. sh3)
  598. allowed_libc="uclibc-ng"
  599. runtime_test=""
  600. allowed_tests="toolchain"
  601. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=sh ADK_TARGET_SYSTEM=generic-sh ADK_TARGET_CPU=sh3"
  602. cpu_arch=sh3
  603. ;;
  604. sh4)
  605. allowed_libc="uclibc-ng musl glibc"
  606. runtime_test="uclibc-ng musl glibc"
  607. allowed_tests="toolchain boot libc mksh ltp native"
  608. 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"
  609. 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"
  610. 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"
  611. cpu_arch=sh4
  612. march=sh
  613. qemu=qemu-system-${cpu_arch}
  614. qemu_machine=r2d
  615. qemu_args="${qemu_args} -monitor null -serial null -serial stdio"
  616. ;;
  617. sh4eb)
  618. allowed_libc="uclibc-ng musl glibc"
  619. runtime_test=""
  620. allowed_tests="toolchain"
  621. cpu_arch=sh4eb
  622. 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"
  623. 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"
  624. 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"
  625. march=sh
  626. qemu=qemu-system-${cpu_arch}
  627. qemu_machine=r2d
  628. qemu_args="${qemu_args} -monitor null -serial null -serial stdio"
  629. ;;
  630. sparc)
  631. allowed_libc="uclibc-ng glibc newlib"
  632. runtime_test="uclibc-ng glibc"
  633. allowed_tests="toolchain boot libc mksh ltp native"
  634. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sparc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sparc"
  635. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sparc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sparc"
  636. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=sparc"
  637. cpu_arch=sparc
  638. qemu_machine=SS-10
  639. ;;
  640. sparc-leon3)
  641. allowed_libc="uclibc-ng"
  642. runtime_test=""
  643. allowed_tests="toolchain"
  644. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_ARCH=sparc ADK_TARGET_CPU=leon3 ADK_TARGET_SYSTEM=generic-sparc"
  645. ;;
  646. sparc64)
  647. allowed_libc="glibc"
  648. runtime_test="glibc"
  649. allowed_tests="toolchain boot libc mksh ltp native"
  650. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sparc64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sparc64"
  651. cpu_arch=sparc64
  652. qemu_machine=sun4u
  653. qemu_args="${qemu_args} -net nic,model=e1000 -net user"
  654. ;;
  655. tilegx)
  656. allowed_libc="glibc"
  657. runtime_test=""
  658. allowed_tests="toolchain"
  659. default_glibc="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=tile ADK_TARGET_CPU=tilegx ADK_TARGET_SYSTEM=generic-tile"
  660. ;;
  661. x86)
  662. allowed_libc="uclibc-ng musl glibc newlib"
  663. runtime_test="uclibc-ng musl glibc"
  664. allowed_tests="toolchain boot libc mksh ltp native"
  665. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86"
  666. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86"
  667. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86"
  668. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=x86"
  669. cpu_arch=i686
  670. qemu=qemu-system-i386
  671. qemu_machine=pc
  672. qemu_args="${qemu_args}"
  673. ;;
  674. x86_64)
  675. allowed_libc="uclibc-ng musl glibc"
  676. runtime_test="uclibc-ng musl glibc"
  677. allowed_tests="toolchain boot libc mksh ltp native"
  678. 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"
  679. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86_64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86_64"
  680. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86_64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86_64"
  681. cpu_arch=x86_64
  682. qemu_machine=pc
  683. libdir=lib64
  684. ;;
  685. x86_64_x32)
  686. allowed_libc="musl glibc"
  687. runtime_test=""
  688. allowed_tests="toolchain"
  689. cpu_arch=x86_64
  690. qemu=qemu-system-${cpu_arch}
  691. qemu_machine=pc
  692. libdir=libx32
  693. ;;
  694. xtensa)
  695. allowed_libc="uclibc-ng"
  696. runtime_test="uclibc-ng"
  697. allowed_tests="toolchain boot libc mksh ltp native"
  698. 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"
  699. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=xtensa"
  700. cpu_arch=xtensa
  701. qemu=qemu-system-${cpu_arch}
  702. qemu_machine=ml605
  703. qemu_args="${qemu_args} -cpu dc233c"
  704. ;;
  705. xtensa-nommu)
  706. allowed_libc="uclibc-ng"
  707. runtime_test="uclibc-ng"
  708. allowed_tests="toolchain"
  709. 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"
  710. cpu_arch=xtensa
  711. qemu=qemu-system-${cpu_arch}
  712. qemu_machine=ml605
  713. qemu_args="${qemu_args} -cpu de212"
  714. ;;
  715. *)
  716. echo "architecture ${arch} not supported"; exit 1;;
  717. esac
  718. }
  719. # creating test script to be run on boot
  720. create_run_sh() {
  721. test=$1
  722. file=$2
  723. type=$3
  724. if [ "$type" = "netcat" ]; then
  725. tee="| tee -a /REPORT"
  726. fi
  727. cat > $file << EOF
  728. #!/bin/sh
  729. uname -a
  730. if [ \$ntpserver ]; then
  731. rdate \$ntpserver
  732. else
  733. rdate time.fu-berlin.de
  734. fi
  735. EOF
  736. if [ "$type" = "netcat" ]; then
  737. cat >> $file << EOF
  738. dmesg >> /REPORT
  739. EOF
  740. fi
  741. # boot test
  742. if [ $test = "boot" ]; then
  743. cat >> $file << EOF
  744. file /bin/busybox $tee
  745. size /bin/busybox $tee
  746. for i in \$(ls /lib/*.so|grep -v libgcc);do
  747. size \$i $tee
  748. done
  749. EOF
  750. fi
  751. # ltp test
  752. if [ $test = "ltp" ]; then
  753. cat >> $file << EOF
  754. /opt/ltp/runltp $tee
  755. EOF
  756. fi
  757. # mksh test
  758. if [ $test = "mksh" ]; then
  759. cat >> $file << EOF
  760. tty=\$(cat /proc/consoles |cut -f 1 -d " ")
  761. mksh -T !/dev/\$tty -c '/opt/mksh/test.sh' $tee
  762. EOF
  763. fi
  764. # libc test
  765. if [ $test = "libc" ]; then
  766. case $lib in
  767. uclibc-ng)
  768. cat >> $file << EOF
  769. cd /opt/uclibc-ng/test
  770. sh ./uclibcng-testrunner.sh $tee
  771. EOF
  772. ;;
  773. musl|glibc)
  774. cat >> $file << EOF
  775. cd /opt/libc-test
  776. CC=: make run $tee
  777. EOF
  778. ;;
  779. esac
  780. fi
  781. if [ "$type" = "netcat" ]; then
  782. cat >> $file << EOF
  783. echo quit|nc $buildserver 9999
  784. EOF
  785. fi
  786. if [ "$type" = "quit" ]; then
  787. cat >> $file << EOF
  788. exit
  789. EOF
  790. fi
  791. chmod u+x $file
  792. }
  793. runtest() {
  794. lib=$1
  795. arch=$2
  796. test=$3
  797. if [ $ntp ]; then
  798. qemu_append="-append ntpserver=$ntp"
  799. fi
  800. if [ $shell -eq 1 ]; then
  801. qemu_append="-append shell"
  802. fi
  803. qemu=qemu-system-${arch}
  804. march=${arch}
  805. get_arch_info $arch $lib
  806. case $emulator in
  807. qemu)
  808. echo "Using QEMU as emulator"
  809. if ! which $qemu >/dev/null; then
  810. echo "Checking if $qemu is installed... failed"
  811. exit 1
  812. fi
  813. qemuver=$(${qemu} -version|awk '{ print $4 }')
  814. if [ "$arch" != "metag" ]; then
  815. if [ $(echo $qemuver |sed -e "s#\.##g" -e "s#,##") -lt 240 ]; then
  816. echo "Your qemu version is too old. Please update to 2.4 or greater"
  817. exit 1
  818. fi
  819. fi
  820. ;;
  821. nsim)
  822. echo "Using Synopsys NSIM as simulator"
  823. if ! which nsimdrv >/dev/null; then
  824. echo "Checking if $emulator is installed... failed"
  825. exit 1
  826. fi
  827. ;;
  828. *)
  829. echo "emulator/simulator not supported"
  830. exit 1
  831. ;;
  832. esac
  833. echo "Starting test for $lib and $arch"
  834. # check if initramfs or piggyback is used
  835. if [ $piggyback -eq 1 ]; then
  836. echo "Using extra directory for test image creation"
  837. root=openadk/extra
  838. rm -rf openadk/extra 2>/dev/null
  839. mkdir openadk/extra 2>/dev/null
  840. if [ ! -z $suffix ]; then
  841. kernel=openadk/firmware/${emulator}-${march}_${lib}_${cpu_arch}_${suffix}/${emulator}-${march}-initramfspiggyback-kernel
  842. else
  843. kernel=openadk/firmware/${emulator}-${march}_${lib}_${cpu_arch}/${emulator}-${march}-initramfspiggyback-kernel
  844. fi
  845. else
  846. echo "Generating root filesystem for test run"
  847. root=$(mktemp -d /tmp/XXXX)
  848. if [ ! -z $suffix ]; then
  849. archive=openadk/firmware/${emulator}-${march}_${lib}_${cpu_arch}_${suffix}/qemu-${march}-${lib}-initramfsarchive.tar.xz
  850. kernel=openadk/firmware/${emulator}-${march}_${lib}_${cpu_arch}_${suffix}/qemu-${march}-initramfsarchive-kernel
  851. else
  852. archive=openadk/firmware/${emulator}-${march}_${lib}_${cpu_arch}/${emulator}-${march}-${lib}-initramfsarchive.tar.xz
  853. kernel=openadk/firmware/${emulator}-${march}_${lib}_${cpu_arch}/${emulator}-${march}-initramfsarchive-kernel
  854. fi
  855. if [ ! -f $archive ]; then
  856. echo "No root filesystem available for architecture ${arch} tried $archive"
  857. exit 1
  858. fi
  859. tar -xf $archive -C $root
  860. fi
  861. create_run_sh $test ${root}/run.sh quit
  862. if [ $piggyback -eq 1 ]; then
  863. (cd openadk && make v)
  864. else
  865. echo "Creating initramfs filesystem"
  866. (cd $root; find . | cpio -o -C512 -Hnewc |xz --check=crc32 --stdout > ${topdir}/initramfs.${arch})
  867. rm -rf $root
  868. qemu_args="$qemu_args -initrd initramfs.${arch}"
  869. fi
  870. # qemu-ppc overwrites existing commandline
  871. if [ $noappend -eq 0 ]; then
  872. qemu_args="$qemu_args ${qemu_append}"
  873. fi
  874. echo "Now running the test ${test} in ${emulator} for architecture ${arch} and ${lib}"
  875. case $emulator in
  876. qemu)
  877. echo "${qemu} -M ${qemu_machine} ${qemu_args} -kernel ${kernel} -qmp tcp:127.0.0.1:4444,server,nowait -no-reboot"
  878. ${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}
  879. ;;
  880. nsim)
  881. echo "./openadk/scripts/nsim.sh ${arch} ${kernel}"
  882. ./openadk/scripts/nsim.sh ${arch} ${kernel} | tee REPORT.${arch}.${emulator}.${test}.${libver}
  883. ;;
  884. esac
  885. if [ $? -eq 0 ]; then
  886. echo "Test ${test} for ${arch} finished. See REPORT.${arch}.${emulator}.${test}.${libver}"
  887. else
  888. echo "Test ${test} failed for ${arch} with ${lib} ${libver}."
  889. fi
  890. }
  891. build() {
  892. lib=$1
  893. arch=$2
  894. test=$3
  895. system=$4
  896. rootfs=$5
  897. DEFAULT=
  898. cd openadk
  899. if [[ $targetmode ]]; then
  900. DEFAULT="ADK_APPLIANCE=test ADK_TARGET_ARCH=$arch ADK_TARGET_SYSTEM=$system ADK_TARGET_FS=$rootfs"
  901. else
  902. get_arch_info $arch $lib
  903. fi
  904. if [ $debug -eq 1 ]; then
  905. DEFAULT="$DEFAULT ADK_VERBOSE=1"
  906. fi
  907. # build defaults for different tests
  908. if [ $test = "boot" ]; then
  909. DEFAULT="$DEFAULT ADK_TEST_BASE=y"
  910. fi
  911. if [ $test = "ltp" ]; then
  912. DEFAULT="$DEFAULT ADK_TEST_LTP=y"
  913. fi
  914. if [ $test = "mksh" ]; then
  915. DEFAULT="$DEFAULT ADK_TEST_MKSH=y"
  916. REBUILD=.rebuild.mksh
  917. fi
  918. if [ $test = "libc" ]; then
  919. case $lib in
  920. uclibc-ng)
  921. DEFAULT="$DEFAULT ADK_TEST_UCLIBC_NG_TESTSUITE=y"
  922. REBUILD=.rebuild.uclibc-ng
  923. ;;
  924. glibc)
  925. DEFAULT="$DEFAULT ADK_TEST_GLIBC_TESTSUITE=y"
  926. ;;
  927. musl)
  928. DEFAULT="$DEFAULT ADK_TEST_MUSL_TESTSUITE=y"
  929. ;;
  930. esac
  931. fi
  932. if [ $test = "native" ]; then
  933. case $lib in
  934. uclibc-ng)
  935. DEFAULT="$DEFAULT ADK_TEST_UCLIBC_NG_NATIVE=y"
  936. ;;
  937. musl)
  938. DEFAULT="$DEFAULT ADK_TEST_MUSL_NATIVE=y"
  939. ;;
  940. glibc)
  941. DEFAULT="$DEFAULT ADK_TEST_GLIBC_NATIVE=y"
  942. ;;
  943. esac
  944. fi
  945. # build defaults for different C library
  946. DEFAULT="$DEFAULT ADK_TARGET_LIBC=$lib"
  947. case $lib in
  948. uclibc-ng)
  949. DEFAULT="$DEFAULT $default_uclibc_ng"
  950. ;;
  951. musl)
  952. DEFAULT="$DEFAULT $default_musl"
  953. ;;
  954. glibc)
  955. DEFAULT="$DEFAULT $default_glibc"
  956. ;;
  957. newlib)
  958. DEFAULT="$DEFAULT $default_newlib"
  959. ;;
  960. esac
  961. # use special C library version
  962. if [[ $libcversion ]]; then
  963. DEFAULT="$DEFAULT ADK_TARGET_LIBC_VERSION=$libcversion"
  964. fi
  965. rm .config* .defconfig 2>/dev/null
  966. echo "Using following defaults: $DEFAULT"
  967. make $DEFAULT defconfig
  968. for pkg in $packages; do
  969. p=$(echo $pkg|tr '[:lower:]' '[:upper:]');printf "ADK_COMPILE_$p=y\nADK_PACKAGE_$p=y" >> .config
  970. yes|make oldconfig
  971. done
  972. if [ $clean -eq 1 ]; then
  973. echo "cleaning openadk build directory"
  974. make cleansystem
  975. fi
  976. if [ ! -z $REBUILD ]; then
  977. touch $REBUILD
  978. fi
  979. make $DEFAULT all
  980. if [ $? -ne 0 ];then
  981. echo "build failed"
  982. exit 1
  983. fi
  984. cd ..
  985. }
  986. for lib in ${libc}; do
  987. case $lib in
  988. uclibc-ng)
  989. archlist=$arch_list_uclibcng
  990. if [[ $libcversion ]]; then
  991. version=$libcversion
  992. else
  993. version=1.0.12
  994. fi
  995. libver=uClibc-ng-${version}
  996. libdir=uClibc-ng
  997. ;;
  998. glibc)
  999. archlist=$arch_list_glibc
  1000. if [[ $libcversion ]]; then
  1001. version=$libcversion
  1002. else
  1003. version=2.23
  1004. fi
  1005. libver=glibc-${version}
  1006. libdir=glibc
  1007. ;;
  1008. musl)
  1009. archlist=$arch_list_musl
  1010. if [[ $libcversion ]]; then
  1011. version=$libcversion
  1012. else
  1013. version=1.1.14
  1014. fi
  1015. libver=musl-${version}
  1016. libdir=musl
  1017. ;;
  1018. newlib)
  1019. archlist=$arch_list_newlib
  1020. if [[ $libcversion ]]; then
  1021. version=$libcversion
  1022. else
  1023. version=2.2.0
  1024. fi
  1025. libver=newlib-${version}
  1026. libdir=newlib
  1027. ;;
  1028. *)
  1029. echo "$lib not supported"
  1030. exit 1
  1031. ;;
  1032. esac
  1033. if [ ! -z $archs ]; then
  1034. archlist="$archs"
  1035. fi
  1036. # libc source used?
  1037. if [ ! -z $libcsource ]; then
  1038. if [ ! -d $libcsource ]; then
  1039. echo "Not a directory."
  1040. exit 1
  1041. fi
  1042. usrc=$(mktemp -d /tmp/XXXX)
  1043. echo "Creating C library source tarball openadk/dl/${libver}.tar.xz"
  1044. cp -a $libcsource $usrc/$libver
  1045. mkdir -p $topdir/openadk/dl 2>/dev/null
  1046. rm $topdir/openadk/dl/${libver}.tar.xz 2>/dev/null
  1047. (cd $usrc && tar cJf $topdir/openadk/dl/${libver}.tar.xz ${libver} )
  1048. touch $topdir/openadk/dl/${libver}.tar.xz.nohash
  1049. # we need to clean system, when external source is used
  1050. if [ $noclean -eq 0 ]; then
  1051. clean=1
  1052. fi
  1053. fi
  1054. if [ ! -z $binutilssource ]; then
  1055. if [ ! -d $binutilssource ]; then
  1056. echo "Not a directory."
  1057. exit 1
  1058. fi
  1059. usrc=$(mktemp -d /tmp/XXXX)
  1060. echo "Creating binutils source tarball openadk/dl/binutils-git.tar.xz"
  1061. cp -a $binutilssource $usrc/binutils-git
  1062. mkdir -p $topdir/openadk/dl 2>/dev/null
  1063. rm $topdir/openadk/dl/binutils-git.tar.xz 2>/dev/null
  1064. (cd $usrc && tar cJf $topdir/openadk/dl/binutils-git.tar.xz binutils-git)
  1065. touch $topdir/openadk/dl/binutils-git.tar.xz.nohash
  1066. # we need to clean system, when external source is used
  1067. if [ $noclean -eq 0 ]; then
  1068. clean=1
  1069. fi
  1070. fi
  1071. # start with a clean dir
  1072. if [ $cleandir -eq 1 ]; then
  1073. echo "completely cleaning openadk build directory"
  1074. (cd openadk && make cleandir)
  1075. fi
  1076. if [[ $targetmode ]]; then
  1077. create_run_sh $test run.sh netcat
  1078. while read -u3 line; do
  1079. target_host=$(echo $line|cut -f 1 -d ,)
  1080. target_ip=$(echo $line|cut -f 2 -d ,)
  1081. target_arch=$(echo $line|cut -f 3 -d ,)
  1082. target_system=$(echo $line|cut -f 4 -d ,)
  1083. target_suffix=$(echo $line|cut -f 5 -d ,)
  1084. target_rootfs=$(echo $line|cut -f 6 -d ,)
  1085. target_powerid=$(echo $line|cut -f 7 -d ,)
  1086. echo "Testing target system $target_system ($target_arch) with $target_rootfs on $target_host"
  1087. build $lib $target_arch $test $target_system $target_rootfs
  1088. kernel=openadk/firmware/${target_system}_${lib}_${target_suffix}/${target_system}-${target_rootfs}-kernel
  1089. tarball=openadk/firmware/${target_system}_${lib}_${target_suffix}/${target_system}-${lib}-${target_rootfs}.tar.xz
  1090. scp $kernel root@${bootserver}:/tftpboot/${target_host}
  1091. ssh -n root@${bootserver} "cd /tftpboot; ln -sf ${target_host} vmlinux"
  1092. ssh -n root@${bootserver} "mkdir /nfsroot/${target_host} 2>/dev/null"
  1093. xzcat $tarball | ssh root@${bootserver} "tar -xf - -C /nfsroot/${target_host}"
  1094. scp run.sh root@${bootserver}:/nfsroot/${target_host}
  1095. echo "Powering on target system"
  1096. ssh -n root@${bootserver} "sispmctl -o $target_powerid"
  1097. echo "Waiting for target system to finish"
  1098. nc -l -p 9999
  1099. echo "Test finished. Powering off target system"
  1100. ssh -n root@${bootserver} "sispmctl -f $target_powerid"
  1101. scp root@${bootserver}:/nfsroot/${target_host}/REPORT REPORT.${target_arch}.${target_system}.${test}.${libver}
  1102. ssh -n root@${bootserver} "rm /nfsroot/${target_host}/REPORT"
  1103. done 3< $targets
  1104. else
  1105. for arch in $archlist; do
  1106. get_arch_info $arch $lib
  1107. if [ $cont -eq 1 ]; then
  1108. if [ -f "REPORT.${arch}.${emulator}.${test}.${libver}" ]; then
  1109. echo "Skipping already run test $test for $arch and $lib"
  1110. continue
  1111. fi
  1112. fi
  1113. if [ "$arch" = "$skiparchs" ]; then
  1114. echo "Skipping $skiparchs"
  1115. continue
  1116. fi
  1117. if [[ "$allowed_tests" = *${test}* ]]; then
  1118. if [[ "$allowed_libc" = *${lib}* ]]; then
  1119. echo "Compiling for $lib and $arch testing $test"
  1120. build $lib $arch $test
  1121. if [ "$test" != "toolchain" ]; then
  1122. if [[ "$runtime_test" = *${lib}* ]]; then
  1123. runtest $lib $arch $test
  1124. fi
  1125. else
  1126. # fake stamp for continue
  1127. touch REPORT.${arch}.${emulator}.${test}.${libver}
  1128. fi
  1129. else
  1130. echo "$lib not available for $arch"
  1131. fi
  1132. else
  1133. echo "$test not available for $arch and $lib"
  1134. fi
  1135. done
  1136. fi
  1137. done
  1138. echo "All tests finished."
  1139. exit 0