Re: 2.5.59 vmlinux.lds.S change broke modules

Eric W. Biederman (ebiederm@xmission.com)
17 Jan 2003 09:13:14 -0700


Russell King <rmk@arm.linux.org.uk> writes:

> On Fri, Jan 17, 2003 at 01:55:21PM +0100, Mikael Pettersson wrote:
> > This oops occurs for every module, not just af_packet.ko, at
> > resolve_symbol()'s first call to __find_symbol().
> >
> > What happens is that __find_symbol() oopses because the kernel's
> > symbol table is in la-la land. (Note the bogus kernel adress
> > 2220c021 it tried to dereference above.)
> >
> > Reverting 2.5.59's patch to arch/i386/vmlinux.lds.S cured the
> > problem and modules now load correctly for me.
> >
> > I don't know if this is a problem also for non-i386 archs.
>
> Well:
>
> __start___ksymtab = .; \
> __ksymtab : AT(ADDR(__ksymtab) - LOAD_OFFSET) { \
> *(__ksymtab) \
> } \
> __stop___ksymtab = .; \
>
> breaks on some ARM binutils (from a couple of years ago.) The most
> reliable way we've found in with ARM binutils is to place the symbols
> inside the section - this appears to work 100% every single time and
> I've never had any reports of failure (whereas I did with the symbols
> outside as above.)

That has been roughly my experience on x86 as well with the exception
of bss sections. For bss sections placing the symbols inside the section
itself has been deadly.

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