From fb2c02929e9325d2912d7d0bab1eb501b747c496 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Thu, 23 Oct 2025 03:39:58 +0200 Subject: [PATCH] std.pie: add microblaze support --- lib/std/pie.zig | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/std/pie.zig b/lib/std/pie.zig index 365f9f4982..0fa2781f28 100644 --- a/lib/std/pie.zig +++ b/lib/std/pie.zig @@ -13,6 +13,7 @@ const R_CSKY_RELATIVE = 9; const R_HEXAGON_RELATIVE = 35; const R_LARCH_RELATIVE = 3; const R_68K_RELATIVE = 22; +const R_MICROBLAZE_REL = 16; const R_MIPS_RELATIVE = 128; const R_OR1K_RELATIVE = 21; const R_PPC_RELATIVE = 22; @@ -31,6 +32,7 @@ const R_RELATIVE = switch (builtin.cpu.arch) { .hexagon => R_HEXAGON_RELATIVE, .loongarch32, .loongarch64 => R_LARCH_RELATIVE, .m68k => R_68K_RELATIVE, + .microblaze, .microblazeel => R_MICROBLAZE_REL, .mips, .mipsel, .mips64, .mips64el => R_MIPS_RELATIVE, .or1k => R_OR1K_RELATIVE, .powerpc, .powerpcle, .powerpc64, .powerpc64le => R_PPC_RELATIVE, @@ -129,6 +131,10 @@ inline fn getDynamicSymbol() [*]const elf.Dyn { \\ lea (%[ret], %%pc), %[ret] : [ret] "=r" (-> [*]const elf.Dyn), ), + .microblaze, .microblazeel => asm volatile ( + \\ lwi %[ret], r20, 0 + : [ret] "=r" (-> [*]const elf.Dyn), + ), .mips, .mipsel => asm volatile ( \\ .weak _DYNAMIC \\ .hidden _DYNAMIC