From 213629f2d3050465d2a6cb6842d056f71648fe55 Mon Sep 17 00:00:00 2001 From: Dario Binacchi Date: Wed, 6 Apr 2022 23:10:34 +0200 Subject: [PATCH] package/qemu: fix host-qemu compilation with Ubuntu GCC 11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Dario Binacchi Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- ...able-fcf-protection-on-march-486-m16.patch | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 package/qemu/0002-build-disable-fcf-protection-on-march-486-m16.patch 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 +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 +Reviewed-by: Philippe Mathieu-Daudé +Reviewed-by: Thomas Huth +Message-Id: <20220323090713.1002588-1-christian.ehrhardt@canonical.com> +Signed-off-by: Paolo Bonzini +Signed-off-by: Dario Binacchi +--- + 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 +