1
Commit Graph

107 Commits

Author SHA1 Message Date
laurynasl
b73d167c6c Support bazel compilation_mode
Bazel has a special command line option (--compilation_mode) for specifying how
c artifacts should be compiled. Copy over the implementation without too much
thought on whether they make sense.

See https://docs.bazel.build/versions/main/user-manual.html#flag--compilation_mode.

!!! Due to a regression in zig-cc, debug symbols are available under --compilation_mode opt

```
laurynasl@laurynasl ~/bazel-zig-cc
 % bazel build -c opt //test/c:which_libc 2>/dev/null && bazel-bin/test/c/which_libc && gdb -batch --ex 'info line main' bazel-bin/test/c/which_libc
glibc_2.19
Line 4 of "test/c/main.c" starts at address 0x2014f0 <main> and ends at 0x2014f1 <main+1>.
laurynasl@laurynasl ~/bazel-zig-cc
 % bazel build -c dbg //test/c:which_libc 2>/dev/null && bazel-bin/test/c/which_libc && gdb -batch --ex 'info line main' bazel-bin/test/c/which_libc
glibc_2.19
Line 4 of "test/c/main.c" starts at address 0x201500 <main> and ends at 0x201504 <main+4>.
laurynasl@laurynasl ~/bazel-zig-cc
 % bazel build -c fastbuild //test/c:which_libc 2>/dev/null && bazel-bin/test/c/which_libc && gdb -batch --ex 'info line main' bazel-bin/test/c/which_libc
glibc_2.19
Function "main" not defined.
```
2022-06-17 14:46:13 +00:00
86ae317685 zig sdk: rename {ext} to {_ext}
Also update README and release scripts
2022-06-06 10:32:42 +03:00
91ef17196b windows: add dynamic_library_linkopts
The patchset was created before
921fda9260, which added an option to
zig_cc_toolchain_config, causing a "soft merge conflict" after merging.
2022-06-06 10:30:39 +03:00
Fabian Hahn
72475ee012 added support for Windows targets 2022-06-02 05:27:22 +03:00
Fabian Hahn
4a6eef7945 added Windows host support 2022-06-02 05:27:22 +03:00
Jeremy Volkman
a0511ca5ee Pass "-Wl,-undefined=dynamic_lookup" for dynamic libraries on darwin.
This linker flag causes undefined symbols to be ignored, which is the
default behavior on linux but not macos. This is required when building
shared libraries to use as e.g. Python modules. This also matches what
Bazel's built-in macos cc toolchain does.
2022-06-01 11:49:13 +03:00
Jeremy Volkman
921fda9260 Adds dynamic_library_linkopts to zig_cc_toolchain_config
If specified, the flags in dynamic_library_linkopts are included in
cpp_link_dynamic_library and cpp_link_nodeps_dynamic_library actions.
2022-06-01 11:49:13 +03:00
Motiejus Jakštys
8fec0e3441 zig sdk: download from zig upstream as well as jakstys.lt
Now that the toolchain supports multiple mirrors, we can have more
robust defaults: try ziglang.org first, then dl.jakstys.lt when that one
removes the build we rely on.

This will make builds less prone to inevitable failures of my home
server.
2022-05-18 10:42:51 +03:00
Motiejus Jakštys
0044260206 upgrade zig to 0.10.0-dev.2252+a4369918b 2022-05-17 14:41:02 +03:00
Motiejus Jakštys
4fa5eff207 [linux-aarch64] fix top-level include path 2022-05-06 10:46:32 +03:00
Motiejus Jakštys
94d5864cb7 move --no-gc-sections hack to the toolchain definition
Thanks laurynasl for the tip.
2022-05-05 14:36:36 +03:00
Motiejus Jakštys
9ce21b5276 [zig ld] --gc-sections workaround + tests
`zig cc` emits `--gc-sections` for the linker, which is incompatbile
with what CGo thinks about linking.

This commit adds a workaround: it will add `--no-gc-sections` to the
linking step if the command is not specified (falling back to the
default behavior of gcc/clang).

