mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
f6b6a7722e
There's an ABI breakage here if LLVM is compiled in C++14 without aligned allocation and a user tries to use the result with aligned allocation. If DenseMap or unique_function is used across that ABI boundary it will break (PR45413). Moving it out of line is a bit of a band-aid and LLVM doesn't really give ABI guarantees at this level, but given the number of complaints I've received over this it still seems worth fixing.
206 lines
4.6 KiB
CMake
206 lines
4.6 KiB
CMake
set(system_libs)
|
|
if ( LLVM_ENABLE_ZLIB AND HAVE_LIBZ )
|
|
set(system_libs ${system_libs} ${ZLIB_LIBRARIES})
|
|
endif()
|
|
if( MSVC OR MINGW )
|
|
# libuuid required for FOLDERID_Profile usage in lib/Support/Windows/Path.inc.
|
|
# advapi32 required for CryptAcquireContextW in lib/Support/Windows/Path.inc.
|
|
set(system_libs ${system_libs} psapi shell32 ole32 uuid advapi32)
|
|
elseif( CMAKE_HOST_UNIX )
|
|
if( HAVE_LIBRT )
|
|
set(system_libs ${system_libs} rt)
|
|
endif()
|
|
if( HAVE_LIBDL )
|
|
set(system_libs ${system_libs} ${CMAKE_DL_LIBS})
|
|
endif()
|
|
if( HAVE_BACKTRACE AND NOT "${Backtrace_LIBRARIES}" STREQUAL "" )
|
|
# On BSDs, CMake returns a fully qualified path to the backtrace library.
|
|
# We need to remove the path and the 'lib' prefix, to make it look like a
|
|
# regular short library name, suitable for appending to a -l link flag.
|
|
get_filename_component(Backtrace_LIBFILE ${Backtrace_LIBRARIES} NAME_WE)
|
|
STRING(REGEX REPLACE "^lib" "" Backtrace_LIBFILE ${Backtrace_LIBFILE})
|
|
set(system_libs ${system_libs} ${Backtrace_LIBFILE})
|
|
endif()
|
|
if(LLVM_ENABLE_TERMINFO)
|
|
if(HAVE_TERMINFO)
|
|
set(system_libs ${system_libs} ${TERMINFO_LIBS})
|
|
endif()
|
|
endif()
|
|
if( LLVM_ENABLE_THREADS AND (HAVE_LIBATOMIC OR HAVE_CXX_LIBATOMICS64) )
|
|
set(system_libs ${system_libs} atomic)
|
|
endif()
|
|
set(system_libs ${system_libs} ${LLVM_PTHREAD_LIB})
|
|
if( UNIX AND NOT (BEOS OR HAIKU) )
|
|
set(system_libs ${system_libs} m)
|
|
endif()
|
|
if( FUCHSIA )
|
|
set(system_libs ${system_libs} zircon)
|
|
endif()
|
|
endif( MSVC OR MINGW )
|
|
|
|
# Delay load shell32.dll if possible to speed up process startup.
|
|
set (delayload_flags)
|
|
if (MSVC)
|
|
set (delayload_flags delayimp -delayload:shell32.dll -delayload:ole32.dll)
|
|
endif()
|
|
|
|
# Link Z3 if the user wants to build it.
|
|
if(LLVM_WITH_Z3)
|
|
set(Z3_LINK_FILES ${Z3_LIBRARIES})
|
|
else()
|
|
set(Z3_LINK_FILES "")
|
|
endif()
|
|
|
|
add_llvm_component_library(LLVMSupport
|
|
AArch64TargetParser.cpp
|
|
ABIBreak.cpp
|
|
ARMTargetParser.cpp
|
|
AMDGPUMetadata.cpp
|
|
APFloat.cpp
|
|
APInt.cpp
|
|
APSInt.cpp
|
|
ARMBuildAttrs.cpp
|
|
ARMAttributeParser.cpp
|
|
ARMWinEH.cpp
|
|
Allocator.cpp
|
|
BinaryStreamError.cpp
|
|
BinaryStreamReader.cpp
|
|
BinaryStreamRef.cpp
|
|
BinaryStreamWriter.cpp
|
|
BlockFrequency.cpp
|
|
BranchProbability.cpp
|
|
BuryPointer.cpp
|
|
CachePruning.cpp
|
|
circular_raw_ostream.cpp
|
|
Chrono.cpp
|
|
COM.cpp
|
|
CodeGenCoverage.cpp
|
|
CommandLine.cpp
|
|
Compression.cpp
|
|
CRC.cpp
|
|
ConvertUTF.cpp
|
|
ConvertUTFWrapper.cpp
|
|
CrashRecoveryContext.cpp
|
|
DataExtractor.cpp
|
|
Debug.cpp
|
|
DebugCounter.cpp
|
|
DeltaAlgorithm.cpp
|
|
DAGDeltaAlgorithm.cpp
|
|
DJB.cpp
|
|
ELFAttributeParser.cpp
|
|
ELFAttributes.cpp
|
|
Error.cpp
|
|
ErrorHandling.cpp
|
|
ExtensibleRTTI.cpp
|
|
FileCheck.cpp
|
|
FileCollector.cpp
|
|
FileUtilities.cpp
|
|
FileOutputBuffer.cpp
|
|
FoldingSet.cpp
|
|
FormattedStream.cpp
|
|
FormatVariadic.cpp
|
|
GlobPattern.cpp
|
|
GraphWriter.cpp
|
|
Hashing.cpp
|
|
InitLLVM.cpp
|
|
IntEqClasses.cpp
|
|
IntervalMap.cpp
|
|
ItaniumManglingCanonicalizer.cpp
|
|
JSON.cpp
|
|
KnownBits.cpp
|
|
LEB128.cpp
|
|
LineIterator.cpp
|
|
Locale.cpp
|
|
LockFileManager.cpp
|
|
LowLevelType.cpp
|
|
ManagedStatic.cpp
|
|
MathExtras.cpp
|
|
MemAlloc.cpp
|
|
MemoryBuffer.cpp
|
|
MD5.cpp
|
|
NativeFormatting.cpp
|
|
OptimizedStructLayout.cpp
|
|
Optional.cpp
|
|
Parallel.cpp
|
|
PluginLoader.cpp
|
|
PrettyStackTrace.cpp
|
|
RandomNumberGenerator.cpp
|
|
Regex.cpp
|
|
RISCVAttributes.cpp
|
|
RISCVAttributeParser.cpp
|
|
ScaledNumber.cpp
|
|
ScopedPrinter.cpp
|
|
SHA1.cpp
|
|
Signposts.cpp
|
|
SmallPtrSet.cpp
|
|
SmallVector.cpp
|
|
SourceMgr.cpp
|
|
SpecialCaseList.cpp
|
|
Statistic.cpp
|
|
StringExtras.cpp
|
|
StringMap.cpp
|
|
StringSaver.cpp
|
|
StringRef.cpp
|
|
SymbolRemappingReader.cpp
|
|
SystemUtils.cpp
|
|
TarWriter.cpp
|
|
TargetParser.cpp
|
|
ThreadPool.cpp
|
|
TimeProfiler.cpp
|
|
Timer.cpp
|
|
ToolOutputFile.cpp
|
|
TrigramIndex.cpp
|
|
Triple.cpp
|
|
Twine.cpp
|
|
Unicode.cpp
|
|
UnicodeCaseFold.cpp
|
|
VersionTuple.cpp
|
|
VirtualFileSystem.cpp
|
|
WithColor.cpp
|
|
YAMLParser.cpp
|
|
YAMLTraits.cpp
|
|
raw_os_ostream.cpp
|
|
raw_ostream.cpp
|
|
regcomp.c
|
|
regerror.c
|
|
regexec.c
|
|
regfree.c
|
|
regstrlcpy.c
|
|
xxhash.cpp
|
|
Z3Solver.cpp
|
|
|
|
# System
|
|
Atomic.cpp
|
|
DynamicLibrary.cpp
|
|
Errno.cpp
|
|
Host.cpp
|
|
Memory.cpp
|
|
Path.cpp
|
|
Process.cpp
|
|
Program.cpp
|
|
RWMutex.cpp
|
|
Signals.cpp
|
|
TargetRegistry.cpp
|
|
ThreadLocal.cpp
|
|
Threading.cpp
|
|
Valgrind.cpp
|
|
Watchdog.cpp
|
|
|
|
ADDITIONAL_HEADER_DIRS
|
|
Unix
|
|
Windows
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/ADT
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/Support
|
|
${Backtrace_INCLUDE_DIRS}
|
|
LINK_LIBS ${system_libs} ${delayload_flags} ${Z3_LINK_FILES}
|
|
)
|
|
|
|
set_property(TARGET LLVMSupport PROPERTY LLVM_SYSTEM_LIBS "${system_libs}")
|
|
|
|
if(LLVM_WITH_Z3)
|
|
target_include_directories(LLVMSupport SYSTEM
|
|
PRIVATE
|
|
${Z3_INCLUDE_DIR}
|
|
)
|
|
endif()
|