[llvm-dev] Orc JIT vs. STL

Praveen Velliengiri via llvm-dev llvm-dev at lists.llvm.org
Tue Aug 27 07:56:29 PDT 2019


HI
Did you run the static constructor and destructor? How did you make your
process symbols visible to ORC jit?
Could you please share us the for what symbols you get undefined references
:-)

On Aug 27, 2019 8:18 PM, "Geoff Levner via llvm-dev" <
llvm-dev at lists.llvm.org> wrote:

> Greetings, LLVM wizards.
>
> We are using Clang and Orc JIT (v1) to compile and execute C++ code on the
> fly. If a C++ module calls functions from external libraries, we add them
> via DynamicLibrary::LoadLibraryPermanently().
>
> The problem we have run into recently is when a module calls a function
> from the STL -- in particular this swap() function for input streams:
>
> #include <fstream>
> std::ifstream stream1, stream2;
> stream1.swap(stream2);
>
> When we run the constructors for the module, we get two undefined symbols.
> And explicitly adding libstdc++ doesn't help. It turns out that the missing
> symbols are defined not in the runtime DSO but in an archive file:
>
> /opt/rh/devtoolset-6/root/usr/lib/gcc/x86_64-redhat-linux/6.
> 3.1/libstdc++.a
>
> So my questions are:
>
> 1. Is there a simple way to get access to all symbols defined in the STL?
> Intuitively, it seems like we should not need to know about such compiler
> magic.
>
> 2. If there is no magical solution, is there a way to explicitly add
> symbols from an archive?
>
> Thanks,
> Geoff
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190827/51fefac3/attachment.html>


More information about the llvm-dev mailing list