@@ -207,9 +207,9 @@ rust_runx () {
mkdir -p `dirname ${RUST_ALTERNATE_EXE_PATH}`
cp ${RUST_ALTERNATE_EXE_PATH_NATIVE} ${RUST_ALTERNATE_EXE_PATH}
if [ -e ${STAGING_LIBDIR_NATIVE}/libc++.so.1 ]; then
- chrpath -r \$ORIGIN/../../../../../`basename ${STAGING_DIR_NATIVE}`${libdir_native} ${RUST_ALTERNATE_EXE_PATH}
+ patchelf-uninative --set-rpath \$ORIGIN/../../../../../`basename ${STAGING_DIR_NATIVE}`${libdir_native} ${RUST_ALTERNATE_EXE_PATH}
else
- chrpath -d ${RUST_ALTERNATE_EXE_PATH}
+ patchelf-uninative --remove-rpath ${RUST_ALTERNATE_EXE_PATH}
fi
fi
@@ -266,7 +266,7 @@ rust_do_install:class-nativesdk() {
install -d ${D}${bindir}
for i in cargo-clippy clippy-driver rustfmt; do
cp build/${RUST_BUILD_SYS}/stage2-tools/${RUST_HOST_SYS}/release/$i ${D}${bindir}
- chrpath -r "\$ORIGIN/../lib" ${D}${bindir}/$i
+ patchelf-uninative --set-rpath "\$ORIGIN/../lib" ${D}${bindir}/$i
done
chown root:root ${D}/ -R
@@ -301,7 +301,7 @@ rust_do_install:class-target() {
install -d ${D}${bindir}
for i in ${EXTRA_TOOLS}; do
cp build/${RUST_BUILD_SYS}/stage2-tools/${RUST_HOST_SYS}/release/$i ${D}${bindir}
- chrpath -r "\$ORIGIN/../lib" ${D}${bindir}/$i
+ patchelf-uninative --set-rpath "\$ORIGIN/../lib" ${D}${bindir}/$i
done
install -d ${D}${libdir}/rustlib/${RUST_HOST_SYS}
chrpath has limitations e.g. the original rpath in ELF have to bigger in size than the one being edited into it by chrpath, some toolchains do not use RPATH but emit the RUNPATHs into ELF files and chrpath is not able to handle the runpaths, this is the case with mips and pp32 build of rust, especially when using clang compiler to build them. patchelf can do more: Modify RUNPATH entries Add RPATH/RUNPATH where none existed Set longer paths than the original Convert between RPATH and RUNPATH Signed-off-by: Khem Raj <raj.khem@gmail.com> --- meta/recipes-devtools/rust/rust_1.85.1.bb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)