[llvm-dev] LLJIT vs. thread-local storage (again)

Geoff Levner via llvm-dev llvm-dev at lists.llvm.org
Mon Sep 28 07:35:15 PDT 2020


Hi JITters,

I have some JIT-compiled C++ code that uses symbols from a DSO which
uses C++14's thread support library. When I compile it I get the
following error message:

Symbols not found: [ __emutls_v._ZSt15__once_callable,
__emutls_v._ZSt11__once_call ]

Those seem to correspond to std::__once_callable and std::__once_call,
which are indeed present in the C++ standard library. And I imagine
they are needed because the DSO makes calls to std::call_once(). But
ORC seems to be looking for them with the prefix "__emutls_v".

I had a similar problem in the past, which I thought Lang had fixed...
See this thread:

http://lists.llvm.org/pipermail/llvm-dev/2020-January/138402.html

Perhaps it wasn't as fixed as I thought? Or maybe there is something I
need to do for JIT to fully support thread-local storage?

Geoff


More information about the llvm-dev mailing list