blob: 7d8f463699a2ec0f509aa916853cf51d0a87f9b3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
# Contributor Travis Tilley <ttilley@gmail.com>
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=clang
# Note: Update together with llvm.
pkgver=18.1.8
pkgrel=0
_llvmver=${pkgver%%.*}
pkgdesc="A C language family front-end for LLVM"
arch="all"
options="!dbg"
url="https://llvm.org/"
license="NCSA"
depends_dev="$pkgname=$pkgver-r$pkgrel"
makedepends="cmake isl-dev libedit-dev libexecinfo-dev libxml2-dev libxml2-utils
llvm${_llvmver}-dev llvm${_llvmver}-static llvm${_llvmver}-test-utils
z3 z3-dev"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-libs
$pkgname-analyzer::noarch"
source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-project-$pkgver.src.tar.xz
0001-Add-support-for-Ad-lie-Linux.patch
big-endian-32.patch
cfe-005-ppc64-dynamic-linker-path.patch
ppc-dirwatcher.patch
ppc-interp.patch
use-llvm-lit.patch
"
builddir="$srcdir/llvm-project-$pkgver.src/$pkgname"
prepare() {
default_prepare
#1054
rm -fr \
test/Coverage/html-diagnostics.c \
test/Coverage/html-multifile-diagnostics.c \
test/Modules/crash-vfs-path-emptydir-entries.m \
test/Modules/crash-vfs-path-symlink-component.m \
test/Modules/crash-vfs-path-symlink-topheader.m \
test/Modules/crash-vfs-path-traversal.m \
test/Modules/crash-vfs-relative-overlay.m \
test/Modules/crash-vfs-umbrella-frameworks.m \
test/Modules/load-module-with-errors.m \
test/Modules/modules-with-same-name.m \
test/Modules/prebuilt-implicit-modules.m \
test/Modules/prune.m \
test/Modules/signal.m \
test/VFS/module-header-mismatches.m \
test/VFS/module_missing_vfs.m \
test/utils/update_cc_test_checks/basic-cplusplus.test \
test/utils/update_cc_test_checks/check-globals.test \
test/utils/update_cc_test_checks/check_attrs.test \
test/utils/update_cc_test_checks/def-and-decl.test \
test/utils/update_cc_test_checks/exec-all-runlines.test \
test/utils/update_cc_test_checks/explicit-template-instantiation.test \
test/utils/update_cc_test_checks/generated-funcs-regex.test \
test/utils/update_cc_test_checks/generated-funcs.test \
test/utils/update_cc_test_checks/global-hex-value-regex.test \
test/utils/update_cc_test_checks/global-value-regex.test \
test/utils/update_cc_test_checks/mangled_names.test \
test/utils/update_cc_test_checks/on_the_fly_arg_change.test \
test/utils/update_cc_test_checks/prefix-never-matches.test \
test/utils/update_cc_test_checks/replace-value-regex-across-runs.test \
test/utils/update_cc_test_checks/resolve-tmp-conflict.test \
;
rm -f test/Driver/ppc-float-abi-warning.cpp
# known broken on 32-bit platforms
rm -f test/CodeGenCUDA/static-device-var-rdc.cu
case $CARCH in
ppc)
for _interp_test in code-undo.cpp const.cpp execute-stmts.cpp \
execute-weak.cpp execute.cpp fail.cpp global-dtor.cpp \
inline-virtual.cpp lambda.cpp multiline.cpp \
simple-exception.cpp; do
rm test/Interpreter/$_interp_test
done;;
esac
}
build() {
_build_type=MinSizeRel
case $CARCH in
ppc64)
# https://github.com/llvm/llvm-project/issues/102192
_build_type=Release;;
esac
CMAKE_PREFIX_PATH=/usr/lib/llvm$_llvmver/lib/cmake \
cmake -Wno-dev \
-DCMAKE_BUILD_TYPE=$_build_type \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_VERBOSE_MAKEFILE=OFF \
-DCLANG_VENDOR=${DISTRO_SHORT_NAME:-Adélie} \
-DCLANG_BUILD_EXAMPLES=OFF \
-DCLANG_INCLUDE_DOCS=ON \
-DCLANG_INCLUDE_TESTS=ON \
-DCLANG_PLUGIN_SUPPORT=ON \
-DLIBCLANG_BUILD_STATIC=ON \
-DLLVM_ENABLE_EH=ON \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_MAIN_SRC_DIR="$srcdir/llvm-$pkgver.src" \
-DLLVM_EXTERNAL_LIT="/usr/lib/llvm$_llvmver/bin/lit" \
-Bbuild \
.
make -C build clang-tblgen
# too memory hungry
if [ -z "$JOBS" ] || [ $JOBS -gt 32 ]; then
make -C build -j32
else
make -C build
fi
}
check() {
make -C build check-clang
}
package() {
make DESTDIR="$pkgdir" -C build install
install -m 644 build/lib/libclang.a "$pkgdir"/usr/lib
# mozilla will never be happy
mkdir -p "$pkgdir"/usr/lib/llvm$_llvmver/bin
mkdir -p "$pkgdir"/usr/lib/llvm$_llvmver/lib
for _dir in bin lib; do
cd "$pkgdir"/usr/$_dir
for _file in *; do
[ -f $_file ] || continue
ln -s "../../../$_dir/$_file" \
"$pkgdir"/usr/lib/llvm$_llvmver/$_dir/$_file
done
cd "$OLDPWD"
done
# needed for at least Qt Creator
mkdir -p "$pkgdir"/usr/include/llvm$_llvmver
ln -s ../clang "$pkgdir"/usr/include/llvm$_llvmver/clang
ln -s ../clang-c "$pkgdir"/usr/include/llvm$_llvmver/clang-c
}
static() {
pkgdesc="Static libraries for clang"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/
strip -d "$subpkgdir"/usr/lib/*.a
}
analyzer() {
pkgdesc="Clang source code analysis framework"
depends="$pkgname=$pkgver-r$pkgrel perl python3"
cd "$pkgdir"
mkdir -p "$subpkgdir"/usr/bin \
"$subpkgdir"/usr/libexec \
"$subpkgdir"/usr/share/
mv usr/bin/scan-* "$subpkgdir"/usr/bin/
mv usr/libexec/*-analyzer "$subpkgdir"/usr/libexec/
mv usr/share/scan-* "$subpkgdir"/usr/share/
}
sha512sums="25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db llvm-project-18.1.8.src.tar.xz
d37d2339a76c21666aa4405b2a620100e6967eb933535b5cea05f5de25a4d75510479443500715529cea38014028741d71553c7b247d5f349a05660133d66bc6 0001-Add-support-for-Ad-lie-Linux.patch
241a087888b7b5373b54653c4675c77c70d82b61a1b79359cba7d5fe0187851e790cb4e7e278a0a59c660b9a980cf087b393dc43a19a975fc9b97717bca12bc4 big-endian-32.patch
8272ec0eeb93287c9cc961099139f7cb0f94561befc31a4521387fa5f7216dc4b3d99750c4560a0b71ec4acde5bd776abef733cfafe81058ef054b62f72fc209 cfe-005-ppc64-dynamic-linker-path.patch
0032fdd3864870d345caff9c4ff44f58bebc802bddf06c4b3bf30276c89e237167e6dea03456d322d3f6e2ee5e3a2ecf9f649ed033f0ab078b80bda44371b3ce ppc-dirwatcher.patch
a2d90bcfc7cee261d6c8ac3b5dd011f55eab94deff456b63c5ef3598397e358b271e7ae86dec9e56c09c874736645ffbecccde4d31826d9b20908a4a16c61387 ppc-interp.patch
6c6b4fc49539ecf02e4eec9c2bbd89cc37fe01383e7884aa52c90ab0a4aa23cd9a86716bc645af6949f787d2fe3b9a3ad177baef1edbec928437872d14db536d use-llvm-lit.patch"
|