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.
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, ...
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.