Andrew Kelley
c45dcd013b
Merge pull request #22488 from Rexicon226/ubsan-rt
...
implement a ubsan runtime for better error messages
2025-02-26 03:08:36 -05:00
mlugg
3fcb4408a5
AstGen: improve 'file cannot be a tuple' source location
...
Instead of just reporting this on token 0, report it on the first
tuple-like field.
2025-02-25 22:28:47 +00:00
Alex Rønne Petersen
055969b101
std.Target: Update known max OS versions.
2025-02-25 20:30:43 +01:00
Robin Voetter
d856763aca
Merge pull request #22937 from alichraghi/ali_spv
...
spirv: make test suite working again
2025-02-25 20:27:37 +01:00
David Rubin
ca83f52fd9
ubsan: update wording
2025-02-25 11:22:33 -08:00
Andrew Kelley
2447b87d98
std.heap.page_size_min: relax freestanding restriction
...
x86_64 and aarch64 have safe values for page_size_min
2025-02-25 11:22:33 -08:00
Andrew Kelley
faf256e429
std.mem.indexOfSentinel: don't ask the OS the page size
...
simply use page_size_min instead.
better yet, this logic would avoid depending on page size entirely...
2025-02-25 11:22:33 -08:00
Andrew Kelley
d4413e3504
ubsan: avoid depending on @returnAddress combined with inline
2025-02-25 11:22:33 -08:00
David Rubin
35b9db3b15
correct some bugs
2025-02-25 11:22:33 -08:00
David Rubin
931178494f
Compilation: correct when to include ubsan
2025-02-25 11:22:33 -08:00
David Rubin
9432a9b6e1
build: add bundle_ubsan_rt
2025-02-25 11:22:33 -08:00
David Rubin
d669b9520b
ubsan: clean-up a bit more
2025-02-25 11:22:33 -08:00
David Rubin
a468929519
ubsan: resolve the last of the TODOs
2025-02-25 11:22:33 -08:00
David Rubin
50b95562fd
ubsan: clean-up and remove the unused handlers
2025-02-25 11:22:33 -08:00
David Rubin
658fba982c
ubsan: extend ptr before adding to avoid overflow
2025-02-25 11:22:33 -08:00
David Rubin
590c613182
ubsan: implement more checks
2025-02-25 11:22:33 -08:00
David Rubin
fc77678339
mem: add @branchHint to indexOfSentinel
...
also seems to work around aarch64 LLVM miscompilation 🤔
2025-02-25 11:22:33 -08:00
David Rubin
95720f007b
move libubsan to lib/ and integrate it into -fubsan-rt
2025-02-25 11:22:33 -08:00
David Rubin
babee5f73c
ubsan: implement some more checks
2025-02-25 11:22:33 -08:00
David Rubin
c27b7973c9
Compilation: use the minimal runtime in ReleaseSafe
2025-02-25 11:22:33 -08:00
David Rubin
eef8d4ff4f
ubsan: switch to using std.builtin.panicExtra to log errors
2025-02-25 11:22:33 -08:00
David Rubin
5e0073c898
ubsan: add a basic runtime
2025-02-25 11:22:33 -08:00
Alex Rønne Petersen
ad5515bed8
compiler-rt: Add tests from llvm/llvm-project#119449 .
2025-02-25 19:31:00 +01:00
Alex Rønne Petersen
c7e99b93a4
Revert "skip regressed LLVM 17 std lib test on powerpc"
...
This reverts commit 5b8af7a2a9140fd0533961b62addc61f57b33343.
Closes #16951 .
2025-02-25 18:28:34 +01:00
Alex Rønne Petersen
bedf806672
Merge pull request #22999 from alexrp/mingw-update
2025-02-25 12:54:55 +01:00
Alex Rønne Petersen
37706cc1d9
libc: Update Linux headers to 6.13.4.
2025-02-25 11:24:18 +01:00
Ali Cheraghi
181a89e728
build: add spirv to test matrix
...
Signed-off-by: Ali Cheraghi <alichraghi@proton.me>
2025-02-24 19:12:38 +01:00
Ali Cheraghi
a0eec9ce9e
spirv: replace some unreachables with compile errors
2025-02-24 19:12:33 +01:00
Alex Rønne Petersen
51b44be9cc
std.zig.target: Support new wiaguid library name for MinGW-w64.
2025-02-24 12:01:12 +01:00
Alex Rønne Petersen
8afe928b6e
mingw: Update MinGW-w64 sources to 3839e21b08807479a31d5a9764666f82ae2f0356.
2025-02-24 12:01:07 +01:00
Alex Rønne Petersen
ed10a5db58
mingw: Update MinGW-w64 headers to 3839e21b08807479a31d5a9764666f82ae2f0356.
2025-02-24 11:59:10 +01:00
Alec Fessler
1cc388d526
stdlib: handle EEXIST in mmap with FIXED_NOREPLACE. Fixes #21475
2025-02-24 04:36:14 -05:00
Alex Rønne Petersen
ecc76348e6
Merge pull request #22154 from alexrp/disable-intrinsics
...
compiler: Implement `@disableIntrinsics()` builtin function.
2025-02-24 08:25:23 +01:00
Linus Groh
68bd82d0cc
std.posix: Handle USER_MAPPED_FILE in windows ftruncate() impl
2025-02-23 16:58:26 -05:00
Andrew Kelley
e47f340e23
std.Build.Step.ConfigHeader: follow deprecation policy
2025-02-23 12:45:35 -08:00
Andrew Kelley
86f35479d9
Merge pull request #22794 from cbilz/autoconf_at
...
std.Build.Step.ConfigHeader: Add support for Autoconf-style `@FOO@` variables
2025-02-23 15:36:49 -05:00
Linus Groh
c44f4501e7
std.math.big.int: Support strings up to base 36
...
Co-Authored-By: samy007 <samy2014@free.fr>
2025-02-23 11:25:35 +00:00
mlugg
5e20e9b449
Sema: allow @ptrCast of slices changing the length
...
Also, refactor `Sema.ptrCastFull` to not be a horrifying hellscape.
2025-02-23 08:28:58 +00:00
Andrew Kelley
d6f8200294
zig fmt
2025-02-22 22:21:24 -08:00
Constantin Bilz
75b0538688
std.Build: Allow ConfigHeader values to be added at build.zig runtime
2025-02-22 23:31:17 -05:00
Anders Bondehagen
77007445bf
std.net: Fix IPv6 address format compression for long zero runs ( #22441 )
2025-02-22 19:52:47 -08:00
Linus Groh
4b0f77cc1f
std.crypto.tlcsprng: Fix hardcoded use of defaultRandomSeed()
...
Instead of hardcoding a call to defaultRandomSeed() use the customizable
std.options.cryptoRandomSeed() like in the rest of the function.
Closes #19943 .
2025-02-22 22:39:40 -05:00
Alex Rønne Petersen
e11ac02662
cbe: Implement support for -fno-builtin and @disableIntrinsics().
2025-02-23 04:08:58 +01:00
Alex Rønne Petersen
6ba785584a
compiler: Implement @disableIntrinsics() builtin function.
...
Closes #21833 .
Closes #22110 .
2025-02-23 04:08:56 +01:00
Ryan Liptak
a502301b5e
zig rc: Add COFF object file creation for CMake cross-compilation use case
...
In #22522 I said:
> RC="zig rc" will now work in combination with zig cc and CMake. Here's an example of cross-compiling a simple Windows GUI CMake project
>
> $ RC="zig rc" CC="zig cc --target=x86_64-windows-gnu" cmake .. -DCMAKE_SYSTEM_NAME=Windows -G Ninja
However, I didn't realize that the time that this only works because of the `-G Ninja` part. When not using Ninja as the build tool, CMake adds a workaround for 'very long lists of object files' where it takes all object files and runs them through `ar` to combine them into one archive:
4a11fd8dde/Modules/Platform/Windows-GNU.cmake (L141-L158)
This is a problem for the Windows resource use-case, because `ar` doesn't know how to deal with `.res` files and so this object combining step fails with:
unknown file type: foo.rc.res
Only the linker knows what to do with .res files (since it has its own `.res` -> `.obj` ('cvtres') conversion mechanism). So, when using Ninja, this object file combining step is skipped and the .res file gets passed to the linker and everyone is happy.
Note: When CMake thinks that its using `windres` as the Windows resource compiler, it will pass `-O coff` to windres which causes it to output a COFF object file instead of a `.res` file, which means that the `ar` step can succeed because it's only working on actual object files.
---
This commit gives `zig rc` the ability to output COFF object files directly when `/:output-format coff` is provided as an argument. This effectively matches what happens when CMake uses `windres` for resource compilation, but requires the argument to be provided explicitly.
So, after this change, the following CMake cross-compilation use case will work, even when not using Ninja as the generator:
RC="zig rc /:output-format coff" CC="zig cc --target=x86_64-windows-gnu" cmake .. -DCMAKE_SYSTEM_NAME=Windows
2025-02-22 21:21:30 -05:00
Andrew Kelley
8683f25d24
std.heap.DebugAllocator: default wasm to 64K page size
...
including on freestanding
2025-02-22 21:06:00 -05:00
Andrew Kelley
dd54c48aa2
std.crypto.asn1: fix merge conflicts
2025-02-22 17:44:11 -08:00
Andrew Kelley
ed7004a2ee
Merge pull request #19976 from clickingbuttons/asn1
...
std.crypto: Add ASN1 module with OIDs and DER
2025-02-22 20:21:09 -05:00
Andrew Kelley
eb3c7f5706
zig build fmt
2025-02-22 17:09:20 -08:00
Andrew Kelley
c0c911bfa7
zig fmt: fix invalid alignment on frees
2025-02-22 17:09:20 -08:00