s

fix buildbot multi-core compile not work issue


1 description

I use buildbot for daily build task. But the multi-core compile feature is not effective.

2 analysis

2.1 multi-core compile in terminal test

We use a build script to accept multi-core compile parameter. as below:

./build-sh -j 16
              

add we add debug info in `build-sh'

if [ $num -gt 1 ]; then
    echo "*** $num cpu core compiling ***"
    make -j$num V=s
else
    make V=s
fi
              

It proves that multi-core compile in terminal works.

2.2 multi-core compile in buildbot test

and we write the buildbot master.cfg as below:

makeall = steps.ShellCommand(
    name = "make-all",
    command = ["./build-sh", "-j 16"],
    haltOnFailure = True,
    description = "make all" )
              

By analyzing the buildbot stdio log file, we found that the multi-core compile feature is not in use.

3 fix

Don't specify the command with a list of argv strings, specify it with a single string.

modified as below:

makeall = steps.ShellCommand(
    name = "make-all",
    command = "./build-sh -j 16",
    haltOnFailure = True,
    description = "make all" )
            

and do

$ cd buildbot
$ buildbot reconfig master/
            

Then the multi-core compile feature can be effective.