From c6d71327c5cfe43a2e24c737ddc5b17d56a84d47 Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 30 Aug 2019 23:11:59 +0200 Subject: [PATCH] update --- .travis.yml | 119 +++++++++++------ danio_gcc.sh | 354 ++++++++++++++++++++++++++++++++++----------------- 2 files changed, 320 insertions(+), 153 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3450e31..0e40cd5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,50 +1,93 @@ language: c sudo: required dist: xenial -compiler: gcc -os: linux +compiler: + - gcc +os: + - linux + - osx env: - - t=aarch64-danio-linux - - t=alpha-danio-linux - - t=arm-danio-eabi - - t=arc-danio-linux - - t=c6x-danio-linux - - t=parisc64-danio-linux - - t=parisc-danio-linux - - t=i386-danio-linux -# - t=i686-danio-gnu - - t=ia64-danio-linux - - t=m68k-danio-linux - - t=microblaze-danio-linux - - t=mips64-danio-linux - - t=mips-danio-linux - - t=powerpc32-danio-linux - - t=powerpc64-danio-linux - - t=s390-danio-linux - - t=sh2-danio-linux - - t=sh4-danio-linux - - t=riscv32-danio-linux - - t=riscv64-danio-linux - - t=sparc-danio-linux - - t=sparc64-danio-linux - - t=x86_64-danio-linux - - t=xtensa-danio-linux - - t=nds32le-danio-linux - - t=or1k-danio-linux - - t=hexagon-danio-linux - - t=am33_2.0-danio-linux - - t=bfin-danio-linux - - t=crisv32-danio-linux - - t=frv-danio-linux - - t=m32r-danio-linux - - t=tilepro-danio-linux - - t=tilegx-danio-linux + - t=aarch64-danio-linux METHOD=newlib + - t=alpha-danio-linux METHOD=newlib + - t=arm-danio-eabi METHOD=newlib + - t=arc-danio-linux METHOD=newlib + - t=c6x-danio-linux METHOD=newlib + - t=parisc64-danio-linux METHOD=newlib + - t=parisc-danio-linux METHOD=newlib + - t=i386-danio-linux METHOD=newlib + - t=ia64-danio-linux METHOD=newlib + - t=m68k-danio-linux METHOD=newlib + - t=microblaze-danio-linux METHOD=newlib + - t=microblaze64-danio-linux METHOD=newlib + - t=mips64-danio-linux METHOD=newlib + - t=mips-danio-linux METHOD=newlib + - t=powerpc32-danio-linux METHOD=newlib + - t=powerpc64-danio-linux METHOD=newlib + - t=s390-danio-linux METHOD=newlib + - t=sh2-danio-linux METHOD=newlib + - t=sh4-danio-linux METHOD=newlib + - t=riscv32-danio-linux METHOD=newlib + - t=riscv64-danio-linux METHOD=newlib + - t=sparc-danio-linux METHOD=newlib + - t=sparc64-danio-linux METHOD=newlib + - t=x86_64-danio-linux METHOD=newlib + - t=xtensa-danio-linux METHOD=newlib + - t=nds32le-danio-linux METHOD=newlib + - t=or1k-danio-linux METHOD=newlib + - t=hexagon-danio-linux METHOD=newlib + - t=am33_2.0-danio-linux METHOD=newlib + - t=bfin-danio-linux METHOD=newlib + - t=crisv32-danio-linux METHOD=newlib + - t=frv-danio-linux METHOD=newlib + - t=m32r-danio-linux METHOD=newlib + - t=tilepro-danio-linux METHOD=newlib + - t=tilegx-danio-linux METHOD=newlib + + - t=aarch64-danio-linux METHOD=glibc + - t=alpha-danio-linux METHOD=glibc + - t=arm-danio-eabi METHOD=glibc + - t=arc-danio-linux METHOD=glibc + - t=c6x-danio-linux METHOD=glibc + - t=parisc64-danio-linux METHOD=glibc + - t=parisc-danio-linux METHOD=glibc + - t=i386-danio-linux METHOD=glibc + - t=ia64-danio-linux METHOD=glibc + - t=m68k-danio-linux METHOD=glibc + - t=microblaze-danio-linux METHOD=glibc + - t=microblaze64-danio-linux METHOD=glibc + - t=mips64-danio-linux METHOD=glibc + - t=mips-danio-linux METHOD=glibc + - t=powerpc32-danio-linux METHOD=glibc + - t=powerpc64-danio-linux METHOD=glibc + - t=s390-danio-linux METHOD=glibc + - t=sh2-danio-linux METHOD=glibc + - t=sh4-danio-linux METHOD=glibc + - t=riscv32-danio-linux METHOD=glibc + - t=riscv64-danio-linux METHOD=glibc + - t=sparc-danio-linux METHOD=glibc + - t=sparc64-danio-linux METHOD=glibc + - t=x86_64-danio-linux METHOD=glibc + - t=xtensa-danio-linux METHOD=glibc + - t=nds32le-danio-linux METHOD=glibc + - t=or1k-danio-linux METHOD=glibc + - t=hexagon-danio-linux METHOD=glibc + - t=am33_2.0-danio-linux METHOD=glibc + - t=bfin-danio-linux METHOD=glibc + - t=crisv32-danio-linux METHOD=glibc + - t=frv-danio-linux METHOD=glibc + - t=m32r-danio-linux METHOD=glibc + - t=tilepro-danio-linux METHOD=glibc + - t=tilegx-danio-linux METHOD=glibc before_script: | + chmod +x -v *.sh + if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt update -qq sudo apt install -qq -y rsync sshpass git-core gnupg flex bison lftp gperf m4 build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev libx11-dev lib32z-dev libxml2-utils xsltproc schedtool gettext texinfo sudo apt-get clean - chmod +x -v *.sh + else + brew install rsync gcc git gnupg flex bison gperf gperftools m4 zip unzip curl zlib docbook-xsl gettext texinfo texi2html + fi script: | build() { diff --git a/danio_gcc.sh b/danio_gcc.sh index 60feec7..c66d25d 100755 --- a/danio_gcc.sh +++ b/danio_gcc.sh @@ -1,125 +1,249 @@ -export TARGET="${1}" -export PREFIX="`pwd`/rel-bin/${TARGET}" -export PATH="${PREFIX}/bin:${PATH}" -export OUT="`pwd`/out" +#!/bin/bash -#### ZMIEŃ, JEŻELI CHCESZ INNE WERSJE, DOMYŚLNE "master", CZYLI "BLEEDING EDGE" -export binutils_version="master" -export libc_version="master" -export linux_version="master" -export gcc_version="master" +set -e +trap 'previous_command=$this_command; this_command=$BASH_COMMAND' DEBUG +trap 'echo FAILED COMMAND: $previous_command' EXIT -#### TU NIE ZMIENIAJ vvv -export nproc="$(( `grep -c "processor" /proc/cpuinfo` * 2 ))" -export ARGS="--enable-multilib --enable-multiarch --enable-targets=all --disable-werror" -#### TU NIE ZMIENIAJ ^^^ - - -echo "${libc_version}" >.tmp -if grep -q "/" .tmp; then - export _libc_version="`echo ${libc_version} | tr '/' '-'`" -else - export _libc_version="${libc_version}" -fi -rm -rf .tmp - -case "${2}" in -64) - export CC="cc -m64" - export CXX="c++ -m64" ;; -32) - export CC="cc -m32" - export CXX="c++ -m32" ;; -esac -mkdir -pv out - -download() +runit() { - if [ ! -d gcc-${gcc_version} ]; then - git clone --depth=1 -b ${gcc_version} "git://github.com/gcc-mirror/gcc" gcc-${gcc_version} || return ${?} - fi - if [ ! -d glibc-${_libc_version} ]; then - git clone --depth=1 -b ${libc_version} "git://github.com/bminor/glibc" glibc-${_libc_version} || return ${?} - fi - if [ ! -d linux-${linux_version} ]; then - git clone --depth=1 -b ${linux_version} "git://github.com/torvalds/linux" linux-${linux_version} || return ${?} - fi - if [ ! -d binutils-gdb-${binutils_version} ]; then - git clone --depth=1 -b ${binutils_version} "git://github.com/bminor/binutils-gdb" binutils-gdb-${binutils_version} || return ${?} - fi -} -build() -{ - make -C linux-${linux_version} ARCH="`echo ${TARGET} | cut -f 1 -d '-' | sed -e s/i.86/x86/ -e s/x86_64/x86/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/ -e s/s390x/s390/ -e s/parisc64/parisc/ -e s/ppc.*/powerpc/ -e s/mips.*/mips/ -e s/sh[234].*/sh/ -e s/aarch64.*/arm64/ -e s/riscv.*/riscv/`" INSTALL_HDR_PATH="${PREFIX}/${TARGET}" headers_install || return ${?} - find ${PREFIX}/${TARGET} -name "..install.cmd" | xargs rm -rf || return ${?} - find ${PREFIX}/${TARGET} -name ".install" | xargs rm -rf || return ${?} - mkdir -pv build-binutils || return ${?} - (cd build-binutils; ../binutils-gdb-${binutils_version}/configure --target="${TARGET}" --prefix="${PREFIX}" --disable-nls --enable-obsolete --disable-debug ${ARGS}) || return ${?} - make -C build-binutils -j${nproc} || return ${?} - make -C build-binutils -j${nproc} install || return ${?} - if [ ! -e .dl_ok ]; then - (cd gcc-${gcc_version}; contrib/download_prerequisites) || return ${?} - touch .dl_ok || return ${?} - fi - mkdir -pv build-gcc || return ${?} - (cd build-gcc; ../gcc-${gcc_version}/configure --target="${TARGET}" --prefix="${PREFIX}" --enable-languages="c,c++" --with-pkgversion="*DANiO* T00LCHAIN" ${ARGS} --disable-libgomp) || return ${?} - make -C build-gcc -j${nproc} all-gcc || return ${?} - make -C build-gcc -j${nproc} install-gcc || return ${?} - mkdir -pv build-glibc || return ${?} - env CC="${TARGET}-gcc" CXX="${TARGET}-g++" sh -c '(cd build-glibc; ../glibc-${_libc_version}/configure --prefix="${PREFIX}/${TARGET}" --host="${TARGET}" --with-headers="${PREFIX}/${TARGET}/include" --with-pkgversion="*DANiO* T00LCHAIN" --enable-add-ons ${ARGS})' - make -C build-glibc -j${nproc} install-bootstrap-headers=yes install-headers || return ${?} - make -C build-glibc -j${nproc} csu/subdir_lib || return ${?} - mkdir -pv ${PREFIX}/${TARGET}/lib || return ${?} - cp -ravf build-glibc/csu/crt1.o build-glibc/csu/crti.o build-glibc/csu/crtn.o ${PREFIX}/${TARGET}/lib || return ${?} - ${TARGET}-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o ${PREFIX}/${TARGET}/lib/libc.so || return ${?} - touch ${PREFIX}/${TARGET}/include/gnu/stubs.h || return ${?} - make -C build-gcc -j${nproc} all-target-libgcc || return ${?} - make -C build-gcc -j${nproc} install-target-libgcc || return ${?} - make -C build-glibc -j${nproc} || return ${?} - make -C build-glibc -j${nproc} install || return ${?} - make -C build-gcc -j${nproc} all-target-libstdc++-v3 || return ${?} - make -C build-gcc -j${nproc} install-target-libstdc++-v3 || return ${?} -} -strip_n_pack() -{ - find ${PREFIX} | xargs file | grep "ELF" | cut -f 1 -d ":" | xargs strip -S --strip-unneeded #for host - find ${PREFIX}/${TARGET} | xargs file | grep "ELF" | cut -f 1 -d ":" | xargs ${TARGET}-strip -S --strip-unneeded #for sysroot - if [ "${1}" == "64" ]; then - (cd rel-bin; tar -cJvf "${OUT}/${TARGET}-GCC_${gcc_version}-`date +"%d-%m-%Y"`-`uname -s`_x86-64.txz" ${TARGET}) #|| return ${?} + export TARGET="${1}" + export PREFIX="`pwd`/rel-bin/${TARGET}" + export PATH="${PREFIX}/bin:${PATH}" + export OUT="`pwd`/out" + + #### ZMIEŃ, JEŻELI CHCESZ INNE WERSJE, DOMYŚLNE "master", CZYLI "BLEEDING EDGE" + export binutils_version="master" + export glibc_version="master" + export linux_version="master" + export gcc_version="master" + export newlib_version="master" + + #### TU NIE ZMIENIAJ vvv + if uname -s | grep -q -i "linux"; then + export nproc="$(( `nproc --all` * 2 ))" + elif uname -s | grep -q -i "darwin"; then + export nproc="$(( `sysctl -n hw.ncpu` * 2 ))" else - (cd rel-bin; tar -cJvf "${OUT}/${TARGET}-GCC_${gcc_version}-`date +"%d-%m-%Y"`-`uname -s`_x86-32.txz" ${TARGET}) #|| return ${?} + if command -v nproc >/dev/null; then + export nproc="$(( `nproc --all` * 2 ))" + else + #domyślnie dwa rdzenie + export nproc="2" + fi fi -} -test_gcc() -{ - echo -n "int main(){return 0;}" >test.cpp - if ${TARGET}-g++ test.cpp -o test; then - echo "${TARGET}-g++ TEST PASSED" - rm -rf test{.cpp,} - return 0 - else - echo "${TARGET}-g++ TEST FAILED" - rm -rf test{.cpp,} + export ARGS="--enable-multilib --enable-multiarch --enable-targets=all --disable-werror" + if [ "${buildnewlib}" -ne "0" ]; then + export EXTRA_ARGS="--with-newlib" + #--with-headers=\"`readlink -f newlib-dl/newlib/libc/include`\" + fi + #### TU NIE ZMIENIAJ ^^^ + + case "${2}" in + 64) + export CC="cc -m64" + export CXX="c++ -m64" ;; + 32) + export CC="cc -m32" + export CXX="c++ -m32" ;; + esac + mkdir -pv out + + download() + { + if [ ! -d gcc-dl ]; then + git clone --depth=1 -b ${gcc_version} "git://github.com/gcc-mirror/gcc" gcc-dl || return ${?} + fi + if [ ! -d glibc-dl ]; then + git clone --depth=1 -b ${glibc_version} "git://github.com/bminor/glibc" glibc-dl || return ${?} + fi + if [ ! -d linux-dl ]; then + git clone --depth=1 -b ${linux_version} "git://github.com/torvalds/linux" linux-dl || return ${?} + fi + if [ ! -d binutils-gdb-dl ]; then + git clone --depth=1 -b ${binutils_version} "git://github.com/bminor/binutils-gdb" binutils-gdb-dl || return ${?} + fi + if [ ! -d newlib-dl ]; then + git clone --depth=1 -b ${newlib_version} "git://github.com/bminor/newlib" newlib-dl || return ${?} + fi + } + build() + { + if [ "${buildnewlib}" -eq "0" ]; then + make -C linux-dl ARCH="`echo ${TARGET} | cut -f 1 -d '-' | sed -e s/i.86/x86/ -e s/x86_64/x86/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/ -e s/s390x/s390/ -e s/parisc64/parisc/ -e s/ppc.*/powerpc/ -e s/mips.*/mips/ -e s/sh[234].*/sh/ -e s/aarch64.*/arm64/ -e s/riscv.*/riscv/`" INSTALL_HDR_PATH="${PREFIX}/${TARGET}" headers_install || return ${?} + find ${PREFIX}/${TARGET} -name "..install.cmd" | xargs rm -rf || return ${?} + find ${PREFIX}/${TARGET} -name ".install" | xargs rm -rf || return ${?} + fi + mkdir -pv build-binutils || return ${?} + (cd build-binutils; ../binutils-gdb-dl/configure --target="${TARGET}" --prefix="${PREFIX}" --disable-nls --enable-obsolete --disable-debug ${ARGS}) || return ${?} + make -C build-binutils -j${nproc} || return ${?} + make -C build-binutils -j${nproc} install || return ${?} + if [ ! -e .dl_ok ]; then + (cd gcc-dl; contrib/download_prerequisites) || return ${?} + touch .dl_ok || return ${?} + fi + mkdir -pv build-gcc || return ${?} + (cd build-gcc; ../gcc-dl/configure --target="${TARGET}" --prefix="${PREFIX}" --enable-languages="c,c++" --with-pkgversion="*DANiO* GCC (`echo ${TARGET} | cut -f 1 -d '-'`)" ${ARGS} ${EXTRA_ARGS}) || return ${?} + make -C build-gcc -j${nproc} all-gcc || return ${?} + make -C build-gcc -j${nproc} install-gcc || return ${?} + if [ "${buildnewlib}" -ne "0" ]; then + mkdir -pv build-newlib || return ${?} + (cd build-newlib; ../newlib-dl/configure --prefix="${PREFIX}" --target="${TARGET}" ${ARGS}) || return ${?} + make -C build-newlib -j${nproc} || return ${?} + make -C build-newlib -j${nproc} install || return ${?} + #(cd gcc-dl; ln -svf ../newlib-dl/newlib newlib; ln -svf ../newlib-dl/libgloss libgloss) || return ${?} + make -C build-gcc -j${nproc} all-target-libgcc || return ${?} + make -C build-gcc -j${nproc} install-target-libgcc || return ${?} + make -C build-gcc -j${nproc} all-target-libstdc++-v3 || return ${?} + make -C build-gcc -j${nproc} install-target-libstdc++-v3 || return ${?} + #make -C build-gcc -j${nproc} || return ${?} + #make -C build-gcc -j${nproc} install || return ${?} + else + mkdir -pv build-glibc || return ${?} + env CC="${TARGET}-gcc" CXX="${TARGET}-g++" sh -c '(cd build-glibc; ../glibc-dl/configure --prefix="${PREFIX}/${TARGET}" --host="${TARGET}" --with-headers="${PREFIX}/${TARGET}/include" --with-pkgversion="*DANiO* GLIBC (`echo ${TARGET} | cut -f 1 -d '-'`)" --enable-add-ons ${ARGS})' || return ${?} + make -C build-glibc -j${nproc} install-bootstrap-headers=yes install-headers || return ${?} + make -C build-glibc -j${nproc} csu/subdir_lib || return ${?} + mkdir -pv ${PREFIX}/${TARGET}/lib || return ${?} + cp -ravf build-glibc/csu/crt1.o build-glibc/csu/crti.o build-glibc/csu/crtn.o ${PREFIX}/${TARGET}/lib || return ${?} + ${TARGET}-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o ${PREFIX}/${TARGET}/lib/libc.so || return ${?} + touch ${PREFIX}/${TARGET}/include/gnu/stubs.h || return ${?} + make -C build-gcc -j${nproc} all-target-libgcc || return ${?} + make -C build-gcc -j${nproc} install-target-libgcc || return ${?} + make -C build-glibc -j${nproc} || return ${?} + make -C build-glibc -j${nproc} install || return ${?} + make -C build-gcc -j${nproc} all-target-libstdc++-v3 || return ${?} + make -C build-gcc -j${nproc} install-target-libstdc++-v3 || return ${?} + fi + } + strip_n_pack() + { + find ${PREFIX} -type f | xargs file | grep "ELF" | cut -f 1 -d ":" | xargs strip -S --strip-unneeded #for host + find ${PREFIX}/${TARGET} -type f -name "*.a" | xargs ${TARGET}-strip -S --strip-unneeded #for sysroot + find ${PREFIX}/${TARGET} -type f -name "*.a" | xargs ${TARGET}-ranlib #for sysroot + find ${PREFIX}/${TARGET} -type f | xargs file | grep "ELF" | cut -f 1 -d ":" | xargs ${TARGET}-strip -S --strip-unneeded #for sysroot + if [ "${buildnewlib}" -ne "0" ]; then + if [ "${1}" == "64" ]; then + (cd rel-bin; tar -cJvf "${OUT}/${TARGET}-GCC_${gcc_version}-newlib-`date +"%d-%m-%Y"`-`uname -s`_x86-64.txz" ${TARGET}) #|| return ${?} + else + (cd rel-bin; tar -cJvf "${OUT}/${TARGET}-GCC_${gcc_version}-newlib-`date +"%d-%m-%Y"`-`uname -s`_x86-32.txz" ${TARGET}) #|| return ${?} + fi + else + if [ "${1}" == "64" ]; then + (cd rel-bin; tar -cJvf "${OUT}/${TARGET}-GCC_${gcc_version}-glibc-`date +"%d-%m-%Y"`-`uname -s`_x86-64.txz" ${TARGET}) #|| return ${?} + else + (cd rel-bin; tar -cJvf "${OUT}/${TARGET}-GCC_${gcc_version}-glibc-`date +"%d-%m-%Y"`-`uname -s`_x86-32.txz" ${TARGET}) #|| return ${?} + fi + fi + } + test_gcc() + { + echo -n "int main(){return 0;}" >test.cpp + if ${TARGET}-g++ test.cpp -o test; then + echo "${TARGET}-g++ TEST PASSED" + rm -rf test{.cpp,} + return 0 + else + echo "${TARGET}-g++ TEST FAILED" + rm -rf test{.cpp,} + return 1 + fi + } + + if [ "${clean}" -ne "0" ]; then + rm -rf build-* + fi + if ! download; then + echo "Error at \"download_n_extract\" section" + return 1 + fi + if ! build; then + echo "Error at \"build\" section" + return 1 + fi + if ! test_gcc; then + echo "Error at \"test_gcc\" section" + return 1 + fi + if ! strip_n_pack ${2}; then + echo "Error at \"strip_n_pack ${2}\" section" return 1 fi } -if [ -n "${clean}" ]; then - rm -rf build-* -fi -if ! download; then - echo "STAGE=${TARGET} MSG='at \"download_n_extract\" section'" >.error - exit 1 -fi -if ! build; then - echo "STAGE=${TARGET} MSG='at \"build\" section'" >.error - exit 1 -fi -if ! test_gcc; then - echo "STAGE=${TARGET} MSG='at \"test_gcc\" section'" >.error - exit 1 -fi -if ! strip_n_pack ${2}; then - echo "STAGE=${TARGET} MSG='at \"strip_n_pack ${2}\" section'" >.error - exit 1 +targets="`grep ' - t=' .travis.yml | cut -f 2 -d =`" +if [ "${AUTOBUILD}" -ne "0" ]; then + export clean="1" + if [ "${METHOD}" == "newlib" ]; then + export buildnewlib="1" + for i in ${targets}; do + runit ${i} 32 + runit ${i} 64 + done + elif [ "${METHOD}" == "glibc" ]; then + export buildnewlib="0" + for i in ${targets}; do + if [ "`echo ${i} | cut -f 3 -d -`" == "eabi" ]; then continue; fi + if [ "`echo ${i} | cut -f 3 -d -`" == "elf" ]; then continue; fi + runit ${i} 32 + runit ${i} 64 + done + else + echo "UNKNOWN OR EMPTY LIBC!" + echo "USE ONLY METHOD=\"glibc\" OR METHOD=\"newlib\" AS BASH EXVIRONMENT!" + fi +else + while :; do + reset || clear + echo "Please select architecture:" + for i in ${targets}; do + echo ${i} | cut -f 1 -d '-' + done + echo "------" + read arch + break + done + while :; do + reset || clear + echo "Would you like to build:" + echo "[1] is newlib toolchain" + echo "[2] is glibc toolchain" + echo "------" + echo "NOTE: On \"eabi\" and \"elf\" toolchains use newlib!" + read METHOD + case ${METHOD} in + 1) export buildnewlib="1"; break ;; + 2) export buildnewlib="0"; break ;; + *) echo "ONLY USE \"1\" or \"2\"!"; sleep 2 ;; + esac + done + while :; do + reset || clear + echo "what kind of based toolchain?" + echo "[1] is eabi" + echo "[2] is linux" + echo "[3] is elf" + read BASE + case ${BASE} in + 1) export BASE="eabi"; break ;; + 2) export BASE="linux"; break ;; + 2) export BASE="elf"; break ;; + *) echo "ONLY USE \"1\", \"2\" or \"3\"!"; sleep 2 ;; + esac + done + while :; do + reset || clear + echo "What kind of binary format for final toolchain?" + echo "[1] is 32-bits (i686)" + echo "[2] is 64-bits (amd64)" + echo "------" + echo "NOTE: On 32-bits (i686) host machine you *CAN NOT* build 64-bits (amd64) binary format of toolchain!" + read BINARY + case ${BINARY} in + 1) export BINARY="32"; break ;; + 2) export BINARY="64"; break ;; + *) echo "ONLY USE \"1\" or \"2\"!"; sleep 2 ;; + esac + done + runit "${arch}-danio-${BASE}" "${BINARY}" fi + +trap - EXIT