From: Thomas Huth <thuth@redhat.com>
To: qemu-s390x@nongnu.org, Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Cornelia Huck <cohuck@redhat.com>, qemu-devel@nongnu.org
Subject: [PATCH 4/4] pc-bios/s390-ccw: Allow building with Clang, too
Date: Sun, 2 May 2021 19:48:36 +0200 [thread overview]
Message-ID: <20210502174836.838816-5-thuth@redhat.com> (raw)
In-Reply-To: <20210502174836.838816-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.
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
next prev parent reply other threads:[~2021-05-02 17:50 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-02 17:48 [PATCH 0/4] pc-bios/s390-ccw: Allow building with Clang, too Thomas Huth
2021-05-02 17:48 ` [PATCH 1/4] pc-bios/s390-ccw: Silence warning from Clang by marking panic() as noreturn Thomas Huth
2021-05-02 18:57 ` Philippe Mathieu-Daudé
2021-05-03 4:53 ` Thomas Huth
2021-05-03 7:40 ` Philippe Mathieu-Daudé
2021-05-03 4:56 ` Markus Armbruster
2021-05-03 8:54 ` Cornelia Huck
2021-05-02 17:48 ` [PATCH 2/4] pc-bios/s390-ccw: Fix the cc-option macro in the Makefile Thomas Huth
2021-05-02 17:48 ` [PATCH 3/4] pc-bios/s390-ccw: Silence GCC 11 stringop-overflow warning Thomas Huth
2021-05-03 9:00 ` Cornelia Huck
2021-05-03 9:30 ` Philippe Mathieu-Daudé
2021-05-03 9:31 ` Thomas Huth
2021-05-03 9:50 ` Philippe Mathieu-Daudé
2021-05-02 17:48 ` Thomas Huth [this message]
2021-05-02 19:00 ` [PATCH 4/4] pc-bios/s390-ccw: Allow building with Clang, too Philippe Mathieu-Daudé
2021-05-03 4:58 ` Markus Armbruster
2021-05-03 5:17 ` Thomas Huth
2021-05-03 8:10 ` David Hildenbrand
2021-05-03 8:23 ` Markus Armbruster
2021-05-03 9:14 ` Cornelia Huck
2021-05-03 9:17 ` David Hildenbrand
2021-05-03 9:23 ` Cornelia Huck
2021-05-03 9:31 ` Thomas Huth
2021-05-03 9:56 ` Cornelia Huck
2021-05-03 10:10 ` Christian Borntraeger
2021-05-03 10:00 ` Cornelia Huck
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=20210502174836.838816-5-thuth@redhat.com \
--to=thuth@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.