From 55b2738fe3c60d20380982ee229722d5103c4463 Mon Sep 17 00:00:00 2001 From: Michal Vasilek Date: Tue, 30 May 2023 21:20:02 +0200 Subject: [PATCH] qemu: fix build with gcc 12 --- srcpkgs/qemu/patches/gcc12.patch | 72 ++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 srcpkgs/qemu/patches/gcc12.patch diff --git a/srcpkgs/qemu/patches/gcc12.patch b/srcpkgs/qemu/patches/gcc12.patch new file mode 100644 index 00000000000..2a4b2bd0360 --- /dev/null +++ b/srcpkgs/qemu/patches/gcc12.patch @@ -0,0 +1,72 @@ +From 5cb993ff131fca2abef3ce074a20258fd6fce557 Mon Sep 17 00:00:00 2001 +From: Bernhard Beschow +Date: Sat, 18 Mar 2023 19:59:31 +0100 +Subject: [PATCH] qemu/osdep: Switch position of "extern" and "G_NORETURN" + +Fixes the Windows build under msys2 using GCC 12 which fails with the following +error: + + [184/579] Compiling C++ object qga/vss-win32/qga-vss.dll.p/install.cpp.obj + FAILED: qga/vss-win32/qga-vss.dll.p/install.cpp.obj + "c++" "-m64" "-mcx16" "-Iqga/vss-win32/qga-vss.dll.p" "-Iqga/vss-win32" "-I../src/qga/vss-win32" "-I." "-Iqapi" "-Itrace" "-Iui" "-Iui/shader" "-IC:/msys64/mingw64/include/glib-2.0" "-IC:/msys64/mingw64/lib/glib-2.0/include" "-fdiagnostics-color=auto" "-Wall" "-Winvalid-pch" "-Wnon-virtual-dtor" "-Werror" "-std=gnu++11" "-g" "-iquote" "." "-iquote" "C:/msys64/home/shentey/Projects/qemu/src" "-iquote" "C:/msys64/home/shentey/Projects/qemu/src/include" "-iquote" "C:/msys64/home/shentey/Projects/qemu/src/tcg/i386" "-D__STDC_LIMIT_MACROS" "-D__STDC_CONSTANT_MACROS" "-D__STDC_FORMAT_MACROS" "-fno-pie" "-no-pie" "-D_GNU_SOURCE" "-D_FILE_OFFSET_BITS=64" "-D_LARGEFILE_SOURCE" "-fno-strict-aliasing" "-fno-common" "-fwrapv" "-Wundef" "-Wwrite-strings" "-Wtype-limits" "-Wformat-security" "-Wformat-y2k" "-Winit-self" "-Wignored-qualifiers" "-Wempty-body" "-Wendif-labels" "-Wexpansion-to-defined" "-Wimplicit-fallthrough=2" "-Wmissing-format-attribute" "-Wno-missing-include-dirs" "-Wno-shift-negative-value" "-Wno-psabi" "-fstack-protector-strong" "-Wno-unknown-pragmas" "-Wno-delete-non-virtual-dtor" "-Wno-non-virtual-dtor" -MD -MQ qga/vss-win32/qga-vss.dll.p/install.cpp.obj -MF "qga/vss-win32/qga-vss.dll.p/install.cpp.obj.d" -o qga/vss-win32/qga-vss.dll.p/install.cpp.obj "-c" ../src/qga/vss-win32/install.cpp + In file included from C:/msys64/mingw64/lib/glib-2.0/include/glibconfig.h:9, + from C:/msys64/mingw64/include/glib-2.0/glib/gtypes.h:34, + from C:/msys64/mingw64/include/glib-2.0/glib/galloca.h:34, + from C:/msys64/mingw64/include/glib-2.0/glib.h:32, + from C:/msys64/home/shentey/Projects/qemu/src/include/glib-compat.h:32, + from C:/msys64/home/shentey/Projects/qemu/src/include/qemu/osdep.h:144, + from ../src/qga/vss-win32/install.cpp:13: + C:/msys64/mingw64/include/glib-2.0/glib/gmacros.h:1075:21: error: standard attributes in middle of decl-specifiers + 1075 | # define G_NORETURN [[noreturn]] + | ^ + C:/msys64/home/shentey/Projects/qemu/src/include/qemu/osdep.h:240:8: note: in expansion of macro 'G_NORETURN' + 240 | extern G_NORETURN + | ^~~~~~~~~~ + C:/msys64/mingw64/include/glib-2.0/glib/gmacros.h:1075:21: note: standard attributes must precede the decl-specifiers to apply to the declaration, or follow them to apply to the type + 1075 | # define G_NORETURN [[noreturn]] + | ^ + C:/msys64/home/shentey/Projects/qemu/src/include/qemu/osdep.h:240:8: note: in expansion of macro 'G_NORETURN' + 240 | extern G_NORETURN + | ^~~~~~~~~~ + C:/msys64/mingw64/include/glib-2.0/glib/gmacros.h:1075:21: error: attribute ignored [-Werror=attributes] + 1075 | # define G_NORETURN [[noreturn]] + | ^ + C:/msys64/home/shentey/Projects/qemu/src/include/qemu/osdep.h:240:8: note: in expansion of macro 'G_NORETURN' + 240 | extern G_NORETURN + | ^~~~~~~~~~ + C:/msys64/mingw64/include/glib-2.0/glib/gmacros.h:1075:21: note: an attribute that appertains to a type-specifier is ignored + 1075 | # define G_NORETURN [[noreturn]] + | ^ + C:/msys64/home/shentey/Projects/qemu/src/include/qemu/osdep.h:240:8: note: in expansion of macro 'G_NORETURN' + 240 | extern G_NORETURN + | ^~~~~~~~~~ + cc1plus.exe: all warnings being treated as errors + +Apparently it also fixes the compilation with Clang 15 (see +https://gitlab.com/qemu-project/qemu/-/issues/1541 ). + +Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1541 +Signed-off-by: Bernhard Beschow +Message-Id: <20230318185931.181659-1-shentey@gmail.com> +Reviewed-by: Peter Maydell +Signed-off-by: Thomas Huth +--- + include/qemu/osdep.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h +index f68b5d8708c..9eff0be95bd 100644 +--- a/include/qemu/osdep.h ++++ b/include/qemu/osdep.h +@@ -237,7 +237,7 @@ extern "C" { + * supports QEMU_ERROR, this will be reported at compile time; otherwise + * this will be reported at link time due to the missing symbol. + */ +-extern G_NORETURN ++G_NORETURN extern + void QEMU_ERROR("code path is reachable") + qemu_build_not_reached_always(void); + #if defined(__OPTIMIZE__) && !defined(__NO_INLINE__) +-- +GitLab +