aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Target.zig
AgeCommit message (Collapse)Author
2025-10-31std.Target: bump vulkan max version to 1.4.331Alex Rønne Petersen
2025-10-31std.Target: bump opencl/nvcl max version to 3.0.19Alex Rønne Petersen
2025-10-31std.Target: bump cuda max version to 13.0.2Alex Rønne Petersen
2025-10-31std.Target: bump amdhsa max version to 7.1.0Alex Rønne Petersen
2025-10-31std.Target: bump wasi max version to 0.3.0Alex Rønne Petersen
2025-10-31std.Target: bump dragonfly max version to 6.4.2Alex Rønne Petersen
2025-10-31std.Target: bump linux max version to 6.17Alex Rønne Petersen
2025-10-31std.Target: bump fuchsia max version to 28.0.0Alex Rønne Petersen
2025-10-31std.Target: bump contiki max version to 5.1.0Alex Rønne Petersen
2025-10-29remove all IBM AIX and z/OS supportAlex Rønne Petersen
As with Solaris (dba1bf935390ddb0184a4dc72245454de6c06fd2), we have no way to actually audit contributions for these OSs. IBM also makes it even harder than Oracle to actually obtain these OSs. closes #23695 closes #23694 closes #3655 closes #23693
2025-10-28Merge pull request #25691 from GasInfinity-Forks/x86_16-gccAlex Rønne Petersen
feat: init x86_16 arch via CBE
2025-10-27remove all Oracle Solaris supportAlex Rønne Petersen
There is no straightforward way for the Zig team to access the Solaris system headers; to do this, one has to create an Oracle account, accept their EULA to download the installer ISO, and finally install it on a machine or VM. We do not have to jump through hoops like this for any other OS that we support, and no one on the team has expressed willingness to do it. As a result, we cannot audit any Solaris contributions to std.c or other similarly sensitive parts of the standard library. The best we would be able to do is assume that Solaris and illumos are 100% compatible with no way to verify that assumption. But at that point, the solaris and illumos OS tags would be functionally identical anyway. For Solaris especially, any contributions that involve APIs introduced after the OS was made closed-source would also be inherently more risky than equivalent contributions for other proprietary OSs due to the case of Google LLC v. Oracle America, Inc., wherein Oracle clearly demonstrated its willingness to pursue legal action against entities that merely copy API declarations. Finally, Oracle laid off most of the Solaris team in 2017; the OS has been in maintenance mode since, presumably to be retired completely sometime in the 2030s. For these reasons, this commit removes all Oracle Solaris support. Anyone who still wishes to use Zig on Solaris can try their luck by simply using illumos instead of solaris in target triples - chances are it'll work. But there will be no effort from the Zig team to support this use case; we recommend that people move to illumos instead.
2025-10-27feat: init x86_16 arch via CBEGasInfinity
2025-10-27Revert "std.Target: xtensa defaults to windowed ABI"Alex Rønne Petersen
This reverts commit c55e83eab1369373fe6db5072802c2fc1c4d7ebc. This was a misreading of XtensaFeatures.td on my part.
2025-10-23Merge pull request #25640 from alexrp/std-target-more-archesAlex Rønne Petersen
`std.Target`: add tags and info for alpha, hppa, microblaze, sh + some bonus commits
2025-10-23std.builtin: move AddressSpace.Context to std.Target.AddressSpaceContextAlex Rønne Petersen
This type has nothing to do with the language.
2025-10-23std.builtin: add CallingConvention.sh_interruptAlex Rønne Petersen
Only supported in CBE.
2025-10-23std.builtin: add CallingConvention.microblaze_interruptAlex Rønne Petersen
Only supported in CBE.
2025-10-23std.builtin: add CallingConvention.msp430_interruptAlex Rønne Petersen
Supported by LLVM and CBE.
2025-10-23std.builtin: add CallingConvention.x86_64_x32Alex Rønne Petersen
This was forgotten during the refactoring of std.builtin.CallingConvention. It mirrors mips64_n32 for MIPS.
2025-10-23std.Target: add stackGrowth() functionAlex Rønne Petersen
2025-10-23std.Target: add tags and info for alpha, hppa, microblaze, shAlex Rønne Petersen
2025-10-23std.Target: xtensa defaults to windowed ABIAlex Rønne Petersen
2025-10-23std.Target: add arceb and xtensaeb Cpu.Arch tagsAlex Rønne Petersen
2025-10-23std.Target: fix cMaxIntAlignment() for a few architecturesAlex Rønne Petersen
2025-10-23std.Target: fix cTypePreferredAlignment() for arcAlex Rønne Petersen
2025-10-23std.Target: remove bogus hosted avr/msp430 prongs in cTypeBitSize()Alex Rønne Petersen
These are microcontroller architectures; none of the OSs in the outer switch run on them.
2025-10-23std.Target.DynamicLinker: recognize standard hexagon-linux-musl pathAlex Rønne Petersen
2025-10-23std.Target: fix cCallingConvention() to pick mips64_n32 for muslabin32Alex Rønne Petersen
2025-10-23std.Target: bump min-max versions for OpenBSD from 7.6-7.7 to 7.7-7.8Alex Rønne Petersen
https://cdn.openbsd.org/pub/OpenBSD/7.8/ANNOUNCEMENT
2025-10-22std.Target: handle some more cases in toCoffMachine()Alex Rønne Petersen
2025-10-22std.Target: better Abi.default() behavior for arc and xtensaAlex Rønne Petersen
2025-10-22std.Target: update lists of omitted LLVM tagsAlex Rønne Petersen
2025-10-19compiler: add support for arc_interrupt calling conventionAlex Rønne Petersen
Only for use with the C backend at the moment.
2025-10-18std.Target: move Cpu.supportsAddressSpace() up to hereAlex Rønne Petersen
This allows us to rule out support for certain address spaces based on the OS. This commit is just a refactor, however, and doesn't actually make use of that opportunity yet.
2025-10-06drop support for powerpc64 ELF v1Alex Rønne Petersen
* ELF v1 on powerpc64 is only barely kept on life support in a couple of Linux distros. I don't anticipate that this will last much longer. * Most of the Linux world has moved to powerpc64le which requires ELF v2. * Some Linux distros have even started supporting powerpc64 with ELF v2. * The BSD world has long since moved to ELF v2. * We have no actual linking support for ELF v1. * ELF v1 had confused DWARF register mappings which is becoming a problem in our DWARF code in std.debug. It's clear that ELF v1 is on its way out, and we never fully supported it anyway. So let's not waste any time or energy on it going forward. closes #5927
2025-10-05std.Target: baseline model for s390x-zos should be arch10, not arch8Alex Rønne Petersen
2025-10-02Coff2: create a new linker from scratchJacob Young
2025-09-20compiler: require comptime vector indexesAndrew Kelley
2025-09-18std.Target: adjustments to LoongArch CPU modelsAlex Rønne Petersen
* Remove the generic model; we already have generic_la32 and generic_la64 and pick appropriately based on bitness. * Remove the loongarch64 model. We used this as our baseline for 64-bit, but it's actually pretty misleading and useless; it doesn't represent any real CPU and has less features than generic_la64. * Add la64v1_0 and la64v1_1 models. * Change our baseline CPU model for 64-bit to be la64v1_0, thus adding LSX to the baseline feature set.
2025-08-30Merge pull request #25077 from ziglang/GenericReaderAndrew Kelley
std.Io: delete GenericReader, AnyReader, FixedBufferStream; and related API breakage
2025-08-30std.Target: fix alignment for int/long types on m68kAlex Rønne Petersen
2025-08-30std.Target: add managarm OS tagAlex Rønne Petersen
2025-08-30std.Target: make ultrasparc3 the baseline for sparc64-solarisAlex Rønne Petersen
https://github.com/llvm/llvm-project/pull/149990
2025-08-30std.Target: bump feature bit count from 288 to 317Alex Rønne Petersen
/lib/std/debug.zig:559:14: error: reached unreachable code if (!ok) unreachable; // assertion failure ^~~~~~~~~~~ /lib/std/Target/riscv.zig:335:21: note: called at comptime here std.debug.assert(len <= CpuFeature.Set.needed_bit_count); ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2025-08-29std.Io: delete GenericReaderAndrew Kelley
and delete deprecated alias std.io
2025-08-26std.Target: add vita osMaciej 'vesim' Kuliński
Co-authored-by: Alex Rønne Petersen <alex@alexrp.com>
2025-08-25start adding big endian RISC-V supportAlex Rønne Petersen
The big endian RISC-V effort is mostly driven by MIPS (the company) which is pivoting to RISC-V, and presumably needs a big endian variant to fill the niche that big endian MIPS (the ISA) did. GCC already supports these targets, but LLVM support will only appear in 22; this commit just adds the necessary target knowledge and checks on our end.
2025-08-22chore(std.Target): explicitly set baseline only to `arm` with 3ds GasInfinity
* `arm` is the only supported tag for 3ds Co-authored-by: Alex Rønne Petersen <alex@alexrp.com>
2025-08-22chore(std.Target): document the 3ds version rangeGasInfinity