core: sanitize RPATH in target tree before copying the overlay
authorWolfgang Grandegger <wg@grandegger.com>
Thu, 20 Jul 2017 14:35:16 +0000 (16:35 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 20 Jul 2017 20:47:04 +0000 (22:47 +0200)
We sanitize the RPATH of ELF files in the target tree to deal
with stupid packages that don't correctly use --prefix/DESTDIR
and that end up putting the full absolute build-time directory
in the RPATH.

We do it before copying the overlay and calling the post-build
script. The user is completely responsible for what happens
in the last two steps, and it should never be touched by us.

Signed-off-by: Wolfgang Grandegger <wg@grandegger.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Makefile

index 188ce9adc7ec69fabf32fa81f2364fe38cd875f8..d4faa021cd7e5c6dbdc8a8470ed4bdf4d0e11815 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -709,6 +709,9 @@ endif
                echo "PRETTY_NAME=\"Buildroot $(BR2_VERSION)\"" \
        ) >  $(TARGET_DIR)/etc/os-release
 
+       @$(call MESSAGE,"Sanitizing RPATH in target tree")
+       $(TOPDIR)/support/scripts/fix-rpath target
+
        @$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \
                $(call MESSAGE,"Copying overlay $(d)"); \
                rsync -a --ignore-times --keep-dirlinks $(RSYNC_VCS_EXCLUSIONS) \