diff --git a/.github/scripts/install-musl-build-tools.sh b/.github/scripts/install-musl-build-tools.sh index 89a69df221..da8d3e31a1 100644 --- a/.github/scripts/install-musl-build-tools.sh +++ b/.github/scripts/install-musl-build-tools.sh @@ -261,9 +261,9 @@ target_cxx_var="CXX_${TARGET}" target_cxx_var="${target_cxx_var//-/_}" echo "${target_cxx_var}=${cxx}" >> "$GITHUB_ENV" -# Enable safe identical code folding for release packages on x86-64 musl. +# Fold identical code and pack relocations for x86-64 musl release packages. if [[ "${TARGET}" == "x86_64-unknown-linux-musl" && "${CODEX_MUSL_RELEASE_LINK_FLAGS:-}" == "1" ]]; then - link_flags=(-Cllvm-args=--addrsig -Clink-arg=-fuse-ld=lld -Clink-arg=-Wl,--icf=safe) + link_flags=(-Cllvm-args=--addrsig -Clink-arg=-fuse-ld=lld -Clink-arg=-Wl,--icf=safe,-z,pack-relative-relocs) echo "RUSTFLAGS=${RUSTFLAGS:+$RUSTFLAGS }${link_flags[*]}" >> "$GITHUB_ENV" fi diff --git a/bazel/rules/runtime_package.bzl b/bazel/rules/runtime_package.bzl index 6ab0e57bec..073c0b4fad 100644 --- a/bazel/rules/runtime_package.bzl +++ b/bazel/rules/runtime_package.bzl @@ -71,7 +71,7 @@ def _release_profile_impl(settings, attr): # Match the Cargo release linker for x86-64 static PIEs. profile[_RUSTC_FLAGS] += [ "-Cllvm-args=--addrsig", - "-Clink-arg=-Wl,--icf=safe", + "-Clink-arg=-Wl,--icf=safe,-z,pack-relative-relocs", ] return profile