[llvm-dev] LLJit, Windows, exported symbols and COFFObjectFile
David Blaikie via llvm-dev
llvm-dev at lists.llvm.org
Sat Oct 12 17:32:23 PDT 2019
+Lang in case he's got some thoughts here. I know he's working
predominantly in MachO, so some non-MachO object file issues might linger a
On Sat, Oct 12, 2019 at 8:07 AM Janus Lynggaard Thorborg via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> So after seeing the great tutorial on the new LLJit by Lang Hames, I went
> ahead and converted my llvm jitter. I much prefer this new API, btw.
> It's starting to work well, except on Windows. Any extern "C" exported
> symbol leads to assertions about mismatching symbol flags. Tracing through
> the inconsistency, it seems JITSymbolFlags::fromObjectSymbol returns a
> different result than what the frontend (?) expects.
> Namely, exported symbols in COFFObjectFiles are flagged with SF_Global,
> not SF_Exported. fromObjectSymbol ignores that flag. Previously I had this
> working with varying levels of success by flagging jit symbols as exported
> if SF_Global exists (or alternatively have COFFObjectFile::getSymbolFlags
> flag both SF_Global and SF_Exported).
> But this breaks in other ways....
> Looking at git blame, I can see I'm not the first one to try this hack
> (?), so I wanted to ask whether there are any workarounds or planned work
> to get the LLJit working on Windows?
> I've attached an example llvm module that breaks.
> Additionally, it seems lljit doesn't record constructors properly?
> Attached a diff for a fix.
> Regards, Janus
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev