forked from OSchip/llvm-project
[CMake] Fix bug in `add_weak_symbols()` function.
Previously the the `weak_symbols.txt` files could be modified and the build system wouldn't update the link flags automatically. Instead the developer had to know to reconfigure CMake manually. This is now fixed by telling CMake that the file being used to read weak symbols from is a configure-time dependency. Differential Revision: https://reviews.llvm.org/D50059 llvm-svn: 339559
This commit is contained in:
parent
74e0f40d98
commit
706005486f
|
@ -51,7 +51,15 @@ endmacro()
|
|||
# This function is only used on Darwin, where undefined symbols must be specified
|
||||
# in the linker invocation.
|
||||
function(add_weak_symbols libname link_flags)
|
||||
file(STRINGS "${COMPILER_RT_SOURCE_DIR}/lib/${libname}/weak_symbols.txt" WEAK_SYMBOLS)
|
||||
set(weak_symbols_file "${COMPILER_RT_SOURCE_DIR}/lib/${libname}/weak_symbols.txt")
|
||||
file(STRINGS "${weak_symbols_file}" WEAK_SYMBOLS)
|
||||
# Add this file as a configure-time dependency so that changes to this
|
||||
# file trigger a re-configure. This is necessary so that `${link_flags}`
|
||||
# is changed when appropriate.
|
||||
set_property(
|
||||
DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
APPEND
|
||||
PROPERTY CMAKE_CONFIGURE_DEPENDS "${weak_symbols_file}")
|
||||
set(local_link_flags ${${link_flags}})
|
||||
foreach(SYMBOL ${WEAK_SYMBOLS})
|
||||
set(local_link_flags ${local_link_flags} -Wl,-U,${SYMBOL})
|
||||
|
|
Loading…
Reference in New Issue