Messages in this thread | | | From | Randy Dunlap <> | Subject | x86_32: CONFIG_PHYSICAL_START problem | Date | Sat, 12 Dec 2020 22:29:13 -0800 |
| |
background:
I was trying to debug a MIPS build error, but it wasn't MIPS-specific, so I did this, using the MIPS .config file:
make ARCH=i386 O=xx32 olddefconfig
Little to my knowledge, this came up with CONFIG_PHYSICAL_START=0x81000000
Then I built the i386 kernel, and got this message: ld: kernel image bigger than KERNEL_IMAGE_SIZE
so I promptly changed many =y drivers etc. to =m and still got the same ld error message.
Well, it must be something else, he said.
I tracked it down to this large value of CONFIG_PHYSICAL_START and changed it back to its default value, then the kernel built with no problems.
So far I haven't been able to track the chain of values/changes that involve PHYSICAL_START, __PAGE_OFFSET, LOAD_OFFSET, etc.
Anyway, I would like to see PHYSICAL_START limited to some acceptable range of values in arch/x86/Kconfig, or at a minimum, a little bit better error message coming from arch/x86/kernel/vmlinux.lds.S:
. = ASSERT((_end - LOAD_OFFSET <= KERNEL_IMAGE_SIZE), "kernel image bigger than KERNEL_IMAGE_SIZE");
so maybe:
. = ASSERT((_end - LOAD_OFFSET <= KERNEL_IMAGE_SIZE), "kernel image bigger than KERNEL_IMAGE_SIZE or load address is too large"); (or start address)
Comments?
thanks. -- ~Randy Reported-by: Randy Dunlap <rdunlap@infradead.org>
| |