]> git.pld-linux.org Git - packages/llvm.git/blame - llvm.spec
- added flang bcond (mlir tarball not published separately, extracted from llvm-proje...
[packages/llvm.git] / llvm.spec
CommitLineData
30b45f1a
JR
1#
2# NOTE:
3# - normal build (x86_64) requires about 80 GB of disk space
4#
6df3b432
JB
5# TODO:
6# - move and package:
5013c7ea 7# %{_datadir}/clang/bash-autocomplete.sh
6df3b432 8# %{_datadir}/clang/clang-format-sublime.py - sublime plugin
5013c7ea
JB
9# %{_datadir}/clang/clang-format.el - clang tools emacs integration
10# %{_datadir}/clang/clang-include-fixer.el
11# %{_datadir}/clang/clang-rename.el
6df3b432 12# - no content in doc package (it used to contain parts of clang apidocs and some examples)
6c2b1a44 13# - system isl in polly?
bc88141a 14#
9556f4c9 15# Conditional build:
589b92f5
JB
16%bcond_without lldb # LLDB debugger
17%bcond_without polly # Polly cache-locality optimization, auto-parallelism and vectorization
18%bcond_without rt # compiler-rt libraries
19%bcond_without multilib # compiler-rt multilib libraries
20%bcond_without ocaml # OCaml binding
200602f4 21%bcond_without z3 # Z3 constraint solver support in Clang Static Analyzer
589b92f5 22%bcond_without doc # HTML docs and man pages
1a356f89 23%bcond_with flang # flang (Fortran18) compiler (broken as of 11.0.1)
44d18de7 24%bcond_with cxxmodules # C++20 modules (requires support in bootstrap compiler)
589b92f5
JB
25%bcond_with apidocs # doxygen docs (HUGE, so they are not built by default)
26%bcond_with tests # run tests
1431eb62 27%bcond_with lowmem # lower memory requirements
9556f4c9 28
4ba3b2b3 29# No ocaml on other arches or no native ocaml (required for ocaml-ctypes)
5013c7ea 30%ifnarch %{ix86} %{x8664} %{arm} aarch64 ppc sparc sparcv9
9556f4c9
ER
31%undefine with_ocaml
32%endif
33
bdd7e0f7
JP
34%ifarch armv3l armv4b armv4l armv4tl armv5tl armv5tel armv5tejl armv6l armv6hl
35%undefine with_rt
36%endif
37
1431eb62 38%ifarch %{arm} aarch64
c377e543 39%define with_lowmem 1
1431eb62
JP
40%endif
41
aa11c230 42Summary: The Low Level Virtual Machine (An Optimizing Compiler Infrastructure)
2326a99f 43Summary(pl.UTF-8): Niskopoziomowa maszyna wirtualna (infrastruktura kompilatora optymalizującego)
aa11c230 44Name: llvm
de871833
JP
45Version: 11.0.1
46Release: 1
aa11c230 47License: University of Illinois/NCSA Open Source License
48Group: Development/Languages
44d18de7
JB
49#Source0Download: https://github.com/llvm/llvm-project/releases/
50Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{name}-%{version}.src.tar.xz
de871833 51# Source0-md5: 6ec7ae9fd43da9b87cda15b3ab9cc7af
44d18de7 52Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/clang-%{version}.src.tar.xz
de871833 53# Source1-md5: b4cb0b74b1f3292a89c9720f3e1e2934
44d18de7 54Source2: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/compiler-rt-%{version}.src.tar.xz
de871833 55# Source2-md5: 29d6186e048936008512b8bbdb3a1b71
44d18de7 56Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/lldb-%{version}.src.tar.xz
de871833 57# Source3-md5: e49cde09adb5ed43a651e6d5bcb2aded
44d18de7 58Source4: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/polly-%{version}.src.tar.xz
de871833 59# Source4-md5: f9cc25cb4e52f1176225ef28d3b4d8ab
44d18de7 60Source5: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/clang-tools-extra-%{version}.src.tar.xz
de871833 61# Source5-md5: 1e577a85948a0f07483b7c405e59a0ca
44d18de7 62Source6: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/lld-%{version}.src.tar.xz
de871833 63# Source6-md5: 652c93bd3f78fcb9a02d8d3027f7dae2
1a356f89
JB
64Source7: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/flang-%{version}.src.tar.xz
65# Source7-md5: 3d37b40aa1618d8337e9b010d3e24f2d
66# "mlir" subdir extracted from https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.1/llvm-project-11.0.1.src.tar.xz
67Source8: mlir-%{version}.tar.xz
68# Source8-md5: 97736d1209b01ac52b0dd3c0916f8198
9f7b77bd 69Patch1: %{name}-pld.patch
200602f4 70Patch2: %{name}-python-modules.patch
9f7b77bd 71Patch3: x32-gcc-toolchain.patch
d96b39d3 72Patch4: cmake-buildtype.patch
d706a70d 73Patch5: %{name}-ocaml-shared.patch
1a356f89 74Patch6: %{name}-flang.patch
2326a99f 75URL: http://llvm.org/
bc88141a 76BuildRequires: bash
803f8d9b 77BuildRequires: binutils-devel
d997b14b 78BuildRequires: bison
036156f1 79BuildRequires: cmake >= 3.4.3
d997b14b 80BuildRequires: flex
dd9350c7
JB
81BuildRequires: gcc >= 5:3.4
82# gcc4 might be installed, but not current __cc
1b02e37b 83%if %(rpmvercmp %{cc_version} 3.4 > /dev/null; test $? = 2 && echo 1 || echo 0)
dd9350c7 84BuildRequires: __cc >= 3.4
9556f4c9 85%endif
d997b14b 86BuildRequires: groff
6c2b1a44 87BuildRequires: libedit-devel
bc88141a 88BuildRequires: libltdl-devel
44d18de7 89BuildRequires: libpfm-devel
d997b14b 90BuildRequires: libstdc++-devel >= 5:3.4
44d18de7 91BuildRequires: libxml2-devel >= 2
6c2b1a44 92BuildRequires: ncurses-devel
2bbd0701 93%if %{with ocaml}
5013c7ea 94BuildRequires: ocaml >= 4.00.0
c6c890ee 95BuildRequires: ocaml-ctypes-devel >= 0.4
2bbd0701 96BuildRequires: ocaml-findlib
77c13dab 97BuildRequires: ocaml-ocamldoc
5013c7ea 98BuildRequires: ocaml-ounit >= 2
2bbd0701 99%endif
8132e62b 100BuildRequires: perl-base >= 1:5.6
8c156e7d 101BuildRequires: perl-tools-pod
6c2b1a44 102BuildRequires: python >= 1:2.7
200602f4
JB
103BuildRequires: python-PyYAML
104BuildRequires: python-pygments >= 2.0
8c156e7d 105BuildRequires: rpm-pythonprov
1b02e37b 106BuildRequires: rpmbuild(macros) >= 1.734
b0068ae4 107%{?with_doc:BuildRequires: sphinx-pdg}
b883cf1e
JB
108BuildRequires: tar >= 1:1.22
109BuildRequires: xz
200602f4 110%{?with_z3:BuildRequires: z3-devel >= 4.7.1}
6c2b1a44 111BuildRequires: zlib-devel
dd9350c7
JB
112%if %{with apidocs}
113BuildRequires: doxygen
114BuildRequires: graphviz
115%endif
116%if %{with tests}
117BuildRequires: dejagnu
dd9350c7 118BuildRequires: tcl-devel
356a0bbd 119%endif
589b92f5
JB
120%if %{with rt} && %{with multilib}
121%ifarch %{x8664}
122BuildRequires: gcc-c++-multilib-32
123BuildRequires: libstdc++-multilib-32-devel
124%endif
fe705967 125%ifarch x32
3b28b31d
JB
126BuildRequires: gcc-c++-multilib-32
127BuildRequires: gcc-c++-multilib-64
128BuildRequires: glibc-devel(x86_64)
129BuildRequires: libstdc++-multilib-32-devel
130BuildRequires: libstdc++-multilib-64-devel
fe705967 131%endif
589b92f5 132%endif
b883cf1e 133%if %{with lldb}
c6c890ee 134BuildRequires: epydoc
d92b4c2a 135%ifarch i386 i486 %{arm}
64f4e87f
JB
136BuildRequires: libatomic-devel
137%endif
b883cf1e
JB
138BuildRequires: libxml2-devel >= 2
139BuildRequires: ncurses-ext-devel
44d18de7 140BuildRequires: python-devel >= 1:2.7
c330693d 141%{?with_doc:BuildRequires: python3-recommonmark}
12aa4b7a 142BuildRequires: swig-python >= 3.0.11
b883cf1e 143%endif
b0068ae4 144%if %{with polly}
6c2b1a44
JB
145#BuildRequires: gmp-devel or imath-devel (private copy in polly/lib/External/isl/imath)
146# private copy in polly/lib/External/isl
5013c7ea 147#BuildRequires: isl-devel >= 0.18
6c2b1a44 148#TODO (bcond): cuda-devel (with POLLY_ENABLE_GPGPU_CODEGEN=ON)
b0068ae4 149%endif
634a3e5b
JB
150%if %{with ocaml}
151BuildConflicts: llvm-ocaml
152%endif
8c514f23 153Requires: %{name}-libs = %{version}-%{release}
9556f4c9
ER
154# LLVM is not supported on PPC64
155# http://llvm.org/bugs/show_bug.cgi?id=3729
156ExcludeArch: ppc64
aa11c230 157BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
158
f784323b 159%define abi 11
356a0bbd 160%define _sysconfdir /etc/%{name}
021b3c3d 161
9556f4c9 162%define specflags_ppc -fno-var-tracking-assignments
7a1e73fa
JP
163
164# objcopy: BFD (GNU Binutils) 2.32 assertion fail format.c:459
165# objcopy: error: .../libLLVM-8.so(.debug_gnu_pubtypes) is too large (0x1ceee347 bytes)
166# objcopy: .../libLLVM-8.so[.debug_gnu_pubtypes]: memory exhausted
167%ifarch x32
168%define _enable_debug_packages 0
169%endif
af221038 170# ix86 and x32 - the same issue as https://llvm.org/bugs/show_bug.cgi?id=27237
5013c7ea
JB
171# use -gsplit-dwarf only when building packages with debuginfo
172# to avoid excessive disk space usage
50fe0adf
JB
173%if 0%{?_enable_debug_packages}
174%define specflags -gsplit-dwarf
175%endif
9556f4c9 176
6832a5c5
ER
177# strip corrupts: $RPM_BUILD_ROOT/usr/lib64/llvm-gcc/bin/llvm-c++ ...
178%define _noautostrip .*/\\(libmud.*\\.a\\|bin/llvm-.*\\|lib.*++\\.a\\)
179
782c6e1e
ER
180# clang doesn't know -fvar-tracking-assignments, and leaving it here would pollute llvm-config
181# -Werror=format-security is for swig
182# TODO: add - -Werror=format-security to tools/lldb/scripts/LLDBWrapPython.cpp
4a1d21cc 183%define filterout_c -fvar-tracking-assignments
782c6e1e 184%define filterout_cxx -fvar-tracking-assignments -Werror=format-security
4a1d21cc
JR
185%define filterout_ccpp -fvar-tracking-assignments
186
aa11c230 187%description
188LLVM is a compiler infrastructure designed for compile-time,
189link-time, runtime, and idle-time optimization of programs from
190arbitrary programming languages. LLVM is written in C++ and has been
191developed since 2000 at the University of Illinois and Apple. It
621ec11f
JB
192currently supports compilation of C and C++ programs using clang
193frontend.
aa11c230 194
2326a99f
JB
195%description -l pl.UTF-8
196LLVM to infrastruktura kompilatora zaprojektowana do optymalizacji
197czasu kompilowania, linkowania, działania i bezczynności programów w
198dowolnych językach programowania. Jest napisana w C++, rozwijana od
199roku 2000 przez Uniwersytet w Illinois i Apple. Aktualnie obsługuje
621ec11f 200kompilację programów w C i C++ przy użyciu frontendu clang.
2326a99f 201
8c514f23 202%package libs
87977e26
JR
203Summary: LLVM shared libraries
204Summary(pl.UTF-8): Biblioteki współdzielone LLVM-a
8c514f23
JB
205Group: Libraries
206Conflicts: llvm < 3.2
207
208%description libs
87977e26 209LLVM shared libraries.
8c514f23
JB
210
211%description libs -l pl.UTF-8
87977e26 212Biblioteki współdzielone LLVM-a.
8c514f23 213
bc88141a 214%package devel
621ec11f
JB
215Summary: Static libraries and header files for LLVM
216Summary(pl.UTF-8): Biblioteki statyczne i pliki nagłówkowe dla LLVM-a
bc88141a 217Group: Development/Languages
8c514f23 218Requires: %{name}-libs = %{version}-%{release}
bc88141a
ER
219Requires: libstdc++-devel >= 6:3.4
220
221%description devel
621ec11f
JB
222This package contains static libraries and header files needed to
223develop new native programs that use the LLVM infrastructure.
224
225%description devel -l pl.UTF-8
226Ten pakiet zawiera biblioteki statyczne oraz pliki nagłówkowe
227potrzebne do tworzenia nowych programów natywnych wykorzystujących
228infrastrukturę LLVM.
bc88141a 229
9556f4c9
ER
230%package doc
231Summary: Documentation for LLVM
621ec11f 232Summary(pl.UTF-8): Dokumentacja do LLVM-a
9556f4c9
ER
233Group: Documentation
234# does not require base
bc88141a 235
9556f4c9
ER
236%description doc
237Documentation for the LLVM compiler infrastructure.
bc88141a 238
621ec11f
JB
239%description doc -l pl.UTF-8
240Dokumentacja do infrastruktury kompilatorów LLVM.
241
9556f4c9
ER
242%package apidocs
243Summary: API documentation for LLVM
621ec11f 244Summary(pl.UTF-8): Dokumentacja API LLVM-a
9556f4c9
ER
245Group: Development/Languages
246Requires: %{name}-doc = %{version}-%{release}
bc88141a 247
9556f4c9
ER
248%description apidocs
249API documentation for the LLVM compiler infrastructure.
bc88141a 250
621ec11f
JB
251%description apidocs -l pl.UTF-8
252Dokumentacja API infrastruktury kompilatorów LLVM.
253
b0068ae4
JB
254%package polly
255Summary: Polyhedral optimizations for LLVM
256Summary(pl.UTF-8): Optymalizacje wielościanowe dla LLVM-a
257Group: Development/Tools
258URL: http://polly.llvm.org/
259Requires: %{name} = %{version}-%{release}
260
261%description polly
262Polly is a high-level loop and data-locality optimizer and
263optimization infrastructure for LLVM. It uses an abstract mathematical
264representation based on integer polyhedra to analyze and optimize the
265memory access pattern of a program.
266
267%description polly -l pl.UTF-8
268Polly to wysokopoziomowy optymalizator i infrastruktura LLVM-a do
269optymalizacji pętli i położenia danych. Wykorzystuje abstrakcyjną
270reprezentację matematyczną opartą na wielościanach całkowitoliczbowych
271do analizy i optymalizacji wzorców dostępu do pamięci przez program.
272
273%package polly-devel
274Summary: Header files for LLVM Polly optimization infrastructure
275Summary(pl.UTF-8): Pliki nagłówkowe infrastruktury optymalizacji LLVM-a Polly
276Group: Development/Libraries
277URL: http://polly.llvm.org/
278Requires: %{name}-devel = %{version}-%{release}
279Requires: %{name}-polly = %{version}-%{release}
280
281%description polly-devel
282Header files for LLVM Polly optimization infrastructure.
283
284%description polly-devel -l pl.UTF-8
285Pliki nagłówkowe infrastruktury optymalizacji LLVM-a Polly.
286
d997b14b
AM
287%package -n clang
288Summary: A C language family frontend for LLVM
621ec11f 289Summary(pl.UTF-8): Frontend LLVM-a do języków z rodziny C
d997b14b
AM
290License: NCSA
291Group: Development/Languages
8c514f23 292Requires: %{name} = %{version}-%{release}
87977e26 293Requires: clang-libs = %{version}-%{release}
d997b14b
AM
294
295%description -n clang
296clang: noun 1. A loud, resonant, metallic sound. 2. The strident call
297of a crane or goose. 3. C-language family front-end toolkit.
298
299The goal of the Clang project is to create a new C, C++, Objective C
300and Objective C++ front-end for the LLVM compiler. Its tools are built
301as libraries and designed to be loosely-coupled and extendable.
302
621ec11f
JB
303%description -n clang -l pl.UTF-8
304clang (z angielskiego): 1. głośny, rezonujący, metaliczny dźwięk; 2.
305piskliwy odgłos żurawia lub gęsi; 3. narzędzia frontendowe dla języków
306z rodziny C.
307
308Celem projektu Clang jest utworzenie nowego frontendu dla kompilatora
309LLVM do języków C, C++, Objective C i Objective C++. Narzędzia są
310budowane jako biblioteki i zaprojektowane z myślą o swobodnym łączeniu
311i rozszerzaniu.
312
87977e26
JR
313%package -n clang-libs
314Summary: Clang shared libraries
315Summary(pl.UTF-8): Biblioteki współdzielone Clanga
316Group: Libraries
317
318%description -n clang-libs
319Clang shared libraries.
320
321%description -n clang-libs -l pl.UTF-8
322Biblioteki współdzielone Clanga.
323
9eefd942
JR
324%package -n clang-multilib
325Summary: A C language family frontend for LLVM - 32-bit support
326Summary(pl.UTF-8): Frontend LLVM-a do języków z rodziny C - obsługa binariów 32-bitowych
327License: NCSA
328Group: Development/Languages
329Requires: clang = %{version}-%{release}
330
331%description -n clang-multilib
332clang: noun 1. A loud, resonant, metallic sound. 2. The strident call
333of a crane or goose. 3. C-language family front-end toolkit.
334
335The goal of the Clang project is to create a new C, C++, Objective C
336and Objective C++ front-end for the LLVM compiler. Its tools are built
337as libraries and designed to be loosely-coupled and extendable.
338
339This package contains the C compiler support for producing 32-bit
340programs on 64-bit host.
341
342%description -n clang-multilib -l pl.UTF-8
343clang (z angielskiego): 1. głośny, rezonujący, metaliczny dźwięk; 2.
344piskliwy odgłos żurawia lub gęsi; 3. narzędzia frontendowe dla języków
345z rodziny C.
346
347Celem projektu Clang jest utworzenie nowego frontendu dla kompilatora
348LLVM do języków C, C++, Objective C i Objective C++. Narzędzia są
349budowane jako biblioteki i zaprojektowane z myślą o swobodnym łączeniu
350i rozszerzaniu.
351
352Ten pakiet zawiera rozszerzenie kompilatora C o obsługę tworzenia
353programów 32-bitowych na maszynie 64-bitowej.
354
d997b14b
AM
355%package -n clang-analyzer
356Summary: A source code analysis framework
621ec11f 357Summary(pl.UTF-8): Szkielet do analizy kodu źródłowego
d997b14b
AM
358License: NCSA
359Group: Development/Languages
360Requires: clang = %{version}-%{release}
361# not picked up automatically since files are currently not instaled
362# in standard Python hierarchies yet
363Requires: python
364
365%description -n clang-analyzer
366The Clang Static Analyzer consists of both a source code analysis
367framework and a standalone tool that finds bugs in C and Objective-C
368programs. The standalone tool is invoked from the command-line, and is
369intended to run in tandem with a build of a project or code base.
370
621ec11f
JB
371%description -n clang-analyzer -l pl.UTF-8
372Clang Static Analyzer składa się ze szkieletu do analizy kodu
373źródłowego oraz samodzielnego narzędzia znajdującego błędy w
374programach w C i C++. Narzędzie jest wywoływane z linii poleceń, z
375myślą o uruchamianiu wraz z kompilacją projektu lub kodu.
376
9556f4c9 377%package -n clang-devel
621ec11f
JB
378Summary: Header files for Clang
379Summary(pl.UTF-8): Pliki nagłówkowe Clanga
9556f4c9 380Group: Development/Languages
8c514f23 381Requires: %{name}-devel = %{version}-%{release}
9556f4c9 382Requires: clang = %{version}-%{release}
07de6be6 383%{?with_polly:Requires: llvm-polly-devel = %{version}-%{release}}
9556f4c9
ER
384
385%description -n clang-devel
386This package contains header files for the Clang compiler.
387
621ec11f
JB
388%description -n clang-devel -l pl.UTF-8
389Ten pakiet zawiera pliki nagłówkowe kompilatora Clang.
390
9556f4c9
ER
391%package -n clang-doc
392Summary: Documentation for Clang
621ec11f 393Summary(pl.UTF-8): Dokumentacja do Clanga
9556f4c9
ER
394Group: Documentation
395Requires: %{name} = %{version}-%{release}
396
397%description -n clang-doc
398Documentation for the Clang compiler front-end.
399
621ec11f
JB
400%description -n clang-doc -l pl.UTF-8
401Dokumentacja do frontendu kompilatora Clang.
402
9556f4c9
ER
403%package -n clang-apidocs
404Summary: API documentation for Clang
621ec11f 405Summary(pl.UTF-8): Dokumentacja API Clanga
9556f4c9
ER
406Group: Development/Languages
407Requires: clang-doc = %{version}-%{release}
408
409%description -n clang-apidocs
410API documentation for the Clang compiler.
411
621ec11f
JB
412%description -n clang-apidocs -l pl.UTF-8
413Dokumentacja API kompilatora Clang.
414
b0068ae4
JB
415%package -n clang-tools-extra
416Summary: Extra tools for Clang
417Summary(pl.UTF-8): Dodatkowe narzędzia do kompilatora Clang
418Group: Development/Tools
419URL: http://clang.llvm.org/docs/ClangTools.html
420Requires: clang = %{version}-%{release}
421
422%description -n clang-tools-extra
423Extra tools for Clang.
424
425%description -n clang-tools-extra -l pl.UTF-8
426Dodatkowe narzędzia do kompilatora Clang.
427
ba1cf74d
JB
428%package -n lld
429Summary: The LLVM linker
430Summary(pl.UTF-8): Konsolidator z projektu LLVM
431Group: Development/Libraries
432URL: http://lld.llvm.org/
433Requires: %{name} = %{version}-%{release}
434
435%description -n lld
436lld is a new set of modular code for creating linker tools.
437
438%description -n lld -l pl.UTF-8
439lld to nowy zbiór modularnego kodu do tworzenia narzędzi
440konsolidujących.
441
442%package -n lld-devel
443Summary: Development files for LLD linker tools
444Summary(pl.UTF-8): Pliki programistyczne narzędzi konsolidujących LLD
445Group: Development/Tools
446URL: http://lld.llvm.org/
447Requires: %{name}-devel = %{version}-%{release}
448
449%description -n lld-devel
450Development files for LLD linker tools.
451
452%description -n lld-devel -l pl.UTF-8
453Pliki programistyczne narzędzi konsolidujących LLD.
454
5a7ac479
JB
455%package -n lldb
456Summary: Next generation high-performance debugger
457Summary(pl.UTF-8): Wydajny debugger nowej generacji
458Group: Development/Debuggers
ba1cf74d 459URL: http://lldb.llvm.org/
5a7ac479 460Requires: %{name} = %{version}-%{release}
d706a70d 461Requires: python-six
5a7ac479
JB
462
463%description -n lldb
464LLDB is a next generation, high-performance debugger. It is built as a
465set of reusable components which highly leverage existing libraries in
466the larger LLVM Project, such as the Clang expression parser and LLVM
467disassembler.
468
469%description -n lldb -l pl.UTF-8
470LLDB to wydajny debugger nowej generacji. Jest zbudowany w oparciu o
471komponenty wielokrotnego użytku, wykorzystujące istniejące biblioteki
472w projekcie LLVM, takie jak analizator wyrażeń kompilatora Clang oraz
473disasembler LLVM.
474
475%package -n lldb-devel
ba1cf74d
JB
476Summary: Development files for LLDB debugger
477Summary(pl.UTF-8): Pliki programistyczne debuggera LLDB
5a7ac479 478Group: Development/Libraries
ba1cf74d 479URL: http://lldb.llvm.org/
5a7ac479
JB
480Requires: %{name}-devel = %{version}-%{release}
481Requires: clang-devel = %{version}-%{release}
482Requires: lldb = %{version}-%{release}
483
484%description -n lldb-devel
ba1cf74d 485Development files for LLDB debugger.
5a7ac479
JB
486
487%description -n lldb-devel -l pl.UTF-8
ba1cf74d 488Pliki programistyczne debuggera LLDB.
5a7ac479 489
9556f4c9
ER
490%package ocaml
491Summary: OCaml binding for LLVM
621ec11f
JB
492Summary(pl.UTF-8): Wiązanie OCamla do LLVM-a
493Group: Libraries
9556f4c9 494Requires: %{name} = %{version}-%{release}
c450bf27 495%if %{with ocaml}
9556f4c9 496%requires_eq ocaml-runtime
c450bf27 497%endif
9556f4c9 498
621ec11f 499%description ocaml
9556f4c9
ER
500OCaml binding for LLVM.
501
621ec11f
JB
502%description ocaml -l pl.UTF-8
503Wiązanie OCamla do LLVM-a.
504
9556f4c9 505%package ocaml-devel
621ec11f
JB
506Summary: Development files for LLVM OCaml binding
507Summary(pl.UTF-8): Pliki programistyczne wiązania OCamla do LLVM-a
9556f4c9
ER
508Group: Development/Libraries
509Requires: %{name}-devel = %{version}-%{release}
510Requires: %{name}-ocaml = %{version}-%{release}
511
512%description ocaml-devel
513The llvm-ocaml-devel package contains libraries and signature files
621ec11f
JB
514for developing applications that use llvm-ocaml binding.
515
516%description ocaml-devel -l pl.UTF-8
517Ten pakiet zawiera biblioteki i pliki sygnatur do tworzenia aplikacji
518wykorzystujących wiązanie llvm-ocaml.
519
9556f4c9
ER
520%package ocaml-doc
521Summary: Documentation for LLVM's OCaml binding
621ec11f 522Summary(pl.UTF-8): Dokumentacja wiązania OCamla do LLVM-a
9556f4c9
ER
523Group: Documentation
524Requires: %{name}-ocaml = %{version}-%{release}
525
526%description ocaml-doc
527HTML documentation for LLVM's OCaml binding.
528
621ec11f
JB
529%description ocaml-doc -l pl.UTF-8
530Dokumentacja HTML wiązania OCamla do LLVM-a.
531
d7447383
JR
532%package opt-viewer
533Summary: Optimization records visualization tools
83d2be6c 534Summary(pl.UTF-8): Narzędzia do wizualizacji rekordów optymalizacji
d7447383
JR
535Group: Development/Tools
536Requires: %{name} = %{version}
8e9fbe9e 537BuildArch: noarch
d7447383
JR
538
539%description opt-viewer
540Optimization records visualization tools.
541
83d2be6c
JB
542%description opt-viewer -l pl.UTF-8
543Narzędzia do wizualizacji rekordów optymalizacji.
544
d7447383 545%package -n vim-plugin-clang
83d2be6c
JB
546Summary: Clang format and rename integration for Vim
547Summary(pl.UTF-8): Integracja narzędzi Clang do formatowania i zmiany nazw z Vimem
d7447383
JR
548Group: Applications/Editors/Vim
549Requires: vim-rt >= 4:7.0
550BuildArch: noarch
551
552%description -n vim-plugin-clang
83d2be6c
JB
553Clang format and rename integration for Vim.
554
555%description -n vim-plugin-clang -l pl.UTF-8
556Integracja narzędzi Clang do formatowania i zmiany nazw z Vimem.
d7447383 557
aa11c230 558%prep
1a356f89 559%setup -q -n %{name}-%{version}.src -a1 %{?with_rt:-a2} %{?with_lldb:-a3} %{?with_polly:-a4} -a5 -a6 %{?with_flang:-a7 -a8}
44d18de7 560%{__mv} clang-%{version}.src tools/clang
5013c7ea
JB
561%{?with_rt:%{__mv} compiler-rt-%{version}.src projects/compiler-rt}
562%{?with_lldb:%{__mv} lldb-%{version}.src tools/lldb}
563%{?with_polly:%{__mv} polly-%{version}.src tools/polly}
d706a70d
JB
564%{__mv} clang-tools-extra-%{version}.src tools/clang/tools/extra
565%{__mv} lld-%{version}.src tools/lld
1a356f89
JB
566%if %{with flang}
567%{__mv} flang-%{version}.src tools/flang
568%{__mv} mlir tools/mlir
569%endif
5a7ac479 570
9f7b77bd 571%patch1 -p1
200602f4 572%patch2 -p1
9f7b77bd 573%patch3 -p1
d96b39d3 574%patch4 -p1
d706a70d 575%patch5 -p1
1a356f89
JB
576%if %{with flang}
577%patch6 -p1
578%endif
ce9cc204 579
ef49a424 580grep -rl /usr/bin/env projects tools utils | xargs sed -i -e '1{
bacc8b96
ER
581 s,^#!.*bin/env python,#!%{__python},
582 s,^#!.*bin/env perl,#!%{__perl},
583}'
584
d7447383
JR
585find -name '*.py' -print0 | xargs -0 sed -i -e '1{
586 s,^#!.*bin/python.*,#!%{__python},
587}'
588
d756c460 589%build
41876fe7 590install -d build
ebde279d 591
d997b14b 592# Disabling assertions now, rec. by pure and needed for OpenGTL
9556f4c9 593# TESTFIX no PIC on ix86: http://llvm.org/bugs/show_bug.cgi?id=3801
41876fe7 594cd build
5e689738 595CPPFLAGS="%{rpmcppflags} -D_FILE_OFFSET_BITS=64"
2bbd0701 596
1431eb62
JP
597%if %{with lowmem}
598export CFLAGS="%{rpmcflags} -g0"
599export CXXFLAGS="%{rpmcxxflags} -g0"
600export LDFLAGS="%{rpmldflags} -Wl,--reduce-memory-overheads"
601%endif
602
200602f4
JB
603%cmake .. \
604 -DBUILD_SHARED_LIBS:BOOL=OFF \
200602f4
JB
605 -DENABLE_LINKER_BUILD_ID:BOOL=ON \
606 -DLLVM_BINDINGS_LIST:LIST="%{?with_ocaml:ocaml}" \
607 -DLLVM_BINUTILS_INCDIR:STRING=%{_includedir} \
608 -DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \
609 -DLLVM_ENABLE_ASSERTIONS:BOOL=OFF \
610 -DLLVM_ENABLE_CXX1Y:BOOL=ON \
9556f4c9 611%if %{with apidocs}
41876fe7 612 -DLLVM_ENABLE_DOXYGEN:BOOL=ON \
d997b14b 613%endif
44d18de7 614 %{?with_cxxmodules:-DLLVM_ENABLE_MODULES:BOOL=ON} \
200602f4
JB
615 -DLLVM_ENABLE_PIC:BOOL=ON \
616 -DLLVM_ENABLE_RTTI:BOOL=ON \
41876fe7
JR
617%if %{with doc}
618 -DLLVM_ENABLE_SPHINX:BOOL=ON \
619%endif
44d18de7 620 %{!?with_z3:-DLLVM_ENABLE_Z3_SOLVER:BOOL=OFF} \
200602f4
JB
621%if "%{_lib}" == "lib64"
622 -DLLVM_LIBDIR_SUFFIX:STRING=64 \
623%endif
624%if "%{_lib}" == "libx32"
625 -DLLVM_LIBDIR_SUFFIX:STRING=x32 \
626%endif
9a23736f 627 -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
67331d50 628 -DLLVM_DEFAULT_TARGET_TRIPLE:STRING=%{_target_platform} \
1431eb62
JP
629%if %{with lowmem}
630 -DLLVM_PARALLEL_LINK_JOBS:STRING=1 \
631%endif
200602f4 632 -DSPHINX_WARNINGS_AS_ERRORS=OFF
41876fe7 633
d997b14b 634%{__make} \
1628dc68 635 VERBOSE=1 \
d997b14b 636 OPTIMIZE_OPTION="%{rpmcflags} %{rpmcppflags}"
aa11c230 637
827664e9 638%if %{with tests}
9556f4c9
ER
639%{__make} check 2>&1 | tee llvm-testlog.txt
640%{__make} -C tools/clang test 2>&1 | tee clang-testlog.txt
641%endif
642
b0068ae4 643%if %{with doc}
41876fe7
JR
644%{__make} -C docs docs-llvm-html
645%{__make} -C docs docs-llvm-man
c6c890ee 646%if %{with ocaml}
41876fe7 647%{__make} -C docs ocaml_doc
c6c890ee 648%endif
41876fe7
JR
649%{__make} -C tools/clang/docs docs-clang-html
650%{__make} -C tools/clang/docs docs-clang-man
651%{__make} -C tools/lld/docs docs-lld-html
d1e2ca8d 652# workaround failed import of _lldb
ef49a424 653cp -pnL %{_lib}/python%{py_ver}/site-packages/lldb/_lldb.so tools/lldb/docs/lldb
47e02cfd
JP
654%{__make} \
655 LD_LIBRARY_PATH=$(pwd)/%{_lib} \
656 -C tools/lldb/docs lldb-python-doc
41876fe7 657%{__make} -C tools/lldb/docs lldb-cpp-doc
dd9350c7
JB
658%endif
659
aa11c230 660%install
661rm -rf $RPM_BUILD_ROOT
5013c7ea 662
464fc37c 663%{__make} -j1 -C build install \
aa11c230 664 DESTDIR=$RPM_BUILD_ROOT
665
6df3b432
JB
666# only some .pyc files are created by make install
667%py_comp $RPM_BUILD_ROOT%{py_sitedir}
668%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
669
634a3e5b 670# Adjust static analyzer installation
9556f4c9 671# http://clang-analyzer.llvm.org/installation#OtherPlatforms
634a3e5b
JB
672install -d $RPM_BUILD_ROOT%{_libdir}/scan-build
673%{__mv} $RPM_BUILD_ROOT%{_prefix}/libexec/c??-analyzer $RPM_BUILD_ROOT%{_libdir}/scan-build
80d95ac6 674%{__sed} -i -e 's,/\.\./libexec/,/../%{_lib}/scan-build/,' $RPM_BUILD_ROOT%{_bindir}/scan-build
634a3e5b
JB
675%py_comp $RPM_BUILD_ROOT%{_datadir}/scan-view
676%py_ocomp $RPM_BUILD_ROOT%{_datadir}/scan-view
677%py_postclean %{_datadir}/scan-view
d997b14b 678
6df3b432 679# not installed by cmake buildsystem
6df3b432
JB
680install build/bin/pp-trace $RPM_BUILD_ROOT%{_bindir}
681
b0068ae4 682%if %{with doc}
6df3b432 683cp -p build/docs/man/*.1 $RPM_BUILD_ROOT%{_mandir}/man1
b883cf1e
JB
684# these tools are not installed
685%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{FileCheck,llvm-build}.1
b0068ae4
JB
686# make links
687echo '.so llvm-ar.1' > $RPM_BUILD_ROOT%{_mandir}/man1/llvm-ranlib.1
dd9350c7
JB
688%endif
689
d997b14b 690# Move documentation back to build directory
2bbd0701 691%if %{with ocaml}
6df3b432 692rm -rf ocamldocs
5013c7ea 693%{__mv} $RPM_BUILD_ROOT%{_docdir}/llvm/ocaml-html ocamldocs
2bbd0701 694%endif
9556f4c9
ER
695
696# and separate the apidoc
697%if %{with apidocs}
6df3b432
JB
698rm -rf clang-apidoc
699cp -a build/tools/clang/docs/html clang-apidoc
9556f4c9 700%endif
d997b14b
AM
701
702# And prepare Clang documentation
d997b14b 703rm -rf clang-docs
9556f4c9 704install -d clang-docs
827664e9 705for f in LICENSE.TXT NOTES.txt README.txt; do
9556f4c9 706 ln tools/clang/$f clang-docs
d997b14b 707done
021b3c3d 708
d706a70d 709%{__rm} $RPM_BUILD_ROOT%{_bindir}/{c-index-test,llvm-c-test}
6df3b432
JB
710# not this OS
711%{__rm} $RPM_BUILD_ROOT%{_datadir}/clang/clang-format-bbedit.applescript
d706a70d
JB
712# use system six
713%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/six.py*
03073220
JK
714# it seems it is used internally by an extra clang tool
715%{__rm} $RPM_BUILD_ROOT%{_libdir}/libfindAllSymbols.a
6832a5c5 716
fba35f64
JB
717# disable completeness check incompatible with split packaging
718%{__sed} -i -e '/^foreach(target .*IMPORT_CHECK_TARGETS/,/^endforeach/d; /^unset(_IMPORT_CHECK_TARGETS)/d' $RPM_BUILD_ROOT%{_libdir}/cmake/llvm/LLVMExports.cmake
719
aa11c230 720%clean
721rm -rf $RPM_BUILD_ROOT
722
8c514f23
JB
723%post libs -p /sbin/ldconfig
724%postun libs -p /sbin/ldconfig
aa11c230 725
5013c7ea
JB
726%post -n clang-libs -p /sbin/ldconfig
727%postun -n clang-libs -p /sbin/ldconfig
5a7ac479
JB
728
729%post -n lldb -p /sbin/ldconfig
730%postun -n lldb -p /sbin/ldconfig
731
aa11c230 732%files
733%defattr(644,root,root,755)
8132e62b 734%doc CREDITS.TXT LICENSE.TXT README.txt %{?with_tests:llvm-testlog.txt}
a9beeab5 735%attr(755,root,root) %{_bindir}/bugpoint
8f8cf7a8 736%attr(755,root,root) %{_bindir}/dsymutil
a9beeab5
JB
737%attr(755,root,root) %{_bindir}/llc
738%attr(755,root,root) %{_bindir}/lli
d1e2ca8d 739%attr(755,root,root) %{_bindir}/llvm-addr2line
8132e62b
JB
740%attr(755,root,root) %{_bindir}/llvm-ar
741%attr(755,root,root) %{_bindir}/llvm-as
742%attr(755,root,root) %{_bindir}/llvm-bcanalyzer
5013c7ea 743%attr(755,root,root) %{_bindir}/llvm-cat
23ae6496 744%attr(755,root,root) %{_bindir}/llvm-cfi-verify
827664e9 745%attr(755,root,root) %{_bindir}/llvm-cov
265e167c 746%attr(755,root,root) %{_bindir}/llvm-cvtres
5013c7ea
JB
747%attr(755,root,root) %{_bindir}/llvm-cxxdump
748%attr(755,root,root) %{_bindir}/llvm-cxxfilt
0bc9c5c9 749%attr(755,root,root) %{_bindir}/llvm-cxxmap
8132e62b
JB
750%attr(755,root,root) %{_bindir}/llvm-diff
751%attr(755,root,root) %{_bindir}/llvm-dis
265e167c 752%attr(755,root,root) %{_bindir}/llvm-dlltool
827664e9 753%attr(755,root,root) %{_bindir}/llvm-dwarfdump
264482e1 754%attr(755,root,root) %{_bindir}/llvm-dwp
0bc9c5c9 755%attr(755,root,root) %{_bindir}/llvm-elfabi
8f8cf7a8 756%attr(755,root,root) %{_bindir}/llvm-exegesis
8132e62b 757%attr(755,root,root) %{_bindir}/llvm-extract
f784323b 758%attr(755,root,root) %{_bindir}/llvm-gsymutil
ef49a424
JP
759%attr(755,root,root) %{_bindir}/llvm-ifs
760%attr(755,root,root) %{_bindir}/llvm-install-name-tool
d1e2ca8d 761%attr(755,root,root) %{_bindir}/llvm-jitlink
6df3b432 762%attr(755,root,root) %{_bindir}/llvm-lib
8132e62b 763%attr(755,root,root) %{_bindir}/llvm-link
d1e2ca8d 764%attr(755,root,root) %{_bindir}/llvm-lipo
3c402b7e 765%attr(755,root,root) %{_bindir}/llvm-lto
5013c7ea 766%attr(755,root,root) %{_bindir}/llvm-lto2
8132e62b 767%attr(755,root,root) %{_bindir}/llvm-mc
8f8cf7a8 768%attr(755,root,root) %{_bindir}/llvm-mca
f784323b 769%attr(755,root,root) %{_bindir}/llvm-ml
5013c7ea 770%attr(755,root,root) %{_bindir}/llvm-modextract
265e167c 771%attr(755,root,root) %{_bindir}/llvm-mt
8132e62b 772%attr(755,root,root) %{_bindir}/llvm-nm
23ae6496 773%attr(755,root,root) %{_bindir}/llvm-objcopy
8132e62b 774%attr(755,root,root) %{_bindir}/llvm-objdump
5013c7ea 775%attr(755,root,root) %{_bindir}/llvm-opt-report
265e167c 776%attr(755,root,root) %{_bindir}/llvm-pdbutil
b883cf1e 777%attr(755,root,root) %{_bindir}/llvm-profdata
8132e62b 778%attr(755,root,root) %{_bindir}/llvm-ranlib
23ae6496 779%attr(755,root,root) %{_bindir}/llvm-rc
265e167c 780%attr(755,root,root) %{_bindir}/llvm-readelf
f981d747 781%attr(755,root,root) %{_bindir}/llvm-readobj
ef49a424 782%attr(755,root,root) %{_bindir}/llvm-reduce
827664e9
PS
783%attr(755,root,root) %{_bindir}/llvm-rtdyld
784%attr(755,root,root) %{_bindir}/llvm-size
264482e1 785%attr(755,root,root) %{_bindir}/llvm-split
8f8cf7a8 786%attr(755,root,root) %{_bindir}/llvm-strip
f981d747 787%attr(755,root,root) %{_bindir}/llvm-stress
5013c7ea 788%attr(755,root,root) %{_bindir}/llvm-strings
1628dc68 789%attr(755,root,root) %{_bindir}/llvm-symbolizer
827664e9 790%attr(755,root,root) %{_bindir}/llvm-tblgen
8f8cf7a8 791%attr(755,root,root) %{_bindir}/llvm-undname
5013c7ea 792%attr(755,root,root) %{_bindir}/llvm-xray
4ba3b2b3 793%attr(755,root,root) %{_bindir}/obj2yaml
8132e62b 794%attr(755,root,root) %{_bindir}/opt
d706a70d 795%attr(755,root,root) %{_bindir}/sancov
03073220 796%attr(755,root,root) %{_bindir}/sanstats
4ba3b2b3
JB
797%attr(755,root,root) %{_bindir}/verify-uselistorder
798%attr(755,root,root) %{_bindir}/yaml2obj
b0068ae4 799%if %{with doc}
a9beeab5 800%{_mandir}/man1/bugpoint.1*
23ae6496 801%{_mandir}/man1/dsymutil.1*
a7973f21 802%{_mandir}/man1/lit.1*
a9beeab5
JB
803%{_mandir}/man1/llc.1*
804%{_mandir}/man1/lli.1*
d1e2ca8d 805%{_mandir}/man1/llvm-addr2line.1*
8132e62b
JB
806%{_mandir}/man1/llvm-ar.1*
807%{_mandir}/man1/llvm-as.1*
808%{_mandir}/man1/llvm-bcanalyzer.1*
f981d747 809%{_mandir}/man1/llvm-cov.1*
d1e2ca8d 810%{_mandir}/man1/llvm-cxxfilt.1*
0bc9c5c9 811%{_mandir}/man1/llvm-cxxmap.1*
8132e62b
JB
812%{_mandir}/man1/llvm-diff.1*
813%{_mandir}/man1/llvm-dis.1*
b883cf1e 814%{_mandir}/man1/llvm-dwarfdump.1*
8f8cf7a8 815%{_mandir}/man1/llvm-exegesis.1*
8132e62b 816%{_mandir}/man1/llvm-extract.1*
d706a70d 817%{_mandir}/man1/llvm-lib.1*
8132e62b 818%{_mandir}/man1/llvm-link.1*
d1e2ca8d 819%{_mandir}/man1/llvm-lipo.1*
ef49a424 820%{_mandir}/man1/llvm-locstats.1*
8f8cf7a8 821%{_mandir}/man1/llvm-mca.1*
8132e62b 822%{_mandir}/man1/llvm-nm.1*
d1e2ca8d 823%{_mandir}/man1/llvm-objcopy.1*
0bc9c5c9 824%{_mandir}/man1/llvm-objdump.1*
23ae6496 825%{_mandir}/man1/llvm-pdbutil.1*
b883cf1e 826%{_mandir}/man1/llvm-profdata.1*
8132e62b 827%{_mandir}/man1/llvm-ranlib.1*
d1e2ca8d 828%{_mandir}/man1/llvm-readelf.1*
c999855f 829%{_mandir}/man1/llvm-readobj.1*
d1e2ca8d 830%{_mandir}/man1/llvm-size.1*
f981d747 831%{_mandir}/man1/llvm-stress.1*
d1e2ca8d
JP
832%{_mandir}/man1/llvm-strings.1*
833%{_mandir}/man1/llvm-strip.1*
1628dc68 834%{_mandir}/man1/llvm-symbolizer.1*
a9beeab5 835%{_mandir}/man1/opt.1*
dd9350c7 836%{_mandir}/man1/tblgen.1*
b0068ae4 837%endif
bc88141a 838
8c514f23
JB
839%files libs
840%defattr(644,root,root,755)
9a23736f
JB
841%attr(755,root,root) %{_libdir}/libLLVM-%{abi}.so
842# non-soname symlink
843%attr(755,root,root) %{_libdir}/libLLVM-%{version}.so
f784323b 844%attr(755,root,root) %ghost %{_libdir}/libLTO.so.11
4e51849f 845%attr(755,root,root) %{_libdir}/LLVMgold.so
f784323b
JP
846%attr(755,root,root) %{_libdir}/libRemarks.so.11
847%attr(755,root,root) %{_libdir}/libclang-cpp.so.11
8c514f23 848
bc88141a
ER
849%files devel
850%defattr(644,root,root,755)
851%attr(755,root,root) %{_bindir}/llvm-config
9a23736f 852%attr(755,root,root) %{_libdir}/libLLVM.so
5013c7ea 853%attr(755,root,root) %{_libdir}/libLTO.so
d1e2ca8d
JP
854%attr(755,root,root) %{_libdir}/libRemarks.so
855%attr(755,root,root) %{_libdir}/libclang-cpp.so
d706a70d 856%{_libdir}/libLLVM*.a
8132e62b
JB
857%{_includedir}/llvm
858%{_includedir}/llvm-c
9ace1f65 859%{_libdir}/cmake/llvm
b0068ae4 860%if %{with doc}
8132e62b 861%{_mandir}/man1/llvm-config.1*
b0068ae4 862%endif
bc88141a 863
6df3b432
JB
864#%files doc
865#%defattr(644,root,root,755)
9556f4c9
ER
866
867%if %{with apidocs}
868%files apidocs
869%defattr(644,root,root,755)
870%doc apidoc/*
871%endif
872
b0068ae4
JB
873%if %{with polly}
874%files polly
875%defattr(644,root,root,755)
6c2b1a44 876%doc tools/polly/{CREDITS.txt,LICENSE.txt,README} tools/polly/www/{bugs,changelog,contributors}.html
b0068ae4
JB
877%attr(755,root,root) %{_libdir}/LLVMPolly.so
878
879%files polly-devel
880%defattr(644,root,root,755)
9a23736f
JB
881%{_libdir}/libPolly.a
882%{_libdir}/libPollyISL.a
03073220 883%{_libdir}/libPollyPPCG.a
b0068ae4 884%{_includedir}/polly
265e167c 885%{_libdir}/cmake/polly
b0068ae4
JB
886%endif
887
d997b14b 888%files -n clang
bc88141a 889%defattr(644,root,root,755)
827664e9 890%doc clang-docs/{LICENSE.TXT,NOTES.txt,README.txt} %{?with_tests:clang-testlog.txt}
8132e62b
JB
891%attr(755,root,root) %{_bindir}/clang
892%attr(755,root,root) %{_bindir}/clang++
509439cf 893%attr(755,root,root) %{_bindir}/clang-%{abi}
dd9350c7 894%attr(755,root,root) %{_bindir}/clang-check
6df3b432 895%attr(755,root,root) %{_bindir}/clang-cl
5013c7ea 896%attr(755,root,root) %{_bindir}/clang-cpp
d1e2ca8d 897%attr(755,root,root) %{_bindir}/clang-doc
1628dc68 898%attr(755,root,root) %{_bindir}/clang-format
5013c7ea 899%attr(755,root,root) %{_bindir}/clang-offload-bundler
ef49a424 900%attr(755,root,root) %{_bindir}/clang-offload-wrapper
6df3b432 901%attr(755,root,root) %{_bindir}/git-clang-format
5a7ac479
JB
902%dir %{_libdir}/clang
903%dir %{_libdir}/clang/%{version}
904%{_libdir}/clang/%{version}/include
905%if %{with rt}
19798eda 906%ifarch %{x8664} aarch64
ef49a424
JP
907%dir %{_libdir}/clang/%{version}/bin
908%attr(755,root,root) %{_libdir}/clang/%{version}/bin/hwasan_symbolize
19798eda 909%endif
7bceddf8 910%ifarch %{ix86} %{x8664} aarch64
3b28b31d
JB
911%dir %{_libdir}/clang/%{version}/lib
912%dir %{_libdir}/clang/%{version}/lib/linux
913%dir %{_libdir}/clang/%{version}/share
914%endif
915%ifarch x32
916%if %{with multilib}
9eefd942
JR
917%dir %{_libdir}/clang/%{version}/lib
918%dir %{_libdir}/clang/%{version}/lib/linux
8f8cf7a8 919%dir %{_libdir}/clang/%{version}/share
9eefd942 920%endif
3b28b31d 921%endif
9eefd942 922%ifarch %{ix86}
d1e2ca8d 923%{_libdir}/clang/%{version}/lib/linux/clang_rt.*-i*86.o
9eefd942
JR
924%{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-i*86.a
925%attr(755,root,root) %{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-i*86.so
c6c890ee
JB
926%endif
927%ifarch %{x8664}
d1e2ca8d 928%{_libdir}/clang/%{version}/lib/linux/clang_rt.*-x86_64.o
9eefd942
JR
929%{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-x86_64.a
930%attr(755,root,root) %{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-x86_64.so
f4c0e8bd 931%{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-x86_64.a.syms
3c402b7e 932%endif
7bceddf8
JP
933%ifarch aarch64
934%{_libdir}/clang/%{version}/lib/linux/clang_rt.*-aarch64.o
935%{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-aarch64.a
936%attr(755,root,root) %{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-aarch64.so
937%{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-aarch64.a.syms
938%endif
3b28b31d 939%ifarch %{ix86} %{x8664} %{arm} aarch64 mips mips64 ppc64
8f8cf7a8 940%{_libdir}/clang/%{version}/share/asan_blacklist.txt
d706a70d 941%endif
7bceddf8 942%ifarch %{ix86} %{x8664} mips64 aarch64
8f8cf7a8 943%{_libdir}/clang/%{version}/share/cfi_blacklist.txt
d706a70d 944%endif
3b28b31d 945%ifarch %{x8664} aarch64 mips64
8f8cf7a8
JP
946%{_libdir}/clang/%{version}/share/dfsan_abilist.txt
947%{_libdir}/clang/%{version}/share/msan_blacklist.txt
948%endif
3b28b31d 949%ifarch %{x8664} aarch64
8f8cf7a8 950%{_libdir}/clang/%{version}/share/hwasan_blacklist.txt
d706a70d 951%endif
3b28b31d
JB
952%ifarch x32
953%if %{with multilib}
954%{_libdir}/clang/%{version}/share/asan_blacklist.txt
955%{_libdir}/clang/%{version}/share/cfi_blacklist.txt
956%{_libdir}/clang/%{version}/share/dfsan_abilist.txt
957%{_libdir}/clang/%{version}/share/msan_blacklist.txt
958%{_libdir}/clang/%{version}/share/hwasan_blacklist.txt
959%endif
960%endif
5a7ac479 961%endif
3c402b7e
JB
962%dir %{_datadir}/clang
963%{_datadir}/clang/clang-format-diff.py
d997b14b 964
87977e26
JR
965%files -n clang-libs
966%defattr(644,root,root,755)
509439cf 967%attr(755,root,root) %{_libdir}/libclang.so.%{abi}
87977e26 968
589b92f5 969%if %{with rt} && %{with multilib}
b0e18b64 970%ifarch %{x8664} x32
9eefd942
JR
971%files -n clang-multilib
972%defattr(644,root,root,755)
d1e2ca8d 973%{_libdir}/clang/%{version}/lib/linux/clang_rt.*-i386.o
9eefd942
JR
974%{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-i386.a
975%attr(755,root,root) %{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-i386.so
976%endif
b0e18b64 977%ifarch x32
d1e2ca8d 978%{_libdir}/clang/%{version}/lib/linux/clang_rt.*-x86_64.o
b0e18b64
JB
979%{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-x86_64.a
980%attr(755,root,root) %{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-x86_64.so
981%{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-x86_64.a.syms
982%endif
9eefd942
JR
983%endif
984
d997b14b 985%files -n clang-analyzer
bc88141a 986%defattr(644,root,root,755)
d997b14b
AM
987%attr(755,root,root) %{_bindir}/scan-build
988%attr(755,root,root) %{_bindir}/scan-view
634a3e5b
JB
989%{_datadir}/scan-build
990%{_datadir}/scan-view
dd9350c7 991%{_mandir}/man1/scan-build.1*
4522eb9a
JB
992%dir %{_libdir}/scan-build
993%attr(755,root,root) %{_libdir}/scan-build/c++-analyzer
994%attr(755,root,root) %{_libdir}/scan-build/ccc-analyzer
8132e62b 995
9556f4c9
ER
996%files -n clang-devel
997%defattr(644,root,root,755)
9a23736f
JB
998%attr(755,root,root) %{_libdir}/libclang.so
999%{_libdir}/libclang*.a
9556f4c9
ER
1000%{_includedir}/clang
1001%{_includedir}/clang-c
f784323b 1002%{_includedir}/clang-tidy
9ace1f65 1003%{_libdir}/cmake/clang
9556f4c9
ER
1004
1005%files -n clang-doc
1006%defattr(644,root,root,755)
41876fe7 1007%doc tools/clang/docs/*.{html,png,txt}
9556f4c9
ER
1008
1009%if %{with apidocs}
1010%files -n clang-apidocs
1011%defattr(644,root,root,755)
1012%doc clang-apidoc/*
1013%endif
1014
b0068ae4
JB
1015%files -n clang-tools-extra
1016%defattr(644,root,root,755)
9ace1f65 1017%doc tools/clang/tools/extra/{CODE_OWNERS.TXT,README.txt}
b0068ae4 1018%attr(755,root,root) %{_bindir}/clang-apply-replacements
5013c7ea 1019%attr(755,root,root) %{_bindir}/clang-change-namespace
0bc9c5c9 1020%attr(755,root,root) %{_bindir}/clang-extdef-mapping
03073220 1021%attr(755,root,root) %{_bindir}/clang-include-fixer
ef49a424 1022%attr(755,root,root) %{_bindir}/clang-move
b883cf1e 1023%attr(755,root,root) %{_bindir}/clang-query
23ae6496 1024%attr(755,root,root) %{_bindir}/clang-refactor
4ba3b2b3 1025%attr(755,root,root) %{_bindir}/clang-rename
5013c7ea 1026%attr(755,root,root) %{_bindir}/clang-reorder-fields
d1e2ca8d 1027%attr(755,root,root) %{_bindir}/clang-scan-deps
b0068ae4 1028%attr(755,root,root) %{_bindir}/clang-tidy
265e167c 1029%attr(755,root,root) %{_bindir}/clangd
8f8cf7a8 1030%attr(755,root,root) %{_bindir}/diagtool
03073220 1031%attr(755,root,root) %{_bindir}/find-all-symbols
8f8cf7a8 1032%attr(755,root,root) %{_bindir}/hmaptool
d706a70d 1033%attr(755,root,root) %{_bindir}/modularize
b0068ae4 1034%attr(755,root,root) %{_bindir}/pp-trace
03073220 1035%{_datadir}/clang/clang-include-fixer.py
d706a70d
JB
1036%{_datadir}/clang/clang-tidy-diff.py
1037%{_datadir}/clang/run-clang-tidy.py
03073220 1038%{_datadir}/clang/run-find-all-symbols.py
b0068ae4 1039
ba1cf74d
JB
1040%files -n lld
1041%defattr(644,root,root,755)
1042%doc tools/lld/{LICENSE.TXT,README.md}
d706a70d 1043%attr(755,root,root) %{_bindir}/ld.lld
23ae6496 1044%attr(755,root,root) %{_bindir}/ld64.lld
ba1cf74d 1045%attr(755,root,root) %{_bindir}/lld
d706a70d 1046%attr(755,root,root) %{_bindir}/lld-link
d7447383 1047%attr(755,root,root) %{_bindir}/wasm-ld
ba1cf74d
JB
1048
1049%files -n lld-devel
1050%defattr(644,root,root,755)
d7447383 1051%{_libdir}/liblld[ACDEHMRWXY]*.a
ba1cf74d 1052%{_includedir}/lld
f784323b 1053%{_libdir}/cmake/lld
ba1cf74d 1054
5a7ac479
JB
1055%if %{with lldb}
1056%files -n lldb
1057%defattr(644,root,root,755)
1058%attr(755,root,root) %{_bindir}/lldb
4522eb9a 1059%attr(755,root,root) %{_bindir}/lldb-argdumper
d1e2ca8d 1060%attr(755,root,root) %{_bindir}/lldb-instr
6df3b432 1061%attr(755,root,root) %{_bindir}/lldb-server
0bc9c5c9 1062%attr(755,root,root) %{_bindir}/lldb-vscode
6df3b432 1063%attr(755,root,root) %{_libdir}/liblldb.so.%{version}
f784323b
JP
1064%attr(755,root,root) %ghost %{_libdir}/liblldb.so.11
1065%attr(755,root,root) %ghost %{_libdir}/liblldbIntelFeatures.so.11
b883cf1e 1066%dir %{py_sitedir}/lldb
4522eb9a 1067%attr(755,root,root) %{py_sitedir}/lldb/lldb-argdumper
6df3b432 1068%{py_sitedir}/lldb/formatters
6df3b432
JB
1069%{py_sitedir}/lldb/utils
1070%{py_sitedir}/lldb/__init__.py[co]
1071%{py_sitedir}/lldb/embedded_interpreter.py[co]
b883cf1e 1072%attr(755,root,root) %{py_sitedir}/lldb/_lldb.so
5a7ac479
JB
1073
1074%files -n lldb-devel
1075%defattr(644,root,root,755)
6df3b432 1076%attr(755,root,root) %{_libdir}/liblldb.so
23ae6496 1077%attr(755,root,root) %{_libdir}/liblldbIntelFeatures.so
5a7ac479
JB
1078%{_includedir}/lldb
1079%endif
1080
9556f4c9 1081%if %{with ocaml}
d997b14b
AM
1082%files ocaml
1083%defattr(644,root,root,755)
265e167c 1084%attr(755,root,root) %{_libdir}/ocaml/stublibs/dllllvm*.so
5013c7ea 1085%dir %{_libdir}/ocaml/llvm
5013c7ea
JB
1086%{_libdir}/ocaml/llvm/llvm*.cma
1087%{_libdir}/ocaml/llvm/llvm*.cmi
11b6f380 1088%{_libdir}/ocaml/META.llvm*
d997b14b
AM
1089
1090%files ocaml-devel
1091%defattr(644,root,root,755)
5013c7ea
JB
1092%{_libdir}/ocaml/llvm/libllvm*.a
1093%{_libdir}/ocaml/llvm/llvm*.a
1094%{_libdir}/ocaml/llvm/llvm*.cmx
1095%{_libdir}/ocaml/llvm/llvm*.cmxa
1096%{_libdir}/ocaml/llvm/llvm*.mli
9556f4c9
ER
1097
1098%files ocaml-doc
1099%defattr(644,root,root,755)
6df3b432 1100%doc ocamldocs/*
9556f4c9 1101%endif
d7447383
JR
1102
1103%files opt-viewer
1104%defattr(644,root,root,755)
1105%{_datadir}/opt-viewer
1106
1107%files -n vim-plugin-clang
1108%defattr(644,root,root,755)
1109%{_datadir}/clang/clang-format.py
1110%{_datadir}/clang/clang-rename.py
This page took 0.354997 seconds and 4 git commands to generate.