diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2021-09-13 13:30:11 +0000 |
|---|---|---|
| committer | Aleksandr Nogikh <wp32pw@gmail.com> | 2021-09-13 18:50:12 +0200 |
| commit | 58d094047fb1e61df8402ef854bd3bfb97826d6f (patch) | |
| tree | 9ec3896b15f66f9d12d9bdbe20966f9d40bcb41f /sys | |
| parent | 3ce60af85b4644bd7f2d2ef01a7d2b9a41545b76 (diff) | |
sys: skip kvm const extraction for non i386/amd64
It is impossible to compile a number of definitions in
include/uapi/linux/kvm.h for other platforms, which leads
to syz-extract failing to update constants.
Skip processing of this file for all arches except i386 and
amd64.
This is a hacky and (hopefully) temporary solution until #2754
is implemented.
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/syz-extract/linux.go | 12 | ||||
| -rw-r--r-- | sys/syz-sysgen/sysgen.go | 4 |
2 files changed, 9 insertions, 7 deletions
diff --git a/sys/syz-extract/linux.go b/sys/syz-extract/linux.go index e4f8d1bfe..c72e4b559 100644 --- a/sys/syz-extract/linux.go +++ b/sys/syz-extract/linux.go @@ -114,11 +114,13 @@ func (*linux) prepareArch(arch *Arch) error { func (*linux) processFile(arch *Arch, info *compiler.ConstInfo) (map[string]uint64, map[string]bool, error) { if strings.HasSuffix(info.File, "_kvm.txt") && - (arch.target.Arch == targets.ARM || arch.target.Arch == targets.RiscV64) { - // Hack: KVM is not supported on ARM anymore. We may want some more official support - // for marking descriptions arch-specific, but so far this combination is the only - // one. For riscv64, KVM is not supported yet but might be in the future. - // Note: syz-sysgen also ignores this file for arm and riscv64. + arch.target.Arch != targets.I386 && arch.target.Arch != targets.AMD64 { + // Hack: + // include/uapi/linux/kvm.h has definitions that can only be compiled under i386 + // and amd64 (e.g. KVM_SET_CPUID). On all other arches they generate build errors + // and therefore this tool is not able to proceed. + // TODO: remove this once #2754 is resolved. + // Note: syz-sysgen also ignores this file. return nil, nil, nil } headerArch := arch.target.KernelHeaderArch diff --git a/sys/syz-sysgen/sysgen.go b/sys/syz-sysgen/sysgen.go index b30a1d060..dd64be8d4 100644 --- a/sys/syz-sysgen/sysgen.go +++ b/sys/syz-sysgen/sysgen.go @@ -117,8 +117,8 @@ func main() { if OS == targets.Linux && (job.Target.Arch == targets.ARM || job.Target.Arch == targets.RiscV64) { // Hack: KVM is not supported on ARM anymore. On riscv64 it // is not supported yet but might be in the future. - // Note: syz-extract also ignores this file for arm and - // riscv64. + // Note: syz-extract ignores this file on all arches except + // i386 and amd64 (due to const extraction problems). top = descriptions.Filter(func(n ast.Node) bool { pos, _, _ := n.Info() return !strings.HasSuffix(pos.File, "_kvm.txt") |
