mirror of
https://github.com/opencontainers/runc.git
synced 2025-09-27 03:46:19 +08:00

Since commit 871057d8
we no longer have cc_platform.mk.
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
82 lines
1.8 KiB
Bash
82 lines
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
# set_cross_vars sets a few environment variables used for cross-compiling,
|
|
# based on the architecture specified in $1.
|
|
function set_cross_vars() {
|
|
GOARCH="$1" # default, may be overridden below
|
|
unset GOARM
|
|
|
|
PLATFORM=linux-gnu
|
|
# openSUSE has a custom PLATFORM
|
|
if grep -iq "ID_LIKE=.*suse" /etc/os-release; then
|
|
PLATFORM=suse-linux
|
|
is_suse=1
|
|
fi
|
|
|
|
case $1 in
|
|
386)
|
|
# Always use the 64-bit compiler to build the 386 binary, which works
|
|
# for the more common cross-build method for x86 (namely, the
|
|
# equivalent of dpkg --add-architecture).
|
|
local cpu_type
|
|
if [ -v is_suse ]; then
|
|
# There is no x86_64-suse-linux-gcc, so use the native one.
|
|
HOST=
|
|
cpu_type=i586
|
|
else
|
|
HOST=x86_64-${PLATFORM}
|
|
cpu_type=i686
|
|
fi
|
|
CFLAGS="-m32 -march=$cpu_type ${CFLAGS[*]}"
|
|
;;
|
|
amd64)
|
|
if [ -n "${is_suse:-}" ]; then
|
|
# There is no x86_64-suse-linux-gcc, so use the native one.
|
|
HOST=
|
|
else
|
|
HOST=x86_64-${PLATFORM}
|
|
fi
|
|
;;
|
|
arm64)
|
|
HOST=aarch64-${PLATFORM}
|
|
;;
|
|
armel)
|
|
HOST=arm-${PLATFORM}eabi
|
|
GOARCH=arm
|
|
GOARM=5
|
|
;;
|
|
armhf)
|
|
HOST=arm-${PLATFORM}eabihf
|
|
GOARCH=arm
|
|
# "armhf" means ARMv7 for Debian, ARMv6 for Raspbian.
|
|
# ARMv6 is chosen here for compatibility.
|
|
#
|
|
# https://wiki.debian.org/RaspberryPi
|
|
#
|
|
# > Raspberry Pi OS builds a single image for all of the Raspberry families,
|
|
# > so you will get an armhf 32-bit, hard floating-point system, but built
|
|
# > for the ARMv6 ISA (with VFP2), unlike Debian's ARMv7 ISA (with VFP3)
|
|
# > port.
|
|
GOARM=6
|
|
;;
|
|
ppc64le)
|
|
HOST=powerpc64le-${PLATFORM}
|
|
;;
|
|
riscv64)
|
|
HOST=riscv64-${PLATFORM}
|
|
;;
|
|
s390x)
|
|
HOST=s390x-${PLATFORM}
|
|
;;
|
|
*)
|
|
echo "set_cross_vars: unsupported architecture: $1" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
CC="${HOST:+$HOST-}gcc"
|
|
STRIP="${HOST:+$HOST-}strip"
|
|
|
|
export HOST CFLAGS GOARM GOARCH CC STRIP
|
|
}
|