1 | %define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0} |
---|
2 | |
---|
3 | %define _unpackaged_files_terminate_build 1 |
---|
4 | |
---|
5 | # Build options: |
---|
6 | # Components skipped by default: |
---|
7 | %bcond_with doxygen |
---|
8 | %bcond_with ocaml |
---|
9 | %bcond_with force_gold |
---|
10 | |
---|
11 | # Documentation install path |
---|
12 | %global llvmdocdir() %{_docdir}/%1-%{version} |
---|
13 | |
---|
14 | %define _unpackaged_files_terminate_build 1 |
---|
15 | |
---|
16 | Name: llvm |
---|
17 | Version: 5.0.1 |
---|
18 | Release: 2%{?_dist_release} |
---|
19 | Summary: The Low Level Virtual Machine |
---|
20 | Summary(ja): LLVM - 低レベルバーチャルマシン |
---|
21 | |
---|
22 | Group: Development/Languages |
---|
23 | License: NCSA |
---|
24 | URL: http://llvm.org/ |
---|
25 | Source0: http://llvm.org/releases/%{version}/llvm-%{version}.src.tar.xz |
---|
26 | Source1: http://llvm.org/releases/%{version}/cfe-%{version}.src.tar.xz |
---|
27 | Source2: http://llvm.org/releases/%{version}/compiler-rt-%{version}.src.tar.xz |
---|
28 | Source3: http://llvm.org/releases/%{version}/lldb-%{version}.src.tar.xz |
---|
29 | |
---|
30 | # multilib fixes |
---|
31 | Source10: llvm-config.h |
---|
32 | Source11: clang-config.h |
---|
33 | |
---|
34 | # patches |
---|
35 | |
---|
36 | # recognize s390 as SystemZ when configuring build |
---|
37 | Patch0: llvm-3.7.1-cmake-s390.patch |
---|
38 | Patch3: 0001-CMake-Split-static-library-exports-into-their-own-ex.patch |
---|
39 | # FIXME: Symbol versioning breaks some unittests when statically linking |
---|
40 | # libstdc++, so we disable it for now. |
---|
41 | Patch4: 0001-Revert-Add-a-linker-script-to-version-LLVM-symbols.patch |
---|
42 | Patch5: 0001-PowerPC-Don-t-use-xscvdpspn-on-the-P7.patch |
---|
43 | |
---|
44 | Patch100: 0001-lit.cfg-Remove-substitutions-for-clang-llvm-tools.patch |
---|
45 | Patch200: 0001-Fix-AArch64-build-with-glibc-2.26.patch |
---|
46 | |
---|
47 | # Vine Patch |
---|
48 | Patch1000: clang-3.8.1-driver-ld.gold.patch |
---|
49 | Patch1002: clang-3.8.1-driver-vine.patch |
---|
50 | |
---|
51 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root |
---|
52 | |
---|
53 | BuildRequires: binutils-devel |
---|
54 | BuildRequires: cmake |
---|
55 | BuildRequires: bison |
---|
56 | BuildRequires: chrpath |
---|
57 | BuildRequires: flex |
---|
58 | BuildRequires: gcc-c++ >= 3.4 |
---|
59 | BuildRequires: groff |
---|
60 | BuildRequires: libffi-devel |
---|
61 | BuildRequires: libstdc++-devel |
---|
62 | BuildRequires: libstdc++-static |
---|
63 | BuildRequires: libtool-ltdl-devel |
---|
64 | BuildRequires: libxml2-devel |
---|
65 | BuildRequires: ocaml-findlib |
---|
66 | BuildRequires: ocaml-ctypes |
---|
67 | BuildRequires: ocaml-ounit |
---|
68 | # for DejaGNU test suite |
---|
69 | BuildRequires: dejagnu tcl-devel python |
---|
70 | %if %{with doxygen} |
---|
71 | BuildRequires: doxygen graphviz |
---|
72 | %endif |
---|
73 | # pod2man |
---|
74 | BuildRequires: perl |
---|
75 | # lldb |
---|
76 | BuildRequires: swig |
---|
77 | BuildRequires: libedit-devel |
---|
78 | BuildRequires: python-devel >= 2.7 |
---|
79 | |
---|
80 | Requires: llvm-libs = %{version}-%{release} |
---|
81 | |
---|
82 | # LLVM is not supported on PPC64 |
---|
83 | # http://llvm.org/bugs/show_bug.cgi?id=3729 |
---|
84 | ExcludeArch: ppc64 |
---|
85 | |
---|
86 | %description |
---|
87 | LLVM is a compiler infrastructure designed for compile-time, |
---|
88 | link-time, runtime, and idle-time optimization of programs from |
---|
89 | arbitrary programming languages. The compiler infrastructure includes |
---|
90 | mirror sets of programming tools as well as libraries with equivalent |
---|
91 | functionality. |
---|
92 | |
---|
93 | |
---|
94 | %package devel |
---|
95 | Summary: Libraries and header files for LLVM |
---|
96 | Summary(ja): LLVM のライブラリおよびヘッダファイル |
---|
97 | Group: Development/Libraries |
---|
98 | Requires: %{name} = %{version}-%{release} |
---|
99 | Requires: libstdc++-devel |
---|
100 | Requires: libffi-devel |
---|
101 | |
---|
102 | %description devel |
---|
103 | This package contains library and header files needed to develop new |
---|
104 | native programs that use the LLVM infrastructure. |
---|
105 | |
---|
106 | |
---|
107 | %package doc |
---|
108 | Summary: Documentation for LLVM |
---|
109 | Summary(ja): LLVM のドキュメント |
---|
110 | Group: Documentation |
---|
111 | BuildArch: noarch |
---|
112 | Requires: %{name} = %{version}-%{release} |
---|
113 | # might seem redundant, but needed to kill off the old arch-ed -doc subpackage |
---|
114 | Obsoletes: %{name}-doc < %{version}-%{release} |
---|
115 | |
---|
116 | %description doc |
---|
117 | Documentation for the LLVM compiler infrastructure. |
---|
118 | |
---|
119 | |
---|
120 | %package libs |
---|
121 | Summary: LLVM shared libraries |
---|
122 | Summary(ja): LLVM 共有ライブラリ |
---|
123 | Group: System Environment/Libraries |
---|
124 | |
---|
125 | %description libs |
---|
126 | Shared libraries for the LLVM compiler infrastructure. |
---|
127 | |
---|
128 | %description libs -l ja |
---|
129 | LLVM コンパイラ基盤の共有ライブラリです. |
---|
130 | |
---|
131 | %package static |
---|
132 | Summary: LLVM static libraries |
---|
133 | Summary(ja): LLVM 静的ライブラリ |
---|
134 | Requires: llvm-devel = %{version}-%{release} |
---|
135 | |
---|
136 | %description static |
---|
137 | Static libraries for the LLVM compiler infrastructure. |
---|
138 | |
---|
139 | %description static -l ja |
---|
140 | LLVM コンパイラ基盤の静的ライブラリです. |
---|
141 | |
---|
142 | |
---|
143 | %package -n clang |
---|
144 | Summary: A C language family front-end for LLVM |
---|
145 | Summary(ja): LLVM の C 言語フロントエンド |
---|
146 | License: NCSA |
---|
147 | Group: Development/Languages |
---|
148 | Requires: %{name} = %{version}-%{release} |
---|
149 | # clang requires gcc, clang++ requires libstdc++-devel |
---|
150 | Requires: libstdc++-devel |
---|
151 | # remove clang-doc pacakge |
---|
152 | Obsoletes: clang-doc < %{version}-%{release} |
---|
153 | |
---|
154 | %description -n clang |
---|
155 | clang: noun |
---|
156 | 1. A loud, resonant, metallic sound. |
---|
157 | 2. The strident call of a crane or goose. |
---|
158 | 3. C-language family front-end toolkit. |
---|
159 | |
---|
160 | The goal of the Clang project is to create a new C, C++, Objective C |
---|
161 | and Objective C++ front-end for the LLVM compiler. Its tools are built |
---|
162 | as libraries and designed to be loosely-coupled and extensible. |
---|
163 | |
---|
164 | %Package -n clang-libs |
---|
165 | Summary: Runtime library for clang |
---|
166 | Summary(ja): Clang のランタイムライブラリ |
---|
167 | Group: System Environment/Libraries |
---|
168 | |
---|
169 | %description -n clang-libs |
---|
170 | Runtime library for clang. |
---|
171 | |
---|
172 | %description -n clang-libs -l ja |
---|
173 | Clang のランタイムライブラリです. |
---|
174 | |
---|
175 | %package -n clang-devel |
---|
176 | Summary: Header files for clang |
---|
177 | Summary(ja): Clang のヘッダファイル |
---|
178 | Group: Development/Libraries |
---|
179 | Requires: clang = %{version}-%{release} |
---|
180 | |
---|
181 | %description -n clang-devel |
---|
182 | This package contains header files for the Clang compiler. |
---|
183 | |
---|
184 | %description -n clang-devel -l ja |
---|
185 | Clang コンパイラのヘッダファイル集です. |
---|
186 | |
---|
187 | %package -n clang-analyzer |
---|
188 | Summary: A source code analysis framework |
---|
189 | Summary(ja): ソースコード分析フレームワーク |
---|
190 | License: NCSA |
---|
191 | Group: Development/Languages |
---|
192 | Requires: clang = %{version}-%{release} |
---|
193 | # not picked up automatically since files are currently not instaled |
---|
194 | # in standard Python hierarchies yet |
---|
195 | Requires: python |
---|
196 | |
---|
197 | %description -n clang-analyzer |
---|
198 | The Clang Static Analyzer consists of both a source code analysis |
---|
199 | framework and a standalone tool that finds bugs in C and Objective-C |
---|
200 | programs. The standalone tool is invoked from the command-line, and is |
---|
201 | intended to run in tandem with a build of a project or code base. |
---|
202 | |
---|
203 | %package -n python-clang |
---|
204 | Summary: Python bindings for clang |
---|
205 | Requires: %{name}-libs%{?_isa} = %{version}-%{release} |
---|
206 | Requires: python |
---|
207 | %description -n python-clang |
---|
208 | Python bindings for clang |
---|
209 | |
---|
210 | |
---|
211 | #%package -n clang-doc |
---|
212 | #Summary: Documentation for Clang |
---|
213 | #Summary(ja): Clang のドキュメント |
---|
214 | #Group: Documentation |
---|
215 | #Requires: %{name} = %{version}-%{release} |
---|
216 | # |
---|
217 | #%description -n clang-doc |
---|
218 | #Documentation for the Clang compiler front-end. |
---|
219 | |
---|
220 | %package -n lldb |
---|
221 | Summary: Next generation high-performance debugger |
---|
222 | Summary(ja): 高性能デバッガー |
---|
223 | License: NCSA |
---|
224 | Group: Development/Debuggers |
---|
225 | Requires: %{name} = %{version}-%{release} |
---|
226 | |
---|
227 | %description -n lldb |
---|
228 | LLDB is a next generation, high-performance debugger. It is built as a set |
---|
229 | of reusable components which highly leverage existing libraries in the |
---|
230 | larger LLVM Project, such as the Clang expression parser and LLVM |
---|
231 | disassembler. |
---|
232 | |
---|
233 | %package -n lldb-devel |
---|
234 | Summary: Header files for LLDB |
---|
235 | Summary(ja): LLDB のヘッダファイル |
---|
236 | Group: Development/Libraries |
---|
237 | Requires: lldb = %{version}-%{release} |
---|
238 | |
---|
239 | %description -n lldb-devel |
---|
240 | This package contains header files for the LLDB debugger. |
---|
241 | |
---|
242 | |
---|
243 | %if %{with doxygen} |
---|
244 | %package apidoc |
---|
245 | Summary: API documentation for LLVM |
---|
246 | Summary(ja): LLVM の API ドキュメント |
---|
247 | Group: Documentation |
---|
248 | BuildArch: noarch |
---|
249 | Requires: %{name}-docs = %{version}-%{release} |
---|
250 | |
---|
251 | %description apidoc |
---|
252 | API documentation for the LLVM compiler infrastructure. |
---|
253 | |
---|
254 | %package -n clang-apidoc |
---|
255 | Summary: API documentation for Clang |
---|
256 | Summary(ja): Clang の API ドキュメント |
---|
257 | Group: Documentation |
---|
258 | BuildArch: noarch |
---|
259 | |
---|
260 | %description -n clang-apidoc |
---|
261 | API documentation for the Clang compiler. |
---|
262 | %endif |
---|
263 | |
---|
264 | |
---|
265 | %package -n python-lldb |
---|
266 | Summary: Python module for LLDB |
---|
267 | Summary(ja): LLDB用Pythonモジュール |
---|
268 | BuildRequires: python-devel |
---|
269 | Requires: python-six |
---|
270 | |
---|
271 | %description -n python-lldb |
---|
272 | The package contains the LLDB Python module. |
---|
273 | |
---|
274 | |
---|
275 | %if %{with ocaml} |
---|
276 | %package ocaml |
---|
277 | Summary: OCaml binding for LLVM |
---|
278 | Summary(ja): LLVM の OCaml バインディング |
---|
279 | Group: System Environment/Libraries |
---|
280 | Requires: %{name} = %{version}-%{release} |
---|
281 | Requires: ocaml |
---|
282 | |
---|
283 | %description ocaml |
---|
284 | OCaml binding for LLVM. |
---|
285 | |
---|
286 | %package ocaml-devel |
---|
287 | Summary: Development files for %{name}-ocaml |
---|
288 | Summary(ja): %{name}-ocaml の開発ファイル |
---|
289 | Group: Development/Libraries |
---|
290 | Requires: %{name}-devel = %{version}-%{release} |
---|
291 | Requires: %{name}-ocaml = %{version}-%{release} |
---|
292 | Requires: ocaml |
---|
293 | |
---|
294 | %description ocaml-devel |
---|
295 | The %{name}-ocaml-devel package contains libraries and signature files |
---|
296 | for developing applications that use %{name}-ocaml. |
---|
297 | |
---|
298 | %package ocaml-doc |
---|
299 | Summary: Documentation for %{name}-ocaml |
---|
300 | Summary(ja): %{name}-ocaml のドキュメント |
---|
301 | Group: Documentation |
---|
302 | BuildArch: noarch |
---|
303 | Requires: %{name}-ocaml = %{version}-%{release} |
---|
304 | # might seem redundant, but needed to kill off the old arch-ed -doc subpackage |
---|
305 | Obsoletes: %{name}-ocaml-doc < %{version}-%{release} |
---|
306 | |
---|
307 | %description ocaml-doc |
---|
308 | HTML documentation for LLVM's OCaml binding. |
---|
309 | |
---|
310 | %endif |
---|
311 | |
---|
312 | # compat32' |
---|
313 | %package -n compat32-%{name}-libs |
---|
314 | Summary: LLVM shared libraries |
---|
315 | Summary(ja): LLVM 共有ライブラリ |
---|
316 | Group: System Environment/Libraries |
---|
317 | Requires: %{name}-libs = %{version}-%{release} |
---|
318 | |
---|
319 | %description -n compat32-%{name}-libs |
---|
320 | Shared libraries for the LLVM compiler infrastructure. |
---|
321 | |
---|
322 | |
---|
323 | %prep |
---|
324 | %setup -q -a1 -a2 -a3 -n llvm-%{version}.src |
---|
325 | |
---|
326 | %patch0 -p1 |
---|
327 | %patch3 -p1 |
---|
328 | %patch4 -p1 |
---|
329 | %patch5 -p1 |
---|
330 | |
---|
331 | rm -rf tools/clang tools/lldb projects/compiler-rt |
---|
332 | mv cfe-%{version}.src tools/clang |
---|
333 | mv compiler-rt-%{version}.src projects/compiler-rt |
---|
334 | mv lldb-%{version}.src tools/lldb |
---|
335 | |
---|
336 | pushd tools/clang |
---|
337 | %patch100 -p1 |
---|
338 | popd |
---|
339 | |
---|
340 | pushd projects/compiler-rt |
---|
341 | %patch200 -p1 |
---|
342 | popd |
---|
343 | |
---|
344 | # Vine Linux |
---|
345 | %if %{with force_gold} |
---|
346 | pushd tools/clang |
---|
347 | %patch1000 -p1 -b .driver-ld.gold |
---|
348 | popd |
---|
349 | %endif |
---|
350 | #%patch1002 -p1 -b .driver-vine |
---|
351 | |
---|
352 | sed -i -e 's/"i686-linux-gnu",/"i686-linux-gnu","i686-vine-linux",/' tools/clang/lib/Driver/ToolChains/Gnu.cpp |
---|
353 | sed -i -e 's/"x86_64-linux-gnu",/"x86_64-linux-gnu","x86_64-vine-linux",/' tools/clang/lib/Driver/ToolChains/Gnu.cpp |
---|
354 | |
---|
355 | sed -i -e 's/"ld"/"ld.gold"/' tools/clang/include/clang/Driver/ToolChain.h |
---|
356 | |
---|
357 | %build |
---|
358 | mkdir build |
---|
359 | cd build |
---|
360 | |
---|
361 | CFLAGS="%{optflags} -fno-strict-aliasing -Wno-error=format-security -fPIC" |
---|
362 | CXXFLAGS="%{optflags} -fno-strict-aliasing -Wno-error=format-security -fPIC -std=c++11" |
---|
363 | TMP_PWD=$(pwd) |
---|
364 | LDFLAGS="%{?__global_ldflags} -L$TMP_PWD/%{_lib} -lpthread -ldl" |
---|
365 | |
---|
366 | %cmake .. \ |
---|
367 | -DBUILD_SHARED_LIBS:BOOL=OFF \ |
---|
368 | -DCMAKE_BUILD_TYPE=Release \ |
---|
369 | -DCMAKE_SHARED_LINKER_FLAGS="-Wl,-Bsymbolic -static-libstdc++" \ |
---|
370 | %if 0%{?__isa_bits} == 64 |
---|
371 | -DLLVM_LIBDIR_SUFFIX=64 \ |
---|
372 | %else |
---|
373 | -DLLVM_LIBDIR_SUFFIX= \ |
---|
374 | %endif |
---|
375 | -DLLVM_TARGETS_TO_BUILD="X86;AMDGPU;PowerPC;NVPTX;SystemZ;AArch64;ARM;BPF" \ |
---|
376 | -DLLVM_ENABLE_LIBCXX:BOOL=OFF \ |
---|
377 | -DLLVM_ENABLE_ZLIB:BOOL=ON \ |
---|
378 | -DLLVM_ENABLE_FFI:BOOL=ON \ |
---|
379 | -DLLVM_ENABLE_RTTI:BOOL=ON \ |
---|
380 | -DLLVM_BINUTILS_INCDIR=%{_includedir} \ |
---|
381 | -DLLVM_BUILD_RUNTIME:BOOL=ON \ |
---|
382 | -DLLVM_INCLUDE_TOOLS:BOOL=ON \ |
---|
383 | -DLLVM_BUILD_TOOLS:BOOL=ON \ |
---|
384 | -DLLVM_INCLUDE_TESTS:BOOL=ON \ |
---|
385 | -DLLVM_BUILD_TESTS:BOOL=ON \ |
---|
386 | -DLLVM_INCLUDE_EXAMPLES:BOOL=ON \ |
---|
387 | -DLLVM_BUILD_EXAMPLES:BOOL=OFF \ |
---|
388 | -DLLVM_INCLUDE_UTILS:BOOL=ON \ |
---|
389 | -DLLVM_INSTALL_UTILS:BOOL=OFF \ |
---|
390 | -DLLVM_INCLUDE_DOCS:BOOL=ON \ |
---|
391 | -DLLVM_ENABLE_SPHINX:BOOL=OFF \ |
---|
392 | %if %{with doxygen} |
---|
393 | -DLLVM_ENABLE_DOXYGEN:BOOL=ON \ |
---|
394 | %else |
---|
395 | -DLLVM_ENABLE_DOXYGEN:BOOL=OFF \ |
---|
396 | %endif |
---|
397 | -DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \ |
---|
398 | -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ |
---|
399 | -DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=ON \ |
---|
400 | -DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF \ |
---|
401 | -DLLVM_OPTIMIZED_TABLEGEN:BOOL=ON \ |
---|
402 | \ |
---|
403 | -DCLANG_ENABLE_ARCMT:BOOL=ON \ |
---|
404 | -DCLANG_ENABLE_STATIC_ANALYZER:BOOL=ON \ |
---|
405 | -DCLANG_INCLUDE_DOCS:BOOL=ON \ |
---|
406 | -DCLANG_INCLUDE_TESTS:BOOL=ON \ |
---|
407 | -DCLANG_PLUGIN_SUPPORT:BOOL=ON \ |
---|
408 | -DCLANG_BUILD_EXAMPLES:BOOL=OFF \ |
---|
409 | -DLIB_SUFFIX= \ |
---|
410 | \ |
---|
411 | -DLLDB_DISABLE_CURSES:BOOL=OFF \ |
---|
412 | -DLLDB_DISABLE_LIBEDIT:BOOL=OFF \ |
---|
413 | -DLLDB_DISABLE_PYTHON:BOOL=OFF \ |
---|
414 | \ |
---|
415 | -DPYTHON_EXECUTABLE:STRING=%{__python} \ |
---|
416 | -DPYTHON_VERSION_MAJOR:STRING=$(%{__python} -c "import sys; print sys.version_info.major") \ |
---|
417 | -DPYTHON_VERSION_MINOR:STRING=$(%{__python} -c "import sys; print sys.version_info.minor") \ |
---|
418 | -DCOMPILER_RT_INCLUDE_TESTS:BOOL=OFF # could be on? |
---|
419 | |
---|
420 | # workaround for all-in-one build |
---|
421 | #TMP_PWD=$(pwd) |
---|
422 | #LD_LIBRARY_PATH="$TMP_PWD/%{_lib}" make %{?_smp_mflags} |
---|
423 | make %{?_smp_mflags} |
---|
424 | |
---|
425 | %install |
---|
426 | rm -rf %{buildroot} |
---|
427 | |
---|
428 | cd build |
---|
429 | make install DESTDIR=%{buildroot} |
---|
430 | |
---|
431 | # llvm |
---|
432 | |
---|
433 | install -m755 ./bin/lli-child-target %{buildroot}%{_bindir}/lli-child-target |
---|
434 | |
---|
435 | # fix multi-lib |
---|
436 | mv -v %{buildroot}%{_bindir}/llvm-config{,-%{__isa_bits}} |
---|
437 | ln -sf llvm-config-%{__isa_bits} %{buildroot}%{_bindir}/llvm-config |
---|
438 | mv -v %{buildroot}%{_includedir}/llvm/Config/llvm-config{,-%{__isa_bits}}.h |
---|
439 | install -m 0644 %{SOURCE10} %{buildroot}%{_includedir}/llvm/Config/llvm-config.h |
---|
440 | |
---|
441 | # clang |
---|
442 | |
---|
443 | # remove static libraries |
---|
444 | rm -fv %{buildroot}%{_libdir}/libclang*.a |
---|
445 | |
---|
446 | # install clang python bindings |
---|
447 | mkdir -p %{buildroot}%{python_sitelib}/clang/ |
---|
448 | install -p -m644 ../tools/clang/bindings/python/clang/* %{buildroot}%{python_sitelib}/clang/ |
---|
449 | |
---|
450 | mv -v %{buildroot}%{_includedir}/clang/Config/config{,-%{__isa_bits}}.h |
---|
451 | install -m 0644 %{SOURCE11} %{buildroot}%{_includedir}/clang/Config/config.h |
---|
452 | |
---|
453 | # remove git integration |
---|
454 | rm -vf %{buildroot}%{_bindir}/git-clang-format |
---|
455 | # remove editor integrations (bbedit, sublime, emacs, vim) |
---|
456 | rm -vf %{buildroot}%{_datadir}/clang/clang-format-bbedit.applescript |
---|
457 | rm -vf %{buildroot}%{_datadir}/clang/clang-format-sublime.py* |
---|
458 | rm -vf %{buildroot}%{_datadir}/clang/clang-format.el |
---|
459 | rm -vf %{buildroot}%{_datadir}/clang/clang-format.py* |
---|
460 | # remove diff reformatter |
---|
461 | rm -vf %{buildroot}%{_datadir}/clang/clang-format-diff.py* |
---|
462 | |
---|
463 | |
---|
464 | # lldb |
---|
465 | |
---|
466 | # remove static libraries |
---|
467 | rm -fv %{buildroot}%{_libdir}/liblldb*.a |
---|
468 | |
---|
469 | # python: fix binary libraries location |
---|
470 | liblldb=$(basename $(readlink -e %{buildroot}%{_libdir}/liblldb.so)) |
---|
471 | ln -vsf "../../../${liblldb}" %{buildroot}%{python_sitearch}/lldb/_lldb.so |
---|
472 | mv -v %{buildroot}%{python_sitearch}/readline.so %{buildroot}%{python_sitearch}/lldb/readline.so |
---|
473 | |
---|
474 | # remove bundled six.py |
---|
475 | rm -f %{buildroot}%{python_sitearch}/six.* |
---|
476 | |
---|
477 | # Move this plugin to libdir. |
---|
478 | # FIXME: I have no idea why this is installed to bindir. Moving it to libdir |
---|
479 | # may break it, but I don't know how to test this. |
---|
480 | mv -v %{buildroot}{%{_bindir},%{_libdir}}/liblldb-intel-mpxtable.so |
---|
481 | |
---|
482 | |
---|
483 | # compiler-rt |
---|
484 | |
---|
485 | # move sanitizer lists to better place |
---|
486 | mkdir -p %{buildroot}%{_libdir}/clang/%{version} |
---|
487 | for file in asan_blacklist.txt msan_blacklist.txt dfsan_blacklist.txt cfi_blacklist.txt dfsan_abilist.txt; do |
---|
488 | mv -v %{buildroot}%{_prefix}/${file} %{buildroot}%{_libdir}/clang/%{version}/ || : |
---|
489 | done |
---|
490 | |
---|
491 | # move sanitizer libs to better place |
---|
492 | #mkdir -p %{buildroot}%{_libdir}/clang/%{version}/lib |
---|
493 | #mv -v %{buildroot}%{_prefix}/lib/linux/libclang_rt* %{buildroot}%{_libdir}/clang/%{version}/lib |
---|
494 | #mkdir -p %{buildroot}%{_libdir}/clang/%{version}/lib/linux/ |
---|
495 | #pushd %{buildroot}%{_libdir}/clang/%{version}/lib |
---|
496 | #for i in *.a *.syms *.so; do |
---|
497 | # ln -s ../$i linux/$i |
---|
498 | #done |
---|
499 | |
---|
500 | #rm -rf %{buildroot}%{_libdir}/python* |
---|
501 | |
---|
502 | rm -f %{buildroot}%{_datadir}/clang/bash-autocomplete.sh |
---|
503 | rm -f %{buildroot}%{_datadir}/clang/clang-rename.el |
---|
504 | rm -f %{buildroot}%{_datadir}/clang/clang-rename.py |
---|
505 | |
---|
506 | %check |
---|
507 | # the || : is wrong, i know, but the git snaps fail to make check due to |
---|
508 | # broken makefiles in the doc dirs. |
---|
509 | cd build |
---|
510 | make check-all LIT_ARGS="-v -j4" | tee llvm-testlog.txt ||: |
---|
511 | make -C tools/clang/test TESTARGS="-v -j4" | tee clang-testlog.txt ||: |
---|
512 | |
---|
513 | %clean |
---|
514 | rm -rf %{buildroot} |
---|
515 | |
---|
516 | |
---|
517 | %post libs -p /sbin/ldconfig |
---|
518 | %postun libs -p /sbin/ldconfig |
---|
519 | |
---|
520 | %post -n clang-libs -p /sbin/ldconfig |
---|
521 | %postun -n clang-libs -p /sbin/ldconfig |
---|
522 | |
---|
523 | %post -n lldb -p /sbin/ldconfig |
---|
524 | %postun -n lldb -p /sbin/ldconfig |
---|
525 | |
---|
526 | |
---|
527 | %posttrans devel |
---|
528 | # link llvm-config to the platform-specific file; |
---|
529 | # use ISA bits as priority so that 64-bit is preferred |
---|
530 | # over 32-bit if both are installed |
---|
531 | alternatives \ |
---|
532 | --install \ |
---|
533 | %{_bindir}/llvm-config \ |
---|
534 | llvm-config \ |
---|
535 | %{_bindir}/llvm-config-%{__isa_bits} \ |
---|
536 | %{__isa_bits} |
---|
537 | |
---|
538 | %postun devel |
---|
539 | if [ $1 -eq 0 ]; then |
---|
540 | alternatives --remove llvm-config \ |
---|
541 | %{_bindir}/llvm-config-%{__isa_bits} |
---|
542 | fi |
---|
543 | exit 0 |
---|
544 | |
---|
545 | |
---|
546 | %files |
---|
547 | %defattr(-,root,root,-) |
---|
548 | %doc CREDITS.TXT README.txt |
---|
549 | %{_bindir}/bugpoint |
---|
550 | %{_bindir}/llc |
---|
551 | %{_bindir}/lli |
---|
552 | %{_bindir}/lli-child-target |
---|
553 | %{_bindir}/obj2yaml |
---|
554 | %{_bindir}/sancov |
---|
555 | %{_bindir}/sanstats |
---|
556 | %{_bindir}/verify-uselistorder |
---|
557 | %{_bindir}/yaml2obj |
---|
558 | %exclude %{_bindir}/llvm-config |
---|
559 | %exclude %{_bindir}/llvm-config-%{__isa_bits} |
---|
560 | %{_bindir}/llvm* |
---|
561 | %{_bindir}/opt |
---|
562 | %exclude %{_mandir}/man1/scan-build.1.* |
---|
563 | %doc %{_mandir}/man1/*.1.* |
---|
564 | %{_datadir}/opt-viewer |
---|
565 | |
---|
566 | %files devel |
---|
567 | %defattr(-,root,root,-) |
---|
568 | #doc %{llvmdocdir %{name}-devel}/ |
---|
569 | %{_bindir}/llvm-config |
---|
570 | %{_bindir}/llvm-config-%{__isa_bits} |
---|
571 | %{_includedir}/%{name} |
---|
572 | %{_includedir}/%{name}-c |
---|
573 | %{_libdir}/libLLVM.so |
---|
574 | %{_libdir}/cmake/llvm |
---|
575 | %exclude %{_libdir}/cmake/llvm/LLVMStaticExports.cmake |
---|
576 | |
---|
577 | %files libs |
---|
578 | %defattr(-,root,root,-) |
---|
579 | %doc LICENSE.TXT |
---|
580 | #config(noreplace) %{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf |
---|
581 | #dir %{_libdir}/%{name} |
---|
582 | %{_libdir}/BugpointPasses.so |
---|
583 | %{_libdir}/libLLVM-*.so |
---|
584 | %{_libdir}/libLTO.so* |
---|
585 | %{_libdir}/LLVMgold.so |
---|
586 | %exclude %{_libdir}/LLVMHello.so |
---|
587 | |
---|
588 | %files static |
---|
589 | %{_libdir}/*.a |
---|
590 | %{_libdir}/cmake/llvm/LLVMStaticExports.cmake |
---|
591 | |
---|
592 | %files -n clang |
---|
593 | %defattr(-,root,root,-) |
---|
594 | #doc %{llvmdocdir clang}/ |
---|
595 | %{_bindir}/clang* |
---|
596 | %{_bindir}/c-index-test |
---|
597 | %{_libdir}/clang |
---|
598 | |
---|
599 | %files -n clang-libs |
---|
600 | %defattr(-,root,root,-) |
---|
601 | %{_libdir}/libclang.so |
---|
602 | %{_libdir}/libclang.so.* |
---|
603 | |
---|
604 | %files -n clang-devel |
---|
605 | %defattr(-,root,root,-) |
---|
606 | #doc %{llvmdocdir clang-devel}/ |
---|
607 | %{_includedir}/clang |
---|
608 | %{_includedir}/clang-c |
---|
609 | %dir %{_datadir}/clang/ |
---|
610 | %{_libdir}/cmake/* |
---|
611 | |
---|
612 | %files -n clang-analyzer |
---|
613 | %defattr(-,root,root,-) |
---|
614 | %{_bindir}/scan-build |
---|
615 | %{_bindir}/scan-view |
---|
616 | %{_libexecdir}/ccc-analyzer |
---|
617 | %{_libexecdir}/c++-analyzer |
---|
618 | %{_datadir}/scan-view |
---|
619 | %{_datadir}/scan-build |
---|
620 | %{_mandir}/man1/scan-build.1.* |
---|
621 | |
---|
622 | %files -n python-clang |
---|
623 | %{python_sitelib}/clang/ |
---|
624 | |
---|
625 | %files -n lldb |
---|
626 | %defattr(-,root,root,-) |
---|
627 | #doc %{llvmdocdir lldb}/ |
---|
628 | %{_bindir}/lldb* |
---|
629 | %{_libdir}/liblldb.so.* |
---|
630 | %{_libdir}/liblldb-intel-mpxtable.so |
---|
631 | |
---|
632 | %files -n lldb-devel |
---|
633 | %defattr(-,root,root,-) |
---|
634 | %{_includedir}/lldb |
---|
635 | %{_libdir}/liblldb.so |
---|
636 | |
---|
637 | %files -n python-lldb |
---|
638 | %{python_sitearch}/lldb |
---|
639 | |
---|
640 | %files doc |
---|
641 | %defattr(-,root,root,-) |
---|
642 | %doc docs/* |
---|
643 | #doc %{llvmdocdir %{name}-doc}/ |
---|
644 | |
---|
645 | %if %{with ocaml} |
---|
646 | %files ocaml |
---|
647 | %defattr(-,root,root,-) |
---|
648 | %{_libdir}/ocaml/*.cma |
---|
649 | %{_libdir}/ocaml/*.cmi |
---|
650 | %{_libdir}/ocaml/*.so |
---|
651 | %{_libdir}/ocaml/META.llvm* |
---|
652 | |
---|
653 | %files ocaml-devel |
---|
654 | %defattr(-,root,root,-) |
---|
655 | %{_libdir}/ocaml/*.a |
---|
656 | %{_libdir}/ocaml/*.cmx* |
---|
657 | %{_libdir}/ocaml/*.mli |
---|
658 | |
---|
659 | %files ocaml-doc |
---|
660 | %defattr(-,root,root,-) |
---|
661 | #doc %{llvmdocdir %{name}-ocaml-doc}/ |
---|
662 | %endif |
---|
663 | |
---|
664 | %if 0%{?_with_doxygen} |
---|
665 | %files apidoc |
---|
666 | %defattr(-,root,root,-) |
---|
667 | %doc %{llvmdocdir %{name}-apidoc}/ |
---|
668 | |
---|
669 | %files -n clang-apidoc |
---|
670 | %defattr(-,root,root,-) |
---|
671 | %doc %{llvmdocdir clang-apidoc}/ |
---|
672 | %endif |
---|
673 | |
---|
674 | %if %{build_compat32} |
---|
675 | %files -n compat32-%{name}-libs |
---|
676 | %defattr(-,root,root) |
---|
677 | %doc LICENSE.TXT |
---|
678 | #config(noreplace) %{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf |
---|
679 | %exclude %{_libdir}/libclang.so |
---|
680 | %exclude %{_libdir}/liblldb.so |
---|
681 | %exclude %{_libdir}/liblldb-intel-mpxtable.so |
---|
682 | %exclude %{_libdir}/LLVMHello.so |
---|
683 | %{_libdir}/*.so |
---|
684 | %{_libdir}/libLTO.so.* |
---|
685 | %endif |
---|
686 | |
---|
687 | %changelog |
---|
688 | * Tue Jan 02 2018 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 5.0.1-2 |
---|
689 | - added subpackages "llvm-static", "python-lldb" and "python-clang". |
---|
690 | |
---|
691 | * Mon Jan 01 2018 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 5.0.1-1 |
---|
692 | - new upstream release. |
---|
693 | - dropped Patch1 and 2: fixed in upstream. |
---|
694 | - imported Patch0, 3-5, 100 and 200 from rawhide. |
---|
695 | - disabled Patch1002: no longer needed? |
---|
696 | |
---|
697 | * Fri Aug 5 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 3.8.1-1 |
---|
698 | - new upstream release. |
---|
699 | - switched to cmake. |
---|
700 | - disable ocaml binding as default. |
---|
701 | - updated Patch1000 and 1002. |
---|
702 | - disabled Patch1000 as default. |
---|
703 | - cleanup patches. |
---|
704 | |
---|
705 | * Thu Jun 30 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> 3.6.2-2 |
---|
706 | - rebuild with gcc-5.4.0 |
---|
707 | |
---|
708 | * Sat Sep 5 2015 Ryoichi INAGAKI <ryo1@toki.waseda.jp> 3.6.2-1 |
---|
709 | - new upstream release |
---|
710 | - added BR: ocaml-ctypes |
---|
711 | |
---|
712 | * Thu Jun 4 2015 Ryoichi INAGAKI <ryo1@toki.waseda.jp> 3.6.1-1 |
---|
713 | - new upstream release |
---|
714 | - dropt Patch 1, 201 and 1001 |
---|
715 | - updated Patch 1000 |
---|
716 | |
---|
717 | * Tue Mar 24 2015 Ryoichi INAGAKI <ryo1@toki.waseda.jp> 3.5.1-1 |
---|
718 | - updated to 3.5.1 |
---|
719 | - added Patch1, 2, 100, 101, 200, 201 and 202 from Fedora |
---|
720 | - added clang-libs, lldb, lldb-devel and compat32-llvm-libs subpackage |
---|
721 | - obsoleted clang-doc |
---|
722 | - built with ocaml 4.02.1 |
---|
723 | |
---|
724 | * Sat Nov 29 2014 Yoji TOYODA <bsyamato@sea.plala.or.jp> 3.5.0-2 |
---|
725 | - fix <BTS:2832> |
---|
726 | - fix configure option "--with-c-include-dirs" |
---|
727 | - update Patch1000: clang-3.5.0-driver-ld.gold.patch |
---|
728 | - update Patch1001: clang-3.5.0-driver-lib64.patch |
---|
729 | - update Patch1002: clang-3.5.0-driver-vine.patch |
---|
730 | |
---|
731 | * Tue Oct 28 2014 Yoji TOYODA <bsyamato@sea.plala.or.jp> 3.5.0-1 |
---|
732 | - update to 3.5.0 |
---|
733 | - remove Patch11 (clang-hardfloat-hack.patch) |
---|
734 | |
---|
735 | * Sun Jul 06 2014 Yoji TOYODA <bsyamato@sea.plala.or.jp> 3.3-2 |
---|
736 | - rebuild with libffi-3.0.13 |
---|
737 | |
---|
738 | * Mon Oct 28 2013 Daisuke SUZUKI <daisuke@linux.or.jp> 3.3-1 |
---|
739 | - update to 3.3 |
---|
740 | |
---|
741 | * Mon Dec 03 2012 Daisuke SUZUKI <daisuke@linux.or.jp> 3.1-2 |
---|
742 | - ld.gold (patch1000,1001) |
---|
743 | - add /%{_lib} to ld search path |
---|
744 | - add support *-vine-linux gcc (patch1002) |
---|
745 | |
---|
746 | * Fri Nov 30 2012 Daisuke SUZUKI <daisuke@linux.or.jp> 3.1-1 |
---|
747 | - update to 3.1 |
---|
748 | |
---|
749 | * Tue Jan 24 2012 NAKAMURA Kenta <kenta@vinelinux.org> - 3.0-1 |
---|
750 | - updated to 3.0 release |
---|
751 | |
---|
752 | * Sun Jan 15 2012 NAKAMURA Kenta <kenta@vinelinux.org> - 2.9-3 |
---|
753 | - added patch 2-4 to support -O4 link-time optimization |
---|
754 | |
---|
755 | * Fri Sep 9 2011 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 2.9-2 |
---|
756 | - disable -fno-var-tracking-assignments on ppc |
---|
757 | (seems like gcc-4.4.5 still doesn't support this) |
---|
758 | |
---|
759 | * Thu Aug 25 2011 Daisuke SUZUKI <daisuke@linux.or.jp> 2.9-1 |
---|
760 | - new upstream release |
---|
761 | - add BR: libffi-devel |
---|
762 | - add R: libffi-devel to -devel |
---|
763 | |
---|
764 | * Sun May 23 2010 Daisuke SUZUKI <daisuke@linux.or.jp> 2.7-1 |
---|
765 | - initial build for Vine Linux |
---|
766 | |
---|
767 | * Sun May 2 2010 Michel Salim <salimma@fedoraproject.org> - 2.7-1 |
---|
768 | - Update to final 2.7 release |
---|
769 | |
---|
770 | * Sun Mar 28 2010 Michel Salim <salimma@fedoraproject.org> - 2.7-0.1.pre1 |
---|
771 | - Update to first 2.7 pre-release |
---|
772 | |
---|
773 | * Fri Sep 18 2009 Michel Salim <salimma@fedoraproject.org> - 2.6-0.6.pre2 |
---|
774 | - Update to 2.6 pre-release2 |
---|
775 | - -devel subpackage now virtually provides -static |
---|
776 | |
---|
777 | * Wed Sep 9 2009 Michel Salim <salimma@fedoraproject.org> - 2.6-0.5.pre1 |
---|
778 | - Disable var tracking assignments on PPC |
---|
779 | |
---|
780 | * Wed Sep 9 2009 Michel Salim <salimma@fedoraproject.org> - 2.6-0.4.pre1 |
---|
781 | - Don't adjust clang include dir; files there are noarch (bz#521893) |
---|
782 | - Enable clang unit tests |
---|
783 | - clang and clang-analyzer renamed; no longer depend on llvm at runtime |
---|
784 | |
---|
785 | * Mon Sep 7 2009 Michel Salim <salimma@fedoraproject.org> - 2.6-0.3.pre1 |
---|
786 | - Package Clang's static analyzer tools |
---|
787 | |
---|
788 | * Mon Sep 7 2009 Michel Salim <salimma@fedoraproject.org> - 2.6-0.2.pre1 |
---|
789 | - PIC is now enabled by default; explicitly disable on %%{ix86} |
---|
790 | |
---|
791 | * Mon Sep 7 2009 Michel Salim <salimma@fedoraproject.org> - 2.6-0.1.pre1 |
---|
792 | - First 2.6 prerelease |
---|
793 | - Enable Clang front-end |
---|
794 | - Enable debuginfo generation |
---|
795 | |
---|
796 | * Sat Sep 5 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-6 |
---|
797 | - Disable assertions (needed by OpenGTL, bz#521261) |
---|
798 | - Align spec file with upstream build instructions |
---|
799 | - Enable unit tests |
---|
800 | |
---|
801 | * Sat Aug 22 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-5 |
---|
802 | - Only disable PIC on %%ix86; ppc actually needs it |
---|
803 | |
---|
804 | * Sat Aug 22 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-4 |
---|
805 | - Disable use of position-independent code on 32-bit platforms |
---|
806 | (buggy in LLVM <= 2.5) |
---|
807 | |
---|
808 | * Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.5-3 |
---|
809 | - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild |
---|
810 | |
---|
811 | * Wed Mar 4 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-2 |
---|
812 | - Remove build scripts; they require the build directory to work |
---|
813 | |
---|
814 | * Wed Mar 4 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-1 |
---|
815 | - Update to 2.5 |
---|
816 | - Package build scripts (bug #457881) |
---|
817 | |
---|
818 | * Tue Dec 2 2008 Michel Salim <salimma@fedoraproject.org> - 2.4-2 |
---|
819 | - Patched build process for the OCaml binding |
---|
820 | |
---|
821 | * Tue Dec 2 2008 Michel Salim <salimma@fedoraproject.org> - 2.4-1 |
---|
822 | - Update to 2.4 |
---|
823 | - Package Ocaml binding |
---|
824 | |
---|
825 | * Wed Jun 18 2008 Bryan O'Sullivan <bos@serpentine.com> - 2.3-2 |
---|
826 | - Add dependency on groff |
---|
827 | |
---|
828 | * Wed Jun 18 2008 Bryan O'Sullivan <bos@serpentine.com> - 2.3-1 |
---|
829 | - LLVM 2.3 |
---|
830 | |
---|
831 | * Thu May 29 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2.2-4 |
---|
832 | - fix license tags |
---|
833 | |
---|
834 | * Wed Mar 5 2008 Bryan O'Sullivan <bos@serpentine.com> - 2.2-3 |
---|
835 | - Fix compilation problems with gcc 4.3 |
---|
836 | |
---|
837 | * Mon Feb 18 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 2.2-2 |
---|
838 | - Autorebuild for GCC 4.3 |
---|
839 | |
---|
840 | * Sun Jan 20 2008 Bryan O'Sullivan <bos@serpentine.com> - 2.1-2 |
---|
841 | - Fix review comments |
---|
842 | |
---|
843 | * Sun Jan 20 2008 Bryan O'Sullivan <bos@serpentine.com> - 2.1-1 |
---|
844 | - Initial version |
---|