mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
b6a8a137f8
The tools/lto API is not the best choice for implementing a gold plugin. Among other issues: * It is an stable ABI. Old errors stay and we have to be really careful before adding new features. * It has to support two fairly different linkers: gold and ld64. * We end up with a plugin that depends on a shared lib, something quiet unusual in LLVM land. * It hides LLVM. For some features in the gold plugin it would be really nice to be able to just get a Module or a GlobalValue. This change is intended to be a very direct translation from the C API. It will just enable other fixes and cleanups. Tested with a LTO bootstrap on linux. llvm-svn: 211315
28 lines
749 B
CMake
28 lines
749 B
CMake
set(LLVM_BINUTILS_INCDIR "" CACHE PATH
|
|
"PATH to binutils/include containing plugin-api.h for gold plugin.")
|
|
|
|
set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/gold.exports)
|
|
|
|
if( NOT LLVM_BINUTILS_INCDIR )
|
|
# Nothing to say.
|
|
elseif( NOT EXISTS "${LLVM_BINUTILS_INCDIR}/plugin-api.h" )
|
|
message(STATUS "plugin-api.h not found. gold plugin excluded from the build.")
|
|
else()
|
|
include_directories( ${LLVM_BINUTILS_INCDIR} )
|
|
|
|
# Because off_t is used in the public API, the largefile parts are required for
|
|
# ABI compatibility.
|
|
add_definitions( -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 )
|
|
|
|
set(LLVM_LINK_COMPONENTS
|
|
${LLVM_TARGETS_TO_BUILD}
|
|
LTO
|
|
)
|
|
|
|
add_llvm_loadable_module(LLVMgold
|
|
gold-plugin.cpp
|
|
)
|
|
|
|
endif()
|
|
|