Re: vmlinux.lds: consolidate initcall sections

From: Andrew Morton
Date: Fri Oct 27 2006 - 16:24:30 EST


On Fri, 27 Oct 2006 13:44:13 -0600
Matthew Wilcox <matthew@xxxxxx> wrote:

> On Fri, Oct 27, 2006 at 11:41:44AM -0700, Andrew Morton wrote:
> > Add a vmlinux.lds.h helper macro for defining the eight-level initcall table,
> > teach all the architectures to use it.
>
> > @@ -48,13 +48,7 @@ SECTIONS
> > . = ALIGN(8);
> > __initcall_start = .;
> > .initcall.init : {
> > - *(.initcall1.init)
> > - *(.initcall2.init)
> > - *(.initcall3.init)
> > - *(.initcall4.init)
> > - *(.initcall5.init)
> > - *(.initcall6.init)
> > - *(.initcall7.init)
> > + INITCALLS
> > }
> > __initcall_end = .;
>
> Why not make the INITCALLS macro include more:
>
> +#define INITCALLS \
> + __initcall_start = .; \
> + .initcall.init : { \
> + *(.initcall1.init) \
> + *(.initcall2.init) \
> + *(.initcall3.init) \
> + *(.initcall4.init) \
> + *(.initcall5.init) \
> + *(.initcall6.init) \
> + *(.initcall7.init) \
> + } \
> + __initcall_end = .;

Would be nice, but i386 does:

__initcall_start = .;
.initcall.init : AT(ADDR(.initcall.init) - 0xC0000000) {
*(.initcall1.init)
*(.initcall2.init)
...

> Also, you might want to check the spaces at the front of your INITCALLS
> macro; I see two spaces before the first tab.

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