From: Andrew Cooper Date: Thu, 11 Jan 2018 17:47:59 +0000 (+0000) Subject: x86/link: Introduce and use SECTION_ALIGN X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~819 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=aeff467a18979f9f13b84378a25a484f2504c4d1;p=xen.git x86/link: Introduce and use SECTION_ALIGN ... to reduce the quantity of #ifdef EFI. Signed-off-by: Andrew Cooper Reviewed-by: Wei Liu --- diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S index d3c984a463..2ee0fd2d41 100644 --- a/xen/arch/x86/xen.lds.S +++ b/xen/arch/x86/xen.lds.S @@ -12,12 +12,14 @@ #define FORMAT "pei-x86-64" #undef __XEN_VIRT_START #define __XEN_VIRT_START __image_base__ +#define SECTION_ALIGN MB(2) ENTRY(efi_start) #else /* !EFI */ #define FORMAT "elf64-x86-64" +#define SECTION_ALIGN PAGE_SIZE ENTRY(start) @@ -68,11 +70,7 @@ SECTIONS _etext = .; /* End of text section */ } :text = 0x9090 -#ifdef EFI - . = ALIGN(MB(2)); -#else - . = ALIGN(PAGE_SIZE); -#endif + . = ALIGN(SECTION_ALIGN); __2M_text_end = .; __2M_rodata_start = .; /* Start of 2M superpages, mapped RO. */ @@ -150,11 +148,7 @@ SECTIONS #endif _erodata = .; -#ifdef EFI - . = ALIGN(MB(2)); -#else - . = ALIGN(PAGE_SIZE); -#endif + . = ALIGN(SECTION_ALIGN); __2M_rodata_end = .; __2M_init_start = .; /* Start of 2M superpages, mapped RWX (boot only). */ @@ -216,11 +210,7 @@ SECTIONS __ctors_end = .; } :text -#ifdef EFI - . = ALIGN(MB(2)); -#else - . = ALIGN(PAGE_SIZE); -#endif + . = ALIGN(SECTION_ALIGN); __init_end = .; __2M_init_end = .; @@ -258,11 +248,7 @@ SECTIONS } :text _end = . ; -#ifdef EFI - . = ALIGN(MB(2)); -#else - . = ALIGN(PAGE_SIZE); -#endif + . = ALIGN(SECTION_ALIGN); __2M_rwdata_end = .; #ifdef EFI @@ -311,23 +297,13 @@ ASSERT(__image_base__ > XEN_VIRT_START || ASSERT(kexec_reloc_size - kexec_reloc <= PAGE_SIZE, "kexec_reloc is too large") #endif -#ifdef EFI -ASSERT(IS_ALIGNED(__2M_text_end, MB(2)), "__2M_text_end misaligned") -ASSERT(IS_ALIGNED(__2M_rodata_start, MB(2)), "__2M_rodata_start misaligned") -ASSERT(IS_ALIGNED(__2M_rodata_end, MB(2)), "__2M_rodata_end misaligned") -ASSERT(IS_ALIGNED(__2M_init_start, MB(2)), "__2M_init_start misaligned") -ASSERT(IS_ALIGNED(__2M_init_end, MB(2)), "__2M_init_end misaligned") -ASSERT(IS_ALIGNED(__2M_rwdata_start, MB(2)), "__2M_rwdata_start misaligned") -ASSERT(IS_ALIGNED(__2M_rwdata_end, MB(2)), "__2M_rwdata_end misaligned") -#else -ASSERT(IS_ALIGNED(__2M_text_end, PAGE_SIZE), "__2M_text_end misaligned") -ASSERT(IS_ALIGNED(__2M_rodata_start, PAGE_SIZE), "__2M_rodata_start misaligned") -ASSERT(IS_ALIGNED(__2M_rodata_end, PAGE_SIZE), "__2M_rodata_end misaligned") -ASSERT(IS_ALIGNED(__2M_init_start, PAGE_SIZE), "__2M_init_start misaligned") -ASSERT(IS_ALIGNED(__2M_init_end, PAGE_SIZE), "__2M_init_end misaligned") -ASSERT(IS_ALIGNED(__2M_rwdata_start, PAGE_SIZE), "__2M_rwdata_start misaligned") -ASSERT(IS_ALIGNED(__2M_rwdata_end, PAGE_SIZE), "__2M_rwdata_end misaligned") -#endif +ASSERT(IS_ALIGNED(__2M_text_end, SECTION_ALIGN), "__2M_text_end misaligned") +ASSERT(IS_ALIGNED(__2M_rodata_start, SECTION_ALIGN), "__2M_rodata_start misaligned") +ASSERT(IS_ALIGNED(__2M_rodata_end, SECTION_ALIGN), "__2M_rodata_end misaligned") +ASSERT(IS_ALIGNED(__2M_init_start, SECTION_ALIGN), "__2M_init_start misaligned") +ASSERT(IS_ALIGNED(__2M_init_end, SECTION_ALIGN), "__2M_init_end misaligned") +ASSERT(IS_ALIGNED(__2M_rwdata_start, SECTION_ALIGN), "__2M_rwdata_start misaligned") +ASSERT(IS_ALIGNED(__2M_rwdata_end, SECTION_ALIGN), "__2M_rwdata_end misaligned") ASSERT(IS_ALIGNED(cpu0_stack, STACK_SIZE), "cpu0_stack misaligned")