# Resources: # https://github.com/google/syzkaller/blob/90a46995a8eb1260cdbc0e7184b60a138dfca368/docs/linux/setup_ubuntu-host_android-device_arm32-kernel.md # https://github.com/google/syzkaller/blob/7b05d23e439f9701a077059dfa6bca4bac0a7710/docs/executing_syzkaller_programs.md # https://github.com/google/syzkaller/blob/4a7de22d606d032c57baf0d8d6c0edd10c66a556/docs/linux/setup_linux-host_isolated.md # Installation of go through pkgsrc (tested on NetBSD) cd /usr/pkgsrc/bootstrap/ && ./bootstrap --prefix=/tmp/pkg --workdir=/tmp/pkg-tmp --unprivileged --make-jobs 8 --full cd /usr/pkgsrc/lang/go && /tmp/pkg/bin/bmake install MAKE_JOBS=8 # On Linux you might use a prebuilt binary https://golang.org/doc/install # go runtime is now in /tmp/pkg/go/ export GOPATH=/tmp/gopath mkdir -p $GOPATH export GOROOT=/tmp/pkg/go/ export PATH=$GOROOT/bin:$PATH go get -u -d github.com/google/syzkaller/... cd $GOPATH/src/github.com/google/syzkaller # gmake is alias for gnu make on BSDs; on Linux gmake=make gmake arch # gmake HOSTOS=netbsd HOSTARCH=amd64 TARGETOS=netbsd TARGETARCH=amd64 # unsupported NetBSD as host gmake HOSTOS=linux HOSTARCH=amd64 TARGETOS=netbsd TARGETARCH=amd64 ##### Example: $ gmake HOSTOS=netbsd HOSTARCH=amd64 TARGETOS=netbsd TARGETARCH=amd64 CC=gcc GOOS=netbsd GOARCH=amd64 go install ./syz-manager gmake manager repro mutate prog2c db parse upgrade gmake[1]: Entering directory '/tmp/gopath/src/github.com/google/syzkaller' GOOS=netbsd GOARCH=amd64 go build "-ldflags=-s -w -X github.com/google/syzkaller/sys.GitRevision=2c6f473e0f0965926877f7d05d4203e466d8dcc0" -o ./bin/syz-manager github.com/google/syzkaller/syz-manager GOOS=netbsd GOARCH=amd64 go build "-ldflags=-s -w -X github.com/google/syzkaller/sys.GitRevision=2c6f473e0f0965926877f7d05d4203e466d8dcc0" -o ./bin/syz-repro github.com/google/syzkaller/tools/syz-repro GOOS=netbsd GOARCH=amd64 go build "-ldflags=-s -w -X github.com/google/syzkaller/sys.GitRevision=2c6f473e0f0965926877f7d05d4203e466d8dcc0" -o ./bin/syz-mutate github.com/google/syzkaller/tools/syz-mutate GOOS=netbsd GOARCH=amd64 go build "-ldflags=-s -w -X github.com/google/syzkaller/sys.GitRevision=2c6f473e0f0965926877f7d05d4203e466d8dcc0" -o ./bin/syz-prog2c github.com/google/syzkaller/tools/syz-prog2c GOOS=netbsd GOARCH=amd64 go build "-ldflags=-s -w -X github.com/google/syzkaller/sys.GitRevision=2c6f473e0f0965926877f7d05d4203e466d8dcc0" -o ./bin/syz-db github.com/google/syzkaller/tools/syz-db GOOS=netbsd GOARCH=amd64 go build "-ldflags=-s -w -X github.com/google/syzkaller/sys.GitRevision=2c6f473e0f0965926877f7d05d4203e466d8dcc0" -o ./bin/syz-parse github.com/google/syzkaller/tools/syz-parse GOOS=netbsd GOARCH=amd64 go build "-ldflags=-s -w -X github.com/google/syzkaller/sys.GitRevision=2c6f473e0f0965926877f7d05d4203e466d8dcc0" -o ./bin/syz-upgrade github.com/google/syzkaller/tools/syz-upgrade gmake[1]: Leaving directory '/tmp/gopath/src/github.com/google/syzkaller' GOOS=netbsd GOARCH=amd64 go install ./syz-fuzzer gmake fuzzer execprog stress executor gmake[1]: Entering directory '/tmp/gopath/src/github.com/google/syzkaller' GOOS=netbsd GOARCH=amd64 go build "-ldflags=-s -w -X github.com/google/syzkaller/sys.GitRevision=2c6f473e0f0965926877f7d05d4203e466d8dcc0" -o ./bin/netbsd_amd64/syz-fuzzer github.com/google/syzkaller/syz-fuzzer GOOS=netbsd GOARCH=amd64 go build "-ldflags=-s -w -X github.com/google/syzkaller/sys.GitRevision=2c6f473e0f0965926877f7d05d4203e466d8dcc0" -o ./bin/netbsd_amd64/syz-execprog github.com/google/syzkaller/tools/syz-execprog GOOS=netbsd GOARCH=amd64 go build "-ldflags=-s -w -X github.com/google/syzkaller/sys.GitRevision=2c6f473e0f0965926877f7d05d4203e466d8dcc0" -o ./bin/netbsd_amd64/syz-stress github.com/google/syzkaller/tools/syz-stress mkdir -p ./bin/netbsd_amd64 gcc -o ./bin/netbsd_amd64/syz-executor executor/executor_netbsd.cc \ -pthread -Wall -Wframe-larger-than=8192 -Wparentheses -Werror -O2 \ -static -DGOOS=\"netbsd\" -DGIT_REVISION=\"2c6f473e0f0965926877f7d05d4203e466d8dcc0\" gmake[1]: Leaving directory '/tmp/gopath/src/github.com/google/syzkaller'