From 537e455b4f33b81c84cad73c668bdfc0edb8f0f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 30 May 2026 21:43:30 +0200 Subject: [PATCH 01/12] zig cc: define __serenity__ macro for SerenityOS --- src/Compilation.zig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Compilation.zig b/src/Compilation.zig index 9b187614a76bfc115f244004fb055f9d38eb321a..2b2e4ac022a8f705103619b3879609eb3fb84412 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -6342,6 +6342,8 @@ fn addCommonCCArgs( // LLVM doesn't distinguish between Solaris and illumos, but the illumos GCC fork // defines this macro. .illumos => try argv.append("__illumos__"), + // This macro has not yet been upstreamed by SerenityOS to Clang. + .serenity => try argv.append("__serenity__"), // Homebrew targets without LLVM support; use communities's preferred macros. .@"3ds" => try argv.append("-D__3DS__"), .psp => try argv.append("-D__PSP__"), -- 2.54.0 From 9cc9779ba080a3201598745d37b16880368986a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 30 May 2026 23:20:57 +0200 Subject: [PATCH 02/12] std.debug.cpu_context: fix compile errors on alpha --- lib/std/debug/cpu_context.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/std/debug/cpu_context.zig b/lib/std/debug/cpu_context.zig index a1b530a9b19f2233e5f5efa9e3b2f408c52f703c..6f6a07a86ffc0a867da5534b440966e6f12451bc 100644 --- a/lib/std/debug/cpu_context.zig +++ b/lib/std/debug/cpu_context.zig @@ -350,7 +350,7 @@ const Alpha = extern struct { \\1: \\ stq $1, 0x100($0) : - : [ctx] "{r0}" (&ctx), + : [ctx] "{$0}" (&ctx), : .{ .r1 = true, .memory = true }); return ctx; } @@ -362,7 +362,7 @@ const Alpha = extern struct { return ctx.pc; } - pub fn dwarfRegisterBytes(ctx: *Aarch64, register_num: u16) DwarfRegisterError![]u8 { + pub fn dwarfRegisterBytes(ctx: *Alpha, register_num: u16) DwarfRegisterError![]u8 { switch (register_num) { 0...31 => return @ptrCast(&ctx.r[register_num]), 64 => return @ptrCast(&ctx.pc), -- 2.54.0 From d1fd3f04385953ab971d1f1b86ce504928a188dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 30 May 2026 21:36:23 +0200 Subject: [PATCH 03/12] zig.h: zig_solaris -> zig_illumos --- lib/zig.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index f2faed0b376201db96a464f6c1394f2fc26f8aa8..ad9b51e96be8b0be39891e5fd16bd837449a0324 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -124,8 +124,8 @@ #elif defined(__OpenBSD__) #define zig_openbsd #define zig_bsd -#elif defined(__SVR4) -#define zig_solaris +#elif defined(__illumos__) +#define zig_illumos #elif defined(__wasi__) #define zig_wasi #elif defined(_WIN32) -- 2.54.0 From 3e9eab0867624be87976914cf04827505ab66273 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 30 May 2026 21:36:54 +0200 Subject: [PATCH 04/12] zig.h: remove zig_bsd macro This never really served a purpose. --- lib/zig.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index ad9b51e96be8b0be39891e5fd16bd837449a0324..58f9d1e24684f8094eddc2bad7f04b8fceabef0a 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -104,12 +104,10 @@ #define zig_darwin #elif defined(__DragonFly__) #define zig_dragonfly -#define zig_bsd #elif defined(__EMSCRIPTEN__) #define zig_emscripten #elif defined(__FreeBSD__) #define zig_freebsd -#define zig_bsd #elif defined(__Fuchsia__) #define zig_fuchsia #elif defined(__HAIKU__) @@ -120,10 +118,8 @@ #define zig_linux #elif defined(__NetBSD__) #define zig_netbsd -#define zig_bsd #elif defined(__OpenBSD__) #define zig_openbsd -#define zig_bsd #elif defined(__illumos__) #define zig_illumos #elif defined(__wasi__) -- 2.54.0 From d8976dceb690a8d74fdc5752e16c50742cc36167 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 30 May 2026 21:38:26 +0200 Subject: [PATCH 05/12] zig.h: detect darwin using __APPLE__ instead of __MACH__ The latter applies to Hurd too. --- lib/zig.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/zig.h b/lib/zig.h index 58f9d1e24684f8094eddc2bad7f04b8fceabef0a..ab6c30a147dc6e5e77fade618390ce420f0dcfd7 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -100,7 +100,7 @@ #define zig_big_endian 1 #endif -#if defined(__MACH__) +#if defined(__APPLE__) #define zig_darwin #elif defined(__DragonFly__) #define zig_dragonfly -- 2.54.0 From 4f74f19449e7495ce4aa3b5cbdb49c725f83e26a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 30 May 2026 21:41:08 +0200 Subject: [PATCH 06/12] zig.h: add zig_serenity macro --- lib/zig.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index ab6c30a147dc6e5e77fade618390ce420f0dcfd7..ed615e9e7210bd9fc249011f1820ed1f822ca048 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -114,14 +114,16 @@ #define zig_haiku #elif defined(__gnu_hurd__) #define zig_hurd +#elif defined(__illumos__) +#define zig_illumos #elif defined(__linux__) #define zig_linux #elif defined(__NetBSD__) #define zig_netbsd #elif defined(__OpenBSD__) #define zig_openbsd -#elif defined(__illumos__) -#define zig_illumos +#elif defined(__serenity__) +#define zig_serenity #elif defined(__wasi__) #define zig_wasi #elif defined(_WIN32) -- 2.54.0 From e807dbbdba146fb601db1c07ce6215b3ef8b3cc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 30 May 2026 21:42:31 +0200 Subject: [PATCH 07/12] zig.h: remove IBM XL C/C++ detection This should have been removed along with all traces of AIX support. --- lib/zig.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index ed615e9e7210bd9fc249011f1820ed1f822ca048..8f68ba916b0218c18b77247473f36b4878aa1da2 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -11,8 +11,6 @@ #elif defined(__GNUC__) #define zig_gcc #define zig_gnuc -#elif defined(__IBMC__) -#define zig_xlc #elif defined(__TINYC__) #define zig_tinyc #elif defined(__slimcc__) -- 2.54.0 From 40720f20343799ea2e16bd2660bdb4b480f0f380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 30 May 2026 23:48:20 +0200 Subject: [PATCH 08/12] zig.h: add arc support --- lib/zig.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/zig.h b/lib/zig.h index 8f68ba916b0218c18b77247473f36b4878aa1da2..0881aa4b011452f5f440f688019bad6fb3e5d3f2 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -26,6 +26,8 @@ #define zig_arm #elif defined(__arm__) #define zig_arm +#elif defined(__arc__) +#define zig_arc #elif defined(__hexagon__) #define zig_hexagon #elif defined(__kvx__) @@ -400,6 +402,8 @@ #define zig_trap() __asm__ volatile("udf #0xfe") #elif defined(zig_arm) || defined(zig_aarch64) #define zig_trap() __asm__ volatile("udf #0xfdee") +#elif defined(zig_arc) +#define zig_trap() __asm__ volatile("unimp_s") #elif defined(zig_hexagon) #define zig_trap() __asm__ volatile("r27:26 = memd(#0xbadc0fee)") #elif defined(zig_kvx) || defined(zig_loongarch) || defined(zig_powerpc) @@ -446,6 +450,8 @@ #define zig_breakpoint() __asm__ volatile("bkpt #0x0") #elif defined(zig_aarch64) #define zig_breakpoint() __asm__ volatile("brk #0xf000") +#elif defined(zig_arc) +#define zig_breakpoint() __asm__ volatile("brk_s") #elif defined(zig_hexagon) #define zig_breakpoint() __asm__ volatile("brkpt") #elif defined(zig_kvx) || defined(zig_loongarch) -- 2.54.0 From fb8779898835809d31f0ab7ca5a487ee0b346dc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sun, 31 May 2026 05:59:32 +0200 Subject: [PATCH 09/12] zig.h: add hppa/hppa64 support --- lib/zig.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/zig.h b/lib/zig.h index 0881aa4b011452f5f440f688019bad6fb3e5d3f2..678788235ea53db4abeac957681b166a0533606b 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -30,6 +30,12 @@ #define zig_arc #elif defined(__hexagon__) #define zig_hexagon +#elif defined(__hppa__) && defined(_LP64) +#define zig_hppa64 +#define zig_hppa +#elif defined(__hppa__) +#define zig_hppa32 +#define zig_hppa #elif defined(__kvx__) #define zig_kvx #elif defined(__loongarch32) @@ -406,6 +412,8 @@ #define zig_trap() __asm__ volatile("unimp_s") #elif defined(zig_hexagon) #define zig_trap() __asm__ volatile("r27:26 = memd(#0xbadc0fee)") +#elif defined(zig_hppa) +#define zig_trap() __asm__ volatile("iitlbp %r0, (%sr0, %r0)") #elif defined(zig_kvx) || defined(zig_loongarch) || defined(zig_powerpc) #define zig_trap() __asm__ volatile(".word 0x0") #elif defined(zig_m68k) @@ -454,6 +462,8 @@ #define zig_breakpoint() __asm__ volatile("brk_s") #elif defined(zig_hexagon) #define zig_breakpoint() __asm__ volatile("brkpt") +#elif defined(zig_hppa) +#define zig_breakpoint() __asm__ volatile("break 0x04, 0x0008") #elif defined(zig_kvx) || defined(zig_loongarch) #define zig_breakpoint() __asm__ volatile("break 0x0") #elif defined(zig_m88k) -- 2.54.0 From 62d92a0ca8d11edeed0bf1dd59d56ae296be0cb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sun, 31 May 2026 05:59:49 +0200 Subject: [PATCH 10/12] zig.h: add microblaze support --- lib/zig.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/zig.h b/lib/zig.h index 678788235ea53db4abeac957681b166a0533606b..37eb8d61e3d47ce41f853e3221e9fcf5c5a90696 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -48,6 +48,8 @@ #define zig_m68k #elif defined(__m88k__) #define zig_m88k +#elif defined(__microblaze__) +#define zig_microblaze #elif defined(__mips64) #define zig_mips64 #define zig_mips @@ -420,6 +422,8 @@ #define zig_trap() __asm__ volatile("illegal") #elif defined(zig_m88k) #define zig_trap() __asm__ volatile("tb0 0, %%r0, 511") +#elif defined(zig_microblaze) +#define zig_trap() __asm__ volatile("getd r0, r0") #elif defined(zig_mips) #define zig_trap() __asm__ volatile(".word 0x3d") #elif defined(zig_or1k) @@ -468,6 +472,8 @@ #define zig_breakpoint() __asm__ volatile("break 0x0") #elif defined(zig_m88k) #define zig_breakpoint() __asm__ volatile("illop1") +#elif defined(zig_microblaze) +#define zig_breakpoint() __asm__ volatile("brki r16, 0x0018") #elif defined(zig_mips) #define zig_breakpoint() __asm__ volatile("break") #elif defined(zig_or1k) -- 2.54.0 From 231163169c673046ea72d18fb79bf20d587f2da6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sun, 31 May 2026 06:00:02 +0200 Subject: [PATCH 11/12] zig.h: add sh support --- lib/zig.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/zig.h b/lib/zig.h index 37eb8d61e3d47ce41f853e3221e9fcf5c5a90696..d0837c867dea28d48bff4c95dc2043ec8856ed4f 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -72,6 +72,8 @@ #define zig_riscv #elif defined(__s390x__) #define zig_s390x +#elif defined(__sh__) +#define zig_sh #elif defined(__sparc__) && defined(__arch64__) #define zig_sparc64 #define zig_sparc @@ -432,6 +434,8 @@ #define zig_trap() __asm__ volatile("unimp") #elif defined(zig_s390x) #define zig_trap() __asm__ volatile("j 0x2") +#elif defined(zig_sh) +#define zig_trap() __asm__ volatile(".word 0x0001") #elif defined(zig_sparc) #define zig_trap() __asm__ volatile("illtrap") #elif defined(zig_x86_16) @@ -484,6 +488,8 @@ #define zig_breakpoint() __asm__ volatile("ebreak") #elif defined(zig_s390x) #define zig_breakpoint() __asm__ volatile("j 0x6") +#elif defined(zig_sh) +#define zig_breakpoint() __asm__ volatile("trapa #0xc3") #elif defined(zig_sparc) #define zig_breakpoint() __asm__ volatile("ta 0x1") #elif defined(zig_x86) -- 2.54.0 From 259e11f60a9808325f0f2696ca76aee7506bc37a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sun, 31 May 2026 06:15:50 +0200 Subject: [PATCH 12/12] zig.h: add csky support --- lib/zig.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/zig.h b/lib/zig.h index d0837c867dea28d48bff4c95dc2043ec8856ed4f..4f8b2da1d7de0ddcbd6d7df8c1b85d563349d7c1 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -28,6 +28,8 @@ #define zig_arm #elif defined(__arc__) #define zig_arc +#elif defined(__csky__) +#define zig_csky #elif defined(__hexagon__) #define zig_hexagon #elif defined(__hppa__) && defined(_LP64) @@ -414,6 +416,8 @@ #define zig_trap() __asm__ volatile("udf #0xfdee") #elif defined(zig_arc) #define zig_trap() __asm__ volatile("unimp_s") +#elif defined(zig_csky) +#define zig_trap() __asm__ volatile(".word 0x3fff") #elif defined(zig_hexagon) #define zig_trap() __asm__ volatile("r27:26 = memd(#0xbadc0fee)") #elif defined(zig_hppa) @@ -462,7 +466,7 @@ #if defined(zig_alpha) #define zig_breakpoint() __asm__ volatile("call_pal 0x000080") -#elif defined(zig_arm) +#elif defined(zig_arm) || defined(zig_csky) #define zig_breakpoint() __asm__ volatile("bkpt #0x0") #elif defined(zig_aarch64) #define zig_breakpoint() __asm__ volatile("brk #0xf000") -- 2.54.0