diff --git a/cmd/bpf2go/main.go b/cmd/bpf2go/main.go index d87c24431..8a4fea597 100644 --- a/cmd/bpf2go/main.go +++ b/cmd/bpf2go/main.go @@ -49,28 +49,23 @@ Options: // // Targets without a Linux string can't be used directly and are only included // for the generic bpf, bpfel, bpfeb targets. +// +// See https://go.dev/doc/install/source#environment for valid GOARCHes when +// GOOS=linux. var targetByGoArch = map[goarch]target{ - "386": {"bpfel", "x86"}, - "amd64": {"bpfel", "x86"}, - "amd64p32": {"bpfel", ""}, - "arm": {"bpfel", "arm"}, - "arm64": {"bpfel", "arm64"}, - "loong64": {"bpfel", "loongarch"}, - "mipsle": {"bpfel", ""}, - "mips64le": {"bpfel", ""}, - "mips64p32le": {"bpfel", ""}, - "ppc64le": {"bpfel", "powerpc"}, - "riscv64": {"bpfel", "riscv"}, - "armbe": {"bpfeb", "arm"}, - "arm64be": {"bpfeb", "arm64"}, - "mips": {"bpfeb", ""}, - "mips64": {"bpfeb", ""}, - "mips64p32": {"bpfeb", ""}, - "ppc64": {"bpfeb", "powerpc"}, - "s390": {"bpfeb", "s390"}, - "s390x": {"bpfeb", "s390"}, - "sparc": {"bpfeb", "sparc"}, - "sparc64": {"bpfeb", "sparc"}, + "386": {"bpfel", "x86"}, + "amd64": {"bpfel", "x86"}, + "arm": {"bpfel", "arm"}, + "arm64": {"bpfel", "arm64"}, + "loong64": {"bpfel", "loongarch"}, + "mips": {"bpfeb", "mips"}, + "mipsle": {"bpfel", ""}, + "mips64": {"bpfeb", ""}, + "mips64le": {"bpfel", ""}, + "ppc64": {"bpfeb", "powerpc"}, + "ppc64le": {"bpfel", "powerpc"}, + "riscv64": {"bpfel", "riscv"}, + "s390x": {"bpfeb", "s390"}, } func run(stdout io.Writer, pkg, outputDir string, args []string) (err error) { diff --git a/cmd/bpf2go/main_test.go b/cmd/bpf2go/main_test.go index 1a196ef9c..f8f595ad5 100644 --- a/cmd/bpf2go/main_test.go +++ b/cmd/bpf2go/main_test.go @@ -2,6 +2,7 @@ package main import ( "bytes" + "errors" "fmt" "io" "os" @@ -179,10 +180,10 @@ func TestCollectTargets(t *testing.T) { }, }, { - []string{"amd64", "arm64be"}, + []string{"amd64", "ppc64"}, map[target][]goarch{ - {"bpfeb", "arm64"}: linuxArchesBE["arm64"], - {"bpfel", "x86"}: linuxArchesLE["x86"], + {"bpfeb", "powerpc"}: linuxArchesBE["powerpc"], + {"bpfel", "x86"}: linuxArchesLE["x86"], }, }, { @@ -430,6 +431,23 @@ func TestParseArgs(t *testing.T) { }) } +func TestGoarches(t *testing.T) { + exe, err := exec.LookPath("go") + if errors.Is(err, exec.ErrNotFound) { + t.Skip("go binary is not in PATH") + } + qt.Assert(t, qt.IsNil(err)) + + for goarch := range targetByGoArch { + t.Run(string(goarch), func(t *testing.T) { + goEnv := exec.Command(exe, "env") + goEnv.Env = []string{"GOOS=linux", "GOARCH=" + string(goarch)} + output, err := goEnv.CombinedOutput() + qt.Assert(t, qt.IsNil(err), qt.Commentf("go output is:\n%s", string(output))) + }) + } +} + func clangBin(t *testing.T) string { t.Helper() diff --git a/cmd/bpf2go/test/test_bpfeb.go b/cmd/bpf2go/test/test_bpfeb.go index 8b2cc82c5..62d5b4352 100644 --- a/cmd/bpf2go/test/test_bpfeb.go +++ b/cmd/bpf2go/test/test_bpfeb.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build arm64be || armbe || mips || mips64 || mips64p32 || ppc64 || s390 || s390x || sparc || sparc64 +//go:build mips || mips64 || ppc64 || s390x package test diff --git a/cmd/bpf2go/test/test_bpfel.go b/cmd/bpf2go/test/test_bpfel.go index 55678e9e7..94efcde9b 100644 --- a/cmd/bpf2go/test/test_bpfel.go +++ b/cmd/bpf2go/test/test_bpfel.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build 386 || amd64 || amd64p32 || arm || arm64 || loong64 || mips64le || mips64p32le || mipsle || ppc64le || riscv64 +//go:build 386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 package test diff --git a/docs/examples/getting_started/counter_bpfeb.go b/docs/examples/getting_started/counter_bpfeb.go index 03496f0f4..b4ab10c7c 100644 --- a/docs/examples/getting_started/counter_bpfeb.go +++ b/docs/examples/getting_started/counter_bpfeb.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build arm64be || armbe || mips || mips64 || mips64p32 || ppc64 || s390 || s390x || sparc || sparc64 +//go:build mips || mips64 || ppc64 || s390x package main diff --git a/docs/examples/getting_started/counter_bpfel.go b/docs/examples/getting_started/counter_bpfel.go index 2eaabd27b..6e09ca1a5 100644 --- a/docs/examples/getting_started/counter_bpfel.go +++ b/docs/examples/getting_started/counter_bpfel.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build 386 || amd64 || amd64p32 || arm || arm64 || loong64 || mips64le || mips64p32le || mipsle || ppc64le || riscv64 +//go:build 386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 package main diff --git a/examples/cgroup_skb/bpf_bpfeb.go b/examples/cgroup_skb/bpf_bpfeb.go index 46fcc5d02..3b716c9c0 100644 --- a/examples/cgroup_skb/bpf_bpfeb.go +++ b/examples/cgroup_skb/bpf_bpfeb.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build arm64be || armbe || mips || mips64 || mips64p32 || ppc64 || s390 || s390x || sparc || sparc64 +//go:build mips || mips64 || ppc64 || s390x package main diff --git a/examples/cgroup_skb/bpf_bpfel.go b/examples/cgroup_skb/bpf_bpfel.go index b7eb4a1b3..086736dce 100644 --- a/examples/cgroup_skb/bpf_bpfel.go +++ b/examples/cgroup_skb/bpf_bpfel.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build 386 || amd64 || amd64p32 || arm || arm64 || loong64 || mips64le || mips64p32le || mipsle || ppc64le || riscv64 +//go:build 386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 package main diff --git a/examples/fentry/bpf_bpfeb.go b/examples/fentry/bpf_bpfeb.go index 46c4bea34..d81f533ba 100644 --- a/examples/fentry/bpf_bpfeb.go +++ b/examples/fentry/bpf_bpfeb.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build arm64be || armbe || mips || mips64 || mips64p32 || ppc64 || s390 || s390x || sparc || sparc64 +//go:build mips || mips64 || ppc64 || s390x package main diff --git a/examples/fentry/bpf_bpfel.go b/examples/fentry/bpf_bpfel.go index 5501d2226..467e23d4c 100644 --- a/examples/fentry/bpf_bpfel.go +++ b/examples/fentry/bpf_bpfel.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build 386 || amd64 || amd64p32 || arm || arm64 || loong64 || mips64le || mips64p32le || mipsle || ppc64le || riscv64 +//go:build 386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 package main diff --git a/examples/kprobe/bpf_bpfeb.go b/examples/kprobe/bpf_bpfeb.go index 5ff2001b5..07a3b0b0d 100644 --- a/examples/kprobe/bpf_bpfeb.go +++ b/examples/kprobe/bpf_bpfeb.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build arm64be || armbe || mips || mips64 || mips64p32 || ppc64 || s390 || s390x || sparc || sparc64 +//go:build mips || mips64 || ppc64 || s390x package main diff --git a/examples/kprobe/bpf_bpfel.go b/examples/kprobe/bpf_bpfel.go index bc18f912e..dcbf486ec 100644 --- a/examples/kprobe/bpf_bpfel.go +++ b/examples/kprobe/bpf_bpfel.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build 386 || amd64 || amd64p32 || arm || arm64 || loong64 || mips64le || mips64p32le || mipsle || ppc64le || riscv64 +//go:build 386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 package main diff --git a/examples/kprobe_percpu/bpf_bpfeb.go b/examples/kprobe_percpu/bpf_bpfeb.go index 5ff2001b5..07a3b0b0d 100644 --- a/examples/kprobe_percpu/bpf_bpfeb.go +++ b/examples/kprobe_percpu/bpf_bpfeb.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build arm64be || armbe || mips || mips64 || mips64p32 || ppc64 || s390 || s390x || sparc || sparc64 +//go:build mips || mips64 || ppc64 || s390x package main diff --git a/examples/kprobe_percpu/bpf_bpfel.go b/examples/kprobe_percpu/bpf_bpfel.go index bc18f912e..dcbf486ec 100644 --- a/examples/kprobe_percpu/bpf_bpfel.go +++ b/examples/kprobe_percpu/bpf_bpfel.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build 386 || amd64 || amd64p32 || arm || arm64 || loong64 || mips64le || mips64p32le || mipsle || ppc64le || riscv64 +//go:build 386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 package main diff --git a/examples/kprobepin/bpf_bpfeb.go b/examples/kprobepin/bpf_bpfeb.go index 5ff2001b5..07a3b0b0d 100644 --- a/examples/kprobepin/bpf_bpfeb.go +++ b/examples/kprobepin/bpf_bpfeb.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build arm64be || armbe || mips || mips64 || mips64p32 || ppc64 || s390 || s390x || sparc || sparc64 +//go:build mips || mips64 || ppc64 || s390x package main diff --git a/examples/kprobepin/bpf_bpfel.go b/examples/kprobepin/bpf_bpfel.go index bc18f912e..dcbf486ec 100644 --- a/examples/kprobepin/bpf_bpfel.go +++ b/examples/kprobepin/bpf_bpfel.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build 386 || amd64 || amd64p32 || arm || arm64 || loong64 || mips64le || mips64p32le || mipsle || ppc64le || riscv64 +//go:build 386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 package main diff --git a/examples/ringbuffer/bpf_bpfeb.go b/examples/ringbuffer/bpf_bpfeb.go index 738a9c5e2..8a87d8407 100644 --- a/examples/ringbuffer/bpf_bpfeb.go +++ b/examples/ringbuffer/bpf_bpfeb.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build arm64be || armbe || mips || mips64 || mips64p32 || ppc64 || s390 || s390x || sparc || sparc64 +//go:build mips || mips64 || ppc64 || s390x package main diff --git a/examples/ringbuffer/bpf_bpfel.go b/examples/ringbuffer/bpf_bpfel.go index c001c5126..4e7b8981a 100644 --- a/examples/ringbuffer/bpf_bpfel.go +++ b/examples/ringbuffer/bpf_bpfel.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build 386 || amd64 || amd64p32 || arm || arm64 || loong64 || mips64le || mips64p32le || mipsle || ppc64le || riscv64 +//go:build 386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 package main diff --git a/examples/tcprtt/bpf_bpfeb.go b/examples/tcprtt/bpf_bpfeb.go index 9e39d8c05..2a5966e13 100644 --- a/examples/tcprtt/bpf_bpfeb.go +++ b/examples/tcprtt/bpf_bpfeb.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build arm64be || armbe || mips || mips64 || mips64p32 || ppc64 || s390 || s390x || sparc || sparc64 +//go:build mips || mips64 || ppc64 || s390x package main diff --git a/examples/tcprtt/bpf_bpfel.go b/examples/tcprtt/bpf_bpfel.go index 13c66c39a..d599a52e8 100644 --- a/examples/tcprtt/bpf_bpfel.go +++ b/examples/tcprtt/bpf_bpfel.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build 386 || amd64 || amd64p32 || arm || arm64 || loong64 || mips64le || mips64p32le || mipsle || ppc64le || riscv64 +//go:build 386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 package main diff --git a/examples/tcprtt_sockops/bpf_bpfeb.go b/examples/tcprtt_sockops/bpf_bpfeb.go index a821a7d69..4db569a84 100644 --- a/examples/tcprtt_sockops/bpf_bpfeb.go +++ b/examples/tcprtt_sockops/bpf_bpfeb.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build (arm64be || armbe || mips || mips64 || mips64p32 || ppc64 || s390 || s390x || sparc || sparc64) && linux +//go:build (mips || mips64 || ppc64 || s390x) && linux package main diff --git a/examples/tcprtt_sockops/bpf_bpfel.go b/examples/tcprtt_sockops/bpf_bpfel.go index 3675d72fe..7e7e72453 100644 --- a/examples/tcprtt_sockops/bpf_bpfel.go +++ b/examples/tcprtt_sockops/bpf_bpfel.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build (386 || amd64 || amd64p32 || arm || arm64 || loong64 || mips64le || mips64p32le || mipsle || ppc64le || riscv64) && linux +//go:build (386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64) && linux package main diff --git a/examples/tracepoint_in_c/bpf_bpfeb.go b/examples/tracepoint_in_c/bpf_bpfeb.go index 9fc50cb10..f422bb8f7 100644 --- a/examples/tracepoint_in_c/bpf_bpfeb.go +++ b/examples/tracepoint_in_c/bpf_bpfeb.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build arm64be || armbe || mips || mips64 || mips64p32 || ppc64 || s390 || s390x || sparc || sparc64 +//go:build mips || mips64 || ppc64 || s390x package main diff --git a/examples/tracepoint_in_c/bpf_bpfel.go b/examples/tracepoint_in_c/bpf_bpfel.go index 3638d09e4..dd9c860d8 100644 --- a/examples/tracepoint_in_c/bpf_bpfel.go +++ b/examples/tracepoint_in_c/bpf_bpfel.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build 386 || amd64 || amd64p32 || arm || arm64 || loong64 || mips64le || mips64p32le || mipsle || ppc64le || riscv64 +//go:build 386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 package main diff --git a/examples/xdp/bpf_bpfeb.go b/examples/xdp/bpf_bpfeb.go index 5fd2ab7ce..bcc09fc6a 100644 --- a/examples/xdp/bpf_bpfeb.go +++ b/examples/xdp/bpf_bpfeb.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build arm64be || armbe || mips || mips64 || mips64p32 || ppc64 || s390 || s390x || sparc || sparc64 +//go:build mips || mips64 || ppc64 || s390x package main diff --git a/examples/xdp/bpf_bpfel.go b/examples/xdp/bpf_bpfel.go index 3fbd47b8f..4541c1216 100644 --- a/examples/xdp/bpf_bpfel.go +++ b/examples/xdp/bpf_bpfel.go @@ -1,5 +1,5 @@ // Code generated by bpf2go; DO NOT EDIT. -//go:build 386 || amd64 || amd64p32 || arm || arm64 || loong64 || mips64le || mips64p32le || mipsle || ppc64le || riscv64 +//go:build 386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 package main