[PATCH] D27119: Use Darwin libtool's -no_warning_for_no_symbols if available to silence the "has no symbols" link warning
Kuba (Brecka) Mracek via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 24 16:30:43 PST 2016
kubabrecka created this revision.
kubabrecka added reviewers: beanz, bogner, pete, zaks.anna.
kubabrecka added a subscriber: llvm-commits.
kubabrecka set the repository for this revision to rL LLVM.
Herald added a subscriber: mgorny.
Building compiler-rt on Darwin produces dozens of meaningless warnings about object files having no symbols during static archive creation. This is very intentional as compiler-rt uses #ifdefs to conditionally compile platform-specific code, and we even have a .cpp source file that only contains static asserts to make sure the environment is configured right. On Linux, this situation is fine and no warning is produces. This patch adds a libtool version detection and if it's new enough, we'll use the `-no_warning_for_no_symbols` flag that suppresses this warning. Build logs should be much cleaner now!
Repository:
rL LLVM
https://reviews.llvm.org/D27119
Files:
CMakeLists.txt
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -73,9 +73,23 @@
if(CMAKE_LIBTOOL)
set(CMAKE_LIBTOOL ${CMAKE_LIBTOOL} CACHE PATH "libtool executable")
message(STATUS "Found libtool - ${CMAKE_LIBTOOL}")
+
+ set(LIBTOOL_NO_WARNING_FLAG "")
+ execute_process(COMMAND ${CMAKE_LIBTOOL} -V
+ OUTPUT_VARIABLE LIBTOOL_V_OUTPUT
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if("${LIBTOOL_V_OUTPUT}" MATCHES ".*cctools-([0-9.]+).*")
+ string(REGEX REPLACE ".*cctools-([0-9.]+).*" "\\1" LIBTOOL_VERSION
+ ${LIBTOOL_V_OUTPUT})
+ if(NOT LIBTOOL_VERSION VERSION_LESS "862")
+ set(LIBTOOL_NO_WARNING_FLAG "-no_warning_for_no_symbols")
+ endif()
+ endif()
+
foreach(lang ${languages})
set(CMAKE_${lang}_CREATE_STATIC_LIBRARY
- "${CMAKE_LIBTOOL} -static -o <TARGET> <LINK_FLAGS> <OBJECTS> ")
+ "${CMAKE_LIBTOOL} -static ${LIBTOOL_NO_WARNING_FLAG} -o <TARGET> "
+ "<LINK_FLAGS> <OBJECTS> ")
endforeach()
endif()
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27119.79267.patch
Type: text/x-patch
Size: 1079 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161125/802762d5/attachment.bin>
More information about the llvm-commits
mailing list