embedded-test.sh 60 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507
  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 arcv1 arcv2 arcv1-be arcv2-be arm-nommu \
  26. armv5 armv7 armv7-thumb2 armeb avr32 bf512-flat bf512-fdpic c6x \
  27. crisv10 crisv32 frv h8300 lm32 m68k m68k-nommu metag microblazeel \
  28. microblazebe mips mipssf mipsel mipselsf mips64 mips64n32 \
  29. mips64n64 mips64el mips64eln32 mips64eln64 nds32le or1k ppc ppcsf \
  30. sh2 sh3 sh4 sh4eb sparc sparc-leon3 x86 x86_64 xtensa xtensabe xtensa-nommu"
  31. # musl
  32. arch_list_musl="aarch64 aarch64be armv5 armv7 armeb microblazeel microblazebe mips mipssf mipsel mipselsf mips64n32 mips64n64 mips64eln32 mips64eln64 or1k ppc ppcsf ppc64 ppc64le sh4 sh4eb x86 x86_64 x86_64_x32"
  33. # glibc
  34. arch_list_glibc="aarch64 aarch64be alpha armv5 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 x86_64_x32"
  35. # newlib
  36. arch_list_newlib="aarch64 aarch64be arcv1 armv5 armeb bfin crisv10 crisv32 epiphany frv h8300 lm32 m32r m68k microblazeel microblazebe mips mipsel moxie nds32le nds32be or1k ppc sparc v850 x86"
  37. topdir=$(pwd)
  38. giturl=http://git.openadk.org/openadk.git
  39. valid_libc="uclibc-ng musl glibc newlib"
  40. valid_tests="toolchain boot libc ltp mksh native"
  41. bootserver=10.0.0.1
  42. buildserver=10.0.0.2
  43. tools='make git wget xz cpio tar awk sed'
  44. f=0
  45. for tool in $tools; do
  46. if ! which $tool >/dev/null; then
  47. echo "Checking if $tool is installed... failed"
  48. f=1
  49. fi
  50. done
  51. if [ $f -eq 1 ]; then
  52. exit 1
  53. fi
  54. help() {
  55. cat >&2 <<EOF
  56. Syntax: $0 [ --libc=<libc> --arch=<arch> --test=<test> ]
  57. Explanation:
  58. --libc=<libc> C library to use (${valid_libc})
  59. --arch=<arch> architecture to check (otherwise all supported)
  60. --skiparch=<arch> architectures to skip when all choosen
  61. --targets=<targets.txt> a list of remote targets to test via nfsroot or chroot
  62. --test=<test> run test (${valid_tests}), default toolchain
  63. --libc-source=<dir> use directory with source for C library
  64. --gcc-source=<dir> use directory with source for gcc
  65. --binutils-source=<dir> use directory with source for binutils
  66. --gdb-source=<dir> use directory with source for gdb
  67. --libc-version=<version> use version of C library
  68. --gcc-version=<version> use version of gcc
  69. --binutils-version=<version> use version of binutils
  70. --gdb-version=<version> use version of gdb
  71. --kernel-version=<version> use version of Linux kernel
  72. --ntp=<ntpserver> set NTP server for test run
  73. --packages=<packagelist> add extra packages to the build
  74. --update update OpenADK source via git pull, before building
  75. --create create toolchain archive for external usage
  76. --continue continue on a broken build
  77. --cleandir clean OpenADK build directories before build
  78. --clean clean OpenADK build directory for single arch
  79. --no-clean do not clean OpenADK build directory for single arch
  80. --static use static compilation
  81. --ssp use smack stashing protection
  82. --debug make debug build
  83. --nothreads disable threading support (only for uClibc-ng)
  84. --verbose enable verbose output from OpenADK
  85. --shell start a shell instead of test autorun
  86. --help this help text
  87. EOF
  88. exit 1
  89. }
  90. cont=0
  91. clean=0
  92. noclean=0
  93. cleandir=0
  94. shell=0
  95. update=0
  96. verbose=0
  97. create=0
  98. static=0
  99. ssp=0
  100. debug=0
  101. nothreads=0
  102. ntp=""
  103. libc=""
  104. test="toolchain"
  105. while [[ $1 != -- && $1 = -* ]]; do case $1 {
  106. (--cleandir) cleandir=1; shift ;;
  107. (--clean) clean=1; shift ;;
  108. (--no-clean) noclean=1; shift ;;
  109. (--verbose) verbose=1; shift ;;
  110. (--update) update=1; shift ;;
  111. (--create) create=1; shift ;;
  112. (--static) static=1; shift ;;
  113. (--ssp) ssp=1; shift ;;
  114. (--debug) debug=1; shift ;;
  115. (--nothreads) nothreads=1; shift ;;
  116. (--continue) cont=1; shift ;;
  117. (--shell) shell=1 shift ;;
  118. (--libc=*) libc=${1#*=}; shift ;;
  119. (--arch=*) archs=${1#*=}; shift ;;
  120. (--skiparch=*) skiparchs=${1#*=}; shift ;;
  121. (--targets=*) targets=${1#*=}; shift ;;
  122. (--test=*) test=${1#*=}; shift ;;
  123. (--libc-source=*) libcsource=${1#*=}; shift ;;
  124. (--gcc-source=*) gccsource=${1#*=}; shift ;;
  125. (--binutils-source=*) binutilssource=${1#*=}; shift ;;
  126. (--gdb-source=*) gdbsource=${1#*=}; shift ;;
  127. (--libc-version=*) libcversion=${1#*=}; shift ;;
  128. (--gcc-version=*) gccversion=${1#*=}; shift ;;
  129. (--binutils-version=*) binutilsversion=${1#*=}; shift ;;
  130. (--gdb-version=*) gdbversion=${1#*=}; shift ;;
  131. (--kernel-version=*) kernelversion=${1#*=}; shift ;;
  132. (--packages=*) packages=${1#*=}; shift ;;
  133. (--ntp=*) ntp=${1#*=}; shift ;;
  134. (--help) help; shift ;;
  135. (--*) echo "unknown option $1"; exit 1 ;;
  136. (-*) help ;;
  137. }; done
  138. if [ ! -z $targets ]; then
  139. targetmode=1
  140. fi
  141. if [ -z "$libc" ]; then
  142. if [[ $libcversion ]]; then
  143. echo "You can not use a specific C library version without setting the C library"
  144. exit 1
  145. else
  146. libc="uclibc-ng musl glibc newlib"
  147. fi
  148. fi
  149. if [ $static -eq 1 ]; then
  150. rsuffix=${rsuffix}.static
  151. fi
  152. if [ $ssp -eq 1 ]; then
  153. rsuffix=${rsuffix}.ssp
  154. fi
  155. if [ $debug -eq 1 ]; then
  156. rsuffix=${rsuffix}.debug
  157. fi
  158. if [ $nothreads -eq 1 ]; then
  159. rsuffix=${rsuffix}.nothreads
  160. fi
  161. if [ ! -d openadk ]; then
  162. git clone $giturl
  163. if [ $? -ne 0 ]; then
  164. echo "Cloning from $giturl failed."
  165. exit 1
  166. fi
  167. else
  168. if [ $update -eq 1 ]; then
  169. (cd openadk && git pull)
  170. if [ $? -ne 0 ]; then
  171. echo "Updating from $giturl failed."
  172. exit 1
  173. fi
  174. fi
  175. fi
  176. get_arch_info() {
  177. arch=$1
  178. lib=$2
  179. emulator=qemu
  180. gdbcmd=
  181. noappend=0
  182. piggyback=0
  183. endian=
  184. suffix=
  185. allowed_libc=
  186. runtime_test=
  187. qemu_args=-nographic
  188. case ${arch} in
  189. aarch64)
  190. allowed_libc="musl glibc newlib"
  191. runtime_test="musl glibc"
  192. allowed_tests="toolchain boot libc ltp mksh native"
  193. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=aarch64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-aarch64"
  194. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=aarch64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-aarch64"
  195. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=aarch64"
  196. cpu_arch=cortex_a53
  197. qemu_machine=virt
  198. qemu_args="${qemu_args} -cpu cortex-a53 -netdev user,id=eth0 -device virtio-net-device,netdev=eth0"
  199. suffix=${cpu_arch}
  200. ;;
  201. aarch64be)
  202. allowed_libc="musl glibc newlib"
  203. runtime_test=""
  204. allowed_tests="toolchain"
  205. default_musl="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=aarch64 ADK_TARGET_SYSTEM=generic-aarch64 ADK_TARGET_ENDIAN=big"
  206. default_glibc="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=aarch64 ADK_TARGET_SYSTEM=generic-aarch64 ADK_TARGET_ENDIAN=big"
  207. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=aarch64 ADK_TARGET_ENDIAN=big"
  208. cpu_arch=cortex_a53
  209. qemu_machine=virt
  210. qemu_args="${qemu_args} -cpu cortex-a53 -netdev user,id=eth0 -device virtio-net-device,netdev=eth0"
  211. suffix=${cpu_arch}
  212. ;;
  213. alpha)
  214. allowed_libc="uclibc-ng glibc"
  215. runtime_test="uclibc-ng glibc"
  216. allowed_tests="toolchain boot libc ltp mksh"
  217. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=alpha ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-alpha"
  218. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=alpha ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-alpha"
  219. march=alpha
  220. qemu=qemu-system-alpha
  221. qemu_machine=clipper
  222. qemu_args="${qemu_args} -monitor null"
  223. ;;
  224. armv5)
  225. allowed_libc="uclibc-ng musl glibc newlib"
  226. runtime_test="uclibc-ng musl glibc"
  227. allowed_tests="toolchain boot libc ltp mksh native"
  228. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-versatilepb"
  229. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-versatilepb"
  230. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-versatilepb"
  231. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arm ADK_TARGET_ENDIAN=little ADK_TARGET_CPU=arm926ej-s"
  232. cpu_arch=arm926ej_s
  233. march=arm-versatilepb
  234. qemu=qemu-system-arm
  235. qemu_machine=versatilepb
  236. suffix=${cpu_arch}_soft_eabi
  237. dtbdir=openadk/firmware/qemu-${march}_${lib}_${suffix}
  238. qemu_args="${qemu_args} -cpu arm926 -net user -net nic,model=smc91c111 -dtb ${dtbdir}/versatile-pb.dtb"
  239. ;;
  240. armv6)
  241. allowed_libc="uclibc-ng musl glibc newlib"
  242. runtime_test="uclibc-ng musl glibc"
  243. allowed_tests="toolchain boot libc ltp mksh native"
  244. 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"
  245. 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"
  246. 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"
  247. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arm ADK_TARGET_ENDIAN=little ADK_TARGET_CPU=arm1176jzf-s"
  248. cpu_arch=mpcore
  249. march=arm-realview-eb-mpcore
  250. qemu=qemu-system-arm
  251. qemu_machine=realview-eb-mpcore
  252. suffix=${cpu_arch}_hard_eabihf
  253. dtbdir=openadk/firmware/qemu-${march}_${lib}_${suffix}
  254. qemu_args="${qemu_args} -net user -net nic"
  255. ;;
  256. armv7)
  257. allowed_libc="uclibc-ng musl glibc"
  258. runtime_test="uclibc-ng musl glibc"
  259. allowed_tests="toolchain boot libc ltp mksh native"
  260. 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"
  261. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-vexpress-a9"
  262. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-vexpress-a9"
  263. cpu_arch=cortex_a9
  264. march=arm-vexpress-a9
  265. qemu=qemu-system-arm
  266. qemu_machine=vexpress-a9
  267. suffix=${cpu_arch}_hard_eabihf
  268. dtbdir=openadk/firmware/qemu-${march}_${lib}_${suffix}
  269. qemu_args="${qemu_args} -cpu cortex-a9 -net user -net nic,model=lan9118 -dtb ${dtbdir}/vexpress-v2p-ca9.dtb"
  270. ;;
  271. armv7-thumb2)
  272. allowed_libc="uclibc-ng"
  273. runtime_test="uclibc-ng"
  274. allowed_tests="toolchain boot libc ltp mksh native"
  275. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_INSTRUCTION_SET=thumb ADK_TARGET_FS=initramfsarchive ADK_TARGET_FLOAT=soft ADK_TARGET_SYSTEM=qemu-arm-vexpress-a9"
  276. cpu_arch=cortex_a9
  277. march=arm-vexpress-a9
  278. qemu=qemu-system-arm
  279. qemu_machine=vexpress-a9
  280. suffix=${cpu_arch}_soft_eabi
  281. dtbdir=openadk/firmware/qemu-${march}_${lib}_${suffix}
  282. qemu_args="${qemu_args} -cpu cortex-a9 -net user -net nic,model=lan9118 -dtb ${dtbdir}/vexpress-v2p-ca9.dtb"
  283. ;;
  284. armeb)
  285. allowed_libc="uclibc-ng musl glibc"
  286. runtime_test=""
  287. allowed_tests="toolchain"
  288. 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"
  289. 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"
  290. 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"
  291. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arm ADK_TARGET_ENDIAN=big ADK_TARGET_CPU=arm926ej-s"
  292. ;;
  293. arm-nommu)
  294. allowed_libc="uclibc-ng"
  295. runtime_test="uclibc-ng"
  296. allowed_tests="toolchain boot"
  297. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-arm-versatilepb-nommu ADK_TARGET_ENDIAN=little"
  298. march=arm-versatilepb-nommu
  299. qemu=qemu-system-arm
  300. qemu_machine=versatilepb
  301. suffix=soft_eabi
  302. qemu_args="${qemu_args} -cpu arm926 -net user -net nic,model=smc91c111"
  303. piggyback=1
  304. ;;
  305. arcv1)
  306. allowed_libc="uclibc-ng newlib"
  307. runtime_test="uclibc-ng"
  308. allowed_tests="toolchain boot libc ltp mksh native"
  309. 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"
  310. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arc ADK_TARGET_ENDIAN=little"
  311. emulator=nsim
  312. cpu_arch=arc700
  313. suffix=${cpu_arch}
  314. piggyback=1
  315. ;;
  316. arcv2)
  317. allowed_libc="uclibc-ng"
  318. runtime_test="uclibc-ng"
  319. allowed_tests="toolchain boot libc ltp mksh native"
  320. 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"
  321. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arc ADK_TARGET_ENDIAN=little"
  322. emulator=nsim
  323. cpu_arch=archs
  324. suffix=${cpu_arch}
  325. piggyback=1
  326. ;;
  327. arcv1-be)
  328. allowed_libc="uclibc-ng"
  329. runtime_test="uclibc-ng"
  330. allowed_tests="toolchain boot libc ltp mksh native"
  331. 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"
  332. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arc ADK_TARGET_ENDIAN=big"
  333. emulator=nsim
  334. endian=eb
  335. cpu_arch=arc700
  336. suffix=${cpu_arch}${endian}
  337. march=arcv1
  338. piggyback=1
  339. ;;
  340. arcv2-be)
  341. allowed_libc="uclibc-ng"
  342. runtime_test="uclibc-ng"
  343. allowed_tests="toolchain boot libc ltp mksh native"
  344. 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"
  345. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arc ADK_TARGET_ENDIAN=big"
  346. emulator=nsim
  347. endian=eb
  348. cpu_arch=archs
  349. march=arcv2
  350. suffix=${cpu_arch}${endian}
  351. piggyback=1
  352. ;;
  353. avr32)
  354. allowed_libc="uclibc-ng"
  355. runtime_test=""
  356. allowed_tests="toolchain"
  357. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=avr32 ADK_TARGET_SYSTEM=generic-avr32"
  358. ;;
  359. bf512-flat)
  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=bfin ADK_TARGET_SYSTEM=sim-bfin ADK_TARGET_BINFMT=flat"
  364. emulator=sim
  365. model=bf512
  366. march=bfin
  367. binfmt=flat
  368. gdbcmd="bfin-openadk-uclinux-uclibc-run --env operating --model bf512"
  369. piggyback=1
  370. suffix=bf512_flat
  371. ;;
  372. bf512-fdpic)
  373. allowed_libc="uclibc-ng"
  374. runtime_test="uclibc-ng"
  375. allowed_tests="toolchain boot"
  376. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=bfin ADK_TARGET_SYSTEM=sim-bfin ADK_TARGET_BINFMT=fdpic"
  377. emulator=sim
  378. model=bf512
  379. march=bfin
  380. binfmt=fdpic
  381. gdbcmd="bfin-openadk-linux-uclibc-run --env operating --model bf512"
  382. piggyback=1
  383. suffix=bf512_fdpic
  384. ;;
  385. bfin)
  386. allowed_libc="newlib"
  387. runtime_test=""
  388. allowed_tests="toolchain"
  389. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=bfin"
  390. ;;
  391. c6x)
  392. allowed_libc="uclibc-ng"
  393. runtime_test=""
  394. allowed_tests="toolchain"
  395. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=c6x ADK_TARGET_SYSTEM=generic-c6x ADK_TARGET_ENDIAN=little"
  396. ;;
  397. crisv10)
  398. allowed_libc="uclibc-ng newlib"
  399. runtime_test=""
  400. allowed_tests="toolchain"
  401. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=cris ADK_TARGET_SYSTEM=generic-cris ADK_TARGET_CPU=crisv10"
  402. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=cris ADK_TARGET_CPU=crisv10"
  403. ;;
  404. crisv32)
  405. allowed_libc="uclibc-ng newlib"
  406. runtime_test="uclibc-ng"
  407. allowed_tests="toolchain boot libc ltp"
  408. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=cris ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-cris"
  409. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=cris ADK_TARGET_CPU=crisv32"
  410. cpu_arch=crisv32
  411. march=cris
  412. qemu=qemu-system-${march}
  413. qemu_machine=axis-dev88
  414. piggyback=1
  415. suffix=${cpu_arch}
  416. ;;
  417. epiphany)
  418. allowed_libc="newlib"
  419. runtime_test=""
  420. allowed_tests="toolchain"
  421. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=epiphany"
  422. ;;
  423. frv)
  424. allowed_libc="uclibc-ng newlib"
  425. runtime_test=""
  426. allowed_tests="toolchain"
  427. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=frv ADK_TARGET_SYSTEM=generic-frv"
  428. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=frv"
  429. ;;
  430. ia64)
  431. allowed_libc="uclibc-ng glibc"
  432. runtime_test=""
  433. allowed_tests="toolchain"
  434. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=ia64 ADK_TARGET_SYSTEM=generic-ia64"
  435. default_glibc="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=ia64 ADK_TARGET_SYSTEM=generic-ia64"
  436. ;;
  437. h8300)
  438. allowed_libc="uclibc-ng newlib"
  439. runtime_test=""
  440. allowed_tests="toolchain"
  441. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=h8300 ADK_TARGET_SYSTEM=sim-h8300"
  442. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=h8300"
  443. ;;
  444. lm32)
  445. allowed_libc="uclibc-ng newlib"
  446. runtime_test=""
  447. allowed_tests="toolchain"
  448. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=lm32 ADK_TARGET_SYSTEM=qemu-lm32"
  449. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=lm32"
  450. ;;
  451. m32r)
  452. allowed_libc="newlib"
  453. runtime_test=""
  454. allowed_tests="toolchain"
  455. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=m32r"
  456. ;;
  457. m68k)
  458. allowed_libc="uclibc-ng newlib"
  459. runtime_test="uclibc-ng"
  460. allowed_tests="toolchain boot libc ltp native"
  461. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=m68k ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-m68k-q800"
  462. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=m68k ADK_TARGET_CPU=68040"
  463. cpu_arch=68040
  464. march=m68k-q800
  465. qemu=qemu-system-m68k-full
  466. qemu_args="-nographic"
  467. qemu_machine=q800
  468. suffix=${cpu_arch}
  469. ;;
  470. m68k-nommu)
  471. allowed_libc="uclibc-ng"
  472. runtime_test="uclibc-ng"
  473. allowed_tests="toolchain boot"
  474. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=m68k ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-m68k-mcf5208"
  475. cpu_arch=cf5208
  476. march=m68k-mcf5208
  477. qemu=qemu-system-m68k
  478. qemu_args="-nographic"
  479. qemu_machine=mcf5208evb
  480. suffix=${cpu_arch}
  481. piggyback=1
  482. ;;
  483. metag)
  484. allowed_libc="uclibc-ng"
  485. runtime_test="uclibc-ng"
  486. allowed_tests="toolchain boot libc"
  487. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=metag ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-metag"
  488. cpu_arch=metag
  489. qemu=qemu-system-meta
  490. qemu_args="-nographic -display none -device da,exit_threads=1 -chardev stdio,id=chan1 -chardev pty,id=chan2"
  491. qemu_machine=01sp
  492. piggyback=1
  493. ;;
  494. microblazeel)
  495. allowed_libc="uclibc-ng musl glibc newlib"
  496. runtime_test="uclibc-ng musl glibc"
  497. allowed_tests="toolchain boot libc mksh ltp native"
  498. 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"
  499. 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"
  500. 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"
  501. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=microblaze ADK_TARGET_ENDIAN=little"
  502. cpu_arch=microblaze
  503. endian=el
  504. march=microblaze-s3adsp1800
  505. qemu=qemu-system-microblazeel
  506. qemu_machine=petalogix-s3adsp1800
  507. suffix=${cpu_arch}${endian}
  508. ;;
  509. microblazebe)
  510. allowed_libc="uclibc-ng musl glibc newlib"
  511. runtime_test="uclibc-ng musl glibc"
  512. allowed_tests="toolchain boot libc mksh ltp native"
  513. 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"
  514. 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"
  515. 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"
  516. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=microblaze ADK_TARGET_ENDIAN=big"
  517. cpu_arch=microblaze
  518. march=microblaze-s3adsp1800
  519. qemu=qemu-system-microblaze
  520. qemu_machine=petalogix-s3adsp1800
  521. suffix=${cpu_arch}
  522. ;;
  523. mips)
  524. allowed_libc="uclibc-ng musl glibc newlib"
  525. runtime_test="uclibc-ng musl glibc"
  526. allowed_tests="toolchain boot libc mksh ltp native"
  527. 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"
  528. 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"
  529. 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"
  530. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=mips ADK_TARGET_ENDIAN=big"
  531. cpu_arch=mips32
  532. qemu=qemu-system-mips
  533. qemu_machine=malta
  534. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  535. suffix=${cpu_arch}_hard
  536. ;;
  537. mipssf)
  538. allowed_libc="uclibc-ng musl glibc"
  539. runtime_test="uclibc-ng musl glibc"
  540. allowed_tests="toolchain boot libc mksh ltp native"
  541. 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"
  542. 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"
  543. 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"
  544. cpu_arch=mips32
  545. march=mips
  546. qemu=qemu-system-mips
  547. qemu_machine=malta
  548. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  549. suffix=${cpu_arch}_soft
  550. ;;
  551. mipsel)
  552. allowed_libc="uclibc-ng musl glibc newlib"
  553. runtime_test="uclibc-ng musl glibc"
  554. allowed_tests="toolchain boot libc mksh ltp native"
  555. 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"
  556. 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"
  557. 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"
  558. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=mips ADK_TARGET_ENDIAN=little"
  559. cpu_arch=mips32
  560. endian=el
  561. march=mips
  562. qemu=qemu-system-mipsel
  563. qemu_machine=malta
  564. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  565. suffix=${cpu_arch}${endian}_hard
  566. ;;
  567. mipselsf)
  568. allowed_libc="uclibc-ng musl glibc"
  569. runtime_test="uclibc-ng musl glibc"
  570. allowed_tests="toolchain boot libc mksh ltp native"
  571. 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"
  572. 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"
  573. 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"
  574. cpu_arch=mips32
  575. endian=el
  576. march=mips
  577. qemu=qemu-system-mipsel
  578. qemu_machine=malta
  579. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  580. suffix=${cpu_arch}${endian}_soft
  581. ;;
  582. mips64)
  583. allowed_libc="uclibc-ng glibc"
  584. runtime_test="uclibc-ng glibc"
  585. allowed_tests="toolchain boot libc mksh ltp native"
  586. 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"
  587. 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"
  588. cpu_arch=mips64
  589. qemu_machine=malta
  590. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  591. suffix=${cpu_arch}_o32
  592. ;;
  593. mips64n32)
  594. allowed_libc="uclibc-ng musl glibc"
  595. runtime_test="uclibc-ng musl glibc"
  596. allowed_tests="toolchain boot libc mksh ltp native"
  597. 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"
  598. 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"
  599. default_musl="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"
  600. cpu_arch=mips64
  601. march=mips64
  602. qemu=qemu-system-${cpu_arch}
  603. qemu_machine=malta
  604. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  605. suffix=${cpu_arch}_n32
  606. ;;
  607. mips64n64)
  608. allowed_libc="uclibc-ng musl glibc"
  609. runtime_test="uclibc-ng musl glibc"
  610. allowed_tests="toolchain boot libc mksh ltp native"
  611. 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"
  612. 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"
  613. default_musl="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"
  614. cpu_arch=mips64
  615. march=mips64
  616. qemu=qemu-system-${cpu_arch}
  617. qemu_machine=malta
  618. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  619. suffix=${cpu_arch}_n64
  620. ;;
  621. mips64el)
  622. allowed_libc="uclibc-ng glibc"
  623. runtime_test="uclibc-ng glibc"
  624. allowed_tests="toolchain boot libc mksh ltp native"
  625. 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"
  626. 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"
  627. cpu_arch=mips64
  628. march=mips64
  629. endian=el
  630. qemu=qemu-system-mips64el
  631. qemu_machine=malta
  632. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  633. suffix=${cpu_arch}${endian}_o32
  634. ;;
  635. mips64eln32)
  636. allowed_libc="uclibc-ng musl glibc"
  637. runtime_test="uclibc-ng musl glibc"
  638. allowed_tests="toolchain boot libc mksh ltp native"
  639. 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"
  640. 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"
  641. default_musl="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"
  642. cpu_arch=mips64
  643. march=mips64
  644. endian=el
  645. qemu=qemu-system-mips64el
  646. qemu_machine=malta
  647. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  648. suffix=${cpu_arch}${endian}_n32
  649. ;;
  650. mips64eln64)
  651. allowed_libc="uclibc-ng musl glibc"
  652. runtime_test="uclibc-ng musl glibc"
  653. allowed_tests="toolchain boot libc mksh ltp native"
  654. 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"
  655. 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"
  656. default_musl="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"
  657. cpu_arch=mips64
  658. march=mips64
  659. endian=el
  660. qemu=qemu-system-mips64el
  661. qemu_machine=malta
  662. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  663. suffix=${cpu_arch}${endian}_n64
  664. ;;
  665. moxie)
  666. allowed_libc="newlib"
  667. runtime_test=""
  668. allowed_tests="toolchain"
  669. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=moxie"
  670. ;;
  671. nds32le)
  672. allowed_libc="uclibc-ng newlib"
  673. runtime_test=""
  674. allowed_tests="toolchain"
  675. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=nds32 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=generic-nds32 ADK_TARGET_ENDIAN=little"
  676. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=nds32 ADK_TARGET_ENDIAN=little"
  677. ;;
  678. nds32be)
  679. allowed_libc="uclibc-ng newlib"
  680. runtime_test=""
  681. allowed_tests="toolchain"
  682. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=nds32 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=generic-nds32 ADK_TARGET_ENDIAN=big"
  683. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=nds32 ADK_TARGET_ENDIAN=big"
  684. ;;
  685. nios2)
  686. allowed_libc="glibc"
  687. runtime_test=""
  688. allowed_tests="toolchain"
  689. default_glibc="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=nios2 ADK_TARGET_SYSTEM=generic-nios2"
  690. ;;
  691. or1k)
  692. allowed_libc="uclibc-ng musl newlib"
  693. runtime_test=""
  694. allowed_tests="toolchain"
  695. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=or1k ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-or1k"
  696. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=or1k ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-or1k"
  697. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=or1k"
  698. ;;
  699. ppc)
  700. allowed_libc="uclibc-ng musl glibc newlib"
  701. runtime_test="uclibc-ng musl glibc"
  702. allowed_tests="toolchain boot libc mksh ltp native"
  703. 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"
  704. 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"
  705. 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"
  706. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=ppc ADK_TARGET_ENDIAN=big"
  707. cpu_arch=ppc
  708. march=ppc-macppc
  709. qemu=qemu-system-${cpu_arch}
  710. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  711. qemu_machine=mac99
  712. suffix=hard
  713. noappend=1
  714. ;;
  715. ppcsf)
  716. allowed_libc="uclibc-ng musl glibc newlib"
  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=ppc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-ppc-bamboo ADK_TARGET_FLOAT=soft ADK_TARGET_ENDIAN=big"
  720. 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"
  721. 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"
  722. cpu_arch=ppc
  723. march=ppc-bamboo
  724. qemu=qemu-system-${cpu_arch}
  725. qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
  726. qemu_machine=bamboo
  727. suffix=soft
  728. ;;
  729. ppc64)
  730. allowed_libc="musl glibc"
  731. runtime_test="musl glibc"
  732. allowed_tests="toolchain boot libc mksh ltp native"
  733. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=ppc64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-ppc64 ADK_TARGET_ENDIAN=big"
  734. 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"
  735. cpu_arch=ppc64
  736. qemu=qemu-system-${cpu_arch}
  737. qemu_machine=pseries
  738. suffix=${cpu_arch}
  739. ;;
  740. ppc64le)
  741. allowed_libc="musl glibc"
  742. runtime_test="musl glibc"
  743. allowed_tests="toolchain boot libc mksh ltp native"
  744. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=ppc64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-ppc64 ADK_TARGET_ENDIAN=little"
  745. 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"
  746. cpu_arch=ppc64
  747. endian=le
  748. march=ppc64
  749. qemu=qemu-system-ppc64
  750. qemu_machine=pseries
  751. suffix=${cpu_arch}
  752. ;;
  753. s390)
  754. allowed_libc="glibc"
  755. runtime_test="glibc"
  756. allowed_tests="toolchain boot libc mksh ltp native"
  757. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=s390 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-s390"
  758. cpu_arch=s390x
  759. qemu=qemu-system-${cpu_arch}
  760. qemu_machine=s390-ccw-virtio-2.4
  761. ;;
  762. sh2)
  763. allowed_libc="uclibc-ng"
  764. runtime_test=""
  765. allowed_tests="toolchain"
  766. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=sh ADK_TARGET_SYSTEM=generic-sh ADK_TARGET_CPU=sh2"
  767. cpu_arch=sh2
  768. ;;
  769. sh3)
  770. allowed_libc="uclibc-ng"
  771. runtime_test=""
  772. allowed_tests="toolchain"
  773. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=sh ADK_TARGET_SYSTEM=generic-sh ADK_TARGET_CPU=sh3"
  774. cpu_arch=sh3
  775. ;;
  776. sh4)
  777. allowed_libc="uclibc-ng musl glibc"
  778. runtime_test="uclibc-ng musl glibc"
  779. allowed_tests="toolchain boot libc ltp native"
  780. 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"
  781. 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"
  782. 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"
  783. cpu_arch=sh4
  784. march=sh
  785. qemu=qemu-system-sh4
  786. qemu_machine=r2d
  787. qemu_args="${qemu_args} -monitor null -serial null -serial stdio"
  788. suffix=${cpu_arch}
  789. ;;
  790. sh4eb)
  791. allowed_libc="uclibc-ng musl glibc"
  792. runtime_test="uclibc-ng musl glibc"
  793. allowed_tests="toolchain boot libc ltp native"
  794. 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"
  795. 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"
  796. 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"
  797. cpu_arch=sh4eb
  798. march=sh
  799. qemu=qemu-system-sh4eb
  800. qemu_machine=r2d
  801. qemu_args="${qemu_args} -monitor null -serial null -serial stdio"
  802. suffix=${cpu_arch}
  803. ;;
  804. sparc)
  805. allowed_libc="uclibc-ng glibc newlib"
  806. runtime_test="uclibc-ng glibc"
  807. allowed_tests="toolchain boot libc mksh ltp native"
  808. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sparc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sparc"
  809. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sparc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sparc"
  810. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=sparc"
  811. cpu_arch=v8
  812. qemu=qemu-system-sparc
  813. qemu_machine=SS-10
  814. suffix=${cpu_arch}
  815. ;;
  816. sparc-leon3)
  817. allowed_libc="uclibc-ng"
  818. runtime_test=""
  819. allowed_tests="toolchain"
  820. default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_ARCH=sparc ADK_TARGET_CPU=leon3 ADK_TARGET_SYSTEM=generic-sparc"
  821. cpu_arch=leon
  822. suffix=${cpu_arch}
  823. ;;
  824. sparc64)
  825. allowed_libc="glibc"
  826. runtime_test="glibc"
  827. allowed_tests="toolchain boot libc mksh ltp native"
  828. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sparc64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sparc64"
  829. cpu_arch=v9
  830. qemu=qemu-system-sparc64
  831. qemu_machine=sun4u
  832. qemu_args="${qemu_args} -net nic,model=e1000 -net user"
  833. suffix=${cpu_arch}
  834. ;;
  835. tilegx)
  836. allowed_libc="glibc"
  837. runtime_test=""
  838. allowed_tests="toolchain"
  839. default_glibc="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=tile ADK_TARGET_CPU=tilegx ADK_TARGET_SYSTEM=generic-tile"
  840. ;;
  841. v850)
  842. allowed_libc="newlib"
  843. runtime_test=""
  844. allowed_tests="toolchain"
  845. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=v850"
  846. ;;
  847. x86)
  848. allowed_libc="uclibc-ng musl glibc newlib"
  849. runtime_test="uclibc-ng musl glibc"
  850. allowed_tests="toolchain boot libc mksh ltp native"
  851. default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86"
  852. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86"
  853. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86"
  854. default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=x86"
  855. cpu_arch=i686
  856. qemu=qemu-system-i386
  857. qemu_machine=pc
  858. qemu_args="${qemu_args}"
  859. ;;
  860. x86_64)
  861. allowed_libc="uclibc-ng musl glibc"
  862. runtime_test="uclibc-ng musl glibc"
  863. allowed_tests="toolchain boot libc mksh ltp native"
  864. 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"
  865. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86_64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86_64"
  866. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86_64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86_64"
  867. cpu_arch=x86_64
  868. qemu_machine=pc
  869. libdir=lib64
  870. ;;
  871. x86_64_x32)
  872. allowed_libc="musl glibc"
  873. runtime_test="musl glibc"
  874. allowed_tests="toolchain boot libc mksh ltp native"
  875. default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86_64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86_64 ADK_TARGET_ABI=x32"
  876. default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86_64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86_64 ADK_TARGET_ABI=x32"
  877. cpu_arch=x86_64
  878. march=x86_64
  879. qemu=qemu-system-${cpu_arch}
  880. qemu_machine=pc
  881. libdir=libx32
  882. suffix=x32
  883. ;;
  884. xtensa)
  885. allowed_libc="uclibc-ng"
  886. runtime_test="uclibc-ng"
  887. allowed_tests="toolchain boot libc mksh ltp native"
  888. 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 ADK_TARGET_ENDIAN=little"
  889. cpu_arch=dc233c
  890. qemu=qemu-system-xtensa
  891. qemu_machine=ml605
  892. qemu_args="${qemu_args} -cpu dc233c"
  893. suffix=${cpu_arch}
  894. ;;
  895. xtensabe)
  896. allowed_libc="uclibc-ng"
  897. runtime_test="uclibc-ng"
  898. allowed_tests="toolchain"
  899. 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=kc705_be ADK_TARGET_ENDIAN=big"
  900. cpu_arch=dc233c
  901. qemu=qemu-system-xtensa
  902. qemu_machine=ml605
  903. qemu_args="${qemu_args} -cpu dc233c"
  904. suffix=${cpu_arch}
  905. ;;
  906. xtensa-nommu)
  907. allowed_libc="uclibc-ng"
  908. runtime_test="uclibc-ng"
  909. allowed_tests="toolchain"
  910. 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 ADK_TARGET_ENDIAN=little"
  911. cpu_arch=de212
  912. qemu=qemu-system-xtensa
  913. qemu_machine=ml605
  914. qemu_args="${qemu_args} -cpu de212"
  915. suffix=${cpu_arch}
  916. ;;
  917. *)
  918. echo "architecture ${arch} not supported"; exit 1;;
  919. esac
  920. }
  921. # creating test script to be run on boot
  922. create_run_sh() {
  923. test=$1
  924. file=$2
  925. type=$3
  926. if [ "$type" = "netcat" ]; then
  927. tee="| tee -a /REPORT"
  928. fi
  929. cat > $file << EOF
  930. #!/bin/sh
  931. uname -a
  932. if [ -x /usr/sbin/rdate ]; then
  933. if [ \$ntpserver ]; then
  934. rdate \$ntpserver
  935. else
  936. rdate ptbtime1.ptb.de
  937. fi
  938. fi
  939. EOF
  940. if [ "$type" = "netcat" ]; then
  941. cat >> $file << EOF
  942. dmesg >> /REPORT
  943. EOF
  944. fi
  945. # boot test
  946. if [ $test = "boot" ]; then
  947. cat >> $file << EOF
  948. file /bin/busybox $tee
  949. if [ -x /usr/bin/size ]; then
  950. size /bin/busybox $tee
  951. else
  952. ls -la /bin/busybox $tee
  953. fi
  954. EOF
  955. if [ $static -eq 0 ]; then
  956. cat >> $file << EOF
  957. for i in \$(ls /lib/*.so|grep -v libgcc);do
  958. if [ -x /usr/bin/size ]; then
  959. size \$i $tee
  960. else
  961. ls -la \$i $tee
  962. fi
  963. done
  964. EOF
  965. fi
  966. fi
  967. # ltp test
  968. if [ $test = "ltp" ]; then
  969. cat >> $file << EOF
  970. /opt/ltp/runltp $tee
  971. EOF
  972. fi
  973. # native test
  974. if [ $test = "native" ]; then
  975. cat >> $file << EOF
  976. echo '#include <stdio.h>\nint main() {\n printf("Hello World");\n return 0; \n}'> /hello.c
  977. gcc -o /hello /hello.c $tee
  978. /hello $tee
  979. if [ \$? -eq 0 ]; then
  980. echo "\nsuccess"
  981. else
  982. echo "\nfailed"
  983. fi
  984. EOF
  985. fi
  986. # mksh test
  987. if [ $test = "mksh" ]; then
  988. cat >> $file << EOF
  989. tty=\$(cat /proc/consoles |cut -f 1 -d " ")
  990. mksh -T !/dev/\$tty -c '/opt/mksh/test.sh' $tee
  991. EOF
  992. fi
  993. # libc test
  994. if [ $test = "libc" ]; then
  995. case $lib in
  996. uclibc-ng)
  997. cat >> $file << EOF
  998. cd /opt/uclibc-ng/test
  999. sh ./uclibcng-testrunner.sh $tee
  1000. EOF
  1001. ;;
  1002. musl|glibc)
  1003. cat >> $file << EOF
  1004. cd /opt/libc-test
  1005. CC=: make run $tee
  1006. EOF
  1007. ;;
  1008. esac
  1009. fi
  1010. # info
  1011. cat >> $file <<EOF
  1012. if [ -f /etc/.adkgithash ]; then
  1013. echo "OpenADK git version:"
  1014. cat /etc/.adkgithash
  1015. fi
  1016. if [ -f /etc/.adkcompiler ]; then
  1017. echo "Compiler used:"
  1018. cat /etc/.adkcompiler
  1019. fi
  1020. if [ -f /etc/.adklinker ]; then
  1021. echo "Linker used:"
  1022. cat /etc/.adklinker
  1023. fi
  1024. EOF
  1025. if [ "$type" = "netcat" ]; then
  1026. cat >> $file << EOF
  1027. echo quit|nc $buildserver 9999
  1028. EOF
  1029. fi
  1030. if [ "$type" = "quit" ]; then
  1031. cat >> $file << EOF
  1032. exit
  1033. EOF
  1034. fi
  1035. chmod u+x $file
  1036. }
  1037. runtest() {
  1038. lib=$1
  1039. arch=$2
  1040. test=$3
  1041. if [ $ntp ]; then
  1042. qemu_append="-append ntpserver=$ntp"
  1043. fi
  1044. if [ $shell -eq 1 ]; then
  1045. qemu_append="-append shell"
  1046. fi
  1047. qemu=qemu-system-${arch}
  1048. march=${arch}
  1049. get_arch_info $arch $lib
  1050. case $emulator in
  1051. qemu)
  1052. echo "Using QEMU as emulator"
  1053. if ! which $qemu >/dev/null; then
  1054. echo "Checking if $qemu is installed... failed"
  1055. exit 1
  1056. fi
  1057. qemuver=$(${qemu} -version|awk '{ print $4 }')
  1058. if [ "$arch" != "metag" ]; then
  1059. if [ $(echo $qemuver |sed -e "s#\.##g" -e "s#,##") -lt 240 ]; then
  1060. echo "Your qemu version is too old. Please update to 2.4 or greater"
  1061. exit 1
  1062. fi
  1063. fi
  1064. ;;
  1065. nsim)
  1066. echo "Using Synopsys NSIM as simulator"
  1067. if ! which nsimdrv >/dev/null; then
  1068. echo "Checking if $emulator is installed... failed"
  1069. exit 1
  1070. fi
  1071. ;;
  1072. sim)
  1073. echo "Using GDB as simulator"
  1074. ;;
  1075. *)
  1076. echo "emulator/simulator not supported"
  1077. exit 1
  1078. ;;
  1079. esac
  1080. echo "Starting test for $lib and $arch"
  1081. # check if initramfs or piggyback is used
  1082. if [ $piggyback -eq 1 ]; then
  1083. echo "Using extra directory for test image creation"
  1084. root=openadk/extra
  1085. rm -rf openadk/extra 2>/dev/null
  1086. mkdir openadk/extra 2>/dev/null
  1087. if [ ! -z $suffix ]; then
  1088. kernel=openadk/firmware/${emulator}-${march}_${lib}_${suffix}/${emulator}-${march}-initramfspiggyback-kernel
  1089. else
  1090. kernel=openadk/firmware/${emulator}-${march}_${lib}/${emulator}-${march}-initramfspiggyback-kernel
  1091. fi
  1092. else
  1093. echo "Generating root filesystem for test run"
  1094. root=$(mktemp -d /tmp/XXXX)
  1095. if [ ! -z $suffix ]; then
  1096. archive=openadk/firmware/${emulator}-${march}_${lib}_${suffix}/qemu-${march}-${lib}-initramfsarchive.tar.xz
  1097. kernel=openadk/firmware/${emulator}-${march}_${lib}_${suffix}/qemu-${march}-initramfsarchive-kernel
  1098. else
  1099. archive=openadk/firmware/${emulator}-${march}_${lib}/${emulator}-${march}-${lib}-initramfsarchive.tar.xz
  1100. kernel=openadk/firmware/${emulator}-${march}_${lib}/${emulator}-${march}-initramfsarchive-kernel
  1101. fi
  1102. if [ ! -f $archive ]; then
  1103. echo "No root filesystem available for architecture ${arch} tried $archive"
  1104. exit 1
  1105. fi
  1106. tar -xf $archive -C $root
  1107. fi
  1108. create_run_sh $test ${root}/run.sh quit
  1109. if [ $piggyback -eq 1 ]; then
  1110. (cd openadk && make v)
  1111. else
  1112. echo "Creating initramfs filesystem"
  1113. (cd $root; find . | cpio -o -C512 -Hnewc |xz --check=crc32 --stdout > ${topdir}/initramfs.${arch})
  1114. rm -rf $root
  1115. qemu_args="$qemu_args -initrd initramfs.${arch}"
  1116. fi
  1117. # qemu-ppc overwrites existing commandline
  1118. if [ $noappend -eq 0 ]; then
  1119. qemu_args="$qemu_args ${qemu_append}"
  1120. fi
  1121. report=REPORT.${arch}.${test}.${libver}${rsuffix}
  1122. echo "Now running the test ${test} in ${emulator} for architecture ${arch} and ${lib}"
  1123. case $emulator in
  1124. qemu)
  1125. echo "${qemu} -M ${qemu_machine} ${qemu_args} -kernel ${kernel} -qmp tcp:127.0.0.1:4444,server,nowait -no-reboot"
  1126. ${qemu} -M ${qemu_machine} ${qemu_args} -kernel ${kernel} -qmp tcp:127.0.0.1:4444,server,nowait -no-reboot | tee $report
  1127. ;;
  1128. nsim)
  1129. echo "./openadk/scripts/nsim.sh ${arch} ${kernel}"
  1130. ./openadk/scripts/nsim.sh ${arch} ${kernel} | tee $report
  1131. ;;
  1132. sim)
  1133. echo "$emulator ${arch} ${kernel}"
  1134. ./openadk/toolchain_${emulator}-${march}_${lib}_${model}_${binfmt}/usr/bin/${gdbcmd} ${kernel}
  1135. ;;
  1136. esac
  1137. if [ $? -eq 0 ]; then
  1138. echo "Test ${test} for ${arch} finished. See $report"
  1139. else
  1140. echo "Test ${test} failed for ${arch} with ${lib} ${libver}."
  1141. fi
  1142. }
  1143. build() {
  1144. lib=$1
  1145. arch=$2
  1146. test=$3
  1147. system=$4
  1148. rootfs=$5
  1149. DEFAULT=
  1150. cd openadk
  1151. if [[ $targetmode ]]; then
  1152. DEFAULT="ADK_APPLIANCE=test ADK_TARGET_ARCH=$arch ADK_TARGET_SYSTEM=$system ADK_TARGET_FS=$rootfs"
  1153. else
  1154. get_arch_info $arch $lib
  1155. fi
  1156. if [ $verbose -eq 1 ]; then
  1157. DEFAULT="$DEFAULT ADK_VERBOSE=1"
  1158. fi
  1159. # build defaults for different tests
  1160. if [ $test = "boot" ]; then
  1161. DEFAULT="$DEFAULT ADK_TEST_BASE=y"
  1162. fi
  1163. if [ $test = "ltp" ]; then
  1164. DEFAULT="$DEFAULT ADK_TEST_LTP=y"
  1165. fi
  1166. if [ $test = "mksh" ]; then
  1167. DEFAULT="$DEFAULT ADK_TEST_MKSH=y"
  1168. REBUILD=.rebuild.mksh
  1169. fi
  1170. if [ $test = "libc" ]; then
  1171. case $lib in
  1172. uclibc-ng)
  1173. DEFAULT="$DEFAULT ADK_TEST_UCLIBC_NG_TESTSUITE=y"
  1174. REBUILD=.rebuild.uclibc-ng
  1175. ;;
  1176. glibc)
  1177. DEFAULT="$DEFAULT ADK_TEST_GLIBC_TESTSUITE=y"
  1178. ;;
  1179. musl)
  1180. DEFAULT="$DEFAULT ADK_TEST_MUSL_TESTSUITE=y"
  1181. ;;
  1182. esac
  1183. fi
  1184. if [ $test = "native" ]; then
  1185. case $lib in
  1186. uclibc-ng)
  1187. DEFAULT="$DEFAULT ADK_TEST_UCLIBC_NG_NATIVE=y"
  1188. ;;
  1189. musl)
  1190. DEFAULT="$DEFAULT ADK_TEST_MUSL_NATIVE=y"
  1191. ;;
  1192. glibc)
  1193. DEFAULT="$DEFAULT ADK_TEST_GLIBC_NATIVE=y"
  1194. ;;
  1195. esac
  1196. fi
  1197. # build defaults for different C library
  1198. DEFAULT="$DEFAULT ADK_TARGET_LIBC=$lib"
  1199. case $lib in
  1200. uclibc-ng)
  1201. DEFAULT="$DEFAULT $default_uclibc_ng"
  1202. ;;
  1203. musl)
  1204. DEFAULT="$DEFAULT $default_musl"
  1205. ;;
  1206. glibc)
  1207. DEFAULT="$DEFAULT $default_glibc"
  1208. ;;
  1209. newlib)
  1210. DEFAULT="$DEFAULT $default_newlib"
  1211. ;;
  1212. esac
  1213. # use special C library version
  1214. if [[ $libcversion ]]; then
  1215. DEFAULT="$DEFAULT ADK_TARGET_LIBC_VERSION=$libcversion"
  1216. fi
  1217. # use special Linux kernel version
  1218. if [[ $kernelversion ]]; then
  1219. DEFAULT="$DEFAULT ADK_TARGET_KERNEL_VERSION=$kernelversion"
  1220. fi
  1221. if [[ $binutilsversion ]]; then
  1222. DEFAULT="$DEFAULT ADK_TOOLCHAIN_BINUTILS_VERSION=$binutilsversion"
  1223. fi
  1224. if [[ $gccversion ]]; then
  1225. DEFAULT="$DEFAULT ADK_TOOLCHAIN_GCC_VERSION=$gccversion"
  1226. fi
  1227. if [[ $gdbversion ]]; then
  1228. DEFAULT="$DEFAULT ADK_TOOLCHAIN_GDB_VERSION=$gdbversion"
  1229. fi
  1230. rm .config* .defconfig 2>/dev/null
  1231. echo "Using following defaults: $DEFAULT"
  1232. make $DEFAULT defconfig
  1233. if [ $create -eq 1 ]; then
  1234. printf "ADK_CREATE_TOOLCHAIN_ARCHIVE=y" >> .config
  1235. fi
  1236. if [ $static -eq 1 ]; then
  1237. printf "ADK_TARGET_USE_STATIC_LIBS=y" >> .config
  1238. fi
  1239. if [ $ssp -eq 1 ]; then
  1240. printf "ADK_TARGET_USE_SSP=y" >> .config
  1241. fi
  1242. if [ $debug -eq 1 ]; then
  1243. printf "ADK_DEBUG=y" >> .config
  1244. fi
  1245. if [ $nothreads -eq 1 ]; then
  1246. printf "ADK_TARGET_LIB_WITHOUT_THREADS=y" >> .config
  1247. fi
  1248. for pkg in $packages; do
  1249. p=$(echo $pkg|tr '[:lower:]' '[:upper:]');printf "ADK_COMPILE_$p=y\nADK_PACKAGE_$p=y" >> .config
  1250. done
  1251. # refresh after any changes to config
  1252. yes|make oldconfig
  1253. if [ $clean -eq 1 ]; then
  1254. echo "cleaning openadk build directory"
  1255. make cleansystem
  1256. fi
  1257. if [ ! -z $REBUILD ]; then
  1258. touch $REBUILD
  1259. fi
  1260. make $DEFAULT all
  1261. if [ $? -ne 0 ];then
  1262. echo "build failed"
  1263. exit 1
  1264. fi
  1265. cd ..
  1266. }
  1267. for lib in ${libc}; do
  1268. case $lib in
  1269. uclibc-ng)
  1270. archlist=$arch_list_uclibcng
  1271. if [[ $libcversion ]]; then
  1272. version=$libcversion
  1273. else
  1274. version=1.0.18
  1275. fi
  1276. libver=uClibc-ng-${version}
  1277. libdir=uClibc-ng
  1278. ;;
  1279. glibc)
  1280. archlist=$arch_list_glibc
  1281. if [[ $libcversion ]]; then
  1282. version=$libcversion
  1283. else
  1284. version=2.24
  1285. fi
  1286. libver=glibc-${version}
  1287. libdir=glibc
  1288. ;;
  1289. musl)
  1290. archlist=$arch_list_musl
  1291. if [[ $libcversion ]]; then
  1292. version=$libcversion
  1293. else
  1294. version=1.1.15
  1295. fi
  1296. libver=musl-${version}
  1297. libdir=musl
  1298. ;;
  1299. newlib)
  1300. archlist=$arch_list_newlib
  1301. if [[ $libcversion ]]; then
  1302. version=$libcversion
  1303. else
  1304. version=2.4.0
  1305. fi
  1306. libver=newlib-${version}
  1307. libdir=newlib
  1308. ;;
  1309. *)
  1310. echo "$lib not supported"
  1311. exit 1
  1312. ;;
  1313. esac
  1314. if [ ! -z $archs ]; then
  1315. archlist="$archs"
  1316. fi
  1317. # libc source used?
  1318. if [ ! -z $libcsource ]; then
  1319. if [ ! -d $libcsource ]; then
  1320. echo "Not a directory."
  1321. exit 1
  1322. fi
  1323. usrc=$(mktemp -d /tmp/XXXX)
  1324. echo "Creating C library source tarball openadk/dl/${libver}.tar.xz"
  1325. cp -a $libcsource $usrc/$libver
  1326. mkdir -p $topdir/openadk/dl 2>/dev/null
  1327. rm $topdir/openadk/dl/${libver}.tar.xz 2>/dev/null
  1328. (cd $usrc && tar cJf $topdir/openadk/dl/${libver}.tar.xz ${libver} )
  1329. touch $topdir/openadk/dl/${libver}.tar.xz.nohash
  1330. # we need to clean system, when external source is used
  1331. if [ $noclean -eq 0 ]; then
  1332. clean=1
  1333. fi
  1334. fi
  1335. # binutils source used?
  1336. if [ ! -z $binutilssource ]; then
  1337. if [ ! -d $binutilssource ]; then
  1338. echo "Not a directory."
  1339. exit 1
  1340. fi
  1341. usrc=$(mktemp -d /tmp/XXXX)
  1342. echo "Creating binutils source tarball openadk/dl/binutils-git.tar.xz"
  1343. cp -a $binutilssource $usrc/binutils-git
  1344. mkdir -p $topdir/openadk/dl 2>/dev/null
  1345. rm $topdir/openadk/dl/binutils-git.tar.xz 2>/dev/null
  1346. (cd $usrc && tar cJf $topdir/openadk/dl/binutils-git.tar.xz binutils-git)
  1347. touch $topdir/openadk/dl/binutils-git.tar.xz.nohash
  1348. # we need to clean system, when external source is used
  1349. if [ $noclean -eq 0 ]; then
  1350. clean=1
  1351. fi
  1352. fi
  1353. # gcc source used?
  1354. if [ ! -z $gccsource ]; then
  1355. if [ ! -d $gccsource ]; then
  1356. echo "Not a directory."
  1357. exit 1
  1358. fi
  1359. usrc=$(mktemp -d /tmp/XXXX)
  1360. echo "Creating gcc source tarball openadk/dl/gcc-git.tar.xz"
  1361. cp -a $gccsource $usrc/gcc-git
  1362. mkdir -p $topdir/openadk/dl 2>/dev/null
  1363. rm $topdir/openadk/dl/gcc-git.tar.xz 2>/dev/null
  1364. (cd $usrc && tar cJf $topdir/openadk/dl/gcc-git.tar.xz gcc-git)
  1365. touch $topdir/openadk/dl/gcc-git.tar.xz.nohash
  1366. # we need to clean system, when external source is used
  1367. if [ $noclean -eq 0 ]; then
  1368. clean=1
  1369. fi
  1370. fi
  1371. # gdb source used?
  1372. if [ ! -z $gdbsource ]; then
  1373. if [ ! -d $gdbsource ]; then
  1374. echo "Not a directory."
  1375. exit 1
  1376. fi
  1377. usrc=$(mktemp -d /tmp/XXXX)
  1378. echo "Creating gdb source tarball openadk/dl/gdb-git.tar.xz"
  1379. cp -a $gdbsource $usrc/gdb-git
  1380. mkdir -p $topdir/openadk/dl 2>/dev/null
  1381. rm $topdir/openadk/dl/gdb-git.tar.xz 2>/dev/null
  1382. (cd $usrc && tar cJf $topdir/openadk/dl/gdb-git.tar.xz gdb-git)
  1383. touch $topdir/openadk/dl/gdb-git.tar.xz.nohash
  1384. # we need to clean system, when external source is used
  1385. if [ $noclean -eq 0 ]; then
  1386. clean=1
  1387. fi
  1388. fi
  1389. # start with a clean dir
  1390. if [ $cleandir -eq 1 ]; then
  1391. echo "completely cleaning openadk build directory"
  1392. (cd openadk && make cleandir)
  1393. fi
  1394. if [[ $targetmode ]]; then
  1395. create_run_sh $test run.sh netcat
  1396. while read -u3 line; do
  1397. target_host=$(echo $line|cut -f 1 -d ,)
  1398. target_ip=$(echo $line|cut -f 2 -d ,)
  1399. target_arch=$(echo $line|cut -f 3 -d ,)
  1400. target_system=$(echo $line|cut -f 4 -d ,)
  1401. target_suffix=$(echo $line|cut -f 5 -d ,)
  1402. target_rootfs=$(echo $line|cut -f 6 -d ,)
  1403. target_powerid=$(echo $line|cut -f 7 -d ,)
  1404. echo "Testing target system $target_system ($target_arch) with $target_rootfs on $target_host"
  1405. build $lib $target_arch $test $target_system $target_rootfs
  1406. kernel=openadk/firmware/${target_system}_${lib}_${target_suffix}/${target_system}-${target_rootfs}-kernel
  1407. tarball=openadk/firmware/${target_system}_${lib}_${target_suffix}/${target_system}-${lib}-${target_rootfs}.tar.xz
  1408. scp $kernel root@${bootserver}:/tftpboot/${target_host}
  1409. ssh -n root@${bootserver} "cd /tftpboot; ln -sf ${target_host} vmlinux"
  1410. ssh -n root@${bootserver} "mkdir /nfsroot/${target_host} 2>/dev/null"
  1411. xzcat $tarball | ssh root@${bootserver} "tar -xf - -C /nfsroot/${target_host}"
  1412. scp run.sh root@${bootserver}:/nfsroot/${target_host}
  1413. echo "Powering on target system"
  1414. ssh -n root@${bootserver} "sispmctl -o $target_powerid"
  1415. echo "Waiting for target system to finish"
  1416. nc -l -p 9999
  1417. echo "Test finished. Powering off target system"
  1418. ssh -n root@${bootserver} "sispmctl -f $target_powerid"
  1419. scp root@${bootserver}:/nfsroot/${target_host}/REPORT REPORT.${target_arch}.${target_system}.${test}.${libver}
  1420. ssh -n root@${bootserver} "rm /nfsroot/${target_host}/REPORT"
  1421. done 3< $targets
  1422. else
  1423. for arch in $archlist; do
  1424. get_arch_info $arch $lib
  1425. report=REPORT.${arch}.${test}.${libver}${rsuffix}
  1426. if [ $cont -eq 1 ]; then
  1427. if [ -f $report ]; then
  1428. echo "Skipping already run test $test for $arch and $lib"
  1429. continue
  1430. fi
  1431. fi
  1432. if [ "$arch" = "$skiparchs" ]; then
  1433. echo "Skipping $skiparchs"
  1434. continue
  1435. fi
  1436. if [[ "$allowed_tests" = *${test}* ]]; then
  1437. if [[ "$allowed_libc" = *${lib}* ]]; then
  1438. echo "Compiling for $lib and $arch testing $test"
  1439. build $lib $arch $test
  1440. if [ "$test" != "toolchain" ]; then
  1441. if [[ "$runtime_test" = *${lib}* ]]; then
  1442. runtest $lib $arch $test
  1443. fi
  1444. else
  1445. # fake stamp for continue
  1446. touch $report
  1447. fi
  1448. else
  1449. echo "$lib not available for $arch"
  1450. fi
  1451. else
  1452. echo "$test not available for $arch and $lib"
  1453. fi
  1454. done
  1455. fi
  1456. done
  1457. echo "All tests finished."
  1458. exit 0