OSDN Git Service

Fix linux link error when using LLVM reactor backend.
authorBen Clayton <headlessclayton@gmail.com>
Fri, 1 Feb 2019 09:38:45 +0000 (09:38 +0000)
committerChris Forbes <chrisforbes@google.com>
Tue, 5 Feb 2019 11:08:04 +0000 (11:08 +0000)
Seen building on Ubuntu 18.04.1:

```
libllvm.a(DynamicLibrary.cpp.o): In function `llvm::sys::DynamicLibrary::HandleSet::~HandleSet()':
DynamicLibrary.cpp:(.text._ZN4llvm3sys14DynamicLibrary9HandleSetD2Ev+0x1c): undefined reference to `dlclose'
DynamicLibrary.cpp:(.text._ZN4llvm3sys14DynamicLibrary9HandleSetD2Ev+0x2c): undefined reference to `dlclose'
libllvm.a(DynamicLibrary.cpp.o): In function `llvm::sys::DynamicLibrary::HandleSet::DLSym(void*, char const*)':
DynamicLibrary.cpp:(.text._ZN4llvm3sys14DynamicLibrary9HandleSet5DLSymEPvPKc+0x1): undefined reference to `dlsym'
```

Also removes --no-as-needed hack.

Bug: b/123360006
Change-Id: Icef1078e68cbf68af991e52f7fbb6e8d449e0809
Reviewed-on: https://swiftshader-review.googlesource.com/c/24310
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Tested-by: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

CMakeLists.txt

index ee373b0..206e82f 100644 (file)
@@ -156,11 +156,6 @@ macro(set_shared_library_export_map TARGET DIR)
         if(NOT MSAN AND NOT ASAN AND NOT TSAN AND NOT UBSAN)
             set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--no-undefined")
         endif()
-
-        # Older version of GCC have problem linking libdl when --as-needed is set.
-        if (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)
-            set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--no-as-needed")
-        endif()
     endif()
 endmacro()
 
@@ -1744,6 +1739,11 @@ set_target_properties(llvm PROPERTIES
     FOLDER "LLVM"
 )
 
+# Add required libraries for LLVM
+if(LINUX)
+    target_link_libraries(llvm dl)
+endif(LINUX)
+
 ###########################################################
 # Subzero
 ###########################################################