• Home
  • Raw
  • Download

Lines Matching +full:armeb +full:- +full:linux +full:- +full:gnueabi

2 set -eo pipefail
17 mkdir -p "${ARCHIVE_DIR}"
19 local -r URL=$1
20 local -r RELATIVE_DIR=$2
21 local -r DESTINATION="${ARCHIVE_DIR}/${RELATIVE_DIR}"
22 if [[ ! -d "${DESTINATION}" ]] ; then
24 local -r ARCHIVE_NAME=$(basename "${URL}")
25 test -f "${ARCHIVE_NAME}" || wget --no-verbose "${URL}"
27 rm -f "${ARCHIVE_NAME}"
36 local -r QEMU_VERSION=${QEMU_VERSION:=5.2.0}
37 local -r QEMU_TARGET=${QEMU_ARCH}-linux-user
39 if echo "${QEMU_VERSION} ${QEMU_TARGET}" | cmp --silent "${QEMU_INSTALL}/.build" -; then
47 rm -rf "${QEMU_INSTALL}"
49 # Checking for a tarball before downloading makes testing easier :-)
50 local -r QEMU_URL="http://wiki.qemu-project.org/download/qemu-${QEMU_VERSION}.tar.xz"
51 local -r QEMU_DIR="qemu-${QEMU_VERSION}"
57 --prefix="${QEMU_INSTALL}" \
58 --target-list="${QEMU_TARGET}" \
59 --audio-drv-list= \
60 --disable-brlapi \
61 --disable-curl \
62 --disable-curses \
63 --disable-docs \
64 --disable-gcrypt \
65 --disable-gnutls \
66 --disable-gtk \
67 --disable-libnfs \
68 --disable-libssh \
69 --disable-nettle \
70 --disable-opengl \
71 --disable-sdl \
72 --disable-virglrenderer \
73 --disable-vte \
74 --enable-modules
76 # --static Not supported on Archlinux
77 # so we use --enable-modules
80 make -j8
87 if [[ -z "${!1}" ]]; then
95 rm -rf "${BUILD_DIR}"
96 mkdir -p "${BUILD_DIR}"
101 local -r LINARO_VERSION=7.5-2019.12
102 …local -r LINARO_ROOT_URL=https://releases.linaro.org/components/toolchain/binaries/${LINARO_VERSIO…
104 local -r GCC_VERSION=7.5.0-2019.12
105 local -r GCC_URL=${LINARO_ROOT_URL}/${TARGET}/gcc-linaro-${GCC_VERSION}-x86_64_${TARGET}.tar.xz
106 local -r GCC_RELATIVE_DIR="gcc-linaro-${GCC_VERSION}-x86_64_${TARGET}"
109 local -r SYSROOT_VERSION=2.25-2019.12
110 …local -r SYSROOT_URL=${LINARO_ROOT_URL}/${TARGET}/sysroot-glibc-linaro-${SYSROOT_VERSION}-${TARGET…
111 local -r SYSROOT_RELATIVE_DIR=sysroot-glibc-linaro-${SYSROOT_VERSION}-${TARGET}
114 local -r SYSROOT_DIR=${ARCHIVE_DIR}/${SYSROOT_RELATIVE_DIR}
115 local -r STAGING_DIR=${ARCHIVE_DIR}/${SYSROOT_RELATIVE_DIR}-stage
116 local -r GCC_DIR=${ARCHIVE_DIR}/${GCC_RELATIVE_DIR}
121 …# ref: https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-linux
123 set(CMAKE_SYSTEM_NAME Linux)
130 set(CMAKE_C_COMPILER \${tools}/bin/${TARGET}-gcc)
131 set(CMAKE_CXX_COMPILER \${tools}/bin/${TARGET}-g++)
138 CMAKE_ADDITIONAL_ARGS+=( -DCMAKE_TOOLCHAIN_FILE="${TOOLCHAIN_FILE}" )
139 QEMU_ARGS+=( -L "${SYSROOT_DIR}" )
140 QEMU_ARGS+=( -E LD_LIBRARY_PATH=/lib )
144 # ref: https://codescape.mips.com/components/toolchain/2020.06-01/downloads.html
145 # ref: https://codescape.mips.com/components/toolchain/2019.02-04/downloads.html
146 local -r DATE=2020.06-01
147 #local -r DATE=2019.02-04
148 …local -r CODESCAPE_URL=https://codescape.mips.com/components/toolchain/${DATE}/Codescape.GNU.Tools…
149 …#local -r CODESCAPE_URL=https://codescape.mips.com/components/toolchain/${DATE}/Codescape.GNU.Tool…
150 local -r GCC_URL=${CODESCAPE_URL}
151 local -r GCC_RELATIVE_DIR="mips-mti-linux-gnu/${DATE}"
152 #local -r GCC_RELATIVE_DIR="mips-img-linux-gnu/${DATE}"
155 local -r GCC_DIR=${ARCHIVE_DIR}/${GCC_RELATIVE_DIR}
161 MIPS_FLAGS="-EB -mips32r6 -mabi=32"
162 FLAVOUR="mips-r6-hard"
163 #MIPS_FLAGS="-EB -mips32r2 -mabi=32"
164 #FLAVOUR="mips-r2-hard"
168 MIPS_FLAGS="-EL -mips32r6 -mabi=32"
169 FLAVOUR="mipsel-r6-hard"
170 #MIPS_FLAGS="-EL -mips32r2 -mabi=32"
171 #FLAVOUR="mipsel-r2-hard"
175 MIPS_FLAGS="-EB -mips64r6 -mabi=64"
176 FLAVOUR="mips-r6-hard"
177 #FLAVOUR="mips-r2-hard"
181 MIPS_FLAGS="-EL -mips64r6 -mabi=64"
182 FLAVOUR="mipsel-r6-hard"
183 #FLAVOUR="mipsel-r2-hard"
190 local -r SYSROOT_DIR=${GCC_DIR}/sysroot
191 local -r STAGING_DIR=${SYSROOT_DIR}-stage
196 …# ref: https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-linux
198 set(CMAKE_SYSTEM_NAME Linux)
206 set(CMAKE_C_COMPILER \${tools}/bin/mips-mti-linux-gnu-gcc)
207 #set(CMAKE_C_COMPILER \${tools}/bin/mips-img-linux-gnu-gcc)
210 set(CMAKE_CXX_COMPILER \${tools}/bin/mips-mti-linux-gnu-g++)
211 #set(CMAKE_CXX_COMPILER \${tools}/bin/mips-img-linux-gnu-g++)
221 CMAKE_ADDITIONAL_ARGS+=( -DCMAKE_TOOLCHAIN_FILE="${TOOLCHAIN_FILE}" )
222 QEMU_ARGS+=( -L "${SYSROOT_DIR}/${FLAVOUR}" )
223 local -r LIBC_DIR=${GCC_DIR}/mips-mti-linux-gnu/lib/${FLAVOUR}/${LIBC_DIR_SUFFIX}
224 #local -r LIBC_DIR=${GCC_DIR}/mips-img-linux-gnu/lib/${FLAVOUR}/${LIBC_DIR_SUFFIX}
225 QEMU_ARGS+=( -E LD_PRELOAD="${LIBC_DIR}/libstdc++.so.6:${LIBC_DIR}/libgcc_s.so.1" )
230 set -x
232 cmake -S. -B"${BUILD_DIR}" "${CMAKE_DEFAULT_ARGS[@]}" "${CMAKE_ADDITIONAL_ARGS[@]}"
233 cmake --build "${BUILD_DIR}" --target all -j8 -v
244 RUN_CMD="${QEMU_INSTALL}/bin/qemu-${QEMU_ARCH} ${QEMU_ARGS[*]}"
247 set -x
255 local -r NAME=$(basename "$0")
256 echo -e "$NAME - Build using a cross toolchain.
259 \t$NAME [-h|--help] [toolchain|build|qemu|test|all]
267 \t\taarch64-linux-gnu aarch64_be-linux-gnu
268 \t\tarm-linux-gnueabihf armv8l-linux-gnueabihf arm-linux-gnueabi
269 \t\tarmeb-linux-gnueabihf armeb-linux-gnueabi
274 \t-h --help: show this help text
283 export TARGET=aarch64-linux-gnu
286 * One-liner:
287 TARGET=aarch64-linux-gnu $0"
293 -h | --help)
299 declare -r PROJECT_DIR="$(cd -P -- "$(dirname -- "$0")/.." && pwd -P)"
300 declare -r ARCHIVE_DIR="${PROJECT_DIR}/build_cross/archives"
301 declare -r BUILD_DIR="${PROJECT_DIR}/build_cross/${TARGET}"
302 declare -r TOOLCHAIN_FILE=${ARCHIVE_DIR}/toolchain_${TARGET}.cmake
311 declare -a CMAKE_DEFAULT_ARGS=( -G ${CMAKE_GENERATOR:-"Ninja"} )
312 declare -a CMAKE_ADDITIONAL_ARGS=()
314 declare -a QEMU_ARGS=()
317 declare -r QEMU_ARCH=x86_64 ;;
318 arm-linux-gnueabihf | armv8l-linux-gnueabihf | arm-linux-gnueabi)
320 declare -r QEMU_ARCH=arm ;;
321 armeb-linux-gnueabihf | armeb-linux-gnueabi)
323 declare -r QEMU_ARCH=DISABLED ;;
324 aarch64-linux-gnu)
326 declare -r QEMU_ARCH=aarch64 ;;
327 aarch64_be-linux-gnu)
329 declare -r QEMU_ARCH=DISABLED ;;
332 declare -r QEMU_ARCH=mips ;;
335 declare -r QEMU_ARCH=mipsel ;;
338 declare -r QEMU_ARCH=mips64 ;;
341 declare -r QEMU_ARCH=mips64el ;;
346 declare -r QEMU_INSTALL=${ARCHIVE_DIR}/qemu-${QEMU_ARCH}
363 main "${1:-all}"