Maciej W. Rozycki wrote:
> On Mon, 29 Jan 2007, Franck Bui-Huu 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.
> Well, the option used to select between 64-bit and 32-bit ELF for
> building 64-bit configurations. I can see it has been changed from its
> original meaning and it now only controls whether "-mno-explicit-relocs"
> is passed to the compiler or not, which is sort of useless and certainly
> does not match the intent nor what the description says. The 64-bit
> format is now used unconditionally and you can always pass such obscure
> options to the compiler on the make's command line, so instead of this fix
> I vote for complete removal of the BUILD_ELF64 option.
AFAIR at some point in gcc development the compiler expanded explicit
relocs to 32bit sequences unless -mno-xplicit-relocs was specified.