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. Thiemo