Message ID | 20200416131715.24498-1-jgross@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] mini-os: use -m elf_i386 for final linking | expand |
On Thu, Apr 16, 2020 at 03:17:15PM +0200, Juergen Gross wrote: > Using the standard -m elf_x86_64 for 64-bit mini-os results in the > first section (.text) to start only at offset 2MB in the binary file. > > Quoting Andrew Cooper on that topic: > > Specifically, 64bit emulation appears to include "align primary > sections to 2M so your OS can make better use of superpages even when > mmap()ing", with no way I can spot to override this in the linker > file. > > Using -m elf_i386 avoids that problem without any visible disadvantage. > > Signed-off-by: Juergen Gross <jgross@suse.com> Applied with Samuel's Rb from v1. Wei.
diff --git a/arch/x86/arch.mk b/arch/x86/arch.mk index c87885f..00028a0 100644 --- a/arch/x86/arch.mk +++ b/arch/x86/arch.mk @@ -26,3 +26,5 @@ ifeq ($(CONFIG_PARAVIRT),n) ARCH_LDFLAGS_FINAL := --oformat=elf32-i386 ARCH_AS_DEPS += x86_hvm.S endif + +ARCH_LDFLAGS_FINAL += -m elf_i386
Using the standard -m elf_x86_64 for 64-bit mini-os results in the first section (.text) to start only at offset 2MB in the binary file. Quoting Andrew Cooper on that topic: Specifically, 64bit emulation appears to include "align primary sections to 2M so your OS can make better use of superpages even when mmap()ing", with no way I can spot to override this in the linker file. Using -m elf_i386 avoids that problem without any visible disadvantage. Signed-off-by: Juergen Gross <jgross@suse.com> --- arch/x86/arch.mk | 2 ++ 1 file changed, 2 insertions(+)