diff options
Diffstat (limited to '0027-x86-deal-with-gcc12-release-build-issues.patch')
-rw-r--r-- | 0027-x86-deal-with-gcc12-release-build-issues.patch | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/0027-x86-deal-with-gcc12-release-build-issues.patch b/0027-x86-deal-with-gcc12-release-build-issues.patch deleted file mode 100644 index b30c65b..0000000 --- a/0027-x86-deal-with-gcc12-release-build-issues.patch +++ /dev/null @@ -1,65 +0,0 @@ -From a095c6cde8a717325cc31bb393c547cad5e16e35 Mon Sep 17 00:00:00 2001 -From: Jan Beulich <jbeulich@suse.com> -Date: Wed, 27 Jul 2022 09:30:24 +0200 -Subject: [PATCH 027/126] x86: deal with gcc12 release build issues - -While a number of issues we previously had with pre-release gcc12 were -fixed in the final release, we continue to have one issue (with multiple -instances) when doing release builds (i.e. at higher optimization -levels): The compiler takes issue with subtracting (always 1 in our -case) from artifical labels (expressed as array) marking the end of -certain regions. This isn't an unreasonable position to take. Simply -hide the "array-ness" by casting to an integer type. To keep things -looking consistently, apply the same cast also on the respective -expressions dealing with the starting addresses. (Note how -efi_arch_memory_setup()'s l2_table_offset() invocations avoid a similar -issue by already having the necessary casts.) In is_xen_fixed_mfn() -further switch from __pa() to virt_to_maddr() to better match the left -sides of the <= operators. - -Reported-by: Charles Arnold <carnold@suse.com> -Signed-off-by: Jan Beulich <jbeulich@suse.com> -Acked-by: Andrew Cooper <andrew.cooper3@citrix.com> -master commit: 9723507daf2120131410c91980d4e4d9b0d0aa90 -master date: 2022-07-19 08:37:29 +0200 ---- - xen/arch/x86/efi/efi-boot.h | 6 +++--- - xen/include/asm-x86/mm.h | 4 ++-- - 2 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h -index 2541ba1f320a..84fd77931456 100644 ---- a/xen/arch/x86/efi/efi-boot.h -+++ b/xen/arch/x86/efi/efi-boot.h -@@ -624,10 +624,10 @@ static void __init efi_arch_memory_setup(void) - * appropriate l2 slots to map. - */ - #define l2_4G_offset(a) \ -- (((UINTN)(a) >> L2_PAGETABLE_SHIFT) & (4 * L2_PAGETABLE_ENTRIES - 1)) -+ (((a) >> L2_PAGETABLE_SHIFT) & (4 * L2_PAGETABLE_ENTRIES - 1)) - -- for ( i = l2_4G_offset(_start); -- i <= l2_4G_offset(_end - 1); ++i ) -+ for ( i = l2_4G_offset((UINTN)_start); -+ i <= l2_4G_offset((UINTN)_end - 1); ++i ) - { - l2_pgentry_t pte = l2e_from_paddr(i << L2_PAGETABLE_SHIFT, - __PAGE_HYPERVISOR | _PAGE_PSE); -diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h -index 5c19b71eca70..71dd28f126c3 100644 ---- a/xen/include/asm-x86/mm.h -+++ b/xen/include/asm-x86/mm.h -@@ -309,8 +309,8 @@ struct page_info - #define is_xen_heap_mfn(mfn) \ - (mfn_valid(mfn) && is_xen_heap_page(mfn_to_page(mfn))) - #define is_xen_fixed_mfn(mfn) \ -- (((mfn_to_maddr(mfn)) >= __pa(_stext)) && \ -- ((mfn_to_maddr(mfn)) <= __pa(__2M_rwdata_end - 1))) -+ (((mfn_to_maddr(mfn)) >= virt_to_maddr((unsigned long)_stext)) && \ -+ ((mfn_to_maddr(mfn)) <= virt_to_maddr((unsigned long)__2M_rwdata_end - 1))) - - #define PRtype_info "016lx"/* should only be used for printk's */ - --- -2.37.4 - |