[Qemu-devel] [PATCH] configure: Only build the s390-ccw bios if the compiler supports -march=z900

Thomas Huth posted 1 patch 6 years, 9 months ago
Test asan passed
Test checkpatch passed
Test docker-clang@ubuntu passed
Test docker-mingw@fedora passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1547468589-17579-1-git-send-email-thuth@redhat.com
Maintainers: Cornelia Huck <cohuck@redhat.com>
There is a newer version of this series
configure | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
[Qemu-devel] [PATCH] configure: Only build the s390-ccw bios if the compiler supports -march=z900
Posted by Thomas Huth 6 years, 9 months ago
We want to build our s390-ccw bios with -march=z900 so that it also
works with the oldest s390x CPU that we support with TCG. However,
Clang on s390x does not support -march=z900 anymore, so we can not
use this compiler to build the s390-ccw bios. Thus add a proper test
to the configure script to see whether the compiler is usable.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 configure | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 05b7e85..df34974 100755
--- a/configure
+++ b/configure
@@ -5906,7 +5906,10 @@ if test "$cpu" = "ppc64" -a "$targetos" != "Darwin" ; then
 fi
 
 if test "$cpu" = "s390x" ; then
-  roms="$roms s390-ccw"
+  # Only build the s390-ccw bios if the compiler supports -march=z900
+  if "$cc" -dumpspecs 2>/dev/null | grep -q "march=z900"; then
+    roms="$roms s390-ccw"
+  fi
 fi
 
 # Probe for the need for relocating the user-only binary.
-- 
1.8.3.1


Re: [Qemu-devel] [PATCH] configure: Only build the s390-ccw bios if the compiler supports -march=z900
Posted by Peter Maydell 6 years, 9 months ago
On Mon, 14 Jan 2019 at 12:24, Thomas Huth <thuth@redhat.com> wrote:
>
> We want to build our s390-ccw bios with -march=z900 so that it also
> works with the oldest s390x CPU that we support with TCG. However,
> Clang on s390x does not support -march=z900 anymore, so we can not
> use this compiler to build the s390-ccw bios. Thus add a proper test
> to the configure script to see whether the compiler is usable.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  configure | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/configure b/configure
> index 05b7e85..df34974 100755
> --- a/configure
> +++ b/configure
> @@ -5906,7 +5906,10 @@ if test "$cpu" = "ppc64" -a "$targetos" != "Darwin" ; then
>  fi
>
>  if test "$cpu" = "s390x" ; then
> -  roms="$roms s390-ccw"
> +  # Only build the s390-ccw bios if the compiler supports -march=z900
> +  if "$cc" -dumpspecs 2>/dev/null | grep -q "march=z900"; then
> +    roms="$roms s390-ccw"
> +  fi
>  fi

clang doesn't support -dumpspecs at all, so you're implicitly
saying "not clang" by doing the check this way... If you
want to check "does the compiler supoprt -march=z900" why
not do a test compile with that in the compile flags ?

   write_c_skeleton
   if compile_prog "-march=z900" ""; then
       roms="$roms s390-ccw"
   fi

?

(untested)

thanks
-- PMM

Re: [Qemu-devel] [PATCH] configure: Only build the s390-ccw bios if the compiler supports -march=z900
Posted by Thomas Huth 6 years, 9 months ago
On 2019-01-14 13:37, Peter Maydell wrote:
> On Mon, 14 Jan 2019 at 12:24, Thomas Huth <thuth@redhat.com> wrote:
>>
>> We want to build our s390-ccw bios with -march=z900 so that it also
>> works with the oldest s390x CPU that we support with TCG. However,
>> Clang on s390x does not support -march=z900 anymore, so we can not
>> use this compiler to build the s390-ccw bios. Thus add a proper test
>> to the configure script to see whether the compiler is usable.
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>>  configure | 5 ++++-
>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/configure b/configure
>> index 05b7e85..df34974 100755
>> --- a/configure
>> +++ b/configure
>> @@ -5906,7 +5906,10 @@ if test "$cpu" = "ppc64" -a "$targetos" != "Darwin" ; then
>>  fi
>>
>>  if test "$cpu" = "s390x" ; then
>> -  roms="$roms s390-ccw"
>> +  # Only build the s390-ccw bios if the compiler supports -march=z900
>> +  if "$cc" -dumpspecs 2>/dev/null | grep -q "march=z900"; then
>> +    roms="$roms s390-ccw"
>> +  fi
>>  fi
> 
> clang doesn't support -dumpspecs at all, so you're implicitly
> saying "not clang" by doing the check this way... If you
> want to check "does the compiler supoprt -march=z900" why
> not do a test compile with that in the compile flags ?
> 
>    write_c_skeleton
>    if compile_prog "-march=z900" ""; then
>        roms="$roms s390-ccw"
>    fi
> 
> ?

Good idea, that seems to work fine, too. I'll send a v2...

 Thanks,
  Thomas