Skip to content

[LLVM_full] Add LLVM_full, LLVM_full_assert 20 recipes #10747

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

Merged
merged 9 commits into from
Apr 15, 2025
Merged
Show file tree
Hide file tree
Changes from all 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@20/build_tarballs.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
version = v"20.1.2"

include("../common.jl")

build_tarballs(ARGS, configure_build(ARGS, version; experimental_platforms=true)...;
preferred_gcc_version=v"10", preferred_llvm_version=v"16", julia_compat="1.6")
# Build trigger: 9
22 changes: 22 additions & 0 deletions L/LLVM/LLVM_full@20/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/__cxx03/locale b/include/__cxx03/locale
index 6360bbc2f6b6..add75d2fc6f5 100644
--- a/include/__cxx03/locale
+++ b/include/__cxx03/locale
@@ -727,7 +727,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_l(__a, &__p2, __base);
__libcpp_remove_reference_t<decltype(errno)> __current_errno = errno;
if (__current_errno == 0)
errno = __save_errno;
@@ -759,7 +759,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_l(__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@20/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@20/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,51 @@
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 69c2e5978689..1a5dabd33e3f 100644
--- a/mlir/test/CMakeLists.txt
+++ b/mlir/test/CMakeLists.txt
@@ -117,8 +117,8 @@ set(MLIR_TEST_DEPENDS
mlir-rewrite
mlir-tblgen
mlir-translate
- tblgen-lsp-server
- tblgen-to-irdl
+ # tblgen-lsp-server
+ # tblgen-to-irdl
)
if(NOT MLIR_STANDALONE_BUILD)
list(APPEND MLIR_TEST_DEPENDS FileCheck count not split-file)
diff --git a/mlir/tools/CMakeLists.txt b/mlir/tools/CMakeLists.txt
index 72a857b114fb..c606a3b3dd1d 100644
--- a/mlir/tools/CMakeLists.txt
+++ b/mlir/tools/CMakeLists.txt
@@ -7,8 +7,8 @@ add_subdirectory(mlir-reduce)
add_subdirectory(mlir-rewrite)
add_subdirectory(mlir-shlib)
add_subdirectory(mlir-translate)
-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)
25 changes: 25 additions & 0 deletions L/LLVM/LLVM_full@20/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

13 changes: 13 additions & 0 deletions L/LLVM/LLVM_full@20/bundled/patches/0800-mingw-fix.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWindows.cpp b/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWindows.cpp
index dfc32ac9db29..7d0c7573f2e0 100644
--- a/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWindows.cpp
+++ b/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWindows.cpp
@@ -24,7 +24,7 @@ using namespace fuzzer;
#if LIBFUZZER_MSVC
#define GET_FUNCTION_ADDRESS(fn) &fn
#else
-#define GET_FUNCTION_ADDRESS(fn) __builtin_function_start(fn)
+#define GET_FUNCTION_ADDRESS(fn) (void *)(&fn)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new patch, without it the compilation fails without any message. Maybe a compiler bug, I'm not sure.

#endif // LIBFUZER_MSVC

// Copied from compiler-rt/lib/sanitizer_common/sanitizer_win_defs.h
7 changes: 7 additions & 0 deletions L/LLVM/LLVM_full_assert@20/build_tarballs.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
version = v"20.1.2"

include("../common.jl")

build_tarballs(ARGS, configure_build(ARGS, version; assert=true, experimental_platforms=true)...;
preferred_gcc_version=v"10", preferred_llvm_version=v"16", julia_compat="1.6")
# Build trigger: 10
1 change: 1 addition & 0 deletions L/LLVM/LLVM_full_assert@20/bundled
14 changes: 11 additions & 3 deletions L/LLVM/common.jl
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ const llvm_tags = Dict(
v"17.0.6" => "0007e48608221f440dce2ea0d3e4f561fc10d3c6", # julia-17.0.6-5
v"18.1.7" => "ed30d043a240d06bb6e010a41086e75713156f4f", # julia-18.1.7-2
v"19.1.7" => "a9df916357c2fd0851df026a84f83d87efd6e212", # julia-19.1.7-1
v"20.1.2" => "4f020e6d4d37d271d46befedb896ea3df95fdc49", # julia-20.1.2-0
)

