]> granicus.if.org Git - llvm/commitdiff
[Support] Use HAVE_DLOPEN to guard dlopen(3) usage
authorPavel Labath <labath@google.com>
Wed, 30 Nov 2016 15:34:29 +0000 (15:34 +0000)
committerPavel Labath <labath@google.com>
Wed, 30 Nov 2016 15:34:29 +0000 (15:34 +0000)
Summary:
The usage was previously guarded by HAVE_DLFCN. This breaks on Android with
LLVM_BUILD_STATIC as the platform does not provide a static version of libdl.
Using HAVE_DLOPEN fixes it as the code will only get used if we are actually able
to link an executable using dlopen.

Reviewers: rafael, beanz

Subscribers: tberghammer, danalbert, llvm-commits

Differential Revision: https://reviews.llvm.org/D26504

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@288246 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/DynamicLibrary.cpp

index 9a7aeb50a216c48d3f131b52c71c87d87e32ac10..ced21e46afe80efc4abd19ec827a0574a69c1f6b 100644 (file)
@@ -41,7 +41,7 @@ char llvm::sys::DynamicLibrary::Invalid = 0;
 
 #else
 
-#if HAVE_DLFCN_H
+#if defined(HAVE_DLFCN_H) && defined(HAVE_DLOPEN)
 #include <dlfcn.h>
 using namespace llvm;
 using namespace llvm::sys;
@@ -119,7 +119,7 @@ void* DynamicLibrary::SearchForAddressOfSymbol(const char *symbolName) {
       return i->second;
   }
 
-#if HAVE_DLFCN_H
+#if defined(HAVE_DLFCN_H) && defined(HAVE_DLOPEN)
   // Now search the libraries.
   if (OpenedHandles) {
     for (DenseSet<void *>::iterator I = OpenedHandles->begin(),