aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2025-04-02 05:12:30 -0700
committerDmitry Vyukov <dvyukov@google.com>2025-04-02 15:19:47 +0000
commit671f31019d4018554d672c78ff08172d2a3ad71e (patch)
tree44e188122c5b9c3259b98ef64269ee6d27f61b28
parentd539c2ec8ff6d9dae25b81fb1408b67877303827 (diff)
Makefile: simplify Go generation
Make fidlgen non special and run go generate for all packages. This will avoid stale go:generate commands, and missed packages (like we had for pkg/ifuzz/{x86,arm64} for years).
-rw-r--r--Makefile14
-rw-r--r--sys/fuchsia/fidlgen/main.go15
-rw-r--r--sys/fuchsia/init.go3
3 files changed, 12 insertions, 20 deletions
diff --git a/Makefile b/Makefile
index e7397105f..2bbf1ca60 100644
--- a/Makefile
+++ b/Makefile
@@ -217,11 +217,6 @@ verifier: descriptions
# `extract` extracts const files from various kernel sources, and may only
# re-generate parts of files.
extract: bin/syz-extract
-ifeq ($(TARGETOS),fuchsia)
- $(MAKE) generate_fidl TARGETARCH=amd64
- $(MAKE) generate_fidl TARGETARCH=arm64
-else
-endif
bin/syz-extract -build -os=$(TARGETOS) -sourcedir=$(SOURCEDIR) $(FILES)
bin/syz-extract:
@@ -236,7 +231,7 @@ generate:
$(MAKE) format
generate_go: format_cpp
- $(GO) generate ./executor ./pkg/ifuzz/x86 ./pkg/ifuzz/arm64 ./pkg/build ./pkg/rpcserver
+ $(GO) generate ./...
$(GO) run github.com/vektra/mockery/v2@v2.52.1 --log-level="error"
generate_rpc:
@@ -244,13 +239,6 @@ generate_rpc:
flatc -o pkg/flatrpc --warnings-as-errors --gen-object-api --filename-suffix "" --cpp --scoped-enums pkg/flatrpc/flatrpc.fbs
$(GO) fmt ./pkg/flatrpc/flatrpc.go
-generate_fidl:
-ifeq ($(TARGETOS),fuchsia)
- $(HOSTGO) generate ./sys/fuchsia
- $(MAKE) format_sys
-else
-endif
-
generate_trace2syz:
(cd tools/syz-trace2syz/parser; ragel -Z -G2 -o lex.go straceLex.rl)
(cd tools/syz-trace2syz/parser; goyacc -o strace.go -p Strace -v="" strace.y)
diff --git a/sys/fuchsia/fidlgen/main.go b/sys/fuchsia/fidlgen/main.go
index 937ef62d1..ab2bcf0cd 100644
--- a/sys/fuchsia/fidlgen/main.go
+++ b/sys/fuchsia/fidlgen/main.go
@@ -19,17 +19,20 @@ import (
)
func main() {
+ targetOS := os.Getenv("TARGETOS")
targetArch := os.Getenv("TARGETARCH")
- target := targets.Get(targets.Fuchsia, targetArch)
- if target == nil {
- tool.Failf("unknown TARGETARCH %s", targetArch)
- }
- arch := target.KernelHeaderArch
-
sourceDir := os.Getenv("SOURCEDIR")
+ if targetOS != targets.Fuchsia || sourceDir == "" {
+ return
+ }
if !osutil.IsExist(sourceDir) {
tool.Failf("cannot find SOURCEDIR %s", sourceDir)
}
+ target := targets.Get(targetOS, targetArch)
+ if target == nil {
+ tool.Failf("unknown TARGETARCH %s", targetArch)
+ }
+ arch := target.KernelHeaderArch
fidlgenPath := filepath.Join(
sourceDir,
diff --git a/sys/fuchsia/init.go b/sys/fuchsia/init.go
index 2fbbd4bdf..c3ca8ca9b 100644
--- a/sys/fuchsia/init.go
+++ b/sys/fuchsia/init.go
@@ -1,7 +1,8 @@
// Copyright 2017 syzkaller project authors. All rights reserved.
// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-//go:generate go run fidlgen/main.go
+//go:generate bash -c "TARGETARCH=amd64 go run fidlgen/main.go"
+//go:generate bash -c "TARGETARCH=arm64 go run fidlgen/main.go"
package fuchsia