diff options
author | Ross Burton <ross.burton@intel.com> | 2013-05-30 17:55:10 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-05-30 21:10:23 +0100 |
commit | 3aaa4f78c609a47324da2db3b5c92a28f4f2ccff (patch) | |
tree | 42ad1eb0515aa5ced404bc351664e6d5523dc49d | |
parent | 29049da22197bd05b88619b9e8caea7bbdd2ee46 (diff) | |
download | poky-3aaa4f78c609a47324da2db3b5c92a28f4f2ccff.tar.gz |
utils.bbclass: ensure $0 is correct in wrapper scripts
Some packages (eg mesa) will invoke a tool with --version and do string matches
on the output (i.e. mesa does $LEX --version |grep "^flex "). This doesn't work
with the combination of wrapper scripts and binaries that use $0 as they output
"flex.real".
Luckily bash's exec lets you set $0. As we want to use this we can't use env,
but using export appears to work just as well.
(From OE-Core rev: e8d2a2a3646f964ec61ece62e14788cd7184dd01)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes/utils.bbclass | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass index be0a25a2b9..cf8893f5b4 100644 --- a/meta/classes/utils.bbclass +++ b/meta/classes/utils.bbclass | |||
@@ -261,9 +261,9 @@ create_cmdline_wrapper () { | |||
261 | mv $cmd $cmd.real | 261 | mv $cmd $cmd.real |
262 | cmdname=`basename $cmd`.real | 262 | cmdname=`basename $cmd`.real |
263 | cat <<END >$cmd | 263 | cat <<END >$cmd |
264 | #!/bin/sh | 264 | #!/bin/bash |
265 | realpath=\`readlink -fn \$0\` | 265 | realpath=\`readlink -fn \$0\` |
266 | exec \`dirname \$realpath\`/$cmdname $@ "\$@" | 266 | exec -a $cmd \`dirname \$realpath\`/$cmdname $@ "\$@" |
267 | END | 267 | END |
268 | chmod +x $cmd | 268 | chmod +x $cmd |
269 | } | 269 | } |
@@ -284,9 +284,10 @@ create_wrapper () { | |||
284 | mv $cmd $cmd.real | 284 | mv $cmd $cmd.real |
285 | cmdname=`basename $cmd`.real | 285 | cmdname=`basename $cmd`.real |
286 | cat <<END >$cmd | 286 | cat <<END >$cmd |
287 | #!/bin/sh | 287 | #!/bin/bash |
288 | realpath=\`readlink -fn \$0\` | 288 | realpath=\`readlink -fn \$0\` |
289 | exec env $@ \`dirname \$realpath\`/$cmdname "\$@" | 289 | export $@ |
290 | exec -a $cmd \`dirname \$realpath\`/$cmdname "\$@" | ||
290 | END | 291 | END |
291 | chmod +x $cmd | 292 | chmod +x $cmd |
292 | } | 293 | } |