Commit Graph

37979 Commits

Author SHA1 Message Date
Alex Rønne Petersen cb2cb21b31 std.zig.system.x86: improve AVX10 detection 2026-04-25 21:54:48 +02:00
Alex Rønne Petersen 13c6e227a9 std.zig.system.x86: require OS APX save support for APX features 2026-04-25 21:54:48 +02:00
Alex Rønne Petersen 44004b05ef std.zig.system.x86: detect more APX features 2026-04-25 21:54:48 +02:00
Alex Rønne Petersen c46a8e0d2c std.zig.system.x86: detect Diamonds Rapids, Wildcat Lake, and Nova Lake 2026-04-25 21:54:48 +02:00
Alex Rønne Petersen a24eee8390 std.zig.system.x86: fix prefetchi detection on AMD 2026-04-25 21:54:48 +02:00
Alex Rønne Petersen 6880b5678a std.zig.system.arm: add detection for a bunch more cores 2026-04-25 21:54:48 +02:00
Alex Rønne Petersen eb041a514f std.zig.system.windows: update aarch64 CPU feature detection 2026-04-25 21:54:48 +02:00
Alex Rønne Petersen 7c3d4642ae std.os.windows: update PF feature flags from winnt.h 2026-04-25 21:54:48 +02:00
Alex Rønne Petersen 67fa822300 test: disable switch on pointer type behavior test with LLVM
See: https://github.com/llvm/llvm-project/issues/176634

ref https://github.com/ziglang/zig/issues/23509
2026-04-25 21:54:48 +02:00
Alex Rønne Petersen 1be84a39b8 compiler: fix and simplify DllMainCRTStartup handling
See: https://github.com/llvm/llvm-project/pull/171680
2026-04-25 21:54:48 +02:00
Alex Rønne Petersen a8e624d7f1 compiler: let LLVM set the 64bit feature from the target triple on powerpc targets 2026-04-25 21:54:48 +02:00
Alex Rønne Petersen bb7a43490f compiler: let LLVM set the x32 feature from the target triple on x86 targets 2026-04-25 21:54:47 +02:00
Alex Rønne Petersen 4c50c4b6e5 llvm: wire up the xtensa backend
As of LLVM 22, it can produce assembly and object files. No LLD support,
however, so using it is still a bit of a pain.
2026-04-25 21:54:47 +02:00
Alex Rønne Petersen 473df0c106 llvm: switch to wasip<n> for preview wasi versions in triples 2026-04-25 21:54:47 +02:00
Alex Rønne Petersen 593f45ee02 llvm: switch most targets to using half and fp128 IR types
As of LLVM 22, most backends can (finally) handle legalization of these types as
necessary, so we don't need to do it ourselves anymore.

