authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-10-11 10:23:26+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-10-11 10:45:45+02:00
log19e06b06ddc1a434c3b0f31cd4f47e17b4295918
tree9e1f1e42ce0cfb7f801d1bf2a61871f4f0a93dc9
parentdae7c7c466500733ef74c72874e7755cc3f218b1
signature Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

compiler_rt.elf.tls: add __m68k_read_tp() which is used by compilers


1 files changed, 9 insertions(+), 0 deletions(-)

lib/compiler_rt/elf/tls.zig+9
...@@ -33,6 +33,9 @@ comptime {...@@ -33,6 +33,9 @@ comptime {
33 symbol(&__tls_get_offset, "__tls_get_offset");33 symbol(&__tls_get_offset, "__tls_get_offset");
34 } else {34 } else {
35 symbol(&__tls_get_addr, "__tls_get_addr");35 symbol(&__tls_get_addr, "__tls_get_addr");
36 if (native_arch == .m68k) {
37 symbol(&__m68k_read_tp, "__m68k_read_tp");
38 }
36 if (native_arch == .x86) {39 if (native_arch == .x86) {
37 symbol(&___tls_get_addr, "___tls_get_addr");40 symbol(&___tls_get_addr, "___tls_get_addr");
38 }41 }
...@@ -724,6 +727,12 @@ inline fn mmap(length: usize) usize {...@@ -724,6 +727,12 @@ inline fn mmap(length: usize) usize {
724 }727 }
725}728}
726729
730fn __m68k_read_tp() callconv(.c) ?*anyopaque {
731 comptime assert(native_arch == .m68k);
732
733 return @ptrFromInt(getThreadPointer());
734}
735
727const TlsIndex = switch (native_arch) {736const TlsIndex = switch (native_arch) {
728 .x86_64 => extern struct { module: u64, offset: u64 }, // Even for x32...737 .x86_64 => extern struct { module: u64, offset: u64 }, // Even for x32...
729 else => extern struct { module: usize, offset: usize }, // ...but not MIPS N32!738 else => extern struct { module: usize, offset: usize }, // ...but not MIPS N32!