From bbb921d248befbb1bf3970cc8d680403f255de97 Mon Sep 17 00:00:00 2001 From: Jouni Hogander Date: Tue, 1 Sep 2020 16:13:50 +0300 Subject: pkg/bisect: add ccache option Add option to use ccache in kernel builds. Signed-off-by: Jouni Hogander --- pkg/build/linux.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'pkg/build/linux.go') diff --git a/pkg/build/linux.go b/pkg/build/linux.go index 34a980b20..6acf6f347 100644 --- a/pkg/build/linux.go +++ b/pkg/build/linux.go @@ -65,7 +65,24 @@ func (linux) buildKernel(params *Params) error { case "ppc64le": target = "zImage" } - if err := runMake(params.KernelDir, target, "CC="+params.Compiler); err != nil { + + ccParam := params.Compiler + if params.Ccache != "" { + ccParam = params.Ccache + " " + ccParam + // Ensure CONFIG_GCC_PLUGIN_RANDSTRUCT doesn't prevent ccache usage. + // See /Documentation/kbuild/reproducible-builds.rst. + gccPluginsDir := filepath.Join(params.KernelDir, "scripts", "gcc-plugins") + if osutil.IsExist(gccPluginsDir) { + err := osutil.WriteFile(filepath.Join(gccPluginsDir, + "randomize_layout_seed.h"), + []byte("const char *randstruct_seed = "+ + "\"e9db0ca5181da2eedb76eba144df7aba4b7f9359040ee58409765f2bdc4cb3b8\";")) + if err != nil { + return err + } + } + } + if err := runMake(params.KernelDir, target, "CC="+ccParam); err != nil { return err } vmlinux := filepath.Join(params.KernelDir, "vmlinux") -- cgit mrf-deployment