diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2020-10-28 21:32:41 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-10-29 18:02:20 +0100 |
| commit | a0c7169a00e97fc53358f90c9d9c6f8fffddf904 (patch) | |
| tree | a980a4ebb36d73565486e3fb9af7868153f5ac51 /pkg/kconfig/kconfig.go | |
| parent | 36e8b020cd7e97bc2ca3a306f48d4c62ece8fc34 (diff) | |
pkg/kconfig: accept target when parsing Kconfig
Kconfig depends on the target arch.
Add target argument for Kconfig parsing.
Resolve $(SRCARCH) properly (previously we always assumed x86_64).
Diffstat (limited to 'pkg/kconfig/kconfig.go')
| -rw-r--r-- | pkg/kconfig/kconfig.go | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/pkg/kconfig/kconfig.go b/pkg/kconfig/kconfig.go index a4786711e..40e19b9af 100644 --- a/pkg/kconfig/kconfig.go +++ b/pkg/kconfig/kconfig.go @@ -12,6 +12,8 @@ import ( "path/filepath" "strings" "sync" + + "github.com/google/syzkaller/sys/targets" ) // KConfig represents a parsed Kconfig file (including includes). @@ -107,6 +109,7 @@ func (m *Menu) Prompt() string { type kconfigParser struct { *parser + target *targets.Target includes []*parser stack []*Menu cur *Menu @@ -114,17 +117,18 @@ type kconfigParser struct { helpIdent int } -func Parse(file string) (*KConfig, error) { +func Parse(target *targets.Target, file string) (*KConfig, error) { data, err := ioutil.ReadFile(file) if err != nil { return nil, fmt.Errorf("failed to open Kconfig file %v: %v", file, err) } - return ParseData(data, file) + return ParseData(target, data, file) } -func ParseData(data []byte, file string) (*KConfig, error) { +func ParseData(target *targets.Target, data []byte, file string) (*KConfig, error) { kp := &kconfigParser{ parser: newParser(data, file), + target: target, baseDir: filepath.Dir(file), } kp.parseFile() @@ -403,5 +407,5 @@ func (kp *kconfigParser) parseDefaultValue() { } func (kp *kconfigParser) expandString(str string) string { - return strings.Replace(str, "$(SRCARCH)", "x86", -1) + return strings.Replace(str, "$(SRCARCH)", kp.target.KernelHeaderArch, -1) } |
