[oe-commits] Tobias Henkel : icecc: Support shell evaluation of KERNEL_CC
git at git.openembedded.org
git at git.openembedded.org
Tue Nov 12 10:51:27 UTC 2013
Module: openembedded-core.git
Branch: master-next
Commit: 4ab1beb441269214072494111c55b7ef2e94bfd8
URL: http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=4ab1beb441269214072494111c55b7ef2e94bfd8
Author: Tobias Henkel <tobias.henkel at bmw-carit.de>
Date: Tue Nov 12 09:34:01 2013 +0100
icecc: Support shell evaluation of KERNEL_CC
In the current implementation a KERNEL_CC variable containing shell
evaluation breaks the build process. Shell expansion is not happening
before general expansion in get_cross_kernel_cc which results in a
syntax error and an aborted parse process.
Before expanding the KERNEL_CC variable get_cross_kernel_cc now checks
for backticks or '$(' in the KERNEL_CC variable and performs a shell
evaluation using a call to echo if it finds one.
Signed-off-by: Tobias Henkel <tobias.henkel at bmw-carit.de>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
meta/classes/icecc.bbclass | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/meta/classes/icecc.bbclass b/meta/classes/icecc.bbclass
index debc05d..0c9b260 100644
--- a/meta/classes/icecc.bbclass
+++ b/meta/classes/icecc.bbclass
@@ -41,7 +41,13 @@ def icecc_dep_prepend(d):
DEPENDS_prepend += "${@icecc_dep_prepend(d)} "
def get_cross_kernel_cc(bb,d):
- kernel_cc = d.expand('${KERNEL_CC}')
+ kernel_cc = d.getVar('KERNEL_CC')
+
+ # evaluate the expression by the shell if necessary
+ if '`' in kernel_cc or '$(' in kernel_cc:
+ kernel_cc = os.popen("echo %s" % kernel_cc).read()[:-1]
+
+ kernel_cc = d.expand(kernel_cc)
kernel_cc = kernel_cc.replace('ccache', '').strip()
kernel_cc = kernel_cc.split(' ')[0]
kernel_cc = kernel_cc.strip()
More information about the Openembedded-commits
mailing list