llvm-project/llvm/unittests/Support
Michal Gorny 8eaa8ec8fc [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
..
DynamicLibrary [cmake] Pass -Wl,-z,nodelete on Linux to prevent unloading 2017-11-27 22:23:09 +00:00
ARMAttributeParser.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
AlignOfTest.cpp Revert r291503, "Lift the 10-type limit for AlignedCharArrayUnion", and followings. 2017-01-13 01:13:10 +00:00
AllocatorTest.cpp [unittest] Explicitly specify alignment when using BumpPtrAllocator. 2017-03-11 01:24:56 +00:00
ArrayRecyclerTest.cpp
BinaryStreamTest.cpp Fix -Werror build for signed/unsigned comparison with use of explicit unsigned literals 2017-11-27 19:43:57 +00:00
BlockFrequencyTest.cpp
BranchProbabilityTest.cpp [BPI] Add multiplication by scalar operators to BranchProbability 2017-04-21 03:14:30 +00:00
CMakeLists.txt [ADT] Enable reverse iteration for DenseMap 2017-08-24 23:02:48 +00:00
CachePruningTest.cpp Make the size specification for cache_size_bytes case insensitive. 2017-06-23 17:13:51 +00:00
Casting.cpp [Support] Add support for unique_ptr<> to Casting.h. 2017-04-12 19:59:37 +00:00
Chrono.cpp Support formatv of TimePoint with strftime-style formats. 2017-10-24 08:30:19 +00:00
CommandLineTest.cpp [Support][CommandLine] Add cl::Option::setDefault() 2017-08-28 13:39:43 +00:00
CompressionTest.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
ConvertUTFTest.cpp
CrashRecoveryTest.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
DataExtractorTest.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
DebugTest.cpp Fix unit test in NDEBUG build 2016-12-27 11:07:53 +00:00
EndianStreamTest.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
EndianTest.cpp
ErrnoTest.cpp Recommit "[Support] Add RetryAfterSignal helper function" 2017-06-29 13:15:31 +00:00
ErrorOrTest.cpp
ErrorTest.cpp [Error] Add an optional error message to cantFail. 2017-08-29 23:29:09 +00:00
FileOutputBufferTest.cpp Convert FileOutputBuffer::commit to Error. 2017-11-08 01:50:29 +00:00
FormatVariadicTest.cpp Fix FormatVariadicTest with GCC 2017-10-23 18:41:22 +00:00
GlobPatternTest.cpp [Support/GlobPattern] - Do not crash when pattern has characters with int value < 0. 2017-07-31 09:26:50 +00:00
Host.cpp [AArch64] Add basic support for Qualcomm's Saphira CPU. 2017-09-25 14:05:00 +00:00
LEB128Test.cpp Change encodeU/SLEB128 to pad to certain number of bytes 2017-09-15 20:34:47 +00:00
LineIteratorTest.cpp
LockFileManagerTest.cpp
MD5Test.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
ManagedStatic.cpp [ManagedStatic] Avoid putting function pointers in template args. 2017-05-29 20:56:27 +00:00
MathExtrasTest.cpp MathExtras UnitTest: Assert that isPowerOf2(0) is false. NFC. 2017-07-03 18:42:47 +00:00
MemoryBufferTest.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
MemoryTest.cpp Untabify. 2017-10-18 13:31:28 +00:00
NativeFormatTests.cpp [Support] Introduce llvm::formatv() function. 2016-11-11 23:57:40 +00:00
ParallelTest.cpp SupportTests: Suppress ParallelTests on mingw for now. Investigating. 2017-05-11 06:35:51 +00:00
Path.cpp Allow TempFile::discard to be called twice. 2017-11-22 19:59:05 +00:00
ProcessTest.cpp [Support] env vars with empty values on windows 2017-08-18 16:55:44 +00:00
ProgramTest.cpp Convenience/safety fix for llvm::sys::Execute(And|No)Wait 2017-09-13 17:03:37 +00:00
RegexTest.cpp Fix llvm-special-case-list-fuzzer regexp exception 2017-10-27 19:15:13 +00:00
ReplaceFileTest.cpp Support: Rewrite Windows implementation of sys::fs::rename to be more POSIXy. 2017-10-06 17:14:36 +00:00
ReverseIterationTest.cpp [unittest/ReverseIteration] Unbreak when compiling with GCC. 2017-09-05 21:27:23 +00:00
ScaledNumberTest.cpp Cosmetic. Added braces to address gcc warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]. 2017-05-20 00:02:08 +00:00
SourceMgrTest.cpp Add DK_Remark to SMDiagnostic 2017-10-12 23:56:02 +00:00
SpecialCaseListTest.cpp Extend SpecialCaseList to allow users to blame matches on entries in the file. 2017-11-07 21:16:46 +00:00
StringPool.cpp
SwapByteOrderTest.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
TarWriterTest.cpp Fix off-by-one error in TarWriter. 2017-09-27 21:38:02 +00:00
TargetParserTest.cpp [AArch64] Add basic support for Qualcomm's Saphira CPU. 2017-09-25 14:05:00 +00:00
ThreadLocalTest.cpp
ThreadPool.cpp Remove unused lambda captures. NFC 2017-01-13 17:12:16 +00:00
Threading.cpp Rename interface for querying physical hardware concurrency 2016-10-17 14:56:53 +00:00
TimerTest.cpp Timer: Track name and description. 2016-11-18 19:43:18 +00:00
TrailingObjectsTest.cpp Workaround MSVC bug when using TrailingObjects from a template. 2017-02-28 18:05:41 +00:00
TrigramIndexTest.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
TypeNameTest.cpp
UnicodeTest.cpp
YAMLIOTest.cpp [YAMLTraits] Add filename support to yaml::Input 2017-07-17 11:41:30 +00:00
YAMLParserTest.cpp [YAMLParser] Don't crash on null keys in KeyValueNodes. 2017-11-23 20:57:20 +00:00
formatted_raw_ostream_test.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
raw_ostream_test.cpp Support: Add llvm::center_justify. 2017-07-13 16:11:08 +00:00
raw_pwrite_stream_test.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
raw_sha1_ostream_test.cpp Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
xxhashTest.cpp