qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: qemu-devel@nongnu.org, Peter Maydell <peter.maydell@linaro.org>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>,
	qemu-s390x@nongnu.org, cohuck@redhat.com
Subject: [PULL 8/9] pc-bios/s390-ccw: Allow building with Clang, too
Date: Mon, 10 May 2021 09:35:23 +0200	[thread overview]
Message-ID: <20210510073524.85951-9-thuth@redhat.com> (raw)
In-Reply-To: <20210510073524.85951-1-thuth@redhat.com>

Clang unfortunately does not support generating code for the z900
architecture level and starts with the z10 instead. Thus to be able
to support compiling with Clang, we have to check for the supported
compiler flags. The disadvantage is of course that the bios image
will only run with z10 guest CPUs upwards (which is what most people
use anyway), so just in case let's also emit a warning in that case
(we will continue to ship firmware images that have been pre-built
with GCC in future releases, so this should not impact normal users,
too).

Message-Id: <20210502174836.838816-5-thuth@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 configure                 | 9 ++++++++-
 pc-bios/s390-ccw/Makefile | 3 ++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index 4f374b4889..5ebc937746 100755
--- a/configure
+++ b/configure
@@ -5417,9 +5417,16 @@ if { test "$cpu" = "i386" || test "$cpu" = "x86_64"; } && \
 fi
 
 # Only build s390-ccw bios if we're on s390x and the compiler has -march=z900
+# or -march=z10 (which is the lowest architecture level that Clang supports)
 if test "$cpu" = "s390x" ; then
   write_c_skeleton
-  if compile_prog "-march=z900" ""; then
+  compile_prog "-march=z900" ""
+  has_z900=$?
+  if [ $has_z900 = 0 ] || compile_prog "-march=z10" ""; then
+    if [ $has_z900 != 0 ]; then
+      echo "WARNING: Your compiler does not support the z900!"
+      echo "         The s390-ccw bios will only work with guest CPUs >= z10."
+    fi
     roms="$roms s390-ccw"
     # SLOF is required for building the s390-ccw firmware on s390x,
     # since it is using the libnet code from SLOF for network booting.
diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
index 83fb1afb73..cee9d2c63b 100644
--- a/pc-bios/s390-ccw/Makefile
+++ b/pc-bios/s390-ccw/Makefile
@@ -34,7 +34,8 @@ QEMU_CFLAGS += $(call cc-option,-Werror $(QEMU_CFLAGS),-Wno-stringop-overflow)
 QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -fno-common -fPIE
 QEMU_CFLAGS += -fwrapv -fno-strict-aliasing -fno-asynchronous-unwind-tables
 QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS), -fno-stack-protector)
-QEMU_CFLAGS += -msoft-float -march=z900
+QEMU_CFLAGS += -msoft-float
+QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS),-march=z900,-march=z10)
 QEMU_CFLAGS += -std=gnu99
 LDFLAGS += -Wl,-pie -nostdlib
 
-- 
2.27.0



  parent reply	other threads:[~2021-05-10  7:39 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-10  7:35 [PULL 0/9] s390-ccw bios update Thomas Huth
2021-05-10  7:35 ` [PULL 1/9] pc-bios/s390-ccw: don't try to read the next block if end of chunk is reached Thomas Huth
2021-05-10  7:35 ` [PULL 2/9] pc-bios/s390-ccw/bootmap: Silence compiler warning from Clang Thomas Huth
2021-05-10  7:35 ` [PULL 3/9] pc-bios/s390-ccw: Use reset_psw pointer instead of hard-coded null pointer Thomas Huth
2021-05-10  7:35 ` [PULL 4/9] pc-bios/s390-ccw/netboot: Use "-Wl, " prefix to pass parameter to the linker Thomas Huth
2021-05-10  7:35 ` [PULL 5/9] pc-bios/s390-ccw: Silence warning from Clang by marking panic() as noreturn Thomas Huth
2021-05-10  7:35 ` [PULL 6/9] pc-bios/s390-ccw: Fix the cc-option macro in the Makefile Thomas Huth
2021-05-10  7:35 ` [PULL 7/9] pc-bios/s390-ccw: Silence GCC 11 stringop-overflow warning Thomas Huth
2021-05-10  7:35 ` Thomas Huth [this message]
2021-05-12 11:53   ` [PULL 8/9] pc-bios/s390-ccw: Allow building with Clang, too Philippe Mathieu-Daudé
2021-05-12 13:40     ` Thomas Huth
2021-05-12 14:00       ` Thomas Huth
2021-05-12 14:51         ` Thomas Huth
2021-05-12 14:09     ` Philippe Mathieu-Daudé
2021-05-10  7:35 ` [PULL 9/9] pc-bios/s390: Update the s390-ccw bios binaries with the Clang and other fixes Thomas Huth
2021-05-12  7:53 ` [PULL 0/9] s390-ccw bios update Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210510073524.85951-9-thuth@redhat.com \
    --to=thuth@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).