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

Reply via email to