toolchain: linker options with a $ sign are not supported
authorYann E. MORIN <yann.morin.1998@free.fr>
Wed, 30 Jul 2014 22:57:15 +0000 (00:57 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 31 Jul 2014 21:51:39 +0000 (23:51 +0200)
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" <yann.morin.1998@free.fr>
Cc: Mike Zick <minimod@morethan.org>
Reviewed-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
docs/manual/known-issues.txt
toolchain/toolchain-common.in

index 08469e937098d0b472d6e401b631b0eca003c21d..5eaded98c653d13586ce43c9f670f62bea59cbc0 100644 (file)
@@ -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
index 13de9e5c56c2a8cfd99694392f4d2a20b7aa150d..2df8ddb637a0f36f1ffa78c391d2da37b9c62004 100644 (file)
@@ -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