Re: [Lse-tech] Re: 10.31 second kernel compile

Keith Owens
2002-03-14T01:08:11Z

On Wed, 13 Mar 2002 13:44:43 -0800,
Dave Hansen <haveblue@us.ibm.com> wrote:
>The final linking stage in the makefile looks like this:
>
>vmlinux: piggy.o $(OBJECTS)
> $(LD) $(ZLINKFLAGS) -o vmlinux $(OBJECTS) piggy.o
>
>If we link in chunks, we can parallelize this.
>Image 26 object files: [a-z].o
>
>ld -r -o abcd.o [abcd].o
>ld -r -o efgh.o [efgh].o
>...
>ld -r -o abcdefgh.o {abcd,efgh,...}.o
>
>then, instead of the old final link stage:
>$(LD) $(ZLINKFLAGS) -o vmlinux {abcdefgh,...}.o piggy.o
>
>The final link will still take a while, but we will have at least broken
>up SOME of the work. I'm going to see if this will actually work now.
>Any comments?

I'm sorry Dave, you can't do that ;) The init_call order is controlled
by link order, change the link order and you corrupt the kernel
initialization order, double plus ungood. The link of vmlinux requires
that $(OBJECTS) be exactly as coded.