diff --git a/headers/private/kernel/arch/sparc/arch_kernel.h b/headers/private/kernel/arch/sparc/arch_kernel.h index 5666fff6b5..10029e071e 100644 --- a/headers/private/kernel/arch/sparc/arch_kernel.h +++ b/headers/private/kernel/arch/sparc/arch_kernel.h @@ -9,7 +9,11 @@ #include // memory layout -#define KERNEL_LOAD_BASE_64_BIT 0xffffffff80000000ll +// FIXME: On sparc, the kernel should live in an independent address space, +// and does not share addresses with userspace. So, a lot of this doesn't +// really make sense. See #19597 for discussion. +// The consequence is that IS_USER_MEMORY cannot work in the way we need. +#define KERNEL_LOAD_BASE_64_BIT 0x80000000ll // Base of the kernel address space. // KERNEL_BASE is the base of the kernel address space. This differs from the diff --git a/src/system/ldscripts/sparc/kernel.ld b/src/system/ldscripts/sparc/kernel.ld index f465690d66..fb50cdb64e 100644 --- a/src/system/ldscripts/sparc/kernel.ld +++ b/src/system/ldscripts/sparc/kernel.ld @@ -13,7 +13,7 @@ PHDRS SECTIONS { - . = 0xFFFFFFFF80000000 + SIZEOF_HEADERS; + . = 0x80000000 + SIZEOF_HEADERS; .interp : { *(.interp) } : text .hash : { *(.hash) }