diff options
Diffstat (limited to 'recipes-extended/xen/files/xen-fix-gcc12-build-issues.patch')
-rw-r--r-- | recipes-extended/xen/files/xen-fix-gcc12-build-issues.patch | 433 |
1 files changed, 433 insertions, 0 deletions
diff --git a/recipes-extended/xen/files/xen-fix-gcc12-build-issues.patch b/recipes-extended/xen/files/xen-fix-gcc12-build-issues.patch new file mode 100644 index 00000000..6cdd312d --- /dev/null +++ b/recipes-extended/xen/files/xen-fix-gcc12-build-issues.patch @@ -0,0 +1,433 @@ +References: bsc#1196545 + +Compiling against gcc12. + +Many of the failures are -Werror=array-bounds where macros +from mm.h are being used. Common Examples are, +include/asm/mm.h:528:61: error: array subscript 0 is outside array bounds of 'long unsigned int[0]' [-Werror=array-bounds] +include/xen/mm.h:287:21: error: array subscript [0, 288230376151711743] is outside array bounds of 'struct page_info[0]' [-Werror=array-bounds] + +There are also several other headers that generate array-bounds macro failures. +The pragmas to override are mostly in '.c' files with the exception of, +xen/arch/x86/mm/shadow/private.h +xen/include/asm-x86/paging.h + +[Upstream-Status: imported from: https://build.opensuse.org/package/view_file/openSUSE:Factory/xen/gcc12-fixes.patch?expand=1] + +Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> + + +Index: xen-4.16.1-testing/xen/drivers/passthrough/amd/iommu_intr.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/drivers/passthrough/amd/iommu_intr.c ++++ xen-4.16.1-testing/xen/drivers/passthrough/amd/iommu_intr.c +@@ -23,6 +23,10 @@ + + #include "iommu.h" + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + union irte32 { + uint32_t raw; + struct { +Index: xen-4.16.1-testing/xen/drivers/passthrough/x86/hvm.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/drivers/passthrough/x86/hvm.c ++++ xen-4.16.1-testing/xen/drivers/passthrough/x86/hvm.c +@@ -901,6 +901,9 @@ static void __hvm_dpci_eoi(struct domain + hvm_pirq_eoi(pirq); + } + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Waddress" ++#endif + static void hvm_gsi_eoi(struct domain *d, unsigned int gsi) + { + struct pirq *pirq = pirq_info(d, gsi); +Index: xen-4.16.1-testing/xen/common/domctl.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/common/domctl.c ++++ xen-4.16.1-testing/xen/common/domctl.c +@@ -32,6 +32,10 @@ + #include <public/domctl.h> + #include <xsm/xsm.h> + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + static DEFINE_SPINLOCK(domctl_lock); + + static int nodemask_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_nodemap, +Index: xen-4.16.1-testing/xen/common/efi/boot.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/common/efi/boot.c ++++ xen-4.16.1-testing/xen/common/efi/boot.c +@@ -31,6 +31,10 @@ + #undef __ASSEMBLY__ + #endif + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + #define EFI_REVISION(major, minor) (((major) << 16) | (minor)) + + #define SMBIOS3_TABLE_GUID \ +Index: xen-4.16.1-testing/xen/common/xmalloc_tlsf.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/common/xmalloc_tlsf.c ++++ xen-4.16.1-testing/xen/common/xmalloc_tlsf.c +@@ -28,6 +28,10 @@ + #include <xen/pfn.h> + #include <asm/time.h> + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + #define MAX_POOL_NAME_LEN 16 + + /* Some IMPORTANT TLSF parameters */ +Index: xen-4.16.1-testing/xen/common/memory.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/common/memory.c ++++ xen-4.16.1-testing/xen/common/memory.c +@@ -35,6 +35,10 @@ + #include <asm/guest.h> + #endif + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + struct memop_args { + /* INPUT */ + struct domain *domain; /* Domain to be affected. */ +Index: xen-4.16.1-testing/xen/common/page_alloc.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/common/page_alloc.c ++++ xen-4.16.1-testing/xen/common/page_alloc.c +@@ -155,6 +155,10 @@ + #define PGC_reserved 0 + #endif + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + /* + * Comma-separated list of hexadecimal page numbers containing bad bytes. + * e.g. 'badpage=0x3f45,0x8a321'. +@@ -1529,6 +1533,7 @@ static void free_heap_pages( + } + + ++ + /* + * Following rules applied for page offline: + * Once a page is broken, it can't be assigned anymore +Index: xen-4.16.1-testing/xen/common/vmap.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/common/vmap.c ++++ xen-4.16.1-testing/xen/common/vmap.c +@@ -9,6 +9,10 @@ + #include <xen/vmap.h> + #include <asm/page.h> + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + static DEFINE_SPINLOCK(vm_lock); + static void *__read_mostly vm_base[VMAP_REGION_NR]; + #define vm_bitmap(x) ((unsigned long *)vm_base[x]) +Index: xen-4.16.1-testing/xen/include/asm-x86/paging.h +=================================================================== +--- xen-4.16.1-testing.orig/xen/include/asm-x86/paging.h ++++ xen-4.16.1-testing/xen/include/asm-x86/paging.h +@@ -32,6 +32,10 @@ + #include <asm/flushtlb.h> + #include <asm/domain.h> + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + /***************************************************************************** + * Macros to tell which paging mode a domain is in */ + +Index: xen-4.16.1-testing/xen/arch/x86/x86_64/traps.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/arch/x86/x86_64/traps.c ++++ xen-4.16.1-testing/xen/arch/x86/x86_64/traps.c +@@ -25,6 +25,9 @@ + #include <asm/hvm/hvm.h> + #include <asm/hvm/support.h> + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif + + static void print_xen_info(void) + { +Index: xen-4.16.1-testing/xen/arch/x86/cpu/mcheck/mcaction.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/arch/x86/cpu/mcheck/mcaction.c ++++ xen-4.16.1-testing/xen/arch/x86/cpu/mcheck/mcaction.c +@@ -4,6 +4,10 @@ + #include "vmce.h" + #include "mce.h" + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + static struct mcinfo_recovery * + mci_action_add_pageoffline(int bank, struct mc_info *mi, + mfn_t mfn, uint32_t status) +Index: xen-4.16.1-testing/xen/arch/x86/cpu/mcheck/mce.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/arch/x86/cpu/mcheck/mce.c ++++ xen-4.16.1-testing/xen/arch/x86/cpu/mcheck/mce.c +@@ -30,6 +30,10 @@ + #include "util.h" + #include "vmce.h" + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + bool __read_mostly opt_mce = true; + boolean_param("mce", opt_mce); + bool __read_mostly mce_broadcast; +Index: xen-4.16.1-testing/xen/arch/x86/hvm/hvm.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/arch/x86/hvm/hvm.c ++++ xen-4.16.1-testing/xen/arch/x86/hvm/hvm.c +@@ -81,6 +81,10 @@ + + #include <compat/hvm/hvm_op.h> + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + bool_t __read_mostly hvm_enabled; + + #ifdef DBG_LEVEL_0 +Index: xen-4.16.1-testing/xen/arch/x86/pv/dom0_build.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/arch/x86/pv/dom0_build.c ++++ xen-4.16.1-testing/xen/arch/x86/pv/dom0_build.c +@@ -22,6 +22,10 @@ + #include <asm/pv/mm.h> + #include <asm/setup.h> + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + /* Allow ring-3 access in long mode as guest cannot use ring 1 ... */ + #define BASE_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_USER) + #define L1_PROT (BASE_PROT|_PAGE_GUEST_KERNEL) +Index: xen-4.16.1-testing/xen/arch/x86/pv/ro-page-fault.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/arch/x86/pv/ro-page-fault.c ++++ xen-4.16.1-testing/xen/arch/x86/pv/ro-page-fault.c +@@ -26,6 +26,10 @@ + #include "emulate.h" + #include "mm.h" + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + /********************* + * Writable Pagetables + */ +Index: xen-4.16.1-testing/xen/arch/x86/pv/emul-priv-op.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/arch/x86/pv/emul-priv-op.c ++++ xen-4.16.1-testing/xen/arch/x86/pv/emul-priv-op.c +@@ -40,6 +40,10 @@ + #include "emulate.h" + #include "mm.h" + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + struct priv_op_ctxt { + struct x86_emulate_ctxt ctxt; + struct { +Index: xen-4.16.1-testing/xen/arch/x86/pv/mm.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/arch/x86/pv/mm.c ++++ xen-4.16.1-testing/xen/arch/x86/pv/mm.c +@@ -26,6 +26,10 @@ + + #include "mm.h" + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + /* + * Get a mapping of a PV guest's l1e for this linear address. The return + * pointer should be unmapped using unmap_domain_page(). +Index: xen-4.16.1-testing/xen/arch/x86/domain_page.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/arch/x86/domain_page.c ++++ xen-4.16.1-testing/xen/arch/x86/domain_page.c +@@ -18,6 +18,10 @@ + #include <asm/hardirq.h> + #include <asm/setup.h> + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + static DEFINE_PER_CPU(struct vcpu *, override); + + static inline struct vcpu *mapcache_current_vcpu(void) +Index: xen-4.16.1-testing/xen/arch/x86/mm/shadow/private.h +=================================================================== +--- xen-4.16.1-testing.orig/xen/arch/x86/mm/shadow/private.h ++++ xen-4.16.1-testing/xen/arch/x86/mm/shadow/private.h +@@ -33,6 +33,10 @@ + + #include "../mm-locks.h" + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + /****************************************************************************** + * Levels of self-test and paranoia + */ +Index: xen-4.16.1-testing/xen/arch/x86/mm/hap/hap.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/arch/x86/mm/hap/hap.c ++++ xen-4.16.1-testing/xen/arch/x86/mm/hap/hap.c +@@ -42,6 +42,10 @@ + + #include "private.h" + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + /************************************************/ + /* HAP VRAM TRACKING SUPPORT */ + /************************************************/ +Index: xen-4.16.1-testing/xen/arch/x86/mm/p2m-pod.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/arch/x86/mm/p2m-pod.c ++++ xen-4.16.1-testing/xen/arch/x86/mm/p2m-pod.c +@@ -31,6 +31,10 @@ + + #include "mm-locks.h" + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + #define superpage_aligned(_x) (((_x)&(SUPERPAGE_PAGES-1))==0) + + /* Enforce lock ordering when grabbing the "external" page_alloc lock */ +Index: xen-4.16.1-testing/xen/arch/x86/mm/p2m-ept.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/arch/x86/mm/p2m-ept.c ++++ xen-4.16.1-testing/xen/arch/x86/mm/p2m-ept.c +@@ -36,6 +36,10 @@ + + #include "mm-locks.h" + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + #define atomic_read_ept_entry(__pepte) \ + ( (ept_entry_t) { .epte = read_atomic(&(__pepte)->epte) } ) + +Index: xen-4.16.1-testing/xen/arch/x86/mm/p2m.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/arch/x86/mm/p2m.c ++++ xen-4.16.1-testing/xen/arch/x86/mm/p2m.c +@@ -44,6 +44,10 @@ + + #include "mm-locks.h" + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + /* Override macro from asm/page.h to make work with mfn_t */ + #undef virt_to_mfn + #define virt_to_mfn(v) _mfn(__virt_to_mfn(v)) +Index: xen-4.16.1-testing/xen/arch/x86/tboot.c +=================================================================== +--- xen-4.16.1-testing.orig/xen/arch/x86/tboot.c ++++ xen-4.16.1-testing/xen/arch/x86/tboot.c +@@ -16,6 +16,10 @@ + #include <asm/setup.h> + #include <crypto/vmac.h> + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + /* tboot=<physical address of shared page> */ + static unsigned long __initdata opt_tboot_pa; + integer_param("tboot", opt_tboot_pa); +Index: xen-4.16.1-testing/tools/firmware/hvmloader/ovmf.c +=================================================================== +--- xen-4.16.1-testing.orig/tools/firmware/hvmloader/ovmf.c ++++ xen-4.16.1-testing/tools/firmware/hvmloader/ovmf.c +@@ -34,6 +34,11 @@ + #include <xen/hvm/ioreq.h> + #include <xen/memory.h> + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#pragma GCC diagnostic ignored "-Wstringop-overflow" ++#endif ++ + #define OVMF_MAXOFFSET 0x000FFFFFULL + #define OVMF_END 0x100000000ULL + #define LOWCHUNK_BEGIN 0x000F0000 +Index: xen-4.16.1-testing/tools/firmware/hvmloader/seabios.c +=================================================================== +--- xen-4.16.1-testing.orig/tools/firmware/hvmloader/seabios.c ++++ xen-4.16.1-testing/tools/firmware/hvmloader/seabios.c +@@ -29,6 +29,11 @@ + #include <acpi2_0.h> + #include <libacpi.h> + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#pragma GCC diagnostic ignored "-Wstringop-overflow" ++#endif ++ + struct seabios_info { + char signature[14]; /* XenHVMSeaBIOS\0 */ + uint8_t length; /* Length of this struct */ +Index: xen-4.16.1-testing/tools/firmware/hvmloader/util.c +=================================================================== +--- xen-4.16.1-testing.orig/tools/firmware/hvmloader/util.c ++++ xen-4.16.1-testing/tools/firmware/hvmloader/util.c +@@ -31,6 +31,10 @@ + #include <xen/hvm/hvm_xs_strings.h> + #include <xen/hvm/params.h> + ++#if __GNUC__ >= 12 ++#pragma GCC diagnostic ignored "-Warray-bounds" ++#endif ++ + /* + * Check whether there exists overlap in the specified memory range. + * Returns true if exists, else returns false. + |