Hello. Michael Matz wrote in <alpine.lsu.2.21.1909041429160.11...@wotan.suse.de>: |On Tue, 3 Sep 2019, Charles Lohr wrote: | |> I've been trying to find a way out of this for a bit now. I'd like to |> carry over some optimizations to a TCC host compile, but, I'm stuck with |> using pthread_key_create and friends. This is a bit of an annoying |> solution and not optimal... And potentially even rougher on Windows. |> |> It looks like all the defines for the sections are in tccelf.h. Is |> there any hidden handshake sort of way to mark data for a thread local |> section. .tbss? I've tried __attribute__((section(".tbss"))) to no |> avail; it just sticks them into .bss. Any ideas? | |The attribute works and puts the variable into the respective section just |fine. The problem is rather that thread local storage has to be manage |quite differently and TCC is not doing that. | |For instance, the .tbss section needs to be put into a different ELF |segment of TLS type, the section type itself needs to be TLS as well, and |then the code sequences to actually access the variables are completely |different. | |So, yes, merely putting the variables into .tbss sections doesn't work, |and as of right now TCC doesn't support thread local storage. I started |working on this a couple months ago, but got distracted. Maybe one of |these days ... :)
Since i know you are an expert here, may i ask if Ulrich Drepper's "ELF Handling For Thread-Local Storage" version 0.20 still "the document to know" regarding TLS? --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt) _______________________________________________ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel