This is an automated email from the ASF dual-hosted git repository. alexey pushed a commit to branch branch-1.17.x in repository https://gitbox.apache.org/repos/asf/kudu.git
commit cdb14312802d574691cb4f6ea35c9d33c2d07d76 Author: Alexey Serbin <[email protected]> AuthorDate: Mon Mar 25 19:22:34 2024 -0700 [cmake_modules] recognize linker coming with LLVM 15 This patch updates the GET_LINKER_VERSION cmake's function to work with ld linker that comes with LLVM 15 as a part of Xcode 15.3 on macOS. Without this patch, running cmake in the build directory on macOS using Xcode 15.3 would fail with an error like below: -- Checking linker version when not specifying any flags CMake Error at cmake_modules/KuduLinker.cmake:87 (message): Could not find a suitable linker Change-Id: If120b281a44fa7a9b9976d078c34f36ab942f089 Reviewed-on: http://gerrit.cloudera.org:8080/21202 Reviewed-by: Abhishek Chennaka <[email protected]> Tested-by: Alexey Serbin <[email protected]> (cherry picked from commit be36cc0e2edd6a73b7e0936f570612d8c724ac24) Reviewed-on: http://gerrit.cloudera.org:8080/21788 Reviewed-by: Alexey Serbin <[email protected]> Tested-by: Abhishek Chennaka <[email protected]> --- cmake_modules/KuduLinker.cmake | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/cmake_modules/KuduLinker.cmake b/cmake_modules/KuduLinker.cmake index c35df4ff9..604cf13ad 100644 --- a/cmake_modules/KuduLinker.cmake +++ b/cmake_modules/KuduLinker.cmake @@ -165,6 +165,21 @@ function(GET_LINKER_VERSION) set(LINKER_FOUND TRUE) set(LINKER_FAMILY "ld64") set(LINKER_VERSION "${CMAKE_MATCH_1}") + elseif (LINKER_STDERR MATCHES "PROJECT:ld") + # ld outputs the versioning information into stderr. + # This is an example of output from newer versions of the LLVM's linker: + # e.g. the linker which comes along with CLANG 15.0.0 (clang-1500.3.9.4) + # as a part of Xcode 15.3 on macOS. + # + # Sample: + # @(#)PROGRAM:ld PROJECT:ld-1053.12 + if (NOT "${LINKER_STDERR}" MATCHES "PROJECT:ld-([0-9]+(\\.[0-9]+)?)") + message(SEND_ERROR "Could not extract ld version. " + "Linker version output: ${LINKER_STDOUT}") + endif() + set(LINKER_FOUND TRUE) + set(LINKER_FAMILY "ld64") + set(LINKER_VERSION "${CMAKE_MATCH_1}") else() set(LINKER_FOUND FALSE) endif()
