[Buildroot] [PATCH 1/2] toolchain: linker options with a $ sign are not supported
Thomas De Schampheleire
patrickdepinguin at gmail.com
Mon Jul 14 08:16:06 UTC 2014
On Sun, Jul 13, 2014 at 4:42 PM, Yann E. MORIN <yann.morin.1998 at free.fr> wrote:
> As reported in bug #7172 , 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 in-molested.
'in-molested' sounds very odd to me. If you want to keep the
expressive value ;-) you could maybe write non-molested, or unmolested
(I don't really know the right prefix here, but I'm pretty sure that
'in' is not the one), or otherwise maybe 'untouched' ?
> But it is not that simple either, since it still contains a $ sign, and
> there no much certainty 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.
>  https://bugs.buildroot.org/show_bug.cgi?id=7172
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
> Cc: Mike Zick <minimod at morethan.org>
> 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 08469e9..5eaded9 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 a91d247..e278a7f 100644
> --- a/toolchain/toolchain-common.in
> +++ b/toolchain/toolchain-common.in
> @@ -110,6 +110,9 @@ config BR2_TARGET_LDFLAGS
> 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"
Thanks for working on this!
More information about the buildroot