aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2019-03-14 14:17:31 +0100
committerDmitry Vyukov <dvyukov@google.com>2019-03-14 14:55:59 +0100
commitd23e90a7b44b62b0d3b116a6d30849ce66051529 (patch)
tree1bdbc7c9d1d8e0b4f635a896147e26f1ad42b457 /docs
parent1e8208402d9c84d5f3ee6e33b63db8befbf61032 (diff)
all: switch to Go 1.12
Differences in code formatting between Go versions cause constant problems for us (https://github.com/golang/go/issues/25161). Currently we support 1.9 and 1.10. Switch to newer 1.11 and 1.12. Fixes #1013
Diffstat (limited to 'docs')
-rw-r--r--docs/contributing.md41
-rw-r--r--docs/executing_syzkaller_programs.md6
-rw-r--r--docs/fuchsia/README.md4
-rw-r--r--docs/linux/setup.md2
-rw-r--r--docs/linux/setup_linux-host_android-device_arm64-kernel.md3
-rw-r--r--docs/linux/setup_linux-host_isolated.md20
-rw-r--r--docs/linux/setup_ubuntu-host_android-device_arm32-kernel.md27
-rw-r--r--docs/linux/setup_ubuntu-host_qemu-vm_x86-64-kernel.md22
8 files changed, 36 insertions, 89 deletions
diff --git a/docs/contributing.md b/docs/contributing.md
index 82f03257c..91058be8b 100644
--- a/docs/contributing.md
+++ b/docs/contributing.md
@@ -46,6 +46,33 @@ Unassigned issues from the [bug tracker](https://github.com/google/syzkaller/iss
If you want to work on something non-trivial, please briefly describe it on the [syzkaller@googlegroups.com](https://groups.google.com/forum/#!forum/syzkaller) mailing list first,
so that there is agreement on high level approach and no duplication of work between contributors.
+## Go
+
+`syzkaller` is written in [Go](https://golang.org), and a `Go 1.11` or `Go 1.12`
+toolchain is required for build. The toolchain can be installed with:
+
+```
+go get golang.org/dl/go1.12
+go1.12 download
+# Default download path is here.
+~/sdk/go1.12/bin/go version
+export GOROOT=$HOME/sdk/go1.12
+export PATH=$HOME/sdk/go1.12/bin:$PATH
+```
+
+Then get and build `syzkaller`:
+
+``` bash
+go get -u -d github.com/google/syzkaller/...
+cd $HOME?/go/src/github.com/google/syzkaller/
+make
+```
+
+Note: older versions of Go toolchain formatted code in a slightly
+[different way](https://github.com/golang/go/issues/25161).
+So if you are seeing unrelated code formatting diffs after running `make generate`
+or `make format`, you may be using Go 1.10 or older. In such case update to Go 1.11+.
+
## How to create a pull request
- First, you need an own git fork of syzkaller repository. Nagivate to [github.com/google/syzkaller](https://github.com/google/syzkaller) and press `Fork` button in the top-right corner of the page. This will create `https://github.com/YOUR_GITHUB_USERNAME/syzkaller` repository.
@@ -64,20 +91,6 @@ This adds git origin `my-origin` with your repository and checks out new branch
- Change/add files as necessary.
- Commit changes locally. For this you need to run `git add` for all changed files, e.g. `git add sys/linux/sys.txt`. You can run `git status` to see what files were changed/created. When all files are added (`git status` shows no files in `Changes not staged for commit` section and no relevant files in `Untracked files` section), run `git commit` and enter commit description in your editor.
- Run tests locally (`make install_prerequisites` followed by `make presubmit`).
-- *Important* If you've run `go fmt` and you're seeing the presubmit fail on
- `check_diff`, then you may need to use an older version of go to format your
- code. (Version 1.11 in particular introduced a breaking change, see
- [here](https://github.com/golang/go/issues/25161) and
- [here](https://github.com/golang/go/issues/26228) for details). A
- simple way to do this is:
-
-```
-go get golang.org/dl/go1.10
-go1.10 download
-# Default download path is here.
-~/sdk/go1.10/bin/go fmt [target files]
-```
-
- Push the commit to your fork on github with `git push my-origin my-branch`.
- Nagivate to [github.com/google/syzkaller](https://github.com/google/syzkaller) and you should see green `Compare & pull request` button, press it. Then press `Create pull request`. Now your pull request should show up on [pull requests page](https://github.com/google/syzkaller/pulls).
- If you don't see `Create pull request` button for any reason, you can create pull request manually. For that nagivate to [pull requests page](https://github.com/google/syzkaller/pulls), press `New pull request`, then `compare across forks` and choose `google/syzkaller`/`master` as base and `YOUR_GITHUB_USERNAME/syzkaller`/`my-branch` as compare and press `Create pull request`.
diff --git a/docs/executing_syzkaller_programs.md b/docs/executing_syzkaller_programs.md
index 6ffd8694e..c0aaf0495 100644
--- a/docs/executing_syzkaller_programs.md
+++ b/docs/executing_syzkaller_programs.md
@@ -4,10 +4,10 @@ This page describes how to execute existing syzkaller programs for the purpose
of bug reproduction. This way you can replay a single program or a whole
execution log with several programs.
-1. Setup Go toolchain (if you don't yet have it, you need version 1.9 or higher):
-Download latest Go distribution from (https://golang.org/dl/). Unpack it to `$HOME/go1.9`.
+1. Setup Go toolchain (if you don't yet have it, you need version 1.11 or higher):
+Download latest Go distribution from (https://golang.org/dl/). Unpack it to `$HOME/go1.11`.
``` bash
-$ export GOROOT=$HOME/go1.9
+$ export GOROOT=$HOME/go1.11
$ export GOPATH=$HOME/gopath
```
diff --git a/docs/fuchsia/README.md b/docs/fuchsia/README.md
index dd5243f91..3c06cf704 100644
--- a/docs/fuchsia/README.md
+++ b/docs/fuchsia/README.md
@@ -77,7 +77,7 @@ Then run FIDL compiler backend `fidlgen` with syzkaller generator, which compile
To run `syz-ci` locally for Fuchsia, you need:
-- Go 1.10 toolchain (in `/go1.10` dir in the example below)
+- Go 1.12 toolchain (in `/go1.12` dir in the example below)
- bootstrapped Fuchsia checkout (in `/bootstrap/fuchsia` dir in the example below)
- bootstrap `syz-ci` binary (in the current dir, build with `make ci`)
- `syz-ci` config similar to the one below (in `ci.cfg` file in the current dir)
@@ -87,7 +87,7 @@ To run `syz-ci` locally for Fuchsia, you need:
"name": "testci",
"http": ":50000",
"manager_port_start": 50001,
- "goroot": "/go1.10",
+ "goroot": "/go1.12",
"syzkaller_repo": "https://github.com/google/syzkaller.git",
"managers": [
{
diff --git a/docs/linux/setup.md b/docs/linux/setup.md
index 4f18157cf..e7d976388 100644
--- a/docs/linux/setup.md
+++ b/docs/linux/setup.md
@@ -66,7 +66,7 @@ For some details on fuzzing the kernel on an Android device check out [this page
### Syzkaller
-`syzkaller` is written in [Go](https://golang.org), a `Go 1.9+` toolchain is required for build.
+`syzkaller` is written in [Go](https://golang.org), a `Go 1.11+` toolchain is required for build.
Go distribution can be downloaded from https://golang.org/dl/.
Unpack Go into a directory, say, `$HOME/goroot`.
diff --git a/docs/linux/setup_linux-host_android-device_arm64-kernel.md b/docs/linux/setup_linux-host_android-device_arm64-kernel.md
index 77ffa6eaa..4880020d2 100644
--- a/docs/linux/setup_linux-host_android-device_arm64-kernel.md
+++ b/docs/linux/setup_linux-host_android-device_arm64-kernel.md
@@ -1,11 +1,8 @@
# Setup: Linux or Mac OS host, Android device, arm64 kernel
Prerequisites:
- - go1.8+ toolchain (can be downloaded from [here](https://golang.org/dl/))
- Android Serial Cable or [Suzy-Q](https://chromium.googlesource.com/chromiumos/platform/ec/+/master/docs/case_closed_debugging.md) device to capture console output is preferable but optional. syzkaller can work with normal USB cable as well, but that can be somewhat unreliable and turn lots of crashes into "lost connection to test machine" crashes with no additional info.
- - Build syzkaller
-
In case you have old Android `/dev/ion` driver:
```sh
diff --git a/docs/linux/setup_linux-host_isolated.md b/docs/linux/setup_linux-host_isolated.md
index 0ee3beab5..ec12fa101 100644
--- a/docs/linux/setup_linux-host_isolated.md
+++ b/docs/linux/setup_linux-host_isolated.md
@@ -53,28 +53,8 @@ Host *
Before fuzzing, connect to the machine and keep the connection open so all scp
and ssh usage will reuse it.
-## Go
-
-Install Go 1.8.1:
-``` bash
-wget https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz
-tar -xf go1.8.1.linux-amd64.tar.gz
-mv go goroot
-export GOROOT=`pwd`/goroot
-export PATH=$PATH:$GOROOT/bin
-mkdir gopath
-export GOPATH=`pwd`/gopath
-```
-
## Syzkaller
-Get and build syzkaller:
-``` bash
-go get -u -d github.com/google/syzkaller/...
-cd gopath/src/github.com/google/syzkaller/
-make
-```
-
Use the following config:
```
{
diff --git a/docs/linux/setup_ubuntu-host_android-device_arm32-kernel.md b/docs/linux/setup_ubuntu-host_android-device_arm32-kernel.md
index 8f1618e68..1c479c8b0 100644
--- a/docs/linux/setup_ubuntu-host_android-device_arm32-kernel.md
+++ b/docs/linux/setup_ubuntu-host_android-device_arm32-kernel.md
@@ -15,37 +15,14 @@ These were tested on an NXP Pico-Pi-IMX7D following the instructions [here](http
If feasible, recompile and reinstall the Linux kernel with any debugging options available on your board.
-## Install Go
-
-Install Go as follows:
-``` bash
-wget https://storage.googleapis.com/golang/go1.9.2.linux-amd64.tar.gz
-tar -xf go1.9.2.linux-amd64.tar.gz
-export PATH=`pwd`/go/bin:$PATH
-mkdir gopath
-export GOPATH=`pwd`/gopath
-```
-
-## Build syzkaller code
-
-### Initialize a working directory and set up environment variables
-
-Create a working directory. Also make sure GOROOT, GOPATH are defined and exported as instructed earlier.
-
-``` bash
-go get -u -d github.com/google/syzkaller/...
-cd gopath/src/github.com/google/syzkaller/
-mkdir workdir
-```
-
-### Build syzkaller executables
+## Build syzkaller executables
Run make.
```
make TARGETOS=linux TARGETARCH=arm
```
-### Create a manager configuration file
+## Create a manager configuration file
Create a manager config myboard.cfg, replacing the environment
variables `$GOPATH`, `$KERNEL` (path to kernel build dir for the ARM32 board), and `$DEVICES` (the device ID for your board as reported by adb devices) with their actual values. Change any other flags as needed for your ARM board.
diff --git a/docs/linux/setup_ubuntu-host_qemu-vm_x86-64-kernel.md b/docs/linux/setup_ubuntu-host_qemu-vm_x86-64-kernel.md
index d2f3c6ced..c91af4625 100644
--- a/docs/linux/setup_ubuntu-host_qemu-vm_x86-64-kernel.md
+++ b/docs/linux/setup_ubuntu-host_qemu-vm_x86-64-kernel.md
@@ -196,29 +196,8 @@ To kill the running QEMU instance:
kill $(cat vm.pid)
```
-## Go
-
-Install Go 1.8.1:
-``` bash
-wget https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz
-tar -xf go1.8.1.linux-amd64.tar.gz
-mv go goroot
-export GOROOT=`pwd`/goroot
-export PATH=$GOROOT/bin:$PATH
-mkdir gopath
-export GOPATH=`pwd`/gopath
-```
-
## syzkaller
-Get and build syzkaller:
-``` bash
-go get -u -d github.com/google/syzkaller/...
-cd gopath/src/github.com/google/syzkaller/
-mkdir workdir
-make
-```
-
Create a manager config like the following, replacing the environment
variables `$GOPATH`, `$KERNEL` and `$IMAGE` with their actual values.
```
@@ -243,6 +222,7 @@ variables `$GOPATH`, `$KERNEL` and `$IMAGE` with their actual values.
Run syzkaller manager:
``` bash
+mkdir workdir
./bin/syz-manager -config=my.cfg
```