clang: globally disable build-time RPATHs for reproducibility

Various bits of the LLVM project set the build RPATH in a way that means
we have non-deterministic binaries even though we should always be using
relative paths.

This clearly is not working as some of the binaries get rewritten on
install and have large string paddings that correlate with erased build
paths.

So that we don't have to disable RPATHs in every recipe, just do it once
in the common include file and remove the existing recipe-specific
assignments that are now not needed.

(From OE-Core rev: acc8c5c89c0f1bff3413d2301a65afd89bd0d9ff)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2025-10-07 11:42:44 +01:00
committed by Richard Purdie
parent 840d4fc3c5
commit ff83c5de2e
3 changed files with 5 additions and 6 deletions

View File

@@ -44,4 +44,8 @@ def get_clang_host_arch(bb, d):
def get_clang_target_arch(bb, d):
return get_clang_arch(bb, d, 'TARGET_ARCH')
# Don't put build-time RPATHs in the binaries, whilst they'll be stripped on
# install they cause non-deterministic binaries.
EXTRA_OECMAKE += "-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON"
require common.inc

View File

@@ -77,7 +77,6 @@ EXTRA_OECMAKE += "\
-DLLVM_RUNTIME_TARGETS=${HOST_ARCH} \
-DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX} \
-DLLVM_APPEND_VC_REV=OFF \
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
"
EXTRA_OECMAKE:append:class-target = " \

View File

@@ -14,13 +14,9 @@ DEPENDS = "llvm-tblgen-native llvm"
OECMAKE_SOURCEPATH = "${S}/lld"
# Explicitly disable RPATHs as otherwise they're stipped out of the binaries,
# and are then non-reproducible.
#
# Explicitly enable symlinks as the lld build doesn't call into the llvm setup
# and turn that on.
EXTRA_OECMAKE += "-DCMAKE_SKIP_BUILD_RPATH=ON \
-DLLVM_INCLUDE_TESTS=OFF -DLLVM_USE_SYMLINKS=ON \
EXTRA_OECMAKE += "-DLLVM_INCLUDE_TESTS=OFF -DLLVM_USE_SYMLINKS=ON \
-DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen"
BBCLASSEXTEND = "native nativesdk"