const buildscript = raw"""
Expand Down Expand Up @@ -122,6 +123,7 @@ else
fi
if [[ "${LLVM_MAJ_VER}" -gt "13" ]]; then
CMAKE_FLAGS+=(-DMLIR_BUILD_MLIR_C_DYLIB:BOOL=ON)
CMAKE_FLAGS+=(-DMLIR_LINK_MLIR_DYLIB:BOOL=OFF)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We used to not set this nor did LLVM, now LLVM sets this to LLVM_LINK_LLVM_DYLIB. We set that to true so disable this explicitly to prevent some issues on windows, llvm/llvm-project#119408 (comment). Maybe we want to only disable this on windows/ try and fix the windows issue?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't have a strong opinion honestly.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this should affect functionality for users of mlir, so not worried

fi
CMAKE_FLAGS+=(-DCMAKE_CROSSCOMPILING=False)
CMAKE_FLAGS+=(-DCMAKE_TOOLCHAIN_FILE=${CMAKE_HOST_TOOLCHAIN})
Expand All @@ -139,7 +141,10 @@ if [[ "${LLVM_MAJ_VER}" -gt "12" ]]; then
ninja -j${nproc} mlir-linalg-ods-yaml-gen
fi
if [[ "${LLVM_MAJ_VER}" -gt "14" ]]; then
ninja -j${nproc} clang-tidy-confusable-chars-gen clang-pseudo-gen mlir-pdll
ninja -j${nproc} clang-tidy-confusable-chars-gen mlir-pdll
fi
if [[ "${LLVM_MAJ_VER}" -gt "14" ]] && [[ "${LLVM_MAJ_VER}" -le "19" ]]; then
ninja -j${nproc} clang-pseudo-gen
fi
if [[ "${LLVM_MAJ_VER}" -ge "19" ]]; then
ninja -j${nproc} mlir-src-sharder
Expand Down Expand Up @@ -188,13 +193,14 @@ CMAKE_FLAGS+=(-DLLVM_ENABLE_PROJECTS:STRING=$LLVM_PROJECTS)

if [[ "${LLVM_MAJ_VER}" -gt "13" ]]; then
CMAKE_FLAGS+=(-DMLIR_BUILD_MLIR_C_DYLIB:BOOL=ON)
CMAKE_FLAGS+=(-DMLIR_LINK_MLIR_DYLIB:BOOL=OFF)
fi

# We want a build with no bindings
CMAKE_FLAGS+=(-DLLVM_BINDINGS_LIST="" )

# Turn on ZLIB
CMAKE_FLAGS+=(-DLLVM_ENABLE_ZLIB=ON)
CMAKE_FLAGS+=(-DLLVM_ENABLE_ZLIB=FORCE_ON)
# Turn off XML2
CMAKE_FLAGS+=(-DLLVM_ENABLE_LIBXML2=OFF)

Expand Down Expand Up @@ -273,9 +279,11 @@ if [[ "${LLVM_MAJ_VER}" -gt "12" ]]; then
fi
if [[ "${LLVM_MAJ_VER}" -gt "14" ]]; then
CMAKE_FLAGS+=(-DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${WORKSPACE}/bootstrap/bin/clang-tidy-confusable-chars-gen)
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}" -gt "14" ]] && [[ "${LLVM_MAJ_VER}" -le "19" ]]; then
CMAKE_FLAGS+=(-DCLANG_PSEUDO_GEN=${WORKSPACE}/bootstrap/bin/clang-pseudo-gen)
fi
if [[ "${LLVM_MAJ_VER}" -ge "19" ]]; then
CMAKE_FLAGS+=(-DLLVM_NATIVE_TOOL_DIR=${WORKSPACE}/bootstrap/bin)
fi
Expand Down