mirror of
https://github.com/opencontainers/runc.git
synced 2026-04-24 00:30:44 +08:00
8689e50cbe
pathrs-lite supports transparently switching to libpathrs.so as the backend with the "libpathrs" build tag. In order to make this work properly with our CI and release build scripts, we we need to have a similar setup as with we do with libseccomp. Signed-off-by: Aleksa Sarai <cyphar@cyphar.com>
88 lines
1.7 KiB
Bash
88 lines
1.7 KiB
Bash
#!/bin/bash
|
|
|
|
# get_platform computes the platform section of target triples on this OS.
|
|
function get_platform() {
|
|
# Fedora doesn't have ID_LIKE and only has ID=fedora, so we need to
|
|
# construct a fake ID_LIKE to treat AlmaLinux and Fedora the same way.
|
|
local ID_LIKE
|
|
# shellcheck source=/etc/os-release disable=SC1091 # outside our sources
|
|
ID_LIKE="$(
|
|
source /etc/os-release
|
|
echo "${ID:-} ${ID_LIKE:-}"
|
|
)"
|
|
|
|
local PLATFORM
|
|
case "$ID_LIKE" in
|
|
*suse*)
|
|
PLATFORM=suse-linux
|
|
;;
|
|
*rhel* | *fedora* | *centos*)
|
|
PLATFORM=redhat-linux
|
|
;;
|
|
*)
|
|
PLATFORM=linux-gnu
|
|
;;
|
|
esac
|
|
echo "$PLATFORM"
|
|
}
|
|
|
|
# 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="$(get_platform)"
|
|
[[ "$PLATFORM" == *suse* ]] && is_suse=1
|
|
|
|
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
|
|
cpu_type=i586
|
|
else
|
|
cpu_type=i686
|
|
fi
|
|
HOST=x86_64-${PLATFORM}
|
|
CFLAGS="-m32 -march=$cpu_type ${CFLAGS[*]}"
|
|
;;
|
|
amd64)
|
|
HOST=x86_64-${PLATFORM}
|
|
;;
|
|
arm64)
|
|
HOST=aarch64-${PLATFORM}
|
|
;;
|
|
armel)
|
|
HOST=arm-${PLATFORM}eabi
|
|
GOARCH=arm
|
|
GOARM=5
|
|
;;
|
|
armhf)
|
|
HOST=arm-${PLATFORM}eabihf
|
|
GOARCH=arm
|
|
GOARM=7
|
|
;;
|
|
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
|
|
}
|