forked from mirrors/nixpkgs
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.
130 lines
6.4 KiB
Diff
130 lines
6.4 KiB
Diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index b44ad2c2118e..d42f5664d448 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -8,6 +8,7 @@ cmake_minimum_required(VERSION 3.13.4)
|
|
# 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 361538a58e47..f0d8d9ab80f1 100644
|
|
--- a/cmake/Modules/AddCompilerRT.cmake
|
|
+++ b/cmake/Modules/AddCompilerRT.cmake
|
|
@@ -495,7 +495,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})
|
|
|
|
@@ -512,7 +512,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 456a8dcda59f..7a09e74c7c79 100644
|
|
--- a/cmake/Modules/CompilerRTDarwinUtils.cmake
|
|
+++ b/cmake/Modules/CompilerRTDarwinUtils.cmake
|
|
@@ -508,7 +508,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 f61d487e93a0..f1f46fb9599c 100644
|
|
--- a/cmake/Modules/CompilerRTUtils.cmake
|
|
+++ b/cmake/Modules/CompilerRTUtils.cmake
|
|
@@ -378,7 +378,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 1edab43e7c0d..1aac6b73ff82 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 b00e8caa1ddd..0fe64e4862c9 100644
|
|
--- a/include/CMakeLists.txt
|
|
+++ b/include/CMakeLists.txt
|
|
@@ -69,22 +69,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 a29de8deff1b..d39ff01613d2 100644
|
|
--- a/lib/dfsan/CMakeLists.txt
|
|
+++ b/lib/dfsan/CMakeLists.txt
|
|
@@ -57,4 +57,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})
|