Re: [REGRESSION] _end symbol missing from Symbol.map

From: Andrew Morton
Date: Wed Aug 19 2009 - 12:38:47 EST


On Thu, 13 Aug 2009 08:45:20 +0200 Hannes Reinecke <hare@xxxxxxx> wrote:

> Hi all,
>
> with 2.6.31 'crash' on x86_64 falls flat on its face as the '_end' symbol
> is missing from the System.map file.
>
> The culprit is commit 091e52c3551d3031343df24b573b770b4c6c72b6,
> which moved the '_end' symbol into it's own section.
> Apparently this causes kallsyms to not reference it properly.
>
> So either we'd need to revert part of the patch to not
> include _end in it's own section:
>
> diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
> index 59f31d2..1422df5 100644
> --- a/arch/x86/kernel/vmlinux.lds.S
> +++ b/arch/x86/kernel/vmlinux.lds.S
> @@ -376,9 +376,7 @@ SECTIONS
> __brk_limit = .;
> }
>
> - .end : AT(ADDR(.end) - LOAD_OFFSET) {
> - _end = .;
> - }
> + _end = .;
>
> /* Sections to be discarded */
> /DISCARD/ : {
>
> or someone has to fixup kallsyms. But this is far beyond my comfort zone.
>

So System.map is part of the kernel API too? Sigh.

Your email client replaces tabs with spaces.

The patch didn't have a signed-off-by:

I queued it up, and tagged it for -stable backporting. Unless we come
up with something better.

We might not get this into 2.6.31, in which case this fix or its
replacement will need backporting to 2.6.30.x and 2.6.31.x (IMO).

--
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/