aboutsummaryrefslogtreecommitdiffstats
path: root/docs/fuchsia.md
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2019-02-26 13:38:57 +0100
committerDmitry Vyukov <dvyukov@google.com>2019-02-26 13:38:57 +0100
commit3b8291bd1a368667df02bcf7cbf09b8a6a0e7dbb (patch)
treeea807fcd78cc72a8ac0b3ce889c4394d6e9ed898 /docs/fuchsia.md
parent742e507fb1db5cdda57b74e01350efdfa408d7c2 (diff)
docs: move OS-specific docs to subdirs
Move freebsd, fuchsia, gvisor docs into own subdirs as we do for all other OSes. Add freebsd found_bugs.md.
Diffstat (limited to 'docs/fuchsia.md')
-rw-r--r--docs/fuchsia.md134
1 files changed, 0 insertions, 134 deletions
diff --git a/docs/fuchsia.md b/docs/fuchsia.md
deleted file mode 100644
index dd5243f91..000000000
--- a/docs/fuchsia.md
+++ /dev/null
@@ -1,134 +0,0 @@
-# Fuchsia support
-
-For information about checking out and building Fuchsia see
-[Getting Started](https://fuchsia.googlesource.com/docs/+/master/getting_started.md)
-and [Soure Code](https://fuchsia.googlesource.com/docs/+/master/development/source_code/README.md).
-Image needs to be configured with sshd support:
-```
-fx set x64 --packages garnet/packages/products/sshd
-fx full-build
-```
-
-You need to build fuchsia for both arm64 and amd64:
-
-```
-fx set arm64 --packages garnet/packages/products/sshd
-fx full-build
-```
-
-Syscall descriptions live in the `sys/fuchsia` folder. To update a syscall, you need to modify the `.txt` file that contains it, make sure your new definition matches the one in zircon's [syscalls.abigen](https://fuchsia.googlesource.com/zircon/+/HEAD/system/public/zircon/syscalls.abigen) file. **If the syscall was used in `executor/common_fuchsia.h`, you need to update the usages there as well**. FIDL definitions do not need manual updating because they are extracted automatically with the commands below.
-
-Once you updated the syscalls definitions, everything can be regenerated by running:
-
-```
-make extract TARGETOS=fuchsia SOURCEDIR=/path/to/fuchsia/checkout
-make generate
-```
-
-To build binaries:
-```
-make TARGETOS=fuchsia TARGETARCH=amd64 SOURCEDIR=/path/to/fuchsia/checkout
-```
-
-Run `syz-manager` with a config along the lines of:
-```
-{
- "name": "fuchsia",
- "target": "fuchsia/amd64",
- "http": ":12345",
- "workdir": "/workdir.fuchsia",
- "kernel_obj": "/fuchsia/out/build-zircon/build-x64",
- "syzkaller": "/syzkaller",
- "image": "/fuchsia/out/x64/out/build/images/fvm.blk",
- "sshkey": "/fuchsia/out/x64/ssh-keys/id_ed25519",
- "reproduce": false,
- "cover": false,
- "procs": 8,
- "type": "qemu",
- "vm": {
- "count": 10,
- "cpu": 4,
- "mem": 2048,
- "kernel": "/fuchsia/out/build-zircon/build-x64/zircon.bin",
- "initrd": "/fuchsia/out/x64/bootdata-blob.bin"
- }
-}
-```
-
-
-## How to generate syscall description for FIDL
-
-Syscall descriptions for FIDL are automatically generated as part of `make extract` as described above.
-
-However, if you wish to manually generate syscall descriptions for a given `.fidl` file, do the following.
-
-FIDL files should first be compiled into FIDL intermediate representation (JSON) files using `fidlc`:
-
-```bash
-/fuchsia/out/x64/host_x64/fidlc --json /tmp/io.json --files /fuchsia/zircon/system/fidl/fuchsia-io/io.fidl
-```
-
-Then run FIDL compiler backend `fidlgen` with syzkaller generator, which compiles a FIDL IR file into a syscall description file:
-
-```bash
-/fuchsia/out/x64/host_x64/fidlgen -generators syzkaller -json /tmp/io.json -output-base fidl_io -include-base fidl_io
-```
-## Running syz-ci locally
-
-To run `syz-ci` locally for Fuchsia, you need:
-
-- Go 1.10 toolchain (in `/go1.10` 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)
-
-```
-{
- "name": "testci",
- "http": ":50000",
- "manager_port_start": 50001,
- "goroot": "/go1.10",
- "syzkaller_repo": "https://github.com/google/syzkaller.git",
- "managers": [
- {
- "name": "fuchsia",
- "repo": "https://fuchsia.googlesource.com",
- "manager_config": {
- "target": "fuchsia/amd64",
- "type": "qemu",
- "cover": false,
- "procs": 8,
- "vm": {
- "count": 4,
- "cpu": 4,
- "mem": 1024
- }
- }
- }
- ]
-}
-```
-
-Run `syz-ci` as:
-```
-SOURCEDIR=/bootstrap/fuchsia ./syz-ci -config ci.cfg
-```
-
-## Troubleshooting
-
-While running the `make extract` step, it's possible that the fidl definitions
-are not up to date. It could happen that they have been removed or renamed.
-
-If this is the case, you would see an error mentioning that the fidl.json file
-could not be found:
-
-```
-go generate ./sys/fuchsia
-cannot find /path-to-fuchsia/out/x64/fidling/gen/zircon/public/fidl/zircon-ethernet/zircon-ethernet.fidl.json
-exit status 1
-```
-
-You can search for the string in the fuchsia repos or in the code-review tool to
-see what happened to it. If the fidl interface was renamed or removed, you
-should update `sys/fuchsia/fidlgen/main.go` to reflect this change, and remove the
-stale autogenerated files.