[lkml]   [2002]   [Mar]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [Lse-tech] Re: 10.31 second kernel compile
    Martin J. Bligh wrote:
    >>Due to the final link and compress stage, there is a fair amount of idle
    >>time at the end of the run. Its going to be hard to push that number
    >>lower by adding cpus.
    > I think we need to fix the final phase .... anyone got any ideas
    > on parallelizing that?
    The final linking stage in the makefile looks like this:

    vmlinux: piggy.o $(OBJECTS)
    $(LD) $(ZLINKFLAGS) -o vmlinux $(OBJECTS) piggy.o

    ld has a "-r" option
    Generate relocatable output---i.e., generate an output
    file that can in turn serve as input to `ld'. This is
    often called partial linking. As a side effect, in
    environments that support standard Unix magic numbers,
    this option also sets the output file's magic number
    to `OMAGIC'. If this option is not specified, an
    absolute file is produced. When linking C++ programs,
    this option will not resolve references to construc­
    tors; to do that, use -Ur.

    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?

    Dave Hansen

    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:24    [W:0.039 / U:2.160 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site