It's useful to run both a little-endian and a big-endian target here,
because some legalizations are susceptible to endianness bugs, e.g. any
related to bitwise operations or to `packed` (aka `bitpack`) types.
When modifying legalizations or adding new ones, they can be tested by
running `zig build test-modules -Donly-legalize` to limit to the targets
which pass `-flegalize-all`.
This makes it much easier to facilitate external contributions towards
https://codeberg.org/ziglang/zig/issues/36719, and will prevent
legalization passes from bit-rotting in the future.
In Zig 0.17.0, we started lowering these to `-L/ -l:/path/to/lib.so` in
the LLD invocation, but that obviously doesn't work on Windows. Luckily,
LLD's, uh, curious approach to path concatenation means that we can just
pass `-L ""` instead of `-L/` and everything works.
Resolves: https://codeberg.org/ziglang/zig/issues/37257
In order to allow the compiler to default to ReleaseSafe when compiling
for fuzzing, Build.standardOptimizeOption has been changed to return an
optional value.
These have no clear use case, no coherent definition, and incomplete/broken
compiler and linker support.
If actually needed, they can be reintroduced if someone can present a reasonable
use case along with a plan for how they should be implemented consistently in
all backends and linkers.
This target is effectively dead. We'll keep it on life support in the compiler
and standard library, but there's no reason to waste CI resources on it at this
stage.
Making progress on incremental support in the COFF linker:
- Support reloc deletion by replacing them with .ABSOLUTE relocs (actually using the relocs from the free list will come later)
- Fixup setting sizes during incremental updates
- Fix incorrect modifications to the target_relocs linked list, add clarifying docs
- Enable `x86_64-windows-selfhosted` for test-incremental
Closes https://codeberg.org/ziglang/zig/issues/31773
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/36706
- fix some bit-rotted documentation
- fix some non-determinism that was causing these tests to be flaky
- also update padding on moved/resized events
- make `unit_padding` a header node
- refactor out `ifPos`
https://codeberg.org/ziglang/zig/issues/35267
This was already the case before b66fe565db since
isBSD() includes isDarwin() - a great example of why that function is bad,
because it was not intended for Darwin platforms to be included in that check.
Anyway, we now *do* want to disable the self-hosted backend for this target due
to the aforementioned linker bug, but let's actually be intentional about it.