1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/cmake/modules
Michal Gorny 6d3f09db6e [cmake] Pass -Wl,-z,nodelete on Linux to prevent unloading
Prevent unloading shared libraries on Linux when dlclose() is called.
This is necessary since command-line option parsing API relies on
registering the global option instances in the option parser instance
which can be loaded in a different shared library.

Given that we can't reliably remove those options when a library is
unloaded, the parser ends up containing dangling references. Since glibc
has relatively complex library unloading rules, some of the LLVM
libraries can be unloaded while others (including the Support library)
stay loaded causing quite a mayhem. To reliably prevent that, just
forbid unloading all libraries -- it's a very bad idea anyway.

While the issue arguably happens only with BUILD_SHARED_LIBS, it may
affect any library reusing llvm::cl interface.

Based on patch provided Ross Hayward on https://bugs.gentoo.org/617154.
Previously hit by Fedora back in Feb 2016:
https://lists.freedesktop.org/archives/mesa-dev/2016-February/107242.html

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

llvm-svn: 319105
2017-11-27 22:23:09 +00:00
..
AddLLVM.cmake [CMake] Allow for Solaris ld -V output on stdout 2017-11-17 17:12:14 +00:00
AddLLVMDefinitions.cmake
AddOCaml.cmake Move the srpm, ocaml_make_directory, llvm_vcsrevision_h, and llvm-headers projects into the Misc folder on IDEs like Visual Studio rather than leave them in the root directory. NFC. 2017-11-04 19:59:14 +00:00
AddSphinxTarget.cmake CMake: Fix docs-llvm-man target when clang+llvm is in the same source tree 2017-05-15 09:34:23 +00:00
CheckAtomic.cmake
CheckCompilerVersion.cmake
CheckLinkerFlag.cmake [cmake] Make check_linker_flags operate via linker flags 2017-10-31 01:30:46 +00:00
ChooseMSVCCRT.cmake
CMakeLists.txt
CrossCompile.cmake [CMake] Add custom target to create build directory 2017-11-08 14:31:51 +00:00
DetermineGCCCompatible.cmake
FindOCaml.cmake
FindSphinx.cmake
GenerateVersionFromCVS.cmake
GetHostTriple.cmake
GetSVN.cmake [CMake] Update GetSVN.cmake to handle repo 2017-09-09 14:17:52 +00:00
HandleLLVMOptions.cmake [cmake] Pass -Wl,-z,nodelete on Linux to prevent unloading 2017-11-27 22:23:09 +00:00
HandleLLVMStdlib.cmake
LLVM-Config.cmake [CMake][LLVM] Remove duplicated library mask. Broken clang linking against clangShared 2017-08-10 13:37:58 +00:00
LLVMConfig.cmake.in [CMake] NFC. Add intrinsics_gen target to CMake Exports 2017-07-28 15:33:35 +00:00
LLVMConfigVersion.cmake.in
LLVMExternalProjectUtils.cmake Use LIST_SEPARATOR rather than escaping in ExternalProject_Add 2017-11-27 20:41:53 +00:00
LLVMInstallSymlink.cmake
LLVMProcessSources.cmake [cmake] Add SOURCE_DIR argument to llvm_check_source_file_list 2017-09-19 17:44:42 +00:00
TableGen.cmake [globalisel][tablegen] Generate rule coverage and use it to identify untested rules 2017-11-16 00:46:35 +00:00
VersionFromVCS.cmake CMake: Silence more stderr when running git. 2017-05-02 16:37:37 +00:00