um: Switch to large mcmodel on x86_64
x86_64 UML is unable to load modules if more than 504MiB of memory are used. This happens because on x86_64 the UML process has a quite high start address (typically around 0x6000000). If UML's memory is larger than 504MiB VMALLOC_START happens to be after 0x8000000. This is no problem unless one loads a module which was built with R_X86_64_32S relocations. Symbols with a location > 0x8000000 cannot be used with R_X86_64_32S To deal with this x86_64 UML has to be compiled with -mcmodel=large such that no R_X86_64_32S relocations are used. Signed-off-by: Richard Weinberger <richard@nod.at> Reported-by: 전하늘 <allskyee@gmail.com>
This commit is contained in:
Родитель
9310da0bbb
Коммит
12783aa077
|
@ -28,6 +28,7 @@ ifeq ($(SUBARCH),i386)
|
||||||
endif
|
endif
|
||||||
ifeq ($(SUBARCH),x86_64)
|
ifeq ($(SUBARCH),x86_64)
|
||||||
HEADER_ARCH := x86
|
HEADER_ARCH := x86
|
||||||
|
KBUILD_CFLAGS += -mcmodel=large
|
||||||
endif
|
endif
|
||||||
|
|
||||||
HOST_DIR := arch/$(HEADER_ARCH)
|
HOST_DIR := arch/$(HEADER_ARCH)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче