From 40d48dee8f5e45f69052f7e0cd564c40f64333c6 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Aug 14 2019 15:00:44 +0000 Subject: Add missing patches --- diff --git a/0001-Fix-the-buildbot-issue-introduced-by-r351421.patch b/0001-Fix-the-buildbot-issue-introduced-by-r351421.patch new file mode 100644 index 0000000..e34ffc7 --- /dev/null +++ b/0001-Fix-the-buildbot-issue-introduced-by-r351421.patch @@ -0,0 +1,29 @@ +From eaa421d1f9c3748c550e2a91fcb134a3d2a8ebff Mon Sep 17 00:00:00 2001 +From: Sanjin Sijaric +Date: Fri, 18 Jan 2019 19:34:20 +0000 +Subject: [PATCH] Fix the buildbot issue introduced by r351421 + +The EXPENSIVE_CHECK x86_64 Windows buildbot is failing due to this change. Fix +the map access. + +llvm-svn: 351577 +--- + lib/MC/MCWin64EH.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/MC/MCWin64EH.cpp b/lib/MC/MCWin64EH.cpp +index 8bc1f08..3ef1514 100644 +--- a/lib/MC/MCWin64EH.cpp ++++ b/lib/MC/MCWin64EH.cpp +@@ -522,7 +522,7 @@ static void ARM64EmitUnwindInfo(MCStreamer &streamer, WinEH::FrameInfo *info) { + if (MatchingEpilog) { + assert(EpilogInfo.find(MatchingEpilog) != EpilogInfo.end() && + "Duplicate epilog not found"); +- EpilogInfo[EpilogStart] = EpilogInfo[MatchingEpilog]; ++ EpilogInfo[EpilogStart] = EpilogInfo.lookup(MatchingEpilog); + // Clear the unwind codes in the EpilogMap, so that they don't get output + // in the logic below. + EpilogInstrs.clear(); +-- +1.8.3.1 + diff --git a/0001-PATCH-Filter-out-cxxflags-not-supported-by-clang.patch b/0001-PATCH-Filter-out-cxxflags-not-supported-by-clang.patch new file mode 100644 index 0000000..e706588 --- /dev/null +++ b/0001-PATCH-Filter-out-cxxflags-not-supported-by-clang.patch @@ -0,0 +1,82 @@ +From 59c38a2216f4467b53970bb6b010bc4fe0b8d1d3 Mon Sep 17 00:00:00 2001 +From: serge-sans-paille +Date: Fri, 25 Jan 2019 17:32:54 +0000 +Subject: [PATCH 1/2] [PATCH] Filter out cxxflags not supported by clang + +--- + cmake/modules/AddLLVM.cmake | 6 +++++- + cmake/modules/CMakeLists.txt | 3 +++ + cmake/modules/LLVMConfig.cmake.in | 2 ++ + tools/llvm-config/CMakeLists.txt | 4 ++++ + 4 files changed, 14 insertions(+), 1 deletion(-) + +diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake +index 4dbc0ddaf4f..c408377cd2e 100644 +--- a/cmake/modules/AddLLVM.cmake ++++ b/cmake/modules/AddLLVM.cmake +@@ -664,7 +664,11 @@ macro(add_llvm_library name) + + if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR + NOT LLVM_DISTRIBUTION_COMPONENTS) +- set(export_to_llvmexports EXPORT LLVMExports) ++ if (ARG_SHARED) ++ set(export_to_llvmexports EXPORT LLVMExports) ++ else() ++ set(export_to_llvmexports EXPORT LLVMStaticExports) ++ endif() + set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True) + endif() + +diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt +index f5cc0006fa0..6605dc729c2 100644 +--- a/cmake/modules/CMakeLists.txt ++++ b/cmake/modules/CMakeLists.txt +@@ -97,6 +97,7 @@ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}") + set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_TOOLS_INSTALL_DIR}") + set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake") + set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}") ++set(LLVM_CONFIG_STATIC_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMStaticExports.cmake") + configure_file( + LLVMConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake +@@ -113,6 +114,8 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) + if(llvm_has_exports) + install(EXPORT LLVMExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} + COMPONENT cmake-exports) ++ install(EXPORT LLVMStaticExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} ++ COMPONENT cmake-exports) + endif() + + install(FILES +diff --git a/cmake/modules/LLVMConfig.cmake.in b/cmake/modules/LLVMConfig.cmake.in +index 7ca06381d90..44d042c9b11 100644 +--- a/cmake/modules/LLVMConfig.cmake.in ++++ b/cmake/modules/LLVMConfig.cmake.in +@@ -84,6 +84,8 @@ if(NOT TARGET LLVMSupport) + set(LLVM_EXPORTED_TARGETS "@LLVM_CONFIG_EXPORTS@") + include("@LLVM_CONFIG_EXPORTS_FILE@") + @llvm_config_include_buildtree_only_exports@ ++ ++ include("@LLVM_CONFIG_STATIC_EXPORTS_FILE@" OPTIONAL) + endif() + + # By creating intrinsics_gen here, subprojects that depend on LLVM's +diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt +index a7db17386fb..8a796d03b5a 100644 +--- a/tools/llvm-config/CMakeLists.txt ++++ b/tools/llvm-config/CMakeLists.txt +@@ -42,7 +42,11 @@ set(LLVM_SRC_ROOT ${LLVM_MAIN_SRC_DIR}) + set(LLVM_OBJ_ROOT ${LLVM_BINARY_DIR}) + set(LLVM_CPPFLAGS "${LLVM_DEFINITIONS}") + set(LLVM_CFLAGS "${LLVM_C_STD_FLAG} ${LLVM_DEFINITIONS}") ++STRING(REGEX REPLACE "-mcet" "" LLVM_CFLAGS ${LLVM_CFLAGS}) ++STRING(REGEX REPLACE "-fcf-protection" "" LLVM_CFLAGS ${LLVM_CFLAGS}) + set(LLVM_CXXFLAGS "${LLVM_CXX_STD_FLAG} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}") ++STRING(REGEX REPLACE "-mcet" "" LLVM_CXXFLAGS ${LLVM_CXXFLAGS}) ++STRING(REGEX REPLACE "-fcf-protection" "" LLVM_CXXFLAGS ${LLVM_CXXFLAGS}) + set(LLVM_BUILD_SYSTEM cmake) + set(LLVM_HAS_RTTI ${LLVM_CONFIG_HAS_RTTI}) + set(LLVM_DYLIB_VERSION "${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX}") +-- +2.19.2 + diff --git a/0001-PATCH-llvm-config.patch b/0001-PATCH-llvm-config.patch new file mode 100644 index 0000000..54dfbe6 --- /dev/null +++ b/0001-PATCH-llvm-config.patch @@ -0,0 +1,44 @@ +diff -ru llvm-8.0.0rc1.src.orig/cmake/modules/CMakeLists.txt llvm-8.0.0rc1.src/cmake/modules/CMakeLists.txt +--- llvm-8.0.0rc1.src.orig/cmake/modules/CMakeLists.txt 2019-02-12 11:32:02.370238762 +0000 ++++ llvm-8.0.0rc1.src/cmake/modules/CMakeLists.txt 2019-02-13 08:40:39.263265812 +0000 +@@ -94,7 +94,7 @@ + set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}") + set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}") + set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}") +-set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin") ++set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_TOOLS_INSTALL_DIR}") + set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake") + set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}") + configure_file( +diff -ru llvm-8.0.0rc1.src.orig/tools/llvm-config/llvm-config.cpp llvm-8.0.0rc1.src/tools/llvm-config/llvm-config.cpp +--- llvm-8.0.0rc1.src.orig/tools/llvm-config/llvm-config.cpp 2019-02-12 11:32:00.617221180 +0000 ++++ llvm-8.0.0rc1.src/tools/llvm-config/llvm-config.cpp 2019-02-12 11:34:27.817599362 +0000 +@@ -269,7 +269,6 @@ + // tree. + bool IsInDevelopmentTree; + enum { CMakeStyle, CMakeBuildModeStyle } DevelopmentTreeLayout; +- llvm::SmallString<256> CurrentPath(GetExecutablePath(argv[0])); + std::string CurrentExecPrefix; + std::string ActiveObjRoot; + +@@ -280,11 +279,15 @@ + build_mode = CMAKE_CFG_INTDIR; + #endif + +- // Create an absolute path, and pop up one directory (we expect to be inside a +- // bin dir). +- sys::fs::make_absolute(CurrentPath); +- CurrentExecPrefix = +- sys::path::parent_path(sys::path::parent_path(CurrentPath)).str(); ++ // Create an absolute path, and pop up as much directory as in LLVM_TOOLS_INSTALL_DIR ++ { ++ llvm::SmallString<256> CurrentPath(GetExecutablePath(argv[0])); ++ sys::fs::make_absolute(CurrentPath); ++ for (auto iter = sys::path::begin(LLVM_TOOLS_INSTALL_DIR), end = sys::path::end(LLVM_TOOLS_INSTALL_DIR); iter != end; ++iter) { ++ CurrentPath = sys::path::parent_path(CurrentPath).str(); ++ } ++ CurrentExecPrefix = sys::path::parent_path(CurrentPath).str(); ++ } + + // Check to see if we are inside a development tree by comparing to possible + // locations (prefix style or CMake style).