Intended usage of _GLIBCXX_HAVE_TLS / emutls symbols on OSX
Iain Sandoe
iain@sandoe.co.uk
Thu Jan 9 21:30:00 GMT 2020
Hello Dave,
For GCC on OSX, at present, TLS is only supported via emuTLS.
Dave Gittins <dave.gittins@gmail.com> wrote:
> Update: I believe this is resolved by adding -lgcc_s.1 to the build
> command. (gcc does this automatically)
This is correct - the support for emulated TLS is in the shared libgcc.
> So in case anyone else runs into this, here is my working build
> command to build with clang on OSX against the gcc 7.5 std lib:
>
> usr/local/Cellar/llvm@7/7.1.0_1/bin/clang++ -isystem
> /usr/local/Cellar/gcc@7/7.5.0/include/c++/7.5.0 -isystem
> /usr/local/Cellar/gcc@7/7.5.0/include/c++/7.5.0/x86_64-apple-darwin18.7.0
> -isystem /usr/local/Cellar/gcc@7/7.5.0/include/c++/7.5.0/backward -L
> /usr/local/Cellar/gcc@7/7.5.0/lib/gcc/7 -nostdinc++ -stdlib=libstdc++
> -std=c++17 -femulated-tls -lgcc_s.1 example.cpp -o example
> I would still like to know whether the change to _GLIBCXX_HAVE_TLS was
> intentional, though.
GCC on OSX has had emulated TLS since it was introduced (sometime in 4.x
IIRC) so I suppose one might argue that recognising the support is a fixed
bug.
However, at this moment, I donât recall any specific change that was
targetted
at this, so will do some review locally.
will reply here if thereâs anything useful to add after that review,
cheers
Iain
More information about the Gcc-help
mailing list