[PATCH v1 3/6] tests/tcg/configure.sh: tweak quoting of target_compiler

Alex Bennée posted 6 patches 4 years, 8 months ago
[PATCH v1 3/6] tests/tcg/configure.sh: tweak quoting of target_compiler
Posted by Alex Bennée 4 years, 8 months ago
If you configure the host compiler with a multi-command stanza like:

  --cc="ccache gcc"

then the configure.sh machinery falls over with confusion. Work around
this by ensuring we correctly quote so where we need a complete
evaluation we get it. Of course the has() check needs single variable
so we need to unquote that. This does mean it essentially checks that
just the ccache command exits but if we got past that step we still
check the compiler actually does something.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Thomas Huth <thuth@redhat.com>
---
 tests/tcg/configure.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
index ed6492ce59..aa7c24328a 100755
--- a/tests/tcg/configure.sh
+++ b/tests/tcg/configure.sh
@@ -222,10 +222,10 @@ for target in $target_list; do
 
   got_cross_cc=no
 
-  if eval test "x\${cross_cc_$arch}" != xyes; then
-      eval "target_compiler=\${cross_cc_$arch}"
+  if eval test "x\"\${cross_cc_$arch}\"" != xyes; then
+      eval "target_compiler=\"\${cross_cc_$arch}\""
 
-      if has "$target_compiler"; then
+      if has $target_compiler; then
           if test "$supress_clang" = yes &&
                   $target_compiler --version | grep -qi "clang"; then
               got_cross_cc=no
-- 
2.20.1


Re: [PATCH v1 3/6] tests/tcg/configure.sh: tweak quoting of target_compiler
Posted by Thomas Huth 4 years, 8 months ago
On 27/05/2021 18.03, Alex Bennée wrote:
> If you configure the host compiler with a multi-command stanza like:
> 
>    --cc="ccache gcc"
> 
> then the configure.sh machinery falls over with confusion. Work around
> this by ensuring we correctly quote so where we need a complete
> evaluation we get it. Of course the has() check needs single variable
> so we need to unquote that. This does mean it essentially checks that
> just the ccache command exits but if we got past that step we still
> check the compiler actually does something.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Cc: Thomas Huth <thuth@redhat.com>
> ---
>   tests/tcg/configure.sh | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
> index ed6492ce59..aa7c24328a 100755
> --- a/tests/tcg/configure.sh
> +++ b/tests/tcg/configure.sh
> @@ -222,10 +222,10 @@ for target in $target_list; do
>   
>     got_cross_cc=no
>   
> -  if eval test "x\${cross_cc_$arch}" != xyes; then
> -      eval "target_compiler=\${cross_cc_$arch}"
> +  if eval test "x\"\${cross_cc_$arch}\"" != xyes; then
> +      eval "target_compiler=\"\${cross_cc_$arch}\""
>   
> -      if has "$target_compiler"; then
> +      if has $target_compiler; then
>             if test "$supress_clang" = yes &&
>                     $target_compiler --version | grep -qi "clang"; then
>                 got_cross_cc=no
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>