Related: https://github.com/golang/go/issues/52690
2022-05-05 13:36:58 +03:00
Motiejus Jakštys
efca6e6428 remove support for glibc autodetection; this is a hermetic toolchain 2022-04-18 11:45:09 +03:00
Motiejus Jakštys
0c02a827ae README prose, the way I understand it 2022-04-18 11:42:13 +03:00
laurynasl
4d65b80903 Add libc constraint and libc aware toolchains
- Also get rid of @bazel_skylib dependency
2022-04-14 14:29:06 +00:00
laurynasl
68b152067c Fix register toolchain 2022-04-09 00:09:04 +03:00
laurynasl
64be98b830 Hide toolchain internals 2022-04-07 11:23:40 +00:00
Motiejus Jakštys
6ded50ad67 buildifier 2022-04-07 13:21:44 +03:00
laurynasl
eedfc3312e Move toolchain definitions to toolchains/ 2022-04-07 12:43:34 +03:00
laurynasl
723e6f051d Move toolchainss under @zig_sdk//platform: 2022-04-07 12:43:34 +03:00
laurynasl
d1b0dddf8c Move declare_platforms() to platform/ 2022-04-07 12:43:34 +03:00
laurynasl
dd76e0b76f move platforms under @zig_cc//platform: 2022-04-07 12:43:34 +03:00
Ken Micklas
ccb68098e6 Use upstream read_user_netrc from Bazel 5.1 2022-03-26 15:56:11 +02:00
Ken Micklas
fc62c3a7b7 Remove repo fetch-time uname dependency, use new os.arch instead 2022-03-26 15:56:11 +02:00
Motiejus Jakštys
3492880151 bump to zig-0.10.0-dev.1393+291f5055f 2022-03-18 06:06:08 +01:00
Ken Micklas
9afcddea4f Support netrc for Zig SDK download 2022-03-18 06:04:49 +01:00
Motiejus Jakštys
2895f0c2bf replace url_format with url_formats 2022-03-18 05:44:22 +01:00
Ken Micklas
fb0cf50c44 2022-03-18 05:30:42 +01:00
Ken Micklas
fcb3d0432e Starlark's default argument semantics are pretty weird and likely not
what you would expect:
https://github.com/bazelbuild/starlark/blob/master/spec.md#functions

Additionally, this is just easier to read.
2022-03-18 05:30:38 +01:00
Ken Micklas
9ede1507c3 Fix and adjust darwin libc header paths depending on CPU 2022-02-11 06:29:46 +02:00
Ken Micklas
77688d0a45 Interpret arm64 output from uname as aarch64 on mac OS 2022-02-11 06:29:07 +02:00
Motiejus Jakštys
bcd9731f92 add @zig_sdk//:<os>_<arch>_platform values 2022-02-03 14:24:26 +02:00
Motiejus Jakštys
d27f6be570 upgrade to 0.10.0-dev.513+029844210 2022-02-02 14:59:34 +02:00
Motiejus Jakštys
faae381685 upgrade zig to 0.10.0-dev.430+35423b005 2022-01-27 10:52:25 +02:00
Motiejus Jakštys
2d32bfe884 upgrade zig to 0.10.0-dev.399+366c76744
Implements -whole-archive, -no-whole-archive, -s, -S in
50905d88518f92a9b8e492daf8dbb6d38b7c61bf
2022-01-26 05:41:21 +02:00
Motiejus Jakštys
78f3a59f0c [readme] less bragging about the home server 2022-01-25 11:19:52 +02:00
Motiejus Jakštys
c3655fbe65 brag about home server reliability 2022-01-25 11:12:18 +02:00
Motiejus Jakštys
23f81117ba Add description about mirrors 2022-01-25 11:05:35 +02:00
Piotr Sikora
230da38f54 Fix include paths when targeting non-x86_64 archs.
Signed-off-by: Piotr Sikora <piotrsikora@google.com>
2022-01-25 10:35:29 +02:00
Motiejus Jakštys
c3144b8b7b upgrade to zig 0.10.0-dev.283+ba0f72363
Thanks Xavier for https://github.com/ziglang/zig/pull/10587
2022-01-15 09:02:37 +02:00
Motiejus Jakštys
5c2d377eca bring back 0.9.0-dev.1968+ff93486d0
See https://github.com/ziglang/zig/issues/10386
2021-12-22 14:29:49 +02:00
Motiejus Jakštys
d1719dd5a5 upgrade zig to 0.9.0 2021-12-22 10:30:22 +02:00
Motiejus Jakštys
b1c645b162 zig-0.9.0-dev.1968: upgrade checksums 2021-12-15 13:30:57 +02:00
Motiejus Jakštys
3ce88db8ab upgrade zig to 0.9.0-dev.1968+ff93486d0 2021-12-15 13:26:22 +02:00
Motiejus Jakštys
985e26b474 remove DEFAULT_COPTS
Optimizations should be turned by the user with `-c opt`. We want UBSAN
enabled for non-release builds.
2021-12-13 03:29:10 +02:00
Motiejus Jakštys
66dbf420f7 bump zig to 0.9.0-dev.1950+a76910b69; remove -O3 2021-12-13 03:20:02 +02:00
Motiejus Jakštys
f5b7163eb1 upgrade zig 2021-12-09 10:22:26 +02:00
Motiejus Jakštys
ce6075b19b upgrade to 0.9.0-dev.1920+de81c504b 2021-12-07 17:27:55 +02:00
Motiejus Jakštys
2ee3c32780 fix darwin include targets; target macos 10 2021-12-07 12:46:52 +02:00
Motiejus Jakštys
780eaff263 add missing include of x86-linux-any
Was added as part of https://github.com/ziglang/zig/issues/9837
2021-12-07 11:53:00 +02:00