123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200 |
- #!/usr/bin/env mksh
- #
- # Copyright © 2014-2016
- # Waldemar Brodkorb <wbx@embedded-test.org>
- #
- # Provided that these terms and disclaimer and all copyright notices
- # are retained or reproduced in an accompanying document, permission
- # is granted to deal in this work without restriction, including un‐
- # limited rights to use, publicly perform, distribute, sell, modify,
- # merge, give away, or sublicence.
- #
- # This work is provided “AS IS” and WITHOUT WARRANTY of any kind, to
- # the utmost extent permitted by applicable law, neither express nor
- # implied; without malicious intent or gross negligence. In no event
- # may a licensor, author or contributor be held liable for indirect,
- # direct, other damage, loss, or other issues arising in any way out
- # of dealing in the work, even if advised of the possibility of such
- # damage or existence of a defect, except proven that it results out
- # of said person’s immediate fault when using the work as intended.
- #
- # Alternatively, this work may be distributed under the Terms of the
- # General Public License, any version as published by the Free Soft‐
- # ware Foundation.
- # uClibc-ng
- 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"
- # musl
- arch_list_musl="aarch64 armv5 armv6 armv7 armeb microblazeel microblazebe mips mipssf mipsel mipselsf or1k ppc ppcsf sh4 sh4eb x86 x86_64"
- # glibc
- 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"
- # newlib
- arch_list_newlib="aarch64 arcv1 armv5 armeb bfin crisv10 crisv32 frv lm32 m68k microblazeel mips mipsel or1k ppc sparc x86"
- topdir=$(pwd)
- giturl=http://git.openadk.org/openadk.git
- valid_libc="uclibc-ng musl glibc newlib"
- valid_tests="toolchain boot libc ltp mksh native"
- bootserver=10.0.0.1
- buildserver=10.0.0.2
- tools='make git wget xz cpio tar awk sed'
- f=0
- for tool in $tools; do
- if ! which $tool >/dev/null; then
- echo "Checking if $tool is installed... failed"
- f=1
- fi
- done
- if [ $f -eq 1 ]; then
- exit 1
- fi
- help() {
- cat >&2 <<EOF
- Syntax: $0 [ --libc=<libc> --arch=<arch> --test=<test> ]
- Explanation:
- --libc=<libc> C library to use (${valid_libc})
- --arch=<arch> architecture to check (otherwise all supported)
- --skiparch=<arch> architectures to skip when all choosen
- --targets=<targets.txt> a list of remote targets to test via nfsroot or chroot
- --test=<test> run test (${valid_tests}), default toolchain
- --libc-source=<dir> use directory with source for C library
- --gcc-source=<dir> use directory with source for gcc
- --binutils-source=<dir> use directory with source for binutils
- --gdb-source=<dir> use directory with source for gdb
- --libc-version=<version> use version of C library
- --gcc-version=<version> use version of gcc
- --binutils-version=<version> use version of binutils
- --gdb-version=<version> use version of gdb
- --ntp=<ntpserver> set NTP server for test run
- --packages=<packagelist> add extra packages to the build
- --update update OpenADK source via git pull, before building
- --continue continue on a broken build
- --cleandir clean OpenADK build directories before build
- --clean clean OpenADK build directory for single arch
- --no-clean do not clean OpenADK build directory for single arch
- --debug enable debug output from OpenADK
- --shell start a shell instead of test autorun
- --help this help text
- EOF
- exit 1
- }
- cont=0
- clean=0
- noclean=0
- cleandir=0
- shell=0
- update=0
- debug=0
- ntp=""
- libc=""
- test="toolchain"
- while [[ $1 != -- && $1 = -* ]]; do case $1 {
- (--cleandir) cleandir=1; shift ;;
- (--clean) clean=1; shift ;;
- (--no-clean) noclean=1; shift ;;
- (--debug) debug=1; shift ;;
- (--update) update=1; shift ;;
- (--continue) cont=1; shift ;;
- (--shell) shell=1 shift ;;
- (--libc=*) libc=${1#*=}; shift ;;
- (--arch=*) archs=${1#*=}; shift ;;
- (--skiparch=*) skiparchs=${1#*=}; shift ;;
- (--targets=*) targets=${1#*=}; shift ;;
- (--test=*) test=${1#*=}; shift ;;
- (--libc-source=*) libcsource=${1#*=}; shift ;;
- (--gcc-source=*) gccsource=${1#*=}; shift ;;
- (--binutils-source=*) binutilssource=${1#*=}; shift ;;
- (--gdb-source=*) gdbsource=${1#*=}; shift ;;
- (--libc-version=*) libcversion=${1#*=}; shift ;;
- (--gcc-version=*) gccversion=${1#*=}; shift ;;
- (--binutils-version=*) binutilsversion=${1#*=}; shift ;;
- (--gdb-version=*) gdbversion=${1#*=}; shift ;;
- (--packages=*) packages=${1#*=}; shift ;;
- (--ntp=*) ntp=${1#*=}; shift ;;
- (--help) help; shift ;;
- (--*) echo "unknown option $1"; exit 1 ;;
- (-*) help ;;
- }; done
- if [ ! -z $targets ]; then
- targetmode=1
- fi
- if [ -z "$libc" ]; then
- if [[ $libcversion ]]; then
- echo "You can not use a specific C library version without setting the C library"
- exit 1
- else
- libc="uclibc-ng musl glibc newlib"
- fi
- fi
- if [ ! -d openadk ]; then
- git clone $giturl
- if [ $? -ne 0 ]; then
- echo "Cloning from $giturl failed."
- exit 1
- fi
- else
- if [ $update -eq 1 ]; then
- (cd openadk && git pull)
- if [ $? -ne 0 ]; then
- echo "Updating from $giturl failed."
- exit 1
- fi
- fi
- fi
- get_arch_info() {
- arch=$1
- lib=$2
- emulator=qemu
- noappend=0
- piggyback=0
- suffix=
- allowed_libc=
- runtime_test=
- qemu_args=-nographic
- case ${arch} in
- aarch64)
- allowed_libc="musl glibc newlib"
- runtime_test="musl glibc"
- allowed_tests="toolchain boot libc ltp mksh native"
- default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=aarch64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-aarch64"
- default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=aarch64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-aarch64"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=aarch64"
- cpu_arch=aarch64
- qemu_machine=virt
- qemu_args="${qemu_args} -cpu cortex-a57 -netdev user,id=eth0 -device virtio-net-device,netdev=eth0"
- ;;
- alpha)
- allowed_libc="uclibc-ng glibc"
- runtime_test="uclibc-ng glibc"
- allowed_tests="toolchain boot libc ltp mksh native"
- default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=alpha ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-alpha"
- default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=alpha ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-alpha"
- march=alpha
- qemu=qemu-system-alpha
- qemu_machine=clipper
- qemu_args="${qemu_args} -monitor null"
- ;;
- armv5)
- allowed_libc="uclibc-ng musl glibc newlib"
- runtime_test="uclibc-ng musl glibc"
- allowed_tests="toolchain boot libc ltp mksh native"
- default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-versatilepb"
- default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-versatilepb"
- default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-versatilepb"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arm ADK_TARGET_ENDIAN=little ADK_TARGET_CPU=arm926ej-s"
- cpu_arch=arm926ej_s
- march=arm-versatilepb
- qemu=qemu-system-arm
- qemu_machine=versatilepb
- suffix=${cpu_arch}_soft_eabi
- dtbdir=openadk/firmware/qemu-${march}_${lib}_${suffix}
- qemu_args="${qemu_args} -cpu arm926 -net user -net nic,model=smc91c111"
- ;;
- armv6)
- allowed_libc="uclibc-ng musl glibc"
- runtime_test="uclibc-ng musl glibc"
- allowed_tests="toolchain boot libc ltp mksh native"
- 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"
- 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"
- 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"
- cpu_arch=mpcore
- march=arm-realview-eb-mpcore
- qemu=qemu-system-arm
- qemu_machine=realview-eb-mpcore
- suffix=${cpu_arch}_hard_eabihf
- dtbdir=openadk/firmware/qemu-${march}_${lib}_${suffix}
- qemu_args="${qemu_args} -net user -net nic"
- ;;
- armv7)
- allowed_libc="uclibc-ng musl glibc"
- runtime_test="uclibc-ng musl glibc"
- allowed_tests="toolchain boot libc ltp mksh native"
- 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"
- default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-vexpress-a9"
- default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=arm ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-arm-vexpress-a9"
- cpu_arch=cortex_a9
- march=arm-vexpress-a9
- qemu=qemu-system-arm
- qemu_machine=vexpress-a9
- suffix=${cpu_arch}_hard_eabihf
- dtbdir=openadk/firmware/qemu-${march}_${lib}_${suffix}
- qemu_args="${qemu_args} -cpu cortex-a9 -net user -net nic,model=lan9118 -dtb ${dtbdir}/vexpress-v2p-ca9.dtb"
- ;;
- armeb)
- allowed_libc="uclibc-ng musl glibc"
- runtime_test=""
- allowed_tests="toolchain"
- 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"
- 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"
- 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"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arm ADK_TARGET_ENDIAN=big ADK_TARGET_CPU=arm926ej-s"
- ;;
- arcv1)
- allowed_libc="uclibc-ng newlib"
- runtime_test="uclibc-ng"
- allowed_tests="toolchain boot libc ltp mksh native"
- 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"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arc ADK_TARGET_ENDIAN=little"
- emulator=nsim
- cpu_arch=arc700
- suffix=${cpu_arch}
- piggyback=1
- ;;
- arcv2)
- allowed_libc="uclibc-ng"
- runtime_test="uclibc-ng"
- allowed_tests="toolchain boot libc ltp mksh native"
- 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"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arc ADK_TARGET_ENDIAN=little"
- emulator=nsim
- cpu_arch=archs
- suffix=${cpu_arch}
- piggyback=1
- ;;
- arcv1-be)
- allowed_libc="uclibc-ng"
- runtime_test="uclibc-ng"
- allowed_tests="toolchain boot libc ltp mksh native"
- 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"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arc ADK_TARGET_ENDIAN=big"
- emulator=nsim
- cpu_arch=arc700
- suffix=${cpu_arch}
- march=arcv1be
- piggyback=1
- ;;
- arcv2-be)
- allowed_libc="uclibc-ng"
- runtime_test="uclibc-ng"
- allowed_tests="toolchain boot libc ltp mksh native"
- 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"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=arc ADK_TARGET_ENDIAN=big"
- emulator=nsim
- cpu_arch=archs
- march=arcv2be
- suffix=${cpu_arch}
- piggyback=1
- ;;
- avr32)
- allowed_libc="uclibc-ng"
- runtime_test=""
- allowed_tests="toolchain"
- default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=avr32 ADK_TARGET_SYSTEM=generic-avr32"
- ;;
- bfin)
- allowed_libc="uclibc-ng"
- runtime_test=""
- allowed_tests="toolchain"
- default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=bfin ADK_TARGET_SYSTEM=generic-bfin"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=bfin"
- ;;
- c6x)
- allowed_libc="uclibc-ng"
- runtime_test=""
- allowed_tests="toolchain"
- default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=c6x ADK_TARGET_SYSTEM=generic-c6x ADK_TARGET_ENDIAN=little"
- ;;
- crisv10)
- allowed_libc="uclibc-ng newlib"
- runtime_test=""
- allowed_tests="toolchain"
- default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=cris ADK_TARGET_SYSTEM=generic-cris ADK_TARGET_CPU=crisv10"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=cris ADK_TARGET_CPU=crisv10"
- ;;
- crisv32)
- allowed_libc="uclibc-ng newlib"
- runtime_test="uclibc-ng"
- allowed_tests="toolchain boot libc ltp native"
- default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=cris ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-cris"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=cris ADK_TARGET_CPU=crisv32"
- cpu_arch=crisv32
- march=cris
- qemu=qemu-system-${march}
- qemu_machine=axis-dev88
- piggyback=1
- ;;
- frv)
- allowed_libc="newlib"
- runtime_test=""
- allowed_tests="toolchain"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=frv"
- ;;
- ia64)
- allowed_libc="uclibc-ng glibc"
- runtime_test=""
- allowed_tests="toolchain"
- default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=ia64 ADK_TARGET_SYSTEM=generic-ia64"
- default_glibc="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=ia64 ADK_TARGET_SYSTEM=generic-ia64"
- ;;
- h8300)
- allowed_libc="uclibc-ng newlib"
- runtime_test=""
- allowed_tests="toolchain"
- default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=h8300 ADK_TARGET_SYSTEM=sim-h8300"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=h8300"
- ;;
- lm32)
- allowed_libc="uclibc-ng newlib"
- runtime_test=""
- allowed_tests="toolchain"
- default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=lm32 ADK_TARGET_SYSTEM=qemu-lm32"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=lm32"
- ;;
- m68k)
- allowed_libc="uclibc-ng newlib"
- runtime_test=""
- allowed_tests="toolchain"
- default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=m68k ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-m68k-q800"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=m68k ADK_TARGET_CPU=68040"
- ;;
- m68k-nommu)
- allowed_libc="uclibc-ng"
- runtime_test=""
- allowed_tests="toolchain"
- default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=m68k ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-m68k-mcf5208"
- ;;
- metag)
- allowed_libc="uclibc-ng"
- runtime_test="uclibc-ng"
- allowed_tests="toolchain boot"
- default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=metag ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-metag"
- cpu_arch=metag
- qemu=qemu-system-meta
- qemu_args="-nographic -display none -device da,exit_threads=1 -chardev stdio,id=chan1 -chardev pty,id=chan2"
- qemu_machine=01sp
- piggyback=1
- ;;
- microblazeel)
- allowed_libc="uclibc-ng musl glibc newlib"
- runtime_test="musl glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- 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"
- 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"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=microblaze ADK_TARGET_ENDIAN=little"
- cpu_arch=microblazeel
- march=microblaze-s3adsp1800
- qemu_machine=petalogix-s3adsp1800
- ;;
- microblazebe)
- allowed_libc="uclibc-ng musl glibc newlib"
- runtime_test="musl glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- 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"
- 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"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=microblaze ADK_TARGET_ENDIAN=big"
- cpu_arch=microblaze
- march=microblaze-s3adsp1800
- qemu=qemu-system-${cpu_arch}
- qemu_machine=petalogix-s3adsp1800
- ;;
- mips)
- allowed_libc="uclibc-ng musl glibc newlib"
- runtime_test="uclibc-ng musl glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- 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"
- 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"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=mips ADK_TARGET_ENDIAN=big"
- cpu_arch=mips32
- qemu=qemu-system-mips
- qemu_machine=malta
- qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
- suffix=${cpu_arch}_hard
- ;;
- mipssf)
- allowed_libc="uclibc-ng musl glibc"
- runtime_test="uclibc-ng musl glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- 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"
- 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"
- cpu_arch=mips32
- march=mips
- qemu=qemu-system-mips
- qemu_machine=malta
- qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
- suffix=${cpu_arch}_soft
- ;;
- mipsel)
- allowed_libc="uclibc-ng musl glibc newlib"
- runtime_test="uclibc-ng musl glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- 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"
- 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"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=mips ADK_TARGET_ENDIAN=little"
- cpu_arch=mips32
- march=mips
- qemu=qemu-system-mipsel
- qemu_machine=malta
- qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
- suffix=${cpu_arch}_hard
- ;;
- mipselsf)
- allowed_libc="uclibc-ng musl glibc"
- runtime_test="uclibc-ng musl glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- 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"
- 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"
- cpu_arch=mips32
- march=mips
- qemu=qemu-system-mipsel
- qemu_machine=malta
- qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
- suffix=${cpu_arch}_soft
- ;;
- mips64)
- allowed_libc="uclibc-ng glibc"
- runtime_test="uclibc-ng glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- 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"
- cpu_arch=mips64
- qemu_machine=malta
- qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
- suffix=${cpu_arch}_o32
- ;;
- mips64n32)
- allowed_libc="uclibc-ng glibc"
- runtime_test="uclibc-ng glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- 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"
- cpu_arch=mips64
- march=mips64
- qemu=qemu-system-${cpu_arch}
- qemu_machine=malta
- qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
- suffix=${cpu_arch}_n32
- ;;
- mips64n64)
- allowed_libc="uclibc-ng glibc"
- runtime_test="uclibc-ng glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- 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"
- cpu_arch=mips64
- march=mips64
- qemu=qemu-system-${cpu_arch}
- qemu_machine=malta
- qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
- suffix=${cpu_arch}_n64
- ;;
- mips64el)
- allowed_libc="uclibc-ng glibc"
- runtime_test="uclibc-ng glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- 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"
- cpu_arch=mips64
- march=mips64
- endian=el
- qemu=qemu-system-mips64el
- qemu_machine=malta
- qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
- suffix=${cpu_arch}_o32
- ;;
- mips64eln32)
- allowed_libc="uclibc-ng glibc"
- runtime_test="uclibc-ng glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- 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"
- cpu_arch=mips64
- march=mips64
- endian=el
- qemu=qemu-system-mips64el
- qemu=qemu-system-${cpu_arch}
- qemu_machine=malta
- qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
- suffix=${cpu_arch}_n32
- ;;
- mips64eln64)
- allowed_libc="uclibc-ng glibc"
- runtime_test="uclibc-ng glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- 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"
- cpu_arch=mips64
- march=mips64
- endian=el
- qemu=qemu-system-mips64el
- qemu_machine=malta
- qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
- suffix=${cpu_arch}_n64
- ;;
- nios2)
- allowed_libc="glibc"
- runtime_test=""
- allowed_tests="toolchain"
- default_glibc="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=nios2 ADK_TARGET_SYSTEM=generic-nios2"
- ;;
- or1k)
- allowed_libc="uclibc-ng musl newlib"
- runtime_test=""
- allowed_tests="toolchain"
- default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=or1k ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-or1k"
- default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=or1k ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-or1k"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=or1k"
- ;;
- ppc)
- allowed_libc="uclibc-ng musl glibc newlib"
- runtime_test="uclibc-ng musl glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- 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"
- 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"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=ppc"
- cpu_arch=ppc
- march=ppc-macppc
- qemu=qemu-system-${cpu_arch}
- qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
- qemu_machine=mac99
- suffix=hard
- noappend=1
- ;;
- ppcsf)
- allowed_libc="uclibc-ng musl glibc newlib"
- runtime_test="uclibc-ng musl glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- 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"
- 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"
- cpu_arch=ppc
- march=ppc-bamboo
- qemu=qemu-system-${cpu_arch}
- qemu_args="${qemu_args} -device e1000,netdev=adk0 -netdev user,id=adk0"
- qemu_machine=bamboo
- suffix=soft
- ;;
- ppc64)
- allowed_libc="glibc"
- runtime_test="glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- cpu_arch=ppc64
- qemu=qemu-system-${cpu_arch}
- qemu_machine=pseries
- ;;
- ppc64le)
- allowed_libc="glibc"
- runtime_test="glibc"
- allowed_tests="toolchain"
- 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"
- cpu_arch=ppc64
- qemu=qemu-system-${cpu_arch}
- qemu_machine=pseries
- ;;
- s390)
- allowed_libc="glibc"
- runtime_test="glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=s390 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-s390"
- cpu_arch=s390x
- qemu=qemu-system-${cpu_arch}
- qemu_machine=s390-ccw-virtio-2.4
- ;;
- sh2)
- allowed_libc="uclibc-ng"
- runtime_test=""
- allowed_tests="toolchain"
- default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=sh ADK_TARGET_SYSTEM=generic-sh ADK_TARGET_CPU=sh2"
- cpu_arch=sh2
- ;;
- sh3)
- allowed_libc="uclibc-ng"
- runtime_test=""
- allowed_tests="toolchain"
- default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=sh ADK_TARGET_SYSTEM=generic-sh ADK_TARGET_CPU=sh3"
- cpu_arch=sh3
- ;;
- sh4)
- allowed_libc="uclibc-ng musl glibc"
- runtime_test="uclibc-ng musl glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- 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"
- 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"
- cpu_arch=sh4
- march=sh
- qemu=qemu-system-sh4
- qemu_machine=r2d
- qemu_args="${qemu_args} -monitor null -serial null -serial stdio"
- suffix=${cpu_arch}
- ;;
- sh4eb)
- allowed_libc="uclibc-ng musl glibc"
- runtime_test=""
- allowed_tests="toolchain"
- 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"
- 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"
- 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"
- cpu_arch=sh4eb
- march=sh
- qemu=qemu-system-sh4eb
- qemu_machine=r2d
- qemu_args="${qemu_args} -monitor null -serial null -serial stdio"
- suffix=${cpu_arch}
- ;;
- sparc)
- allowed_libc="uclibc-ng glibc newlib"
- runtime_test="uclibc-ng glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sparc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sparc"
- default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sparc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sparc"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=sparc"
- cpu_arch=v8
- qemu=qemu-system-sparc
- qemu_machine=SS-10
- suffix=${cpu_arch}
- ;;
- sparc-leon3)
- allowed_libc="uclibc-ng"
- runtime_test=""
- allowed_tests="toolchain"
- default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_ARCH=sparc ADK_TARGET_CPU=leon3 ADK_TARGET_SYSTEM=generic-sparc"
- cpu_arch=leon
- suffix=${cpu_arch}
- ;;
- sparc64)
- allowed_libc="glibc"
- runtime_test="glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=sparc64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-sparc64"
- cpu_arch=v9
- qemu=qemu-system-sparc64
- qemu_machine=sun4u
- qemu_args="${qemu_args} -net nic,model=e1000 -net user"
- suffix=${cpu_arch}
- ;;
- tilegx)
- allowed_libc="glibc"
- runtime_test=""
- allowed_tests="toolchain"
- default_glibc="ADK_APPLIANCE=toolchain ADK_TARGET_OS=linux ADK_TARGET_ARCH=tile ADK_TARGET_CPU=tilegx ADK_TARGET_SYSTEM=generic-tile"
- ;;
- x86)
- allowed_libc="uclibc-ng musl glibc newlib"
- runtime_test="uclibc-ng musl glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86"
- default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86"
- default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=x86"
- cpu_arch=i686
- qemu=qemu-system-i386
- qemu_machine=pc
- qemu_args="${qemu_args}"
- ;;
- x86_64)
- allowed_libc="uclibc-ng musl glibc"
- runtime_test="uclibc-ng musl glibc"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86_64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86_64"
- default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=linux ADK_TARGET_ARCH=x86_64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-x86_64"
- cpu_arch=x86_64
- qemu_machine=pc
- libdir=lib64
- ;;
- x86_64_x32)
- allowed_libc="musl glibc"
- runtime_test=""
- allowed_tests="toolchain"
- cpu_arch=x86_64
- qemu=qemu-system-${cpu_arch}
- qemu_machine=pc
- libdir=libx32
- ;;
- xtensa)
- allowed_libc="uclibc-ng"
- runtime_test="uclibc-ng"
- allowed_tests="toolchain boot libc mksh ltp native"
- 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"
- default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=xtensa"
- cpu_arch=dc233c
- qemu=qemu-system-xtensa
- qemu_machine=ml605
- qemu_args="${qemu_args} -cpu dc233c"
- suffix=${cpu_arch}
- ;;
- xtensa-nommu)
- allowed_libc="uclibc-ng"
- runtime_test="uclibc-ng"
- allowed_tests="toolchain"
- 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"
- cpu_arch=de212
- qemu=qemu-system-xtensa
- qemu_machine=ml605
- qemu_args="${qemu_args} -cpu de212"
- suffix=${cpu_arch}
- ;;
- *)
- echo "architecture ${arch} not supported"; exit 1;;
- esac
- }
- # creating test script to be run on boot
- create_run_sh() {
- test=$1
- file=$2
- type=$3
- if [ "$type" = "netcat" ]; then
- tee="| tee -a /REPORT"
- fi
- cat > $file << EOF
- #!/bin/sh
- uname -a
- if [ \$ntpserver ]; then
- rdate \$ntpserver
- else
- rdate time.fu-berlin.de
- fi
- EOF
- if [ "$type" = "netcat" ]; then
- cat >> $file << EOF
- dmesg >> /REPORT
- EOF
- fi
- # boot test
- if [ $test = "boot" ]; then
- cat >> $file << EOF
- file /bin/busybox $tee
- size /bin/busybox $tee
- for i in \$(ls /lib/*.so|grep -v libgcc);do
- size \$i $tee
- done
- EOF
- fi
- # ltp test
- if [ $test = "ltp" ]; then
- cat >> $file << EOF
- /opt/ltp/runltp $tee
- EOF
- fi
- # mksh test
- if [ $test = "mksh" ]; then
- cat >> $file << EOF
- tty=\$(cat /proc/consoles |cut -f 1 -d " ")
- mksh -T !/dev/\$tty -c '/opt/mksh/test.sh' $tee
- EOF
- fi
- # libc test
- if [ $test = "libc" ]; then
- case $lib in
- uclibc-ng)
- cat >> $file << EOF
- cd /opt/uclibc-ng/test
- sh ./uclibcng-testrunner.sh $tee
- EOF
- ;;
- musl|glibc)
- cat >> $file << EOF
- cd /opt/libc-test
- CC=: make run $tee
- EOF
- ;;
- esac
- fi
- if [ "$type" = "netcat" ]; then
- cat >> $file << EOF
- echo quit|nc $buildserver 9999
- EOF
- fi
- if [ "$type" = "quit" ]; then
- cat >> $file << EOF
- exit
- EOF
- fi
- chmod u+x $file
- }
- runtest() {
- lib=$1
- arch=$2
- test=$3
- if [ $ntp ]; then
- qemu_append="-append ntpserver=$ntp"
- fi
- if [ $shell -eq 1 ]; then
- qemu_append="-append shell"
- fi
- qemu=qemu-system-${arch}
- march=${arch}
- get_arch_info $arch $lib
- case $emulator in
- qemu)
- echo "Using QEMU as emulator"
- if ! which $qemu >/dev/null; then
- echo "Checking if $qemu is installed... failed"
- exit 1
- fi
- qemuver=$(${qemu} -version|awk '{ print $4 }')
- if [ "$arch" != "metag" ]; then
- if [ $(echo $qemuver |sed -e "s#\.##g" -e "s#,##") -lt 240 ]; then
- echo "Your qemu version is too old. Please update to 2.4 or greater"
- exit 1
- fi
- fi
- ;;
- nsim)
- echo "Using Synopsys NSIM as simulator"
- if ! which nsimdrv >/dev/null; then
- echo "Checking if $emulator is installed... failed"
- exit 1
- fi
- ;;
- *)
- echo "emulator/simulator not supported"
- exit 1
- ;;
- esac
- echo "Starting test for $lib and $arch"
- # check if initramfs or piggyback is used
- if [ $piggyback -eq 1 ]; then
- echo "Using extra directory for test image creation"
- root=openadk/extra
- rm -rf openadk/extra 2>/dev/null
- mkdir openadk/extra 2>/dev/null
- if [ ! -z $suffix ]; then
- kernel=openadk/firmware/${emulator}-${march}${endian}_${lib}_${suffix}/${emulator}-${march}-initramfspiggyback-kernel
- else
- kernel=openadk/firmware/${emulator}-${march}${endian}_${lib}/${emulator}-${march}-initramfspiggyback-kernel
- fi
- else
- echo "Generating root filesystem for test run"
- root=$(mktemp -d /tmp/XXXX)
- if [ ! -z $suffix ]; then
- archive=openadk/firmware/${emulator}-${march}${endian}_${lib}_${suffix}/qemu-${march}-${lib}-initramfsarchive.tar.xz
- kernel=openadk/firmware/${emulator}-${march}${endian}_${lib}_${suffix}/qemu-${march}-initramfsarchive-kernel
- else
- archive=openadk/firmware/${emulator}-${march}${endian}_${lib}/${emulator}-${march}-${lib}-initramfsarchive.tar.xz
- kernel=openadk/firmware/${emulator}-${march}${endian}_${lib}/${emulator}-${march}-initramfsarchive-kernel
- fi
- if [ ! -f $archive ]; then
- echo "No root filesystem available for architecture ${arch} tried $archive"
- exit 1
- fi
- tar -xf $archive -C $root
- fi
- create_run_sh $test ${root}/run.sh quit
- if [ $piggyback -eq 1 ]; then
- (cd openadk && make v)
- else
- echo "Creating initramfs filesystem"
- (cd $root; find . | cpio -o -C512 -Hnewc |xz --check=crc32 --stdout > ${topdir}/initramfs.${arch})
- rm -rf $root
- qemu_args="$qemu_args -initrd initramfs.${arch}"
- fi
- # qemu-ppc overwrites existing commandline
- if [ $noappend -eq 0 ]; then
- qemu_args="$qemu_args ${qemu_append}"
- fi
- echo "Now running the test ${test} in ${emulator} for architecture ${arch} and ${lib}"
- case $emulator in
- qemu)
- echo "${qemu} -M ${qemu_machine} ${qemu_args} -kernel ${kernel} -qmp tcp:127.0.0.1:4444,server,nowait -no-reboot"
- ${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}
- ;;
- nsim)
- echo "./openadk/scripts/nsim.sh ${arch} ${kernel}"
- ./openadk/scripts/nsim.sh ${arch} ${kernel} | tee REPORT.${arch}.${emulator}.${test}.${libver}
- ;;
- esac
- if [ $? -eq 0 ]; then
- echo "Test ${test} for ${arch} finished. See REPORT.${arch}.${emulator}.${test}.${libver}"
- else
- echo "Test ${test} failed for ${arch} with ${lib} ${libver}."
- fi
- }
- build() {
- lib=$1
- arch=$2
- test=$3
- system=$4
- rootfs=$5
- DEFAULT=
- cd openadk
- if [[ $targetmode ]]; then
- DEFAULT="ADK_APPLIANCE=test ADK_TARGET_ARCH=$arch ADK_TARGET_SYSTEM=$system ADK_TARGET_FS=$rootfs"
- else
- get_arch_info $arch $lib
- fi
- if [ $debug -eq 1 ]; then
- DEFAULT="$DEFAULT ADK_VERBOSE=1"
- fi
- # build defaults for different tests
- if [ $test = "boot" ]; then
- DEFAULT="$DEFAULT ADK_TEST_BASE=y"
- fi
- if [ $test = "ltp" ]; then
- DEFAULT="$DEFAULT ADK_TEST_LTP=y"
- fi
- if [ $test = "mksh" ]; then
- DEFAULT="$DEFAULT ADK_TEST_MKSH=y"
- REBUILD=.rebuild.mksh
- fi
- if [ $test = "libc" ]; then
- case $lib in
- uclibc-ng)
- DEFAULT="$DEFAULT ADK_TEST_UCLIBC_NG_TESTSUITE=y"
- REBUILD=.rebuild.uclibc-ng
- ;;
- glibc)
- DEFAULT="$DEFAULT ADK_TEST_GLIBC_TESTSUITE=y"
- ;;
- musl)
- DEFAULT="$DEFAULT ADK_TEST_MUSL_TESTSUITE=y"
- ;;
- esac
- fi
- if [ $test = "native" ]; then
- case $lib in
- uclibc-ng)
- DEFAULT="$DEFAULT ADK_TEST_UCLIBC_NG_NATIVE=y"
- ;;
- musl)
- DEFAULT="$DEFAULT ADK_TEST_MUSL_NATIVE=y"
- ;;
- glibc)
- DEFAULT="$DEFAULT ADK_TEST_GLIBC_NATIVE=y"
- ;;
- esac
- fi
- # build defaults for different C library
- DEFAULT="$DEFAULT ADK_TARGET_LIBC=$lib"
- case $lib in
- uclibc-ng)
- DEFAULT="$DEFAULT $default_uclibc_ng"
- ;;
- musl)
- DEFAULT="$DEFAULT $default_musl"
- ;;
- glibc)
- DEFAULT="$DEFAULT $default_glibc"
- ;;
- newlib)
- DEFAULT="$DEFAULT $default_newlib"
- ;;
- esac
- # use special C library version
- if [[ $libcversion ]]; then
- DEFAULT="$DEFAULT ADK_TARGET_LIBC_VERSION=$libcversion"
- fi
- rm .config* .defconfig 2>/dev/null
- echo "Using following defaults: $DEFAULT"
- make $DEFAULT defconfig
- for pkg in $packages; do
- p=$(echo $pkg|tr '[:lower:]' '[:upper:]');printf "ADK_COMPILE_$p=y\nADK_PACKAGE_$p=y" >> .config
- yes|make oldconfig
- done
- if [ $clean -eq 1 ]; then
- echo "cleaning openadk build directory"
- make cleansystem
- fi
- if [ ! -z $REBUILD ]; then
- touch $REBUILD
- fi
- make $DEFAULT all
- if [ $? -ne 0 ];then
- echo "build failed"
- exit 1
- fi
- cd ..
- }
- for lib in ${libc}; do
- case $lib in
- uclibc-ng)
- archlist=$arch_list_uclibcng
- if [[ $libcversion ]]; then
- version=$libcversion
- else
- version=1.0.12
- fi
- libver=uClibc-ng-${version}
- libdir=uClibc-ng
- ;;
- glibc)
- archlist=$arch_list_glibc
- if [[ $libcversion ]]; then
- version=$libcversion
- else
- version=2.23
- fi
- libver=glibc-${version}
- libdir=glibc
- ;;
- musl)
- archlist=$arch_list_musl
- if [[ $libcversion ]]; then
- version=$libcversion
- else
- version=1.1.14
- fi
- libver=musl-${version}
- libdir=musl
- ;;
- newlib)
- archlist=$arch_list_newlib
- if [[ $libcversion ]]; then
- version=$libcversion
- else
- version=2.2.0
- fi
- libver=newlib-${version}
- libdir=newlib
- ;;
- *)
- echo "$lib not supported"
- exit 1
- ;;
- esac
- if [ ! -z $archs ]; then
- archlist="$archs"
- fi
- # libc source used?
- if [ ! -z $libcsource ]; then
- if [ ! -d $libcsource ]; then
- echo "Not a directory."
- exit 1
- fi
- usrc=$(mktemp -d /tmp/XXXX)
- echo "Creating C library source tarball openadk/dl/${libver}.tar.xz"
- cp -a $libcsource $usrc/$libver
- mkdir -p $topdir/openadk/dl 2>/dev/null
- rm $topdir/openadk/dl/${libver}.tar.xz 2>/dev/null
- (cd $usrc && tar cJf $topdir/openadk/dl/${libver}.tar.xz ${libver} )
- touch $topdir/openadk/dl/${libver}.tar.xz.nohash
- # we need to clean system, when external source is used
- if [ $noclean -eq 0 ]; then
- clean=1
- fi
- fi
- if [ ! -z $binutilssource ]; then
- if [ ! -d $binutilssource ]; then
- echo "Not a directory."
- exit 1
- fi
- usrc=$(mktemp -d /tmp/XXXX)
- echo "Creating binutils source tarball openadk/dl/binutils-git.tar.xz"
- cp -a $binutilssource $usrc/binutils-git
- mkdir -p $topdir/openadk/dl 2>/dev/null
- rm $topdir/openadk/dl/binutils-git.tar.xz 2>/dev/null
- (cd $usrc && tar cJf $topdir/openadk/dl/binutils-git.tar.xz binutils-git)
- touch $topdir/openadk/dl/binutils-git.tar.xz.nohash
- # we need to clean system, when external source is used
- if [ $noclean -eq 0 ]; then
- clean=1
- fi
- fi
- # start with a clean dir
- if [ $cleandir -eq 1 ]; then
- echo "completely cleaning openadk build directory"
- (cd openadk && make cleandir)
- fi
- if [[ $targetmode ]]; then
- create_run_sh $test run.sh netcat
- while read -u3 line; do
- target_host=$(echo $line|cut -f 1 -d ,)
- target_ip=$(echo $line|cut -f 2 -d ,)
- target_arch=$(echo $line|cut -f 3 -d ,)
- target_system=$(echo $line|cut -f 4 -d ,)
- target_suffix=$(echo $line|cut -f 5 -d ,)
- target_rootfs=$(echo $line|cut -f 6 -d ,)
- target_powerid=$(echo $line|cut -f 7 -d ,)
- echo "Testing target system $target_system ($target_arch) with $target_rootfs on $target_host"
- build $lib $target_arch $test $target_system $target_rootfs
- kernel=openadk/firmware/${target_system}_${lib}_${target_suffix}/${target_system}-${target_rootfs}-kernel
- tarball=openadk/firmware/${target_system}_${lib}_${target_suffix}/${target_system}-${lib}-${target_rootfs}.tar.xz
- scp $kernel root@${bootserver}:/tftpboot/${target_host}
- ssh -n root@${bootserver} "cd /tftpboot; ln -sf ${target_host} vmlinux"
- ssh -n root@${bootserver} "mkdir /nfsroot/${target_host} 2>/dev/null"
- xzcat $tarball | ssh root@${bootserver} "tar -xf - -C /nfsroot/${target_host}"
- scp run.sh root@${bootserver}:/nfsroot/${target_host}
- echo "Powering on target system"
- ssh -n root@${bootserver} "sispmctl -o $target_powerid"
- echo "Waiting for target system to finish"
- nc -l -p 9999
- echo "Test finished. Powering off target system"
- ssh -n root@${bootserver} "sispmctl -f $target_powerid"
- scp root@${bootserver}:/nfsroot/${target_host}/REPORT REPORT.${target_arch}.${target_system}.${test}.${libver}
- ssh -n root@${bootserver} "rm /nfsroot/${target_host}/REPORT"
- done 3< $targets
- else
- for arch in $archlist; do
- get_arch_info $arch $lib
- if [ $cont -eq 1 ]; then
- if [ -f "REPORT.${arch}.${emulator}.${test}.${libver}" ]; then
- echo "Skipping already run test $test for $arch and $lib"
- continue
- fi
- fi
- if [ "$arch" = "$skiparchs" ]; then
- echo "Skipping $skiparchs"
- continue
- fi
- if [[ "$allowed_tests" = *${test}* ]]; then
- if [[ "$allowed_libc" = *${lib}* ]]; then
- echo "Compiling for $lib and $arch testing $test"
- build $lib $arch $test
- if [ "$test" != "toolchain" ]; then
- if [[ "$runtime_test" = *${lib}* ]]; then
- runtest $lib $arch $test
- fi
- else
- # fake stamp for continue
- touch REPORT.${arch}.${emulator}.${test}.${libver}
- fi
- else
- echo "$lib not available for $arch"
- fi
- else
- echo "$test not available for $arch and $lib"
- fi
- done
- fi
- done
- echo "All tests finished."
- exit 0
|