Re: Absolute symbols in vmlinux_64.lds.S

From: Eric W. Biederman
Date: Mon Mar 09 2009 - 21:37:33 EST


Jeremy Fitzhardinge <jeremy@xxxxxxxx> writes:

> Why does vmlinux_64.lds.S use absolute symbols for things like __bss_start/stop:
>
> __bss_start = .; /* BSS */
> .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
> *(.bss.page_aligned)
> *(.bss)
> }
> __bss_stop = .;
>
>
> vmlinux_32.lds.S puts __bss_start/stop into the .bss section itself. Is there
> some particular reason they need to be absolute symbols (relocation?).

It is more that in vmlinux_32.lds.S they needed to be section relative, to
deal with relocation.

For the 64bit kernel the relocation happens at the level under the page table
so does not show up in vmlinux_64.lds.S. Which means it was probably
laziness that didn't get it changed simply because it hasn't matter.

Eric
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/