-
Notifications
You must be signed in to change notification settings - Fork 12.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Get the linker version and pass the it to compiler-rt tests on Darwin. (
#86220) The HOST_LINK_VERSION is a hardcoded string in Darwin clang that detects the linker version at configure time. The driver uses this information to build the correct set of arguments for the linker. This patch detects the linker version again during compiler-rt configuration and passes it to the tests. This allows a clang built on a machine with a new linker to run compiler-rt tests on a machine with an old linker. rdar://125198603
- Loading branch information
1 parent
51268a5
commit 3bc71c2
Showing
5 changed files
with
36 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Get the linker version on Darwin | ||
function(get_darwin_linker_version variable) | ||
set(LINK_VERSION) | ||
set(LD_V_OUTPUT) | ||
execute_process( | ||
COMMAND sh -c "${CMAKE_LINKER} -v 2>&1 | head -1" | ||
RESULT_VARIABLE HAD_ERROR | ||
OUTPUT_VARIABLE LD_V_OUTPUT | ||
) | ||
if (HAD_ERROR) | ||
message(FATAL_ERROR "${CMAKE_LINKER} failed with status ${HAD_ERROR}") | ||
endif() | ||
if ("${LD_V_OUTPUT}" MATCHES ".*ld64-([0-9.]+).*") | ||
string(REGEX REPLACE ".*ld64-([0-9.]+).*" "\\1" LINK_VERSION ${LD_V_OUTPUT}) | ||
elseif ("${LD_V_OUTPUT}" MATCHES "[^0-9]*([0-9.]+).*") | ||
string(REGEX REPLACE "[^0-9]*([0-9.]+).*" "\\1" LINK_VERSION ${LD_V_OUTPUT}) | ||
endif() | ||
set(${variable} ${LINK_VERSION} PARENT_SCOPE) | ||
endfunction() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
3bc71c2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change broke clang standalone builds. I've proposed a fix as #86386.