From cd351f33c717c617ed7b8fc5f50f30ac4068371f Mon Sep 17 00:00:00 2001 From: cobaltgit Date: Sun, 29 Mar 2026 21:47:32 +0100 Subject: [PATCH] build with LTO and omit framepointer, also gc-sections --- build-a30.sh | 4 ++-- build-pixel2.sh | 11 +++++++++-- build.sh | 10 +++++++--- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/build-a30.sh b/build-a30.sh index 4bb5e8b..5a925c0 100644 --- a/build-a30.sh +++ b/build-a30.sh @@ -37,9 +37,9 @@ export STRIP="${CROSS}-strip" export PKG_CONFIG_PATH="$SYSROOT/usr/lib/pkgconfig" export PKG_CONFIG_LIBDIR="$SYSROOT/usr/lib/pkgconfig" export PKG_CONFIG_SYSROOT_DIR="$SYSROOT" -export CFLAGS="-O3 --sysroot=$SYSROOT -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -DHAVE_FILTERS_BUILTIN" +export CFLAGS="-O3 --sysroot=$SYSROOT -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -fomit-frame-pointer -ffunction-sections -fdata-sections -flto -DHAVE_FILTERS_BUILTIN" export CXXFLAGS="$CFLAGS" -export LDFLAGS="--sysroot=$SYSROOT -L$SYSROOT/usr/lib -static-libstdc++" +export LDFLAGS="--sysroot=$SYSROOT -L$SYSROOT/usr/lib -Wl,--gc-sections -static-libstdc++ -flto" # Remove fontconfig from sysroot so configure won't auto-detect it # (not present on the A30 device, and drags in libexpat/libpng16) diff --git a/build-pixel2.sh b/build-pixel2.sh index 4aa83dd..83db886 100644 --- a/build-pixel2.sh +++ b/build-pixel2.sh @@ -34,8 +34,15 @@ if [ -d /patches/pixel2 ] && ls /patches/pixel2/*.patch 1>/dev/null 2>&1; then done fi -# Configure — Hario's exact flags for Pixel2 (RK3566 / Mali-G52) -CFLAGS="-Ofast -march=armv8-a -mtune=cortex-a35 -fomit-frame-pointer -DNDEBUG -DHAVE_FILTERS_BUILTIN" \ +# Configure — Hario's exact flags for Pixel2 (RK3566 / Mali-G52 + +export CFLAGS="-Ofast -march=armv8-a -mtune=cortex-a35 -ffunction-sections -fdata-sections -fomit-frame-pointer -flto -DNDEBUG -DHAVE_FILTERS_BUILTIN" +export CXXFLAGS="$CFLAGS" +export LDFLAGS="$LDFLAGS -Wl,--gc-sections -flto" + +CFLAGS="$CFLAGS" \ +CXXFLAGS="$CXXFLAGS" \ +LDFLAGS="$LDFLAGS" \ ./configure --disable-qt \ --disable-discord \ --disable-neon \ diff --git a/build.sh b/build.sh index 8912087..96028f5 100644 --- a/build.sh +++ b/build.sh @@ -30,9 +30,16 @@ export STRIP=aarch64-linux-gnu-strip export PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig export PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig +export CFLAGS="$CFLAGS -O3 -flto -ffunction-sections -fdata-sections -DHAVE_SCREEN_ORIENTATION -DGEOMETRY_MENU_ROTATION -D_GNU_SOURCE -DHAVE_FILTERS_BUILTIN" +export CXXFLAGS="$CXXFLAGS -O3 -ffunction-sections -fdata-sections -flto -DHAVE_SCREEN_ORIENTATION -DGEOMETRY_MENU_ROTATION -D_GNU_SOURCE -DHAVE_FILTERS_BUILTIN" +export LDFLAGS="$LDFLAGS -Wl,--gc-sections -flto" + # Configure for universal aarch64 binary # Uses SDL2 + EGL + GLES + Vulkan. GLES works on all GPUs; Vulkan is available # on devices with Vulkan drivers (e.g. Mali G57 on Smart Pro S). +CFLAGS="$CFLAGS" \ +CXXFLAGS="$CXXFLAGS" \ +LDFLAGS="$LDFLAGS" \ ./configure --host=aarch64-linux-gnu \ --disable-x11 \ --disable-wayland \ @@ -57,9 +64,6 @@ export PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig --enable-builtinzlib \ --enable-zlib -export CFLAGS="$CFLAGS -O3 -DHAVE_SCREEN_ORIENTATION -DGEOMETRY_MENU_ROTATION -D_GNU_SOURCE -DHAVE_FILTERS_BUILTIN" -export CXXFLAGS="$CXXFLAGS -O3 -DHAVE_SCREEN_ORIENTATION -DGEOMETRY_MENU_ROTATION -D_GNU_SOURCE -DHAVE_FILTERS_BUILTIN" - # Build make HAVE_STATIC_VIDEO_FILTERS=1 HAVE_STATIC_AUDIO_FILTERS=1 -j$(nproc)