Skip to content
Snippets Groups Projects
Commit 15d1ee36 authored by Raul Tambre's avatar Raul Tambre Committed by Tom Stellard
Browse files

[CMake][compiler-rt] Use copying instead of symlinking for LSE builtins on non-Unix-likes

As reported in D93278 post-review symlinking requires privilege escalation on Windows.
Copying is functionally same, so fallback to it for systems that aren't Unix-like.
This is similar to the solution in AddLLVM.cmake.

Reviewed By: ikudrin

Differential Revision: https://reviews.llvm.org/D98111

(cherry picked from commit ba860963)
parent bff59aca
No related branches found
No related tags found
No related merge requests found
...@@ -515,6 +515,12 @@ set(aarch64_SOURCES ...@@ -515,6 +515,12 @@ set(aarch64_SOURCES
set(OA_HELPERS_DIR "${CMAKE_CURRENT_BINARY_DIR}/outline_atomic_helpers.dir") set(OA_HELPERS_DIR "${CMAKE_CURRENT_BINARY_DIR}/outline_atomic_helpers.dir")
file(MAKE_DIRECTORY "${OA_HELPERS_DIR}") file(MAKE_DIRECTORY "${OA_HELPERS_DIR}")
if(CMAKE_HOST_UNIX)
set(COMPILER_RT_LINK_OR_COPY create_symlink)
else()
set(COMPILER_RT_LINK_OR_COPY copy)
endif()
foreach(pat cas swp ldadd ldclr ldeor ldset) foreach(pat cas swp ldadd ldclr ldeor ldset)
foreach(size 1 2 4 8 16) foreach(size 1 2 4 8 16)
foreach(model 1 2 3 4) foreach(model 1 2 3 4)
...@@ -522,7 +528,7 @@ foreach(pat cas swp ldadd ldclr ldeor ldset) ...@@ -522,7 +528,7 @@ foreach(pat cas swp ldadd ldclr ldeor ldset)
set(helper_asm "${OA_HELPERS_DIR}/outline_atomic_${pat}${size}_${model}.S") set(helper_asm "${OA_HELPERS_DIR}/outline_atomic_${pat}${size}_${model}.S")
add_custom_command( add_custom_command(
OUTPUT ${helper_asm} OUTPUT ${helper_asm}
COMMAND ${CMAKE_COMMAND} -E create_symlink "${CMAKE_CURRENT_SOURCE_DIR}/aarch64/lse.S" "${helper_asm}" COMMAND ${CMAKE_COMMAND} -E ${COMPILER_RT_LINK_OR_COPY} "${CMAKE_CURRENT_SOURCE_DIR}/aarch64/lse.S" "${helper_asm}"
) )
set_source_files_properties("${helper_asm}" set_source_files_properties("${helper_asm}"
PROPERTIES PROPERTIES
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment