1
Commit Graph

357 Commits

Author SHA1 Message Date
4cfc30dd1c [fastbuild] use -fno-lto
This is very cache-unfriendly, because quite a lot of work is done
during the final linking stage. Let's see how this improves performance
of fastbuild.
2022-06-21 08:45:03 +03:00
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
ef5d2b5069 README: maintainers section 2022-06-09 08:49:19 +03:00
3823cbdbf8 README: remove mention of wine-binfmt 2022-06-08 23:29:27 +03:00
0f888c458d README: short and long container versions 2022-06-08 23:27:04 +03:00
8ce003edec README: add qemu-user-static to the prereqs 2022-06-08 23:21:37 +03:00
623430d0bb README: update gc-sections 2022-06-08 23:17:50 +03:00
c904fc7d7d README: spaces 2022-06-08 23:12:22 +03:00
9569702e27 README: an upstream issue fixed 2022-06-08 23:12:00 +03:00
4486c2feed fix README.md url 2022-06-08 23:03:33 +03:00
92084a60b2 Update release notes for v0.8.0 2022-06-08 23:00:07 +03:00
d263686ec4 Merge branch 'motiejus_windows' 2022-06-08 22:59:06 +03:00
cefae49ecc WORKSPACE: upgrade to go 1.18.3 2022-06-08 11:55:07 +03:00
Motiejus Jakštys
3ac217e2cc windows tests: move tests, get rid of wine-binfmt
This removes all other Bazel test commands, so all tests can be again
tested with `bazel test ...`.

Also, fixes linux-arm64 glibc tests. Until now they've worked only in
CI. Now they work everywhere I tried.
2022-06-06 10:33:46 +03: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
6f2ae838cd added Windows target testing 2022-06-02 05:27:22 +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
Motiejus Jakštys
8b7597f4a1 Update release notes for v0.7.3 2022-06-01 11:51:40 +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
f6440f8cf0 README: clarify video link 2022-05-25 15:20:12 +03:00
Motiejus Jakštys
1f8b1e4dd8 README: publicity section 2022-05-25 15:18:28 +03:00
Motiejus Jakštys
583ef5e55b README: update darwin_amd64 description 2022-05-18 10:45:22 +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
7d5fb880c8 Update release notes for v0.7.2 2022-05-17 15:05:50 +03:00
Motiejus Jakštys
59057c06f3 upgrade rules_go and bazel_gazelle 2022-05-17 14:43:40 +03:00
Motiejus Jakštys
dd8665fc7f bump go to 1.18.2 2022-05-17 14:42:37 +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
450a8486e2 [.envrc] fix linux-aarch64 buildifier hash 2022-05-06 09:59:52 +03:00
Motiejus Jakštys
d0c50b9544 [README] clarify binfmt_misc configuration 2022-05-06 09:50:53 +03:00
Motiejus Jakštys
e40d48ab6e [readme] fix an internal link 2022-05-06 09:47:59 +03:00
Motiejus Jakštys
4dc947c012 Update release notes for v0.7.1 2022-05-05 15:23:39 +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
4cc8a7b551 bump go to 1.18.1 2022-04-26 05:06:59 +03:00
Motiejus Jakštys
b48e1a62ee [doc] add binfmt_misc 2022-04-21 08:49:28 +03:00
Motiejus Jakštys
0e62918e88 README updates
- more robust transient docker environment
- clarify platform vs subset
2022-04-21 08:47:29 +03:00
Motiejus Jakštys
d4f40a19fb fix ci/release
by adding a stub commit there
2022-04-20 14:45:48 +03:00
Motiejus Jakštys
160de46269 Update release notes for v0.7.0 2022-04-20 12:37:27 +03:00
Motiejus Jakštys
c2c6edd11c Merge branch 'laurynasl_libc' 2022-04-20 12:24:05 +03:00
Motiejus Jakštys
cca3c49c0b [ci] install sponge 2022-04-18 13:12:08 +03:00
Motiejus Jakštys
d2af022174 shellcheck 2022-04-18 12:55:53 +03:00
Motiejus Jakštys
418b589ed2 example transitions only change platforms, leave toolchains for WORKSPACE 2022-04-18 12:40:17 +03:00
Motiejus Jakštys
486a26a196 [release] add to CI 2022-04-18 12:37:12 +03:00
Motiejus Jakštys
a53170cf82 ci/list* and ci/test: simple style improvements 2022-04-18 11:58:43 +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