Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[LLVM] Add LLVM_full, LLVM_full_assert 19 recipes #9204

Merged
merged 25 commits into from
Oct 12, 2024
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions L/LLVM/LLVM_full@19/build_tarballs.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
version = v"19.1.1"

include("../common.jl")

build_tarballs(ARGS, configure_build(ARGS, version; experimental_platforms=true)...;
preferred_gcc_version=v"10", preferred_llvm_version=v"18", julia_compat="1.6")
# Build trigger: 3
Zentrik marked this conversation as resolved.
Show resolved Hide resolved
22 changes: 22 additions & 0 deletions L/LLVM/LLVM_full@19/bundled/libcxx_patches/7005_libcxx_musl.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
diff --git a/include/locale b/include/locale
index 9e97eb9f3395..896dac226dd7 100644
--- a/include/locale
+++ b/include/locale
@@ -716,7 +716,7 @@ __num_get_signed_integral(const char* __a, const char* __a_end, ios_base::iostat
__libcpp_remove_reference_t<decltype(errno)> __save_errno = errno;
errno = 0;
char* __p2;
- long long __ll = strtoll_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE);
+ long long __ll = strtoll(__a, &__p2, __base);
__libcpp_remove_reference_t<decltype(errno)> __current_errno = errno;
if (__current_errno == 0)
errno = __save_errno;
@@ -748,7 +748,7 @@ __num_get_unsigned_integral(const char* __a, const char* __a_end, ios_base::iost
__libcpp_remove_reference_t<decltype(errno)> __save_errno = errno;
errno = 0;
char* __p2;
- unsigned long long __ll = strtoull_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE);
+ unsigned long long __ll = strtoull(__a, &__p2, __base);
__libcpp_remove_reference_t<decltype(errno)> __current_errno = errno;
if (__current_errno == 0)
errno = __save_errno;
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
From 1fa6efaa946243004c45be92e66b324dc980df7d Mon Sep 17 00:00:00 2001
From: Valentin Churavy <[email protected]>
Date: Thu, 17 Sep 2020 23:22:45 +0200
Subject: [PATCH] clang-sa can't determine that !RHS implies !LHS

---
llvm/include/llvm/ADT/FunctionExtras.h | 2 ++
1 file changed, 2 insertions(+)

diff --git a/llvm/include/llvm/ADT/FunctionExtras.h b/llvm/include/llvm/ADT/FunctionExtras.h
index 121aa527a5d..b9b6d829b14 100644
--- a/llvm/include/llvm/ADT/FunctionExtras.h
+++ b/llvm/include/llvm/ADT/FunctionExtras.h
@@ -193,9 +193,11 @@ public:
// Copy the callback and inline flag.
CallbackAndInlineFlag = RHS.CallbackAndInlineFlag;

+#ifndef __clang_analyzer__
// If the RHS is empty, just copying the above is sufficient.
if (!RHS)
return;
+#endif

if (!isInlineStorage()) {
// The out-of-line case is easiest to move.
--
2.28.0

37 changes: 37 additions & 0 deletions L/LLVM/LLVM_full@19/bundled/patches/0100-llvm-12-musl-bb.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
From f1901de14ff1f1abcc729c4adccfbd5017e30357 Mon Sep 17 00:00:00 2001
From: Valentin Churavy <[email protected]>
Date: Fri, 7 May 2021 13:54:41 -0400
Subject: [PATCH] [Compiler-RT] Fix compilation on musl

---
compiler-rt/lib/fuzzer/FuzzerInterceptors.cpp | 1 +
.../lib/sanitizer_common/sanitizer_platform_limits_posix.cpp | 1 -
2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/compiler-rt/lib/fuzzer/FuzzerInterceptors.cpp b/compiler-rt/lib/fuzzer/FuzzerInterceptors.cpp
index b87798603fda..452a08aafe0e 100644
--- a/compiler-rt/lib/fuzzer/FuzzerInterceptors.cpp
+++ b/compiler-rt/lib/fuzzer/FuzzerInterceptors.cpp
@@ -27,6 +27,7 @@
#include <cassert>
#include <cstddef> // for size_t
#include <cstdint>
+#include <stddef.h>
#include <dlfcn.h> // for dlsym()

static void *getFuncAddr(const char *name, uintptr_t wrapper_addr) {
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
index 12dd39e674ac..bb0f7a2daa8c 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
@@ -69,7 +69,6 @@
#include <malloc.h>
#include <mntent.h>
#include <netinet/ether.h>
-#include <sys/sysinfo.h>
#include <sys/vt.h>
#include <linux/cdrom.h>
#include <linux/fd.h>
--
2.31.1

40 changes: 40 additions & 0 deletions L/LLVM/LLVM_full@19/bundled/patches/0200-templates.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
From ad520c15cc2dae3231c38cca916f93c8347c1bd9 Mon Sep 17 00:00:00 2001
From: Valentin Churavy <[email protected]>
Date: Tue, 8 Nov 2022 13:18:59 -0500
Subject: [PATCH] handle template weirdness

---
lld/ELF/InputFiles.cpp | 2 +-
lld/ELF/SyntheticSections.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp
index 6c7ef27cbd49..7dcf1cc5b877 100644
--- a/lld/ELF/InputFiles.cpp
+++ b/lld/ELF/InputFiles.cpp
@@ -310,7 +310,7 @@ template <class ELFT> static void doParseFile(InputFile *file) {
ctx.objectFiles.push_back(cast<ELFFileBase>(file));
cast<ObjFile<ELFT>>(file)->parse();
} else if (auto *f = dyn_cast<SharedFile>(file)) {
- f->parse<ELFT>();
+ f->template parse<ELFT>();
} else if (auto *f = dyn_cast<BitcodeFile>(file)) {
ctx.bitcodeFiles.push_back(f);
f->parse();

diff --git a/lld/ELF/SyntheticSections.cpp b/lld/ELF/SyntheticSections.cpp
index b359c2e7bcea..812d38ca81de 100644
--- a/lld/ELF/SyntheticSections.cpp
+++ b/lld/ELF/SyntheticSections.cpp
@@ -3360,7 +3360,7 @@ template <class ELFT> void elf::splitSections() {
if (auto *s = dyn_cast<MergeInputSection>(sec))
s->splitIntoPieces();
else if (auto *eh = dyn_cast<EhInputSection>(sec))
- eh->split<ELFT>();
+ eh->template split<ELFT>();
}
});
}
--
2.38.1

Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt
index c91e9cd93dc8..9260cdc1c83e 100644
--- a/mlir/CMakeLists.txt
+++ b/mlir/CMakeLists.txt
@@ -17,6 +17,12 @@ endif()
include(GNUInstallDirs)
set(CMAKE_CXX_STANDARD 17)

+if(MINGW OR CYGWIN)
+ set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
+ set(CMAKE_C_VISIBILITY_PRESET hidden)
+ set(CMAKE_CXX_VISIBILITY_PRESET hidden)
+endif()
+
if(MLIR_STANDALONE_BUILD)
find_package(LLVM CONFIG REQUIRED)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
From f3d0b3b681d1e3955e08dc1adf26040094a6df70 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mos=C3=A8=20Giordano?= <[email protected]>
Date: Fri, 3 May 2024 12:47:19 +0100
Subject: [PATCH] [MLIR] Disable `tblgen-lsp-server` and `tblgen-to-irdl`

---
mlir/lib/Tools/CMakeLists.txt | 2 +-
mlir/test/CMakeLists.txt | 4 ++--
mlir/tools/CMakeLists.txt | 4 ++--
3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/mlir/lib/Tools/CMakeLists.txt b/mlir/lib/Tools/CMakeLists.txt
index 01270fa4b0fc..7688c31bf26b 100644
--- a/mlir/lib/Tools/CMakeLists.txt
+++ b/mlir/lib/Tools/CMakeLists.txt
@@ -8,4 +8,4 @@ add_subdirectory(mlir-tblgen)
add_subdirectory(mlir-translate)
add_subdirectory(PDLL)
add_subdirectory(Plugins)
-add_subdirectory(tblgen-lsp-server)
+# add_subdirectory(tblgen-lsp-server)
diff --git a/mlir/test/CMakeLists.txt b/mlir/test/CMakeLists.txt
index 6724dd4bdd1b..8566faa8a862 100644
--- a/mlir/test/CMakeLists.txt
+++ b/mlir/test/CMakeLists.txt
@@ -108,8 +108,8 @@ set(MLIR_TEST_DEPENDS
mlir-reduce
mlir-tblgen
mlir-translate
- tblgen-lsp-server
- tblgen-to-irdl
+ # tblgen-lsp-server
+ # tblgen-to-irdl
)

set(MLIR_TEST_DEPENDS ${MLIR_TEST_DEPENDS}
diff --git a/mlir/tools/CMakeLists.txt b/mlir/tools/CMakeLists.txt
index 9b474385fdae..1206844f793c 100644
--- a/mlir/tools/CMakeLists.txt
+++ b/mlir/tools/CMakeLists.txt
@@ -8,8 +8,8 @@ add_subdirectory(mlir-shlib)
add_subdirectory(mlir-spirv-cpu-runner)
add_subdirectory(mlir-translate)
add_subdirectory(mlir-vulkan-runner)
-add_subdirectory(tblgen-lsp-server)
-add_subdirectory(tblgen-to-irdl)
+# add_subdirectory(tblgen-lsp-server)
+# add_subdirectory(tblgen-to-irdl)

# mlir-cpu-runner requires ExecutionEngine.
if(MLIR_ENABLE_EXECUTION_ENGINE)
--
2.44.0

25 changes: 25 additions & 0 deletions L/LLVM/LLVM_full@19/bundled/patches/0704-no-codesign.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
From 811bde347d425929813cbf40620f497b924c2c45 Mon Sep 17 00:00:00 2001
From: Valentin Churavy <[email protected]>
Date: Tue, 8 Nov 2022 19:52:32 -0500
Subject: [PATCH] no codesign

---
compiler-rt/cmake/Modules/AddCompilerRT.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/compiler-rt/cmake/Modules/AddCompilerRT.cmake b/compiler-rt/cmake/Modules/AddCompilerRT.cmake
index 298093462f80..34b9daf97400 100644
--- a/compiler-rt/cmake/Modules/AddCompilerRT.cmake
+++ b/compiler-rt/cmake/Modules/AddCompilerRT.cmake
@@ -413,7 +413,7 @@ function(add_compiler_rt_runtime name type)

add_custom_command(TARGET ${libname}
POST_BUILD
- COMMAND codesign --sign - ${EXTRA_CODESIGN_ARGUMENTS} $<TARGET_FILE:${libname}>
+ # COMMAND codesign --sign - ${EXTRA_CODESIGN_ARGUMENTS} $<TARGET_FILE:${libname}>
WORKING_DIRECTORY ${COMPILER_RT_OUTPUT_LIBRARY_DIR}
COMMAND_EXPAND_LISTS
)
--
2.38.1

7 changes: 7 additions & 0 deletions L/LLVM/LLVM_full_assert@19/build_tarballs.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
version = v"19.1.1"

include("../common.jl")

build_tarballs(ARGS, configure_build(ARGS, version; assert=true, experimental_platforms=true)...;
preferred_gcc_version=v"10", preferred_llvm_version=v"18", julia_compat="1.6")
# Build trigger: 4
Zentrik marked this conversation as resolved.
Show resolved Hide resolved
1 change: 1 addition & 0 deletions L/LLVM/LLVM_full_assert@19/bundled
9 changes: 8 additions & 1 deletion L/LLVM/common.jl
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ const llvm_tags = Dict(
v"16.0.6" => "499f87882a4ba1837ec12a280478cf4cb0d2753d", # julia-16.0.6-2
v"17.0.6" => "0007e48608221f440dce2ea0d3e4f561fc10d3c6", # julia-17.0.6-5
v"18.1.7" => "ed30d043a240d06bb6e010a41086e75713156f4f", # julia-18.1.7-2
v"19.1.1" => "3a195326fffa6594ddec8fe9477e848061f42243", # julia-19.1.1-0
Zentrik marked this conversation as resolved.
Show resolved Hide resolved
)

const buildscript = raw"""
Expand Down Expand Up @@ -140,6 +141,9 @@ fi
if [[ "${LLVM_MAJ_VER}" -gt "14" ]]; then
ninja -j${nproc} clang-tidy-confusable-chars-gen clang-pseudo-gen mlir-pdll
fi
if [[ "${LLVM_MAJ_VER}" -ge "19" ]]; then
ninja -j${nproc} mlir-src-sharder
fi
popd

# Let's do the actual build within the `build` subdirectory
Expand Down Expand Up @@ -271,6 +275,9 @@ if [[ "${LLVM_MAJ_VER}" -gt "14" ]]; then
CMAKE_FLAGS+=(-DCLANG_PSEUDO_GEN=${WORKSPACE}/bootstrap/bin/clang-pseudo-gen)
CMAKE_FLAGS+=(-DMLIR_PDLL_TABLEGEN=${WORKSPACE}/bootstrap/bin/mlir-pdll)
fi
if [[ "${LLVM_MAJ_VER}" -ge "19" ]]; then
CMAKE_FLAGS+=(-DLLVM_NATIVE_TOOL_DIR=${WORKSPACE}/bootstrap/bin)
fi

# Explicitly use our cmake toolchain file
# Windows runs out of symbols so use clang which can do some fancy things
Expand Down Expand Up @@ -337,7 +344,7 @@ if [[ "${target}" == *apple* ]] || [[ "${target}" == *freebsd* ]]; then
fi

if [[ "${target}" == *mingw* ]]; then
CMAKE_CPP_FLAGS+=(-remap -D__USING_SJLJ_EXCEPTIONS__ -D__CRT__NO_INLINE -pthread -DMLIR_CAPI_ENABLE_WINDOWS_DLL_DECLSPEC)
CMAKE_CPP_FLAGS+=(-remap -D__USING_SJLJ_EXCEPTIONS__ -D__CRT__NO_INLINE -pthread -DMLIR_CAPI_ENABLE_WINDOWS_DLL_DECLSPEC -Dmlir_arm_sme_abi_stubs_EXPORTS)
CMAKE_C_FLAGS+=(-pthread -DMLIR_CAPI_ENABLE_WINDOWS_DLL_DECLSPEC)
CMAKE_FLAGS+=(-DCOMPILER_RT_BUILD_SANITIZERS=OFF)
# Windows is case-insensitive and some dependencies take full advantage of that
Expand Down