[lkml]   [2003]   [Jan]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: 2.5.59 change broke modules
On 17 Jan 2003, Eric W. Biederman wrote:

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

Can both of you guys elaborate on what "break" means here, I'm trying to
better understand what's going on. One thing is rather obvious, and that's
what causing the current breakage with RH8 binutils:

If "." isn't properly aligned, __kstart___ksymtab will point to an address
which is before the actual start of the section, since that gets aligned
to its requirements. Was that the ARM problem?

Now, what's different for __bss, i.e. what goes wrong there?

Related issue: The linker will actually automatically emit
__{start,stop}_SECTION symbols when SECTION is a C symbol (i.e.
letters,numbers,_), so things should actually work without explicitly
defining those symbols. They do on i386 with my binutils, but I assume
there's some reason why we don't just rely on that?


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:32    [W:0.080 / U:1.620 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site