On Mon, Jan 29, 2007 at 10:59:37AM +0100, Franck Bui-Huu wrote:
> On 1/28/07, Daniel Jacobowitz <firstname.lastname@example.org> wrote:
> >The problem is __pa_symbol(&_end); the kernel is linked at
> >0xffffffff80xxxxxx, so subtracting a PAGE_OFFSET of 0xa800000000000000
> >does not do anything useful to this address at all.
> In my understanding, if your kernel is linked at 0xffffffff80xxxxxx,
> you shouldn't have CONFIG_BUILD_ELF64 set.
What Maciej said. But also: please compare the description of
CONFIG_BUILD_ELF64 with the targets that link at that address.
Almost every supported target links at that address, except for
IP27. How do any of them work today?
bool "Use 64-bit ELF format for building"
depends on 64BIT
A 64-bit kernel is usually built using the 64-bit ELF binary object
format as it's one that allows arbitrary 64-bit constructs. For
kernels that are loaded within the KSEG compatibility segments the
32-bit ELF format can optionally be used resulting in a somewhat
smaller binary, but this option is not explicitly supported by the
toolchain and since binutils 2.14 it does not even work at all.
Say Y to use the 64-bit format or N to use the 32-bit one.
If unsure say Y.
% grep load- arch/mips/Makefile | grep ffffffff8 | wc
55 165 2743