http://llvm.org/bugs/show_bug.cgi?id=22457
Bug ID: 22457
Summary: Interpreter ignores LazyFunctionCreator and always
perform symbol search
Product: libraries
Version: trunk
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P
Component: Interpreter
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Classification: Unclassified
The interpreter ignores the following:
theInterpreterEngine->DisableSymbolSearching();
theInterpreterEngine->InstallLazyFunctionCreator(LazyFunctionCreator);
It will always perform symbol-based search for external functions.
The issue probably is in ExternalFunctions.cpp
#ifdef USE_LIBFFI
std::map<const Function *, RawFunc>::iterator RF = RawFunctions->find(F);
RawFunc RawFn;
if (RF == RawFunctions->end()) {
RawFn = (RawFunc)(intptr_t)
sys::DynamicLibrary::SearchForAddressOfSymbol(F->getName());
if (!RawFn)
RawFn = (RawFunc)(intptr_t)getPointerToGlobalIfAvailable(F);
if (RawFn != 0)
RawFunctions->insert(std::make_pair(F, RawFn)); // Cache for later
} else {
RawFn = RF->second;
}
As a result, interpreter cannot call functions with names not supported by the
dynamic linker.
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs