Skip to content

Commit

Permalink
[llvm] update to 13.0.0 (microsoft#20749)
Browse files Browse the repository at this point in the history
* [llvm] update to 13.0.0

* add version

* [llvm] rework processing of the CMake packages

* update versions

* [llvm] return patch to fix config paths

* update version

* [llvm] allow to build Flang on Windows

* add version

* [llvm] temporary enable Flang by default for test

* update version

* [llvm] fix Flang installation

* update version

* [llvm] try to fix Flang build

* update version

* [llvm] remove Flang from defaults and use Perl path

* [halide] update to 13.0.0

* update versions

* [mesa] update to v21.2.5 and fix build with LLVM 13

* [llvm] use version

* update versions

* [opencv4] fix build with Halide 13

* update version

* update ci.baseline

* [halide] update usage file

* [llvm] update supports

* update versions

* [vcpkg-ci-llvm] add test port

* [vcpkg-ci-llvm] rework test port

* [vcpkg-ci-llvm] test more features

* [halide] update to v13.0.1

* update version

* [mesa] recover port version

* update versions

* [opencv4] update version

* update version

* Update opencv4.json

* [halide] update to v13.0.2 and fix usage

* update version

* Update ports/halide/portfile.cmake

Co-authored-by: Phoebe <[email protected]>

* update version

* enable LLVM ABI breaking checks to avoid Halide build fail

Co-authored-by: Phoebe <[email protected]>
  • Loading branch information
yurybura and PhoebeHui authored Dec 20, 2021
1 parent eff88ba commit 099507d
Show file tree
Hide file tree
Showing 31 changed files with 1,051 additions and 167 deletions.
13 changes: 6 additions & 7 deletions ports/halide/portfile.cmake
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)

set(HALIDE_VERSION_TAG v13.0.2)

vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO halide/Halide
REF 5dabcaa9effca1067f907f6c8ea212f3d2b1d99a # v12.0.1
SHA512 5ab44703850885561337e23d8b538a5adfe1611e24e8daa4a1313756b4f9dfeb54e89bf8400d46a3340c00234402681b4f44ba3ed5322027fd6cb5dfbd525acd
HEAD_REF release/12.x
REF ${HALIDE_VERSION_TAG}
SHA512 d2b19934ff0d759d302428f61e4075306f79c29cc1cd8802dc1ac5f325434034e0f430c435610e58f862b87cc8ef34ddcc3d0588947eeb8e1387d0bf31b9c008
HEAD_REF release/13.x
)

vcpkg_check_features(
Expand Down Expand Up @@ -68,8 +70,5 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/tutorial)

file(GLOB readmes "${CURRENT_PACKAGES_DIR}/share/${PORT}/*.md")
file(REMOVE ${readmes})

configure_file(${SOURCE_PATH}/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
configure_file(${CMAKE_CURRENT_LIST_DIR}/usage ${CURRENT_PACKAGES_DIR}/share/${PORT}/usage COPYONLY)
configure_file(${CMAKE_CURRENT_LIST_DIR}/usage.in ${CURRENT_PACKAGES_DIR}/share/${PORT}/usage @ONLY)
14 changes: 0 additions & 14 deletions ports/halide/usage

This file was deleted.

27 changes: 27 additions & 0 deletions ports/halide/usage.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
The package halide provides CMake targets:

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED YES)
set(CMAKE_CXX_EXTENSIONS NO)

find_package(Halide REQUIRED)

# JIT mode:
add_executable(my_halide_app main.cpp)
target_link_libraries(my_halide_app PRIVATE Halide::Halide)

# AOT mode:
add_executable(my_generators my_generators.cpp)
target_link_libraries(my_generators PRIVATE Halide::Generator)
add_halide_library(my_first_generator FROM my_generators)
add_halide_library(my_second_generator FROM my_generators
PARAMS parallel=false scale=3.0 rotation=ccw output.type=uint16)
add_halide_library(my_second_generator_2 FROM my_generators
GENERATOR my_second_generator
PARAMS scale=9.0 rotation=ccw output.type=float32)
add_halide_library(my_second_generator_3 FROM my_generators
GENERATOR my_second_generator
PARAMS parallel=false output.type=float64)

For more information see:
https://github.com/halide/Halide/blob/@HALIDE_VERSION_TAG@/README_cmake.md
3 changes: 1 addition & 2 deletions ports/halide/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{
"name": "halide",
"version": "12.0.1",
"port-version": 1,
"version": "13.0.2",
"description": "Halide is a programming language designed to make it easier to write high-performance image and array processing code on modern machines.",
"homepage": "https://github.com/halide/Halide",
"supports": "!uwp",
Expand Down
26 changes: 14 additions & 12 deletions ports/llvm/0002-fix-install-paths.patch
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
8 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/clang/cmake/modules/CMakeLists.txt b/clang/cmake/modules/CMakeLists.txt
index d233f552f01f..26f502ad2d23 100644
index 561665d58cad..3c73878a4483 100644
--- a/clang/cmake/modules/CMakeLists.txt
+++ b/clang/cmake/modules/CMakeLists.txt
@@ -1,11 +1,11 @@
@@ -3,11 +3,11 @@ include(LLVMDistributionSupport)
# Generate a list of CMake library targets so that other CMake projects can
# link against them. LLVM calls its version of this file LLVMExports.cmake, but
# the usual CMake convention seems to be ${Project}Targets.cmake.
Expand All @@ -27,7 +27,7 @@ index d233f552f01f..26f502ad2d23 100644

get_property(CLANG_EXPORTS GLOBAL PROPERTY CLANG_EXPORTS)
diff --git a/flang/cmake/modules/CMakeLists.txt b/flang/cmake/modules/CMakeLists.txt
index 4822124ca412..1ca3eff8f14e 100644
index e46498a6bc35..2e922f8ca89d 100644
--- a/flang/cmake/modules/CMakeLists.txt
+++ b/flang/cmake/modules/CMakeLists.txt
@@ -1,11 +1,11 @@
Expand All @@ -45,7 +45,7 @@ index 4822124ca412..1ca3eff8f14e 100644

get_property(FLANG_EXPORTS GLOBAL PROPERTY FLANG_EXPORTS)
diff --git a/lld/cmake/modules/CMakeLists.txt b/lld/cmake/modules/CMakeLists.txt
index fa505a533762..90413be34120 100644
index 62d03fa901dd..09b0f54ee8c3 100644
--- a/lld/cmake/modules/CMakeLists.txt
+++ b/lld/cmake/modules/CMakeLists.txt
@@ -1,11 +1,11 @@
Expand All @@ -63,10 +63,10 @@ index fa505a533762..90413be34120 100644

get_property(LLD_EXPORTS GLOBAL PROPERTY LLD_EXPORTS)
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index b74adc11ade9..0638aea2f8f6 100644
index 29e40f45fef8..e9094e9b8eb2 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -974,7 +974,7 @@ function(process_llvm_pass_plugins)
@@ -1033,7 +1033,7 @@ function(process_llvm_pass_plugins)

## Part 1: Extension header to be included whenever we need extension
# processing.
Expand All @@ -76,20 +76,22 @@ index b74adc11ade9..0638aea2f8f6 100644
file(WRITE
"${llvm_cmake_builddir}/LLVMConfigExtensions.cmake"
diff --git a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt
index 4b8879f65fe4..9e097ab223b5 100644
index 51b6a4fdc284..a818de2e116c 100644
--- a/llvm/cmake/modules/CMakeLists.txt
+++ b/llvm/cmake/modules/CMakeLists.txt
@@ -1,4 +1,4 @@
@@ -1,6 +1,6 @@
include(LLVMDistributionSupport)

-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
+set(LLVM_INSTALL_PACKAGE_DIR share/llvm)
set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")

# First for users who use an installed LLVM, create the LLVMExports.cmake file.
diff --git a/mlir/cmake/modules/CMakeLists.txt b/mlir/cmake/modules/CMakeLists.txt
index b9fb9adce2ea..85a54f699f30 100644
index 65efc4a14987..7c3213ab0c2b 100644
--- a/mlir/cmake/modules/CMakeLists.txt
+++ b/mlir/cmake/modules/CMakeLists.txt
@@ -1,11 +1,11 @@
@@ -3,11 +3,11 @@ include(LLVMDistributionSupport)
# Generate a list of CMake library targets so that other CMake projects can
# link against them. LLVM calls its version of this file LLVMExports.cmake, but
# the usual CMake convention seems to be ${Project}Targets.cmake.
Expand All @@ -104,7 +106,7 @@ index b9fb9adce2ea..85a54f699f30 100644

get_property(MLIR_EXPORTS GLOBAL PROPERTY MLIR_EXPORTS)
diff --git a/polly/cmake/CMakeLists.txt b/polly/cmake/CMakeLists.txt
index 211f95512717..2abe3803f910 100644
index 7cc129ba2e90..9776391cd535 100644
--- a/polly/cmake/CMakeLists.txt
+++ b/polly/cmake/CMakeLists.txt
@@ -1,7 +1,7 @@
Expand All @@ -118,7 +120,7 @@ index 211f95512717..2abe3803f910 100644
set(POLLY_EXPORTS_FILE_NAME "PollyExports-$<LOWER_CASE:$<CONFIG>>.cmake")
else()
diff --git a/pstl/CMakeLists.txt b/pstl/CMakeLists.txt
index 8e6e1354707b..2ae7f7090025 100644
index 8bea8843589b..3658c0a4414a 100644
--- a/pstl/CMakeLists.txt
+++ b/pstl/CMakeLists.txt
@@ -81,10 +81,10 @@ install(TARGETS ParallelSTL
Expand Down
6 changes: 3 additions & 3 deletions ports/llvm/0003-fix-openmp-debug.patch
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
index 822f9ca2b825..814e25864610 100644
index bdb867e352f7..16a13fa959ea 100644
--- a/openmp/runtime/src/CMakeLists.txt
+++ b/openmp/runtime/src/CMakeLists.txt
@@ -157,7 +157,7 @@ else()
@@ -159,7 +159,7 @@ else()
endif()

set_target_properties(omp PROPERTIES
Expand All @@ -14,7 +14,7 @@ index 822f9ca2b825..814e25864610 100644
LINK_FLAGS "${LIBOMP_CONFIGURED_LDFLAGS}"
LINKER_LANGUAGE ${LIBOMP_LINKER_LANGUAGE}
)
@@ -232,7 +232,7 @@ if(WIN32)
@@ -236,7 +236,7 @@ if(WIN32)
# Create new import library that is just the previously created one + kmp_import.cpp
add_library(ompimp STATIC ${LIBOMP_GENERATED_IMP_LIB} kmp_import.cpp)
set_target_properties(ompimp PROPERTIES
Expand Down
11 changes: 7 additions & 4 deletions ports/llvm/0004-fix-dr-1734.patch
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
llvm/include/llvm/Support/type_traits.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/llvm/include/llvm/Support/type_traits.h b/llvm/include/llvm/Support/type_traits.h
index b7d48e8e1ad..53ba24efc00 100644
index 7b7d5d991f3f..469b681deea3 100644
--- a/llvm/include/llvm/Support/type_traits.h
+++ b/llvm/include/llvm/Support/type_traits.h
@@ -177,7 +177,8 @@ class is_trivially_copyable {
@@ -176,7 +176,8 @@ class is_trivially_copyable {
(has_deleted_copy_assign || has_trivial_copy_assign) &&
(has_deleted_copy_constructor || has_trivial_copy_constructor);

-#ifdef HAVE_STD_IS_TRIVIALLY_COPYABLE
+ // due to DR 1734, a type can be std::is_trivially_copyable but not llvm::is_trivially_copyable
+// due to DR 1734, a type can be std::is_trivially_copyable but not llvm::is_trivially_copyable
+#if 0
static_assert(value == std::is_trivially_copyable<T>::value,
"inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable");
Expand Down
10 changes: 6 additions & 4 deletions ports/llvm/0005-fix-tools-path.patch
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
llvm/tools/llvm-config/llvm-config.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp
index 53ba24efc00..0badcafe000 100644
index 1a2f04552d13..9370c5e28206 100644
--- a/llvm/tools/llvm-config/llvm-config.cpp
+++ b/llvm/tools/llvm-config/llvm-config.cpp
@@ -304,8 +304,8 @@ int main(int argc, char **argv) {
// Create an absolute path, and pop up one directory (we expect to be inside a
@@ -305,7 +305,7 @@ int main(int argc, char **argv) {
// bin dir).
sys::fs::make_absolute(CurrentPath);
CurrentExecPrefix =
- sys::path::parent_path(sys::path::parent_path(CurrentPath)).str();
+ sys::path::parent_path(sys::path::parent_path(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).
14 changes: 7 additions & 7 deletions ports/llvm/0007-fix-compiler-rt-install-path.patch
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/clang/lib/Headers/CMakeLists.txt b/clang/lib/Headers/CMakeLists.txt
index 0692fe75a441..65f72c2da7da 100644
index 8131f6005dc2..9afef2e5a4e7 100644
--- a/clang/lib/Headers/CMakeLists.txt
+++ b/clang/lib/Headers/CMakeLists.txt
@@ -208,7 +208,7 @@ set_target_properties(clang-resource-headers PROPERTIES
@@ -222,7 +222,7 @@ set_target_properties(clang-resource-headers PROPERTIES
FOLDER "Misc"
RUNTIME_OUTPUT_DIRECTORY "${output_dir}")

Expand All @@ -17,23 +17,23 @@ index 0692fe75a441..65f72c2da7da 100644
install(
FILES ${files} ${generated_files}
diff --git a/clang/runtime/CMakeLists.txt b/clang/runtime/CMakeLists.txt
index 61bbbf8faedd..f6d0b73d9913 100644
index 61b1c60bf590..c20a5a326f15 100644
--- a/clang/runtime/CMakeLists.txt
+++ b/clang/runtime/CMakeLists.txt
@@ -82,7 +82,7 @@ if(LLVM_BUILD_EXTERNAL_COMPILER_RT AND EXISTS ${COMPILER_RT_SRC_ROOT}/)
-DLLVM_LIT_ARGS=${LLVM_LIT_ARGS}
-DCOMPILER_RT_OUTPUT_DIR=${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}
-DCOMPILER_RT_EXEC_OUTPUT_DIR=${LLVM_RUNTIME_OUTPUT_INTDIR}
- -DCOMPILER_RT_INSTALL_PATH:STRING=lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}
+ -DCOMPILER_RT_INSTALL_PATH:STRING=tools/llvm/lib/clang/${CLANG_VERSION}
- -DCOMPILER_RT_INSTALL_PATH:PATH=lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}
+ -DCOMPILER_RT_INSTALL_PATH:PATH=tools/llvm/lib/clang/${CLANG_VERSION}
-DCOMPILER_RT_INCLUDE_TESTS=${LLVM_INCLUDE_TESTS}
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX}
diff --git a/compiler-rt/cmake/base-config-ix.cmake b/compiler-rt/cmake/base-config-ix.cmake
index 964dd598f102..7379a1ba06d1 100644
index c11342e68813..61bb52135c43 100644
--- a/compiler-rt/cmake/base-config-ix.cmake
+++ b/compiler-rt/cmake/base-config-ix.cmake
@@ -43,7 +43,7 @@ if (LLVM_TREE_AVAILABLE)
@@ -42,7 +42,7 @@ if (LLVM_TREE_AVAILABLE)
# Setup the paths where compiler-rt runtimes and headers should be stored.
set(COMPILER_RT_OUTPUT_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION})
set(COMPILER_RT_EXEC_OUTPUT_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
Expand Down
18 changes: 0 additions & 18 deletions ports/llvm/0008-fix-libcxx-install.patch

This file was deleted.

Loading

0 comments on commit 099507d

Please sign in to comment.