diff options
| author | Liz Prucka <lizprucka@google.com> | 2023-12-28 10:12:13 -0600 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2024-01-15 11:02:38 +0000 |
| commit | 2a7bcc7f9f751f2ec13586584e8e25b8f6817e8c (patch) | |
| tree | f9e2ebb839c7f4750d9e9236659c9eaefdb1e935 /syz-ci | |
| parent | 659da5e58b9a9c032a4127591796722120aa0c2f (diff) | |
syz-ci/manager: separate build and coverage dirs
Fix to
[4f9b680](https://github.com/google/syzkaller/commit/4f9b680bf7d56a0023c4ec0e87207c77de7d276a),
which broke kernel builds by changing build directory when
kernel_src_suffix is used.
Diffstat (limited to 'syz-ci')
| -rw-r--r-- | syz-ci/manager.go | 76 |
1 files changed, 39 insertions, 37 deletions
diff --git a/syz-ci/manager.go b/syz-ci/manager.go index d21a2a67f..dfa6940b5 100644 --- a/syz-ci/manager.go +++ b/syz-ci/manager.go @@ -69,24 +69,25 @@ func init() { // - latest: latest known good kernel build // - current: currently used kernel build type Manager struct { - name string - workDir string - kernelDir string - currentDir string - latestDir string - configTag string - configData []byte - cfg *Config - repo vcs.Repo - mgrcfg *ManagerConfig - managercfg *mgrconfig.Config - cmd *ManagerCmd - dash ManagerDashapi - debugStorage bool - storage *asset.Storage - stop chan struct{} - debug bool - lastBuild *dashapi.Build + name string + workDir string + kernelBuildDir string + kernelSrcDir string + currentDir string + latestDir string + configTag string + configData []byte + cfg *Config + repo vcs.Repo + mgrcfg *ManagerConfig + managercfg *mgrconfig.Config + cmd *ManagerCmd + dash ManagerDashapi + debugStorage bool + storage *asset.Storage + stop chan struct{} + debug bool + lastBuild *dashapi.Build } type ManagerDashapi interface { @@ -136,22 +137,23 @@ func createManager(cfg *Config, mgrcfg *ManagerConfig, stop chan struct{}, } mgr := &Manager{ - name: mgrcfg.managercfg.Name, - workDir: filepath.Join(dir, "workdir"), - kernelDir: path.Join(kernelDir, mgrcfg.KernelSrcSuffix), - currentDir: filepath.Join(dir, "current"), - latestDir: filepath.Join(dir, "latest"), - configTag: hash.String(configData), - configData: configData, - cfg: cfg, - repo: repo, - mgrcfg: mgrcfg, - managercfg: mgrcfg.managercfg, - dash: dash, - storage: assetStorage, - debugStorage: !cfg.AssetStorage.IsEmpty() && cfg.AssetStorage.Debug, - stop: stop, - debug: debug, + name: mgrcfg.managercfg.Name, + workDir: filepath.Join(dir, "workdir"), + kernelSrcDir: path.Join(kernelDir, mgrcfg.KernelSrcSuffix), + kernelBuildDir: kernelDir, + currentDir: filepath.Join(dir, "current"), + latestDir: filepath.Join(dir, "latest"), + configTag: hash.String(configData), + configData: configData, + cfg: cfg, + repo: repo, + mgrcfg: mgrcfg, + managercfg: mgrcfg.managercfg, + dash: dash, + storage: assetStorage, + debugStorage: !cfg.AssetStorage.IsEmpty() && cfg.AssetStorage.Debug, + stop: stop, + debug: debug, } os.RemoveAll(mgr.currentDir) @@ -334,7 +336,7 @@ func (mgr *Manager) build(kernelCommit *vcs.Commit) error { TargetOS: mgr.managercfg.TargetOS, TargetArch: mgr.managercfg.TargetVMArch, VMType: mgr.managercfg.Type, - KernelDir: mgr.kernelDir, + KernelDir: mgr.kernelBuildDir, OutputDir: tmpDir, Compiler: mgr.mgrcfg.Compiler, Linker: mgr.mgrcfg.Linker, @@ -533,7 +535,7 @@ func (mgr *Manager) createTestConfig(imageDir string, info *BuildInfo) (*mgrconf if err := instance.SetConfigImage(mgrcfg, imageDir, true); err != nil { return nil, err } - mgrcfg.KernelSrc = mgr.kernelDir + mgrcfg.KernelSrc = mgr.kernelSrcDir if err := mgrconfig.Complete(mgrcfg); err != nil { return nil, fmt.Errorf("bad manager config: %w", err) } @@ -570,7 +572,7 @@ func (mgr *Manager) writeConfig(buildTag string) (string, error) { // Strictly saying this is somewhat racy as builder can concurrently // update the source, or even delete and re-clone. If this causes // problems, we need to make a copy of sources after build. - mgrcfg.KernelSrc = mgr.kernelDir + mgrcfg.KernelSrc = mgr.kernelSrcDir if err := mgrconfig.Complete(mgrcfg); err != nil { return "", fmt.Errorf("bad manager config: %w", err) } |
