From b4f6410529516300c14737bcef9fa7823cf52cb4 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Wed, 21 Oct 2026 04:27:29 +0700 Subject: [PATCH] cookbook: Add LTO plugin to strip --- src/cook/script.rs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/cook/script.rs b/src/cook/script.rs index d3665a5d2..05ba572b5 100644 --- a/src/cook/script.rs +++ b/src/cook/script.rs @@ -415,12 +415,25 @@ function cookbook_python { "#; pub(crate) static BUILD_POSTSCRIPT: &str = r#" +STRIP="${GNU_TARGET}-strip" +STRIP_ARGS="-v" + +if [[ "$REDOXER_USE_CLANG" = "1" || "$REDOXER_USE_CLANG" = "true" ]]; then + STRIP="llvm-strip" + STRIP_ARGS="--verbose" +elif [[ "$REDOXER_USE_LTO" = "1" || "$REDOXER_USE_LTO" = "true" ]]; then + GCC_BIN=$(command -v "${GNU_TARGET}-gcc") + GCC_VER=$("${GNU_TARGET}-gcc" -dumpfullversion) + PLUGIN_PATH=$(realpath "$(dirname "$GCC_BIN")/../libexec/gcc/${GNU_TARGET}/${GCC_VER}/liblto_plugin.so") + [ -f "$PLUGIN_PATH" ] && STRIP_ARGS="--plugin=${PLUGIN_PATH} -v" || echo "DEBUG: $PLUGIN_PATH not found" +fi + # Strip binaries for dir in "${COOKBOOK_STAGE}/bin" "${COOKBOOK_STAGE}/usr/bin" "${COOKBOOK_STAGE}/libexec" "${COOKBOOK_STAGE}/usr/libexec" do if [ -d "${dir}" ] && [ -z "${COOKBOOK_NOSTRIP}" ] then - find "${dir}" -type f -exec "${GNU_TARGET}-strip" -v {} ';' + find "${dir}" -type f -exec "${STRIP}" ${STRIP_ARGS} {} ';' fi done @@ -432,7 +445,7 @@ do find "${dir}" -type f -name '*.la' -exec rm -fv {} ';' if [ -z "${COOKBOOK_NOSTRIP}" ] then - find "${dir}" -type f -exec "${GNU_TARGET}-strip" --strip-debug -v {} ';' + find "${dir}" -type f -exec "${STRIP}" ${STRIP_ARGS} --strip-debug {} ';' fi fi done