1
Fork 0
Commit Graph

357 Commits

Author SHA1 Message Date
Motiejus Jakštys 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
Motiejus Jakštys ef5d2b5069 README: maintainers section 2022-06-09 08:49:19 +03:00
Motiejus Jakštys 3823cbdbf8 README: remove mention of wine-binfmt 2022-06-08 23:29:27 +03:00
Motiejus Jakštys 0f888c458d README: short and long container versions 2022-06-08 23:27:04 +03:00
Motiejus Jakštys 8ce003edec README: add qemu-user-static to the prereqs 2022-06-08 23:21:37 +03:00
Motiejus Jakštys 623430d0bb README: update gc-sections 2022-06-08 23:17:50 +03:00
Motiejus Jakštys c904fc7d7d README: spaces 2022-06-08 23:12:22 +03:00
Motiejus Jakštys 9569702e27 README: an upstream issue fixed 2022-06-08 23:12:00 +03:00
Motiejus Jakštys 4486c2feed fix README.md url 2022-06-08 23:03:33 +03:00
Motiejus Jakštys 92084a60b2 Update release notes for v0.8.0 2022-06-08 23:00:07 +03:00
Motiejus Jakštys d263686ec4 Merge branch 'motiejus_windows' 2022-06-08 22:59:06 +03:00
Motiejus Jakštys 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
Motiejus Jakštys 86ae317685 zig sdk: rename {ext} to {_ext}
Also update README and release scripts
2022-06-06 10:32:42 +03:00
Motiejus Jakštys 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