91cba7b0a9
7869d16545
changed how resource files are
installed. Likely by accident, now some of the resource files are
installed to $dev/include instead of $out/share. This causes the cc
wrapper's resource-root to miss those files from compiler-rt as they are
in a different place than expected.
This commit fixes all instances of this incorrect installation for
llvmPackages_10, 11 and 12 which are the only llvm package sets which
link ${targetLlvmLibraries.compiler-rt.out}/share to the resource-root.
For the other llvm package set this will likely also need to be fixed,
but it doesn't have to have immediate urgency and doing it in two steps
allows us to (hopefully) fix the chromium build without causing a darwin
stdenv rebuild.
The full fix can be found in #123103 and should probably be included in
the next staging-next rotation.
129 lines
6.3 KiB
Diff
129 lines
6.3 KiB
Diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index 8d768a404f21..74551dc5a004 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -12,6 +12,7 @@ endif()
|
|
# Check if compiler-rt is built as a standalone project.
|
|
if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD)
|
|
project(CompilerRT C CXX ASM)
|
|
+ include(GNUInstallDirs)
|
|
set(COMPILER_RT_STANDALONE_BUILD TRUE)
|
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
|
endif()
|
|
diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
|
|
index 35a48c6af29c..e4300f256091 100644
|
|
--- a/cmake/Modules/AddCompilerRT.cmake
|
|
+++ b/cmake/Modules/AddCompilerRT.cmake
|
|
@@ -493,7 +493,7 @@ macro(add_compiler_rt_resource_file target_name file_name component)
|
|
add_custom_target(${target_name} DEPENDS ${dst_file})
|
|
# Install in Clang resource directory.
|
|
install(FILES ${file_name}
|
|
- DESTINATION ${COMPILER_RT_INSTALL_PATH}/share
|
|
+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR}
|
|
COMPONENT ${component})
|
|
add_dependencies(${component} ${target_name})
|
|
|
|
@@ -510,7 +510,7 @@ macro(add_compiler_rt_script name)
|
|
add_custom_target(${name} DEPENDS ${dst})
|
|
install(FILES ${dst}
|
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
|
- DESTINATION ${COMPILER_RT_INSTALL_PATH}/bin)
|
|
+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_BINDIR})
|
|
endmacro(add_compiler_rt_script src name)
|
|
|
|
# Builds custom version of libc++ and installs it in <prefix>.
|
|
diff --git a/cmake/Modules/CompilerRTDarwinUtils.cmake b/cmake/Modules/CompilerRTDarwinUtils.cmake
|
|
index 9f501a61c4b6..f9a0d92dbca0 100644
|
|
--- a/cmake/Modules/CompilerRTDarwinUtils.cmake
|
|
+++ b/cmake/Modules/CompilerRTDarwinUtils.cmake
|
|
@@ -440,7 +440,7 @@ macro(darwin_add_embedded_builtin_libraries)
|
|
set(DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR
|
|
${COMPILER_RT_OUTPUT_DIR}/lib/macho_embedded)
|
|
set(DARWIN_macho_embedded_LIBRARY_INSTALL_DIR
|
|
- ${COMPILER_RT_INSTALL_PATH}/lib/macho_embedded)
|
|
+ ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/macho_embedded)
|
|
|
|
set(CFLAGS_armv7 "-target thumbv7-apple-darwin-eabi")
|
|
set(CFLAGS_i386 "-march=pentium")
|
|
diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake
|
|
index 6e672b1e1818..64999709958e 100644
|
|
--- a/cmake/Modules/CompilerRTUtils.cmake
|
|
+++ b/cmake/Modules/CompilerRTUtils.cmake
|
|
@@ -371,7 +371,7 @@ endfunction()
|
|
function(get_compiler_rt_install_dir arch install_dir)
|
|
if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
|
|
get_compiler_rt_target(${arch} target)
|
|
- set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/lib/${target} PARENT_SCOPE)
|
|
+ set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${target} PARENT_SCOPE)
|
|
else()
|
|
set(${install_dir} ${COMPILER_RT_LIBRARY_INSTALL_DIR} PARENT_SCOPE)
|
|
endif()
|
|
diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake
|
|
index b4b87aa53073..f1ae8668837c 100644
|
|
--- a/cmake/base-config-ix.cmake
|
|
+++ b/cmake/base-config-ix.cmake
|
|
@@ -65,11 +65,11 @@ if (LLVM_TREE_AVAILABLE)
|
|
else()
|
|
# Take output dir and install path from the user.
|
|
set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH
|
|
- "Path where built compiler-rt libraries should be stored.")
|
|
+ "Path where built compiler-rt build artifacts should be stored.")
|
|
set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH
|
|
"Path where built compiler-rt executables should be stored.")
|
|
- set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH
|
|
- "Path where built compiler-rt libraries should be installed.")
|
|
+ set(COMPILER_RT_INSTALL_PATH "" CACHE PATH
|
|
+ "Prefix where built compiler-rt artifacts should be installed, comes before CMAKE_INSTALL_PREFIX.")
|
|
option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF)
|
|
option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF)
|
|
# Use a host compiler to compile/link tests.
|
|
@@ -97,7 +97,7 @@ else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR)
|
|
set(COMPILER_RT_LIBRARY_OUTPUT_DIR
|
|
${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR})
|
|
set(COMPILER_RT_LIBRARY_INSTALL_DIR
|
|
- ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR})
|
|
+ ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR})
|
|
endif()
|
|
|
|
if(APPLE)
|
|
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
|
|
index d47d7baeb118..507c8e5c713e 100644
|
|
--- a/include/CMakeLists.txt
|
|
+++ b/include/CMakeLists.txt
|
|
@@ -62,22 +62,22 @@ set_target_properties(compiler-rt-headers PROPERTIES FOLDER "Compiler-RT Misc")
|
|
install(FILES ${SANITIZER_HEADERS}
|
|
COMPONENT compiler-rt-headers
|
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
|
- DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/sanitizer)
|
|
+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/sanitizer)
|
|
# Install fuzzer headers.
|
|
install(FILES ${FUZZER_HEADERS}
|
|
COMPONENT compiler-rt-headers
|
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
|
- DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/fuzzer)
|
|
+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/fuzzer)
|
|
# Install xray headers.
|
|
install(FILES ${XRAY_HEADERS}
|
|
COMPONENT compiler-rt-headers
|
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
|
- DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/xray)
|
|
+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/xray)
|
|
# Install profile headers.
|
|
install(FILES ${PROFILE_HEADERS}
|
|
COMPONENT compiler-rt-headers
|
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
|
- DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/profile)
|
|
+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/profile)
|
|
|
|
if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDEs.
|
|
add_custom_target(install-compiler-rt-headers
|
|
diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt
|
|
index 051215edbeb7..ecce1f52efb0 100644
|
|
--- a/lib/dfsan/CMakeLists.txt
|
|
+++ b/lib/dfsan/CMakeLists.txt
|
|
@@ -56,4 +56,4 @@ add_custom_command(OUTPUT ${dfsan_abilist_filename}
|
|
DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt)
|
|
add_dependencies(dfsan dfsan_abilist)
|
|
install(FILES ${dfsan_abilist_filename}
|
|
- DESTINATION ${COMPILER_RT_INSTALL_PATH}/share)
|
|
+ DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR})
|