ORC JIT Weekly #18 -- TargetProcessControl updates for library loading / searching.

Hi All,

This was a quiet week – the only significant ORC change was to the new TargetProcessControl API [1], which acquired the ability to load libraries and search for symbols in the target process in [2]. A new TargetProcessControl based definition generator is included to take advantage of this, and the LLJITWithTargetProcessControl example has been updated to include it.

Regards,
Lang.

[1] http://lists.llvm.org/pipermail/llvm-dev/2020-July/143532.html
[2] https://github.com/llvm/llvm-project/commit/13ad00be98e10bb08aeb6eacf8f3aebff653578c

Hi Lang

Thanks for the update! Is there a conceptual difference between the old:
DynamicLibrarySearchGenerator::GetForCurrentProcess(<SystemManglingPrefix>)

and the newly added TCP-based one (when applied to the own process):
TPCDynamicLibrarySearchGenerator::GetForTargetProcess(SelfTargetProcessControl::Create())

Or can we just assume it the preferred, more generalized approach for
constructing definition generators from now on?

Near term ORC work will focus on expanding TargetProcessControl, improving
JITLink's ELF support, ...

Sounds great!

Cheers
Stefan

Hi Stefan,

Thanks for the update! Is there a conceptual difference between the old:
DynamicLibrarySearchGenerator::GetForCurrentProcess()

and the newly added TCP-based one (when applied to the own process):
TPCDynamicLibrarySearchGenerator::GetForTargetProcess(SelfTargetProcessControl::Create())

There is no conceptual difference. The TargetProcessControl method needs some road-testing, but should eventually be the preferred method.

DynamicLibrarySearchGenerator will remain available for quite a while for the sake of clients who can’t use TargetProcessControl, e.g. people using RuntimeDyld with a custom memory manager.

Regards,
Lang.