From 626381706712eb593bcf0c843dd2275d71cf41da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Gr=C3=A9goire?= Date: Sun, 11 Oct 2026 17:50:49 -0400 Subject: [PATCH] Elf2: align TLS section memsz This was crashing on SPARC because it would do unaligned reads on the TLS section. Now align the memsz properly. --- src/link/Elf2.zig | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/link/Elf2.zig b/src/link/Elf2.zig index 479c96d7c824736e29da8d857e1e8159d07ecc06..2012033bd3bf853522cc9ac14865519ab4b9bcb1 100644 --- a/src/link/Elf2.zig +++ b/src/link/Elf2.zig @@ -11906,7 +11906,12 @@ fn flushResized(elf: *Elf, ni: MappedFile.Node.Index) std.mem.Allocator.Error!vo const tls_vaddr = elf.targetLoad(&ph.vaddr); const tls_offset = elf.targetLoad(&ph.offset); - elf.targetStore(&ph.memsz, @intCast(tls_filesz + tbss_size)); + const tls_memsz = std.mem.alignForward( + u64, + tls_filesz + tbss_size, + elf.targetLoad(&ph.@"align"), + ); + elf.targetStore(&ph.memsz, @intCast(tls_memsz)); elf.updateNobitsAddress( elf.shndx.tbss, -- 2.54.0