embedded-test.sh 50 KB

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