aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/csource/common.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2019-11-14 18:36:26 +0100
committerDmitry Vyukov <dvyukov@google.com>2019-11-16 09:58:54 +0100
commitca13dd2ab5a486a0ab0bf5825bae9a087d854412 (patch)
treebb2d71be13da30c9226fa21e85d0a117b9b5fe21 /pkg/csource/common.go
parent2ac1d00f55d2dd477e6a004c2e03f6947e867d6b (diff)
pkg/csoruce: test that executor does not mis-spell any of the SYZ_* macros
Diffstat (limited to 'pkg/csource/common.go')
-rw-r--r--pkg/csource/common.go31
1 files changed, 17 insertions, 14 deletions
diff --git a/pkg/csource/common.go b/pkg/csource/common.go
index 67d31ad81..49c3096de 100644
--- a/pkg/csource/common.go
+++ b/pkg/csource/common.go
@@ -69,9 +69,25 @@ func createCommonHeader(p, mmapProg *prog.Prog, replacements map[string]string,
}
func defineList(p, mmapProg *prog.Prog, opts Options) (defines []string) {
+ for def, ok := range commonDefines(p, opts) {
+ if ok {
+ defines = append(defines, def)
+ }
+ }
+ for _, c := range p.Calls {
+ defines = append(defines, "__NR_"+c.Meta.CallName)
+ }
+ for _, c := range mmapProg.Calls {
+ defines = append(defines, "__NR_"+c.Meta.CallName)
+ }
+ sort.Strings(defines)
+ return
+}
+
+func commonDefines(p *prog.Prog, opts Options) map[string]bool {
sysTarget := targets.Get(p.Target.OS, p.Target.Arch)
bitmasks, csums := prog.RequiredFeatures(p)
- enabled := map[string]bool{
+ return map[string]bool{
"GOOS_" + p.Target.OS: true,
"GOARCH_" + p.Target.Arch: true,
"HOSTGOOS_" + runtime.GOOS: true,
@@ -103,19 +119,6 @@ func defineList(p, mmapProg *prog.Prog, opts Options) (defines []string) {
"SYZ_EXECUTOR_USES_SHMEM": sysTarget.ExecutorUsesShmem,
"SYZ_EXECUTOR_USES_FORK_SERVER": sysTarget.ExecutorUsesForkServer,
}
- for def, ok := range enabled {
- if ok {
- defines = append(defines, def)
- }
- }
- for _, c := range p.Calls {
- defines = append(defines, "__NR_"+c.Meta.CallName)
- }
- for _, c := range mmapProg.Calls {
- defines = append(defines, "__NR_"+c.Meta.CallName)
- }
- sort.Strings(defines)
- return
}
func removeSystemDefines(src []byte, defines []string) ([]byte, error) {