authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-05-31 11:02:24+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-05-31 11:02:24+02:00
log7be3b1de455c9cf247dc3ab8c4fd75c9b16d77cf
tree655a374980b2d3eb27cbed70eeab5688e951e5e9
parent8a95ac777bcb2b14f94b3e279be6ae31f286ccb2
parent259e11f60a9808325f0f2696ca76aee7506bc37a

Merge pull request '`zig.h`: support more targets' (#35553) from alexrp/zig:more-zig.h-targets into master

Reviewed-on: https://codeberg.org/ziglang/zig/pulls/35553

3 files changed, 42 insertions(+), 12 deletions(-)

lib/std/debug/cpu_context.zig+2-2
...@@ -350,7 +350,7 @@ const Alpha = extern struct {...@@ -350,7 +350,7 @@ const Alpha = extern struct {
350 \\1:350 \\1:
351 \\ stq $1, 0x100($0)351 \\ stq $1, 0x100($0)
352 :352 :
353 : [ctx] "{r0}" (&ctx),353 : [ctx] "{$0}" (&ctx),
354 : .{ .r1 = true, .memory = true });354 : .{ .r1 = true, .memory = true });
355 return ctx;355 return ctx;
356 }356 }
...@@ -362,7 +362,7 @@ const Alpha = extern struct {...@@ -362,7 +362,7 @@ const Alpha = extern struct {
362 return ctx.pc;362 return ctx.pc;
363 }363 }
364364
365 pub fn dwarfRegisterBytes(ctx: *Aarch64, register_num: u16) DwarfRegisterError![]u8 {365 pub fn dwarfRegisterBytes(ctx: *Alpha, register_num: u16) DwarfRegisterError![]u8 {
366 switch (register_num) {366 switch (register_num) {
367 0...31 => return @ptrCast(&ctx.r[register_num]),367 0...31 => return @ptrCast(&ctx.r[register_num]),
368 64 => return @ptrCast(&ctx.pc),368 64 => return @ptrCast(&ctx.pc),
lib/zig.h+38-10
...@@ -11,8 +11,6 @@...@@ -11,8 +11,6 @@
11#elif defined(__GNUC__)11#elif defined(__GNUC__)
12#define zig_gcc12#define zig_gcc
13#define zig_gnuc13#define zig_gnuc
14#elif defined(__IBMC__)
15#define zig_xlc
16#elif defined(__TINYC__)14#elif defined(__TINYC__)
17#define zig_tinyc15#define zig_tinyc
18#elif defined(__slimcc__)16#elif defined(__slimcc__)
...@@ -28,8 +26,18 @@...@@ -28,8 +26,18 @@
28#define zig_arm26#define zig_arm
29#elif defined(__arm__)27#elif defined(__arm__)
30#define zig_arm28#define zig_arm
29#elif defined(__arc__)
30#define zig_arc
31#elif defined(__csky__)
32#define zig_csky
31#elif defined(__hexagon__)33#elif defined(__hexagon__)
32#define zig_hexagon34#define zig_hexagon
35#elif defined(__hppa__) && defined(_LP64)
36#define zig_hppa64
37#define zig_hppa
38#elif defined(__hppa__)
39#define zig_hppa32
40#define zig_hppa
33#elif defined(__kvx__)41#elif defined(__kvx__)
34#define zig_kvx42#define zig_kvx
35#elif defined(__loongarch32)43#elif defined(__loongarch32)
...@@ -42,6 +50,8 @@...@@ -42,6 +50,8 @@
42#define zig_m68k50#define zig_m68k
43#elif defined(__m88k__)51#elif defined(__m88k__)
44#define zig_m88k52#define zig_m88k
53#elif defined(__microblaze__)
54#define zig_microblaze
45#elif defined(__mips64)55#elif defined(__mips64)
46#define zig_mips6456#define zig_mips64
47#define zig_mips57#define zig_mips
...@@ -64,6 +74,8 @@...@@ -64,6 +74,8 @@
64#define zig_riscv74#define zig_riscv
65#elif defined(__s390x__)75#elif defined(__s390x__)
66#define zig_s390x76#define zig_s390x
77#elif defined(__sh__)
78#define zig_sh
67#elif defined(__sparc__) && defined(__arch64__)79#elif defined(__sparc__) && defined(__arch64__)
68#define zig_sparc6480#define zig_sparc64
69#define zig_sparc81#define zig_sparc
...@@ -100,32 +112,30 @@...@@ -100,32 +112,30 @@
100#define zig_big_endian 1112#define zig_big_endian 1
101#endif113#endif
102114
103#if defined(__MACH__)115#if defined(__APPLE__)
104#define zig_darwin116#define zig_darwin
105#elif defined(__DragonFly__)117#elif defined(__DragonFly__)
106#define zig_dragonfly118#define zig_dragonfly
107#define zig_bsd
108#elif defined(__EMSCRIPTEN__)119#elif defined(__EMSCRIPTEN__)
109#define zig_emscripten120#define zig_emscripten
110#elif defined(__FreeBSD__)121#elif defined(__FreeBSD__)
111#define zig_freebsd122#define zig_freebsd
112#define zig_bsd
113#elif defined(__Fuchsia__)123#elif defined(__Fuchsia__)
114#define zig_fuchsia124#define zig_fuchsia
115#elif defined(__HAIKU__)125#elif defined(__HAIKU__)
116#define zig_haiku126#define zig_haiku
117#elif defined(__gnu_hurd__)127#elif defined(__gnu_hurd__)
118#define zig_hurd128#define zig_hurd
129#elif defined(__illumos__)
130#define zig_illumos
119#elif defined(__linux__)131#elif defined(__linux__)
120#define zig_linux132#define zig_linux
121#elif defined(__NetBSD__)133#elif defined(__NetBSD__)
122#define zig_netbsd134#define zig_netbsd
123#define zig_bsd
124#elif defined(__OpenBSD__)135#elif defined(__OpenBSD__)
125#define zig_openbsd136#define zig_openbsd
126#define zig_bsd137#elif defined(__serenity__)
127#elif defined(__SVR4)138#define zig_serenity
128#define zig_solaris
129#elif defined(__wasi__)139#elif defined(__wasi__)
130#define zig_wasi140#define zig_wasi
131#elif defined(_WIN32)141#elif defined(_WIN32)
...@@ -404,14 +414,22 @@...@@ -404,14 +414,22 @@
404#define zig_trap() __asm__ volatile("udf #0xfe")414#define zig_trap() __asm__ volatile("udf #0xfe")
405#elif defined(zig_arm) || defined(zig_aarch64)415#elif defined(zig_arm) || defined(zig_aarch64)
406#define zig_trap() __asm__ volatile("udf #0xfdee")416#define zig_trap() __asm__ volatile("udf #0xfdee")
417#elif defined(zig_arc)
418#define zig_trap() __asm__ volatile("unimp_s")
419#elif defined(zig_csky)
420#define zig_trap() __asm__ volatile(".word 0x3fff")
407#elif defined(zig_hexagon)421#elif defined(zig_hexagon)
408#define zig_trap() __asm__ volatile("r27:26 = memd(#0xbadc0fee)")422#define zig_trap() __asm__ volatile("r27:26 = memd(#0xbadc0fee)")
423#elif defined(zig_hppa)
424#define zig_trap() __asm__ volatile("iitlbp %r0, (%sr0, %r0)")
409#elif defined(zig_kvx) || defined(zig_loongarch) || defined(zig_powerpc)425#elif defined(zig_kvx) || defined(zig_loongarch) || defined(zig_powerpc)
410#define zig_trap() __asm__ volatile(".word 0x0")426#define zig_trap() __asm__ volatile(".word 0x0")
411#elif defined(zig_m68k)427#elif defined(zig_m68k)
412#define zig_trap() __asm__ volatile("illegal")428#define zig_trap() __asm__ volatile("illegal")
413#elif defined(zig_m88k)429#elif defined(zig_m88k)
414#define zig_trap() __asm__ volatile("tb0 0, %%r0, 511")430#define zig_trap() __asm__ volatile("tb0 0, %%r0, 511")
431#elif defined(zig_microblaze)
432#define zig_trap() __asm__ volatile("getd r0, r0")
415#elif defined(zig_mips)433#elif defined(zig_mips)
416#define zig_trap() __asm__ volatile(".word 0x3d")434#define zig_trap() __asm__ volatile(".word 0x3d")
417#elif defined(zig_or1k)435#elif defined(zig_or1k)
...@@ -420,6 +438,8 @@...@@ -420,6 +438,8 @@
420#define zig_trap() __asm__ volatile("unimp")438#define zig_trap() __asm__ volatile("unimp")
421#elif defined(zig_s390x)439#elif defined(zig_s390x)
422#define zig_trap() __asm__ volatile("j 0x2")440#define zig_trap() __asm__ volatile("j 0x2")
441#elif defined(zig_sh)
442#define zig_trap() __asm__ volatile(".word 0x0001")
423#elif defined(zig_sparc)443#elif defined(zig_sparc)
424#define zig_trap() __asm__ volatile("illtrap")444#define zig_trap() __asm__ volatile("illtrap")
425#elif defined(zig_x86_16)445#elif defined(zig_x86_16)
...@@ -446,16 +466,22 @@...@@ -446,16 +466,22 @@
446466
447#if defined(zig_alpha)467#if defined(zig_alpha)
448#define zig_breakpoint() __asm__ volatile("call_pal 0x000080")468#define zig_breakpoint() __asm__ volatile("call_pal 0x000080")
449#elif defined(zig_arm)469#elif defined(zig_arm) || defined(zig_csky)
450#define zig_breakpoint() __asm__ volatile("bkpt #0x0")470#define zig_breakpoint() __asm__ volatile("bkpt #0x0")
451#elif defined(zig_aarch64)471#elif defined(zig_aarch64)
452#define zig_breakpoint() __asm__ volatile("brk #0xf000")472#define zig_breakpoint() __asm__ volatile("brk #0xf000")
473#elif defined(zig_arc)
474#define zig_breakpoint() __asm__ volatile("brk_s")
453#elif defined(zig_hexagon)475#elif defined(zig_hexagon)
454#define zig_breakpoint() __asm__ volatile("brkpt")476#define zig_breakpoint() __asm__ volatile("brkpt")
477#elif defined(zig_hppa)
478#define zig_breakpoint() __asm__ volatile("break 0x04, 0x0008")
455#elif defined(zig_kvx) || defined(zig_loongarch)479#elif defined(zig_kvx) || defined(zig_loongarch)
456#define zig_breakpoint() __asm__ volatile("break 0x0")480#define zig_breakpoint() __asm__ volatile("break 0x0")
457#elif defined(zig_m88k)481#elif defined(zig_m88k)
458#define zig_breakpoint() __asm__ volatile("illop1")482#define zig_breakpoint() __asm__ volatile("illop1")
483#elif defined(zig_microblaze)
484#define zig_breakpoint() __asm__ volatile("brki r16, 0x0018")
459#elif defined(zig_mips)485#elif defined(zig_mips)
460#define zig_breakpoint() __asm__ volatile("break")486#define zig_breakpoint() __asm__ volatile("break")
461#elif defined(zig_or1k)487#elif defined(zig_or1k)
...@@ -466,6 +492,8 @@...@@ -466,6 +492,8 @@
466#define zig_breakpoint() __asm__ volatile("ebreak")492#define zig_breakpoint() __asm__ volatile("ebreak")
467#elif defined(zig_s390x)493#elif defined(zig_s390x)
468#define zig_breakpoint() __asm__ volatile("j 0x6")494#define zig_breakpoint() __asm__ volatile("j 0x6")
495#elif defined(zig_sh)
496#define zig_breakpoint() __asm__ volatile("trapa #0xc3")
469#elif defined(zig_sparc)497#elif defined(zig_sparc)
470#define zig_breakpoint() __asm__ volatile("ta 0x1")498#define zig_breakpoint() __asm__ volatile("ta 0x1")
471#elif defined(zig_x86)499#elif defined(zig_x86)
src/Compilation.zig+2
...@@ -6342,6 +6342,8 @@ fn addCommonCCArgs(...@@ -6342,6 +6342,8 @@ fn addCommonCCArgs(
6342 // LLVM doesn't distinguish between Solaris and illumos, but the illumos GCC fork6342 // LLVM doesn't distinguish between Solaris and illumos, but the illumos GCC fork
6343 // defines this macro.6343 // defines this macro.
6344 .illumos => try argv.append("__illumos__"),6344 .illumos => try argv.append("__illumos__"),
6345 // This macro has not yet been upstreamed by SerenityOS to Clang.
6346 .serenity => try argv.append("__serenity__"),
6345 // Homebrew targets without LLVM support; use communities's preferred macros.6347 // Homebrew targets without LLVM support; use communities's preferred macros.
6346 .@"3ds" => try argv.append("-D__3DS__"),6348 .@"3ds" => try argv.append("-D__3DS__"),
6347 .psp => try argv.append("-D__PSP__"),6349 .psp => try argv.append("-D__PSP__"),