All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [git commit branch/2022.02.x] package/qemu: fix host-qemu compilation with Ubuntu GCC 11
@ 2022-04-26 20:49 Peter Korsgaard
  0 siblings, 0 replies; only message in thread
From: Peter Korsgaard @ 2022-04-26 20:49 UTC (permalink / raw)
  To: buildroot

[-- Attachment #1: Type: text/plain, Size: 3128 bytes --]

commit: https://git.buildroot.net/buildroot/commit/?id=dfb3203bb81f1a7f0b562c12dae77f2b9a7635de
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/2022.02.x

Fixes:
cc1: error: ‘-fcf-protection’ is not compatible with this target

The new Ubuntu GCC packages (e.g. Ubuntu 11.2.0-7ubuntu2, 11.2.0) turn
on ‘-fcf-protection’ globally, which causes a build failure in the x86
realmode code. Turn it off explicitly on compilers that understand this
option.

Signed-off-by: Dario Binacchi <dariobin@libero.it>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
(cherry picked from commit 213629f2d3050465d2a6cb6842d056f71648fe55)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
 ...d-disable-fcf-protection-on-march-486-m16.patch | 50 ++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/package/qemu/0002-build-disable-fcf-protection-on-march-486-m16.patch b/package/qemu/0002-build-disable-fcf-protection-on-march-486-m16.patch
new file mode 100644
index 0000000000..7595d31c8d
--- /dev/null
+++ b/package/qemu/0002-build-disable-fcf-protection-on-march-486-m16.patch
@@ -0,0 +1,50 @@
+From 9584d3d00a454f47b0341465142bcf0735d734ae Mon Sep 17 00:00:00 2001
+From: Christian Ehrhardt <christian.ehrhardt@canonical.com>
+Date: Wed, 23 Mar 2022 10:07:13 +0100
+Subject: [PATCH] build: disable fcf-protection on -march=486 -m16
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Some of the roms build with -march=i486 -m16 which is incompatible
+with -fcf-protection. That in turn is can be set by default, for
+example in Ubuntu [1].
+That causes:
+ cc1: error: ‘-fcf-protection’ is not compatible with this target
+
+This won't work on -march=i486 -m16 and no matter if set or not we can
+override it to "none" if the option is known to the compiler to be
+able to build reliably.
+
+Fixes: https://gitlab.com/qemu-project/qemu/-/issues/889
+
+[1]: https://wiki.ubuntu.com/ToolChain/CompilerFlags#A-fcf-protection
+
+Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
+Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
+Reviewed-by: Thomas Huth <thuth@redhat.com>
+Message-Id: <20220323090713.1002588-1-christian.ehrhardt@canonical.com>
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+Signed-off-by: Dario Binacchi <dariobin@libero.it>
+---
+ pc-bios/optionrom/Makefile | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
+index 5d55d25acca2..f1ef89807355 100644
+--- a/pc-bios/optionrom/Makefile
++++ b/pc-bios/optionrom/Makefile
+@@ -14,6 +14,10 @@ cc-option = $(if $(shell $(CC) $1 -c -o /dev/null -xc /dev/null >/dev/null 2>&1
+ 
+ override CFLAGS += -march=i486 -Wall
+ 
++# If -fcf-protection is enabled in flags or compiler defaults that will
++# conflict with -march=i486
++override CFLAGS += $(call cc-option, -fcf-protection=none)
++
+ # Flags for dependency generation
+ override CPPFLAGS += -MMD -MP -MT $@ -MF $(@D)/$(*F).d
+ 
+-- 
+2.32.0
+

[-- Attachment #2: Type: text/plain, Size: 150 bytes --]

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2022-04-26 20:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-26 20:49 [Buildroot] [git commit branch/2022.02.x] package/qemu: fix host-qemu compilation with Ubuntu GCC 11 Peter Korsgaard

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.