Fix build scripts to be able to build with linuxarm64 image

This commit is contained in:
tsukumi 2022-05-10 07:37:42 +09:00
parent 079792d4e1
commit abb2e5a95a
6 changed files with 36 additions and 5 deletions

View file

@ -29,11 +29,16 @@ ffbuild_dockerbuild() {
--enable-threads
--with-combined-threads
--with-incoming-stack-boundary=2
--enable-sse2
--enable-avx
--enable-avx2
)
if [[ $TARGET != linuxarm64 ]]; then
myconf+=(
--enable-sse2
--enable-avx
--enable-avx2
)
fi
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"

View file

@ -36,6 +36,11 @@ ffbuild_dockerbuild() {
--cross-compile-prefix="$FFBUILD_CROSS_PREFIX"
linux-x86_64
)
elif [[ $TARGET == linuxarm64 ]]; then
myconf+=(
--cross-compile-prefix="$FFBUILD_CROSS_PREFIX"
linux-aarch64
)
else
echo "Unknown target"
return -1

View file

@ -32,11 +32,16 @@ ffbuild_dockerbuild() {
--target=x86-win32-gcc
)
export CROSS="$FFBUILD_CROSS_PREFIX"
elif [[ $TARGET == linux* ]]; then
elif [[ $TARGET == linux64 ]]; then
myconf+=(
--target=x86_64-linux-gcc
)
export CROSS="$FFBUILD_CROSS_PREFIX"
elif [[ $TARGET == linuxarm64 ]]; then
myconf+=(
--target=arm64-linux-gcc
)
export CROSS="$FFBUILD_CROSS_PREFIX"
else
echo "Unknown target"
return -1

View file

@ -37,6 +37,11 @@ ffbuild_dockerbuild() {
OS=linux
ARCH=x86_64
)
elif [[ $TARGET == linuxarm64 ]]; then
myconf+=(
OS=linux
ARCH=aarch64
)
else
echo "Unknown target"
return -1

View file

@ -25,6 +25,12 @@ ffbuild_dockerbuild() {
)
fi
# For some reason, RUSTFLAGS, CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER,
# and .cargo/config.toml can't work, so have to put a symbolic link
if [[ $TARGET == linuxarm64 ]]; then
ln -s /opt/ct-ng/bin/aarch64-ffbuild-linux-gnu-gcc /opt/ct-ng/bin/aarch64-linux-gnu-gcc
fi
cargo cinstall "${myconf[@]}"
}

View file

@ -15,7 +15,12 @@ ffbuild_dockerbuild() {
mkdir build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DBUILD_SHARED_LIBS=OFF -DUSE_OMP=ON ..
local disable_sse2=""
if [[ $TARGET == linuxarm64 ]]; then
disable_sse2=-DSSE2_FOUND=FALSE
fi
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DBUILD_SHARED_LIBS=OFF -DUSE_OMP=ON $disable_sse2 ..
make -j$(nproc)
make install