From: Samuel Martin <s.martin49@gmail.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v5 2/5] Makefile: add HOST_FIX_RPATH_HOOK to TARGET_FINALIZE_HOOKS
Date: Mon, 13 Jul 2015 23:55:08 +0200 [thread overview]
Message-ID: <1436824511-1601-2-git-send-email-s.martin49@gmail.com> (raw)
In-Reply-To: <1436824511-1601-1-git-send-email-s.martin49@gmail.com>
This patch adds host-patchelf as a target-finalize dependency, and
introduces the HOST_FIX_RPATH_HOOK hook fixing the ELF files' RPATH of
the HOST_DIR location (excluding the sysroot).
After running this hook, the RPATH from any host ELF files is relative to
the binary location itself.
Note that, we avoid to fix RPATH in the sysroot, and in the external
toolcahin installation location.
As a first step toward a fully relocatable SDK, this change allows to get
the toolchain relocatable, but not yet the whole SDK.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
---
changes v4->v5:
- add verbose support
changes v3->v4:
- add host-patchelf to PACKAGES instead of target-finalize (Baruch)
- add comment
changes v2->v3:
- move hook in Makefile (Baruch)
---
Makefile | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/Makefile b/Makefile
index 546bcd3..4b88116 100644
--- a/Makefile
+++ b/Makefile
@@ -555,6 +555,22 @@ endef
TARGET_FINALIZE_HOOKS += PURGE_LOCALES
endif
+# RPATH fixing
+# - The host hook sets RPATH in host ELF binaries, using relative paths to the
+# library locations.
+PACKAGES += host-patchelf
+
+define HOST_FIX_RPATH_HOOK
+ $(TOPDIR)/support/scripts/fix_rpaths \
+ set $(HOST_DIR) \
+ $(if $(V),--verbose) \
+ --patchelf-program $(HOST_DIR)/usr/bin/patchelf \
+ --libdirs $(HOST_DIR)/usr/lib \
+ --exclude-dirs sysroot opt/ext-toolchain
+endef
+
+TARGET_FINALIZE_HOOKS += HOST_FIX_RPATH_HOOK
+
$(TARGETS_ROOTFS): target-finalize
target-finalize: $(PACKAGES)
--
2.4.5
next prev parent reply other threads:[~2015-07-13 21:55 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-13 21:55 [Buildroot] [PATCH v5 1/5] support/scripts: add fix_rpaths Samuel Martin
2015-07-13 21:55 ` Samuel Martin [this message]
2016-01-06 17:18 ` [Buildroot] [v5, 2/5] Makefile: add HOST_FIX_RPATH_HOOK to TARGET_FINALIZE_HOOKS Sam Thursfield
2016-01-06 17:31 ` Yann E. MORIN
2015-07-13 21:55 ` [Buildroot] [PATCH v5 3/5] Makefile: add TARGET_SANITIZE_RPATH_HOOK " Samuel Martin
2015-07-14 5:37 ` Baruch Siach
2015-07-14 8:28 ` Samuel Martin
2015-07-13 21:55 ` [Buildroot] [PATCH v5 4/5] Makefile: staging symlink uses a relative path Samuel Martin
2015-07-13 21:55 ` [Buildroot] [PATCH v5 5/5] package/speex: remove no longer needed hook Samuel Martin
2015-07-14 4:28 ` Baruch Siach
2016-01-06 17:17 ` [Buildroot] [v5,1/5] support/scripts: add fix_rpaths Sam Thursfield
2016-01-06 17:35 ` Yann E. MORIN
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1436824511-1601-2-git-send-email-s.martin49@gmail.com \
--to=s.martin49@gmail.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox