README: --extra_toolchains and --platform
This commit is contained in:
parent
1cd04478b7
commit
d7a47c7349
44
README.md
44
README.md
@ -73,6 +73,27 @@ SIGILL: illegal instruction
|
|||||||
This is by design: it encourages program authors to fix the undefined behavior.
|
This is by design: it encourages program authors to fix the undefined behavior.
|
||||||
There are [many ways][ubsan2] to find the undefined behavior.
|
There are [many ways][ubsan2] to find the undefined behavior.
|
||||||
|
|
||||||
|
## Specifying non-default toolchains (and not registering at all)
|
||||||
|
|
||||||
|
You may explicitly request Bazel to use a specific toolchain, even though one
|
||||||
|
is registered using `--extra_toolchains <toolchain>` flag. For example, if you
|
||||||
|
wish to compile a specific binary (or run tests) using musl on linux/amd64, you
|
||||||
|
may specify:
|
||||||
|
|
||||||
|
```
|
||||||
|
--extra_toolchains @zig_sdk//:linux_amd64_musl_toolchain
|
||||||
|
```
|
||||||
|
|
||||||
|
As an extension to this, you may not register the toolchains at all:
|
||||||
|
|
||||||
|
```
|
||||||
|
zig_register_toolchains()
|
||||||
|
```
|
||||||
|
|
||||||
|
In that case, you will need to specify the `--extra_toolchains <toolchain>`
|
||||||
|
command-line argument. Otherwise Bazel will use the default one -- the host
|
||||||
|
toolchain.
|
||||||
|
|
||||||
# Known Issues In bazel-zig-cc
|
# Known Issues In bazel-zig-cc
|
||||||
|
|
||||||
These are the things you may stumble into when using bazel-zig-cc. I am
|
These are the things you may stumble into when using bazel-zig-cc. I am
|
||||||
@ -80,8 +101,6 @@ unlikely to implement them, but patches implementing those will be accepted.
|
|||||||
See [Questions & Contributions](#questions-amp-contributions) on how to
|
See [Questions & Contributions](#questions-amp-contributions) on how to
|
||||||
contribute.
|
contribute.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## OSX: sysroot
|
## OSX: sysroot
|
||||||
|
|
||||||
For non-trivial programs (and for all darwin/arm64 cgo programs) MacOS SDK may
|
For non-trivial programs (and for all darwin/arm64 cgo programs) MacOS SDK may
|
||||||
@ -105,12 +124,31 @@ Currently zig is downloaded from
|
|||||||
[dl.jakstys.lt/zig](https://dl.jakstys.lt/zig/), which is nuts. One should
|
[dl.jakstys.lt/zig](https://dl.jakstys.lt/zig/), which is nuts. One should
|
||||||
provide a way to specify alternative URLs for the zig toolchain.
|
provide a way to specify alternative URLs for the zig toolchain.
|
||||||
|
|
||||||
## Bazel toolchain target locations
|
## Toolchain and platform target locations
|
||||||
|
|
||||||
The path to Bazel toolchains is `@zig_sdk//:<toolchain>_toolchain`. It should
|
The path to Bazel toolchains is `@zig_sdk//:<toolchain>_toolchain`. It should
|
||||||
be moved to `@zig_sdk//toolchain:<toolchain>` or similar; so the user-facing
|
be moved to `@zig_sdk//toolchain:<toolchain>` or similar; so the user-facing
|
||||||
targets are in their own namespace.
|
targets are in their own namespace.
|
||||||
|
|
||||||
|
Currently, platform is not defined in `@zig_sdk`. As you may see in the
|
||||||
|
examples, we are currently using the one provided by cgo. E.g.
|
||||||
|
`@io_bazel_rules_go//go/toolchain:linux_amd64_cgo`. This is because we want to
|
||||||
|
define it in `@zig_sdk//:platform:<platform>`. This is waiting for mine or a
|
||||||
|
contributor's attention. You may work around this by sending a patch to
|
||||||
|
bazel-zig-cc or specifying the platform in your project:
|
||||||
|
|
||||||
|
```
|
||||||
|
platform(
|
||||||
|
name = "linux_aarch64",
|
||||||
|
constraint_values = [
|
||||||
|
"@bazel_tools//platforms:linux",
|
||||||
|
"@bazel_tools//platforms:aarch64",
|
||||||
|
]
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
and `--platforms="//:linux_aarch64"`.
|
||||||
|
|
||||||
# Known Issues In Upstream
|
# Known Issues In Upstream
|
||||||
|
|
||||||
This section lists issues that I've stumbled into when using `zig cc`, and is
|
This section lists issues that I've stumbled into when using `zig cc`, and is
|
||||||
|
Loading…
Reference in New Issue
Block a user