From a930d9cef6bdcf8de7d086ea66d977530200b8e0 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Thu, 31 Jul 2014 00:57:15 +0200 Subject: [PATCH] toolchain: linker options with a $ sign are not supported As reported in bug #7172 [0], setting BR2_TARGET_LDFLAGS to a value containing a $ sign can lead to unexpected results. This is because it is very hard to know when the $ sign gets evaluated: - in the Buildroot-level make - in the shell called by the Buildroot-level make - in the package's own build-system, either at configure time, in the Makefile, in a shell in the Makefile... So, it is very difficult to know how much escaping that would need. A proposal is to use a shell variable to pass such values unmolested. But it is not that simple either, since it still contains a $ sign, and there is not much certainty as to when it would be evaluated. Instead, just document this limitation, both in the help text for BR2_TARGET_LDFLAGS, and in the known-issues section in the manual. Does not really fix #7172, but at least the limitation is documented. [0] https://bugs.buildroot.org/show_bug.cgi?id=7172 Signed-off-by: "Yann E. MORIN" Cc: Mike Zick Reviewed-by: Thomas De Schampheleire Signed-off-by: Thomas Petazzoni --- docs/manual/known-issues.txt | 4 ++++ toolchain/toolchain-common.in | 3 +++ 2 files changed, 7 insertions(+) diff --git a/docs/manual/known-issues.txt b/docs/manual/known-issues.txt index 08469e9370..5eaded98c6 100644 --- a/docs/manual/known-issues.txt +++ b/docs/manual/known-issues.txt @@ -3,6 +3,10 @@ = Known issues +* It is not possible to pass extra linker options via +BR2_TARGET_LDFLAGS+ + if such options contain a +$+ sign. For example, the following is known + to break: +BR2_TARGET_LDFLAGS="-Wl,-rpath=\'$ORIGIN/../lib'"+ + * The +ltp-testsuite+ package does not build with the default uClibc configuration used by the Buildroot toolchain backend. The LTP testsuite uses several functions that are considered obsolete, such diff --git a/toolchain/toolchain-common.in b/toolchain/toolchain-common.in index 13de9e5c56..2df8ddb637 100644 --- a/toolchain/toolchain-common.in +++ b/toolchain/toolchain-common.in @@ -132,6 +132,9 @@ config BR2_TARGET_LDFLAGS help Extra options to pass to the linker when building for the target. + Note that options with a '$' sign (eg. -Wl,-rpath='$ORIGIN/../lib') + are not supported. + config BR2_ECLIPSE_REGISTER bool "Register toolchain within Eclipse Buildroot plug-in" help -- 2.30.2