Skip to content

Commit e52f7ea

Browse files
author
Marc-André Moreau
committed
add llvm 18
1 parent b17db9a commit e52f7ea

File tree

4 files changed

+143
-3
lines changed

4 files changed

+143
-3
lines changed

.github/workflows/llvm-prebuilt.yml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@ jobs:
99
matrix:
1010
arch: [ x86_64, aarch64 ]
1111
os: [ windows, macos, ubuntu-20.04, ubuntu-22.04 ]
12-
version: [ 14.0.6, 16.0.6 ]
12+
version: [ 14.0.6, 16.0.6, 18.1.8 ]
1313

1414
include:
1515
- version: 14.0.6
1616
branch: release/14.x
1717
- version: 16.0.6
1818
branch: release/16.x
19+
- version: 18.1.8
20+
branch: release/18.x
1921

2022
- os: windows
2123
runner: windows-2022
@@ -122,10 +124,14 @@ jobs:
122124
git -C llvm-project apply ../llvm-prebuilt/patches/llvm-14-add-lld-install-targets.patch
123125
git -C llvm-project apply ../llvm-prebuilt/patches/llvm-14-add-llvm-name-prefix-to-llc-lli-opt-tools.patch
124126
git -C llvm-project apply ../llvm-prebuilt/patches/llvm-14-force-disable-clang-ast-introspection.patch
125-
} else {
127+
} elseif ('${{matrix.version}}' -eq '16.0.6') {
126128
git -C llvm-project apply ../llvm-prebuilt/patches/llvm-16-add-lld-install-targets.patch
127129
git -C llvm-project apply ../llvm-prebuilt/patches/llvm-16-add-llvm-name-prefix-to-llc-lli-opt-tools.patch
128130
git -C llvm-project apply ../llvm-prebuilt/patches/llvm-16-force-disable-clang-ast-introspection.patch
131+
} elseif ('${{matrix.version}}' -eq '18.1.8') {
132+
git -C llvm-project apply ../llvm-prebuilt/patches/llvm-18-add-lld-install-targets.patch
133+
git -C llvm-project apply ../llvm-prebuilt/patches/llvm-18-add-llvm-name-prefix-to-llc-lli-opt-tools.patch
134+
git -C llvm-project apply ../llvm-prebuilt/patches/llvm-18-force-disable-clang-ast-introspection.patch
129135
}
130136
131137
- name: Enable Windows host environment
@@ -145,7 +151,7 @@ jobs:
145151
shell: pwsh
146152
run: |
147153
cmake --build llvm-host --target llvm-tblgen clang-tblgen llvm-config
148-
if ('${{matrix.version}}' -eq '16.0.6') {
154+
if ('${{matrix.version}}' -ne '14.0.6') {
149155
cmake --build llvm-host --target clang-tidy-confusable-chars-gen clang-pseudo-gen
150156
}
151157
$HostBinPath = "$Env:GITHUB_WORKSPACE/llvm-host/bin"
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
From 1136224bab481a869138d83f51cbd1c76a51803f Mon Sep 17 00:00:00 2001
2+
From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= <mamoreau@devolutions.net>
3+
Date: Thu, 2 Nov 2023 10:02:08 -0400
4+
Subject: [PATCH 1/3] add lld install targets
5+
6+
---
7+
lld/CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++
8+
lld/cmake/modules/AddLLD.cmake | 2 +-
9+
2 files changed, 33 insertions(+), 1 deletion(-)
10+
11+
diff --git a/lld/CMakeLists.txt b/lld/CMakeLists.txt
12+
index 595c286abd91..7291cdf62baa 100644
13+
--- a/lld/CMakeLists.txt
14+
+++ b/lld/CMakeLists.txt
15+
@@ -182,9 +182,19 @@ include_directories(BEFORE
16+
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
17+
install(DIRECTORY include/
18+
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
19+
+ COMPONENT lld-headers
20+
FILES_MATCHING
21+
PATTERN "*.h"
22+
)
23+
+
24+
+ add_custom_target(lld-headers)
25+
+ set_target_properties(lld-headers PROPERTIES FOLDER "Misc")
26+
+
27+
+ if(NOT LLVM_ENABLE_IDE)
28+
+ add_llvm_install_targets(install-lld-headers
29+
+ DEPENDS lld-headers
30+
+ COMPONENT lld-headers)
31+
+ endif()
32+
endif()
33+
34+
add_subdirectory(Common)
35+
@@ -203,4 +213,26 @@ add_subdirectory(MachO)
36+
add_subdirectory(MinGW)
37+
add_subdirectory(wasm)
38+
39+
+# Custom target to install all lld libraries.
40+
+add_custom_target(lld-libraries)
41+
+set_target_properties(lld-libraries PROPERTIES FOLDER "Misc")
42+
+
43+
+if(NOT LLVM_ENABLE_IDE)
44+
+ add_llvm_install_targets(install-lld-libraries
45+
+ DEPENDS lld-libraries
46+
+ COMPONENT lld-libraries)
47+
+endif()
48+
+
49+
+get_property(LLD_EXPORTS GLOBAL PROPERTY LLD_EXPORTS)
50+
+if(LLD_EXPORTS)
51+
+ list(REMOVE_DUPLICATES LLD_EXPORTS)
52+
+ foreach(lib ${LLD_EXPORTS})
53+
+ add_dependencies(lld-libraries ${lib})
54+
+ if(NOT LLVM_ENABLE_IDE)
55+
+ add_dependencies(install-lld-libraries install-${lib})
56+
+ add_dependencies(install-lld-libraries-stripped install-${lib}-stripped)
57+
+ endif()
58+
+ endforeach()
59+
+endif()
60+
+
61+
add_subdirectory(cmake/modules)
62+
diff --git a/lld/cmake/modules/AddLLD.cmake b/lld/cmake/modules/AddLLD.cmake
63+
index 2ee066b41535..1ae2f1ce43e1 100644
64+
--- a/lld/cmake/modules/AddLLD.cmake
65+
+++ b/lld/cmake/modules/AddLLD.cmake
66+
@@ -22,7 +22,7 @@ macro(add_lld_library name)
67+
ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
68+
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
69+
70+
- if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
71+
+ if (NOT CMAKE_CONFIGURATION_TYPES)
72+
add_llvm_install_targets(install-${name}
73+
DEPENDS ${name}
74+
COMPONENT ${name})
75+
--
76+
2.34.1
77+
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
From 64587365a9a5e3f2b7004b60d0863211bfc1f112 Mon Sep 17 00:00:00 2001
2+
From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= <mamoreau@devolutions.net>
3+
Date: Thu, 2 Nov 2023 10:12:14 -0400
4+
Subject: [PATCH 2/3] add llvm name prefix to llc,lli,opt tools
5+
6+
---
7+
llvm/tools/CMakeLists.txt | 4 ++++
8+
1 file changed, 4 insertions(+)
9+
10+
diff --git a/llvm/tools/CMakeLists.txt b/llvm/tools/CMakeLists.txt
11+
index c6116ac81d12..12c6b9a037ee 100644
12+
--- a/llvm/tools/CMakeLists.txt
13+
+++ b/llvm/tools/CMakeLists.txt
14+
@@ -58,6 +58,10 @@ endforeach(p)
15+
16+
set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} PARENT_SCOPE)
17+
18+
+set_target_properties(llc PROPERTIES OUTPUT_NAME "llvm-llc")
19+
+set_target_properties(lli PROPERTIES OUTPUT_NAME "llvm-lli")
20+
+set_target_properties(opt PROPERTIES OUTPUT_NAME "llvm-opt")
21+
+
22+
if (LLVM_TOOL_LLVM_DRIVER_BUILD)
23+
# This is explicitly added at the end _after_ all tool projects so that it can
24+
# scrape up tools from other projects into itself.
25+
--
26+
2.34.1
27+
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
From 14d0e61cd56ed90a808c768d83b24734fdcd2ebf Mon Sep 17 00:00:00 2001
2+
From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= <mamoreau@devolutions.net>
3+
Date: Thu, 2 Nov 2023 10:04:13 -0400
4+
Subject: [PATCH 3/3] force-disable clang ast introspection
5+
6+
---
7+
clang/lib/Tooling/CMakeLists.txt | 7 +------
8+
1 file changed, 1 insertion(+), 6 deletions(-)
9+
10+
diff --git a/clang/lib/Tooling/CMakeLists.txt b/clang/lib/Tooling/CMakeLists.txt
11+
index aff39e4de13c..4ea013e71d3f 100644
12+
--- a/clang/lib/Tooling/CMakeLists.txt
13+
+++ b/clang/lib/Tooling/CMakeLists.txt
14+
@@ -24,12 +24,7 @@ string(SUBSTRING ${CMAKE_CURRENT_BINARY_DIR} 0 ${PATH_LIB_START} PATH_HEAD)
15+
string(SUBSTRING ${CMAKE_CURRENT_BINARY_DIR} ${PATH_LIB_END} -1 PATH_TAIL)
16+
string(CONCAT BINARY_INCLUDE_DIR ${PATH_HEAD} "/include/clang/" ${PATH_TAIL})
17+
18+
-if (NOT Python3_EXECUTABLE
19+
- OR APPLE
20+
- OR CMAKE_CROSSCOMPILING
21+
- OR GENERATOR_IS_MULTI_CONFIG
22+
- OR NOT LLVM_NATIVE_ARCH IN_LIST LLVM_TARGETS_TO_BUILD
23+
- )
24+
+if (TRUE) # force-disable clang ast introspection
25+
configure_file(
26+
EmptyNodeIntrospection.inc.in
27+
${BINARY_INCLUDE_DIR}/NodeIntrospection.inc
28+
--
29+
2.34.1
30+

0 commit comments

Comments
 (0)