diff --git a/toolchain/patches/binutils-2.43.1-montauk.patch b/toolchain/patches/binutils-2.43.1-montauk.patch index 31bf02d..99a00b8 100644 --- a/toolchain/patches/binutils-2.43.1-montauk.patch +++ b/toolchain/patches/binutils-2.43.1-montauk.patch @@ -45,3 +45,21 @@ x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia* | x86_64-*-genode*) targ_emul=elf_x86_64 targ_extra_emuls="elf_i386 elf_iamcu elf32_x86_64" +--- a/bfd/sysdep.h ++++ b/bfd/sysdep.h +@@ -27,6 +27,15 @@ + #endif + + #include "config.h" ++ ++/* MontaukOS provides no runtime TLS yet (no FS-base setup, no PT_TLS ++ handling in the ELF loader), so a _Thread_local access traps at ++ %fs:0. Degrade BFD's thread-local error state to plain globals; ++ the native tools are single-threaded. */ ++#ifdef __montauk__ ++#undef TLS ++#define TLS ++#endif + #include + + #ifdef HAVE_SYS_TYPES_H