Skip to content

Commit

Permalink
pkg/build: use incremental builds for the FreeBSD kernel toolchain
Browse files Browse the repository at this point in the history
LLVM takes a long time to compile, so let's avoid rebuilds when they're
unnecessary (which is most of the time).
  • Loading branch information
markjdb authored and dvyukov committed Mar 14, 2019
1 parent 4bb3007 commit ac5e611
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions pkg/build/freebsd.go
Expand Up @@ -33,8 +33,8 @@ options KCOV
return err
}

objDir := filepath.Join(outputDir, "obj")
if err := ctx.make(kernelDir, objDir, "kernel-toolchain"); err != nil {
objDir := filepath.Join(kernelDir, "obj")
if err := ctx.make(kernelDir, objDir, "kernel-toolchain", "-DNO_CLEAN"); err != nil {
return err
}
if err := ctx.make(kernelDir, objDir, "buildkernel", "KERNCONF=SYZKALLER"); err != nil {
Expand All @@ -58,11 +58,11 @@ md=$(sudo mdconfig -a -t vnode image)
tmpdir=$(mktemp -d)
sudo mount /dev/${md}p3 $tmpdir
sudo MAKEOBJDIRPREFIX=$(pwd)/obj make -C %s installkernel KERNCONF=SYZKALLER DESTDIR=$tmpdir
sudo MAKEOBJDIRPREFIX=%s make -C %s installkernel KERNCONF=SYZKALLER DESTDIR=$tmpdir
sudo umount $tmpdir
sudo mdconfig -d -u ${md#md}
`, kernelDir)
`, objDir, kernelDir)

if debugOut, err := osutil.RunCmd(10*time.Minute, outputDir, "/bin/sh", "-c", script); err != nil {
return fmt.Errorf("error copying kernel: %v\n%v", err, debugOut)
Expand All @@ -71,8 +71,8 @@ sudo mdconfig -d -u ${md#md}
}

func (ctx freebsd) clean(kernelDir, targetArch string) error {
// Builds are non-incremental for now, so we don't need to do anything here.
return nil
objDir := filepath.Join(kernelDir, "obj")
return ctx.make(kernelDir, objDir, "cleanworld")
}

func (ctx freebsd) make(kernelDir string, objDir string, makeArgs ...string) error {
Expand Down

0 comments on commit ac5e611

Please sign in to comment.