This is an archive of the discontinued LLVM Phabricator instance.

Make name resolution in ORC skip extra symbols
AbandonedPublic

Authored by save-buffer on Aug 1 2019, 10:26 AM.

Details

Summary

Currently, assertion fails if an object file's symbol table has more symbols than is requested by the materialization unit. This is incorrect because some formats add extra symbols. For example, when COFF object file is generated, some symbols get inserted (for example, if a float is added, it adds a symbol __real@<HEX OF FLOAT>. This caused issues down the line because more symbols were being resolved than asked for in the query. This change makes symbol resolution skip these extra symbols.

Diff Detail

Event Timeline

save-buffer created this revision.Aug 1 2019, 10:26 AM
save-buffer abandoned this revision.Aug 2 2019, 12:00 PM

Hi Sasha,

I’ve added the code to enable symbol-flags overrides for LLJIT in r367712. If you’re using LLJIT please let me know whether it fixes your issue. If not I’m happy to dig in further, but I’m afraid I don’t have access to a Windows machine to test this myself.

Cheers,
Lang.

Hi!
I was using a custom JIT, but it did fix the problem for me. Thanks so much for your help!