embedded-test.sh 49 KB

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