From 6777fbca1866bf84d68153ce301cf7644852133b Mon Sep 17 00:00:00 2001 From: BtbN Date: Wed, 19 Feb 2025 16:24:04 +0100 Subject: [PATCH] Target armv8-a as a minimum aarch64 arch Older archs do not seem to support NEON and produce quite slow code. This should not be a compatibility issue in practice, since all aarch64 devices capable of running FFmpeg should support armv8-a fine. --- images/base-linuxarm64/Dockerfile | 8 ++++---- images/base-winarm64/Dockerfile | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/images/base-linuxarm64/Dockerfile b/images/base-linuxarm64/Dockerfile index fe3c219da8..385c18dac7 100644 --- a/images/base-linuxarm64/Dockerfile +++ b/images/base-linuxarm64/Dockerfile @@ -47,7 +47,7 @@ ADD gen-implib.sh /usr/bin/gen-implib RUN git clone --filter=blob:none --depth=1 https://github.com/yugr/Implib.so /opt/implib ENV PATH="/opt/ct-ng/bin:${PATH}" \ - FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=${FFBUILD_TOOLCHAIN}- --arch=aarch64 --target-os=linux" \ + FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=${FFBUILD_TOOLCHAIN}- --arch=aarch64 --cpu=armv8-a --target-os=linux" \ FFBUILD_CROSS_PREFIX="${FFBUILD_TOOLCHAIN}-" \ FFBUILD_PREFIX=/opt/ffbuild \ FFBUILD_CMAKE_TOOLCHAIN=/toolchain.cmake \ @@ -59,8 +59,8 @@ ENV PATH="/opt/ct-ng/bin:${PATH}" \ AR="${FFBUILD_TOOLCHAIN}-gcc-ar" \ RANLIB="${FFBUILD_TOOLCHAIN}-gcc-ranlib" \ NM="${FFBUILD_TOOLCHAIN}-gcc-nm" \ - CFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -pthread" \ - CXXFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -pthread" \ - LDFLAGS="-static-libgcc -static-libstdc++ -L/opt/ffbuild/lib -O2 -pipe -fstack-protector-strong -fstack-clash-protection -Wl,-z,relro,-z,now -pthread -lm" \ + CFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -march=armv8-a -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -pthread" \ + CXXFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -march=armv8-a -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -pthread" \ + LDFLAGS="-static-libgcc -static-libstdc++ -L/opt/ffbuild/lib -O2 -pipe -march=armv8-a -fstack-protector-strong -fstack-clash-protection -Wl,-z,relro,-z,now -pthread -lm" \ STAGE_CFLAGS="-fvisibility=hidden -fno-semantic-interposition" \ STAGE_CXXFLAGS="-fvisibility=hidden -fno-semantic-interposition" diff --git a/images/base-winarm64/Dockerfile b/images/base-winarm64/Dockerfile index df30a50451..60bd856756 100644 --- a/images/base-winarm64/Dockerfile +++ b/images/base-winarm64/Dockerfile @@ -30,7 +30,7 @@ ADD toolchain.cmake /toolchain.cmake ADD cross.meson /cross.meson ENV PATH="/opt/llvm-mingw/bin:${PATH}" \ - FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=${FFBUILD_TOOLCHAIN}- --arch=aarch64 --target-os=mingw32" \ + FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=${FFBUILD_TOOLCHAIN}- --arch=aarch64 --cpu=armv8-a --target-os=mingw32" \ FFBUILD_CROSS_PREFIX=${FFBUILD_TOOLCHAIN}- \ FFBUILD_PREFIX=/opt/ffbuild \ FFBUILD_CMAKE_TOOLCHAIN=/toolchain.cmake \ @@ -44,8 +44,8 @@ ENV PATH="/opt/llvm-mingw/bin:${PATH}" \ RANLIB="${FFBUILD_TOOLCHAIN}-llvm-ranlib" \ NM="${FFBUILD_TOOLCHAIN}-nm" \ DLLTOOL="${FFBUILD_TOOLCHAIN}-dlltool" \ - CFLAGS="-I/opt/ffbuild/include -O2 -pipe -D_FORTIFY_SOURCE=2 -fstack-protector-strong" \ - CXXFLAGS="-I/opt/ffbuild/include -O2 -pipe -D_FORTIFY_SOURCE=2 -fstack-protector-strong" \ - LDFLAGS="-L/opt/ffbuild/lib -O2 -pipe -fstack-protector-strong" \ + CFLAGS="-I/opt/ffbuild/include -O2 -pipe -march=armv8-a -D_FORTIFY_SOURCE=2 -fstack-protector-strong" \ + CXXFLAGS="-I/opt/ffbuild/include -O2 -pipe -march=armv8-a -D_FORTIFY_SOURCE=2 -fstack-protector-strong" \ + LDFLAGS="-L/opt/ffbuild/lib -O2 -pipe -march=armv8-a -fstack-protector-strong" \ STAGE_CFLAGS="" \ STAGE_CXXFLAGS=""