aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2022-01-13 15:19:29 +0100
committerAleksandr Nogikh <wp32pw@gmail.com>2022-01-13 17:03:25 +0100
commit68e7546e6d355c6bb5635120b5c9e020afdd7688 (patch)
tree3887e82c7820a615819af77c9623eb19ddf9b6ee
parent2257505bcf725a8d7e70611196bb09dad4538827 (diff)
tools/syz-check: update docs
Mention issue with DWARF4+ and bitfields. Mention kernel configs that must be used for kernel builds.
-rw-r--r--tools/syz-check/check.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/tools/syz-check/check.go b/tools/syz-check/check.go
index 91f5ead47..63606d23a 100644
--- a/tools/syz-check/check.go
+++ b/tools/syz-check/check.go
@@ -8,7 +8,14 @@
// -obj-386 /linux_386/vmlinux -obj-arm /linux_arm/vmlinux
//
// The vmlinux files should include debug info, enable all relevant configs (since we parse dwarf),
-// and be compiled with -fno-eliminate-unused-debug-types -fno-eliminate-unused-debug-symbols flags.
+// and be compiled with -gdwarf-3 -fno-eliminate-unused-debug-types -fno-eliminate-unused-debug-symbols flags.
+// -gdwarf-3 is required because version 4 changes the way bitfields are encoded and Go before 1.18
+// does not support then new encoding and at least earlier versions mis-handle it, see:
+// https://go-review.googlesource.com/c/go/+/328709/comments/edf0619d_daec236f
+//
+// Use the following configs for kernels (x86_64 config for i386 as well):
+// upstream-apparmor-kasan.config, upstream-arm-full.config, upstream-arm64-full.config
+//
// You may check only one arch as well (but then don't commit changes to warn files):
//
// $ syz-check -obj-amd64 /linux_amd64/vmlinux