Messages in this thread | | | From | (Eric W. Biederman) | Date | Mon, 09 Mar 2009 18:36:57 -0700 | Subject | Re: Absolute symbols in vmlinux_64.lds.S |
| |
Jeremy Fitzhardinge <jeremy@goop.org> 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
| |