closes https://github.com/ziglang/zig/issues/23674
2026-04-25 21:54:47 +02:00
Alex Rønne Petersen 9e1e54d324 compiler-rt: additionally export __trunctfhf2 as __trunckfhf2 on powerpc
This is the name LLVM 22 expects.
2026-04-25 21:54:47 +02:00
Alex Rønne Petersen 421d997938 llvm: update data layout strings to LLVM 22 2026-04-25 21:54:47 +02:00
Alex Rønne Petersen 9aaebf67d2 zig cc: update options data to LLVM 22 2026-04-25 21:54:47 +02:00
Alex Rønne Petersen ca0b3318a0 std.Target: update CPU and feature data to LLVM 22 2026-04-25 21:54:47 +02:00
Alex Rønne Petersen c855c61432 libtsan: backport llvm/llvm-project#194116
https://github.com/llvm/llvm-project/pull/194116
2026-04-25 21:54:47 +02:00
Alex Rønne Petersen f3bd49a5d8 libtsan: backport llvm/llvm-project#183411
https://github.com/llvm/llvm-project/pull/183411
2026-04-25 21:49:39 +02:00
Alex Rønne Petersen dbaea8d67e libtsan: update to LLVM 22 2026-04-25 21:49:39 +02:00
Alex Rønne Petersen e79b4e907a libunwind: update to LLVM 22 2026-04-25 21:49:39 +02:00
Alex Rønne Petersen dfabf1586f libcxx: update to LLVM 22 2026-04-25 21:49:39 +02:00
Alex Rønne Petersen 80212b03ff libcxxabi: update to LLVM 22 2026-04-25 21:49:39 +02:00
Alex Rønne Petersen 520af69660 zig cc: update intrinsic headers to LLVM 22 2026-04-25 21:49:39 +02:00
Alex Rønne Petersen 1180711035 zig cc: update driver files to LLVM 22 2026-04-25 21:49:39 +02:00
Alex Rønne Petersen 2b6ab59435 cmake: update to LLVM 22
closes https://codeberg.org/ziglang/zig/issues/30558
2026-04-25 21:49:39 +02:00
Alex Rønne Petersen 54573e3542 compiler: fix LLVM ABI selection for loongarch32-linux-musl* 2026-04-25 21:49:39 +02:00
Alex Rønne Petersen 8deae2da4c std.zig.llvm.Builder: fix writing u64 max constant for type bit_count > 64 2026-04-25 21:49:39 +02:00
Alex Rønne Petersen 48d5b66677 std.Target: fuchsia supports arm/thumb now 2026-04-25 21:49:38 +02:00
Alex Rønne Petersen 8a1ec6a54d std.Target: fix Abi.float() for muslsf 2026-04-25 21:49:38 +02:00
Alex Rønne Petersen 47848ba3d6 zig cc: define __CRT__NO_INLINE for MinGW-w64 targets
See added comment for why.
2026-04-25 21:49:38 +02:00
Matthew Lugg 0a9c4008fd Compilation: fix writeDepFile with no file system inputs 2026-04-25 21:49:38 +02:00
Matthew Lugg a8c74e0565 Compilation: add link objects to file system inputs 2026-04-25 21:49:38 +02:00
Matthew Lugg 9ba89394df compiler: raise FD limit before opening link inputs 2026-04-25 21:49:38 +02:00
Matthew Lugg 31bc385a96 cbe: add missing cast of overflow arithmetic out pointer 2026-04-25 05:22:41 +02:00
Jonathan Marler 23bcb8148f add missing CONNECTION_REFUSED and CONNECTION_RESET errors for windows
Adds missing errors CONNECTION_REFUSED for netConnectIpWindows and
CONNECTION_RESET for both netReadWindows and netWriteWindows.  I'm able
to induce these 3 errors on my Windows 11 machine.
2026-04-25 05:20:16 +02:00
Andrew Kelley fb9ba5e4b3 Merge pull request 'llvm: fix multiple_llvm_types handling and aarch64 return types' (#32028) from aarch64-c-abi into master
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/32028
Reviewed-by: Andrew Kelley <andrew@ziglang.org>
2026-04-25 05:19:18 +02:00
Sertonix 5cc281e723 std.os.linux: avoid invalid asm error with gcc on x86
Even though these registry mentions are supposed to be in a comment they
seem to still be interpreted by gcc.

Alternatively one could try to make zig not include comments in assembly
blocks when generating C code.

In function 'os_linux_x86_syscall6__6685',
    inlined from 'os_linux_copy_file_range__4300' at zig2.c:396643:7,
    inlined from 'link_MappedFile_copyFileRange__14079.isra' at zig2.c:289222:10:
zig2.c:396692:2: error: invalid 'asm': operand number missing after %-letter
396692 |  __asm volatile(" push %[args56]\n push %%ebp\n mov 4(%%esp), %%ebp\n mov %%edi, 4(%%esp)\n // The saved %edi and %ebp are on the stack, and %ebp points to `args56`.\n // Prepare the last two args, syscall, then pop the saved %ebp and %edi.\n mov (%%ebp), %%edi\n mov 4(%%ebp), %%ebp\n int  $0x80\n pop  %%ebp\n pop  %%edi": [ret]"=r"(t5): [number]"r"(t6), [arg1]"r"(t7), [arg2]"r"(t8), [arg3]"r"(t9), [arg4]"r"(t10), [args56]"rm"(t2): "memory");
       |  ^~~~~
zig2.c:396692:2: error: invalid 'asm': operand number missing after %-letter
zig2.c:396692:2: error: invalid 'asm': operand number missing after %-letter
zig2.c:396692:2: error: invalid 'asm': operand number missing after %-letter
zig2.c:396692:2: error: invalid 'asm': operand number missing after %-letter
2026-04-24 07:33:22 +02:00
Andrew Kelley f6258b562d Merge pull request 'fix bugs with handling fuzzing crashes' (#32033) from gooncreeper/zig:fuzz-crash-report-bugs into master
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/32033
Reviewed-by: Andrew Kelley <andrew@ziglang.org>
2026-04-24 02:31:12 +02:00
Sertonix 084eab03d7 compiler_rt: Fix extern mem{set,cpy,move} type on arm
Otherwise gcc will refuse to compile the bootstrap compiler_rt.c.
Excerpt of the errors:

/builds/sertonix/aports/community/zig/src/zig-0.16.0/build/compiler_rt.c:1459:21: error: conflicting types for 'memcpy'; have 'uint8_t *(uint8_t *, const uint8_t *, uintptr_t)' {aka 'unsigned char *(unsigned char *, const unsigned char *, unsigned int)'}
 1459 | zig_extern uint8_t *memcpy(uint8_t *a0 zig_nonstring, uint8_t const *a1 zig_nonstring, uintptr_t a2);
      |                     ^~~~~~
/builds/sertonix/aports/community/zig/src/zig-0.16.0/stage1/zig.h:510:18: note: previous declaration of 'memcpy' with type 'void *(void *, const void *, unsigned int)'
  510 | zig_extern void *memcpy (void *zig_restrict, void const *zig_restrict, size_t);
      |                  ^~~~~~
/builds/sertonix/aports/community/zig/src/zig-0.16.0/build/compiler_rt.c: In function 'zig_e___negxf2':
/builds/sertonix/aports/community/zig/src/zig-0.16.0/build/compiler_rt.c:1758:9: error: passing argument 1 of 'memcpy' from incompatible pointer type [-Wincompatible-pointer-types]
 1758 |  memcpy(&t0, &a0, 16);
      |         ^~~
      |         |
      |         zig_u128 *
2026-04-23 08:42:53 +02:00
Kendall Condon 332d632ccc collect all stderr on fuzzing crash 2026-04-22 20:54:17 -04:00
Kendall Condon 122e0c26f2 properly scan through inputs when saving fuzzing crash 2026-04-22 20:54:17 -04:00
Matthew Lugg 99b90a4315 incremental: add misssing dependency on backing/tag type source code 2026-04-23 01:13:22 +02:00
Andrew Kelley 9c7759bdc3 Merge pull request 'distribute the lldb and gdb pretty printers' (#32017) from distribute-debug-helpers into master
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/32017
2026-04-23 01:12:33 +02:00
Andrew Kelley b047641f26 distribute the lldb pretty printers
rather than having them only in the source tree in tools/, distribute
them to zig users.

gdb ones are too outdated, delete them.

stage1 also is useless now.
2026-04-22 16:11:02 -07:00
Andrew Kelley 49fe3f887e tools: rename stage2 to compiler 2026-04-22 16:11:02 -07:00
Andrew Kelley 00a11421e6 remove stage1 debug helpers python code 2026-04-22 16:11:02 -07:00
andrew.kraevskii bbab366b78 Audit usages of toOwnedSlice (#32001)
Followup to #30769

I grepped for `try .*toOwnedSlice` and checked all of them by hand.

Fixes a bunch of memory leaks removes usages or `errdefer` and `vars` in some places. I also switched array_list.Managed to ArrayList where it was convenient.

Reviewed-on: https://codeberg.org/ziglang/zig/pulls/32001
Reviewed-by: Andrew Kelley <andrew@ziglang.org>
2026-04-22 19:35:46 +02:00