mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
0b5745abd8
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211315 91177308-0d34-0410-b5e6-96231b3b80d8
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()
|
|
|