Accepting request 425075 from home:TheBlackCat:branches:devel:tools:compiler

Update to llvm 3.8.1
Many other fixes and cleanups

OBS-URL: https://build.opensuse.org/request/show/425075
OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=467
This commit is contained in:
Ismail Dönmez 2016-09-07 06:46:04 +00:00 committed by Git OBS Bridge
parent dc80bb7862
commit f08dbfb441
39 changed files with 676 additions and 291 deletions

View File

@ -1,7 +1,7 @@
Index: cfe-3.8.0.src/lib/Driver/ToolChains.cpp Index: cfe-3.8.1.src/lib/Driver/ToolChains.cpp
=================================================================== ===================================================================
--- cfe-3.8.0.src/lib/Driver/ToolChains.cpp.orig --- cfe-3.8.1.src/lib/Driver/ToolChains.cpp.orig
+++ cfe-3.8.0.src/lib/Driver/ToolChains.cpp +++ cfe-3.8.1.src/lib/Driver/ToolChains.cpp
@@ -1418,7 +1418,7 @@ bool Generic_GCC::GCCInstallationDetecto @@ -1418,7 +1418,7 @@ bool Generic_GCC::GCCInstallationDetecto
static const char *const AArch64LibDirs[] = {"/lib64", "/lib"}; static const char *const AArch64LibDirs[] = {"/lib64", "/lib"};
static const char *const AArch64Triples[] = { static const char *const AArch64Triples[] = {

View File

@ -1,7 +1,7 @@
Index: cfe-3.8.0.src/lib/Driver/ToolChains.cpp Index: cfe-3.8.1.src/lib/Driver/ToolChains.cpp
=================================================================== ===================================================================
--- cfe-3.8.0.src/lib/Driver/ToolChains.cpp.orig --- cfe-3.8.1.src/lib/Driver/ToolChains.cpp.orig
+++ cfe-3.8.0.src/lib/Driver/ToolChains.cpp +++ cfe-3.8.1.src/lib/Driver/ToolChains.cpp
@@ -3422,6 +3422,7 @@ static bool IsUbuntu(enum Distro Distro) @@ -3422,6 +3422,7 @@ static bool IsUbuntu(enum Distro Distro)
} }

View File

@ -1,3 +1,4 @@
libLLVM libLLVM3_8
libclang libclang3_8
llvm-devel
llvm-clang-devel

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:04149236de03cf05232d68eb7cb9c50f03062e339b68f4f8a03b650a11536cf9
size 9627228

3
cfe-3.8.1.src.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4cd3836dfb4b88b597e075341cae86d61c63ce3963e45c7fe6a8bf59bb382cdf
size 9605548

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9097443437dc7394e1b5bf09ebdd1a740734f2974d408a8ff136bcfcfd81b4b5
size 661952

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5656cc4d88e364f4d8ec30a16f051296a0ae10b15ce67e439b4c4caf3a6a9d2a
size 671716

View File

@ -1,7 +1,7 @@
Index: cfe-3.8.0.src/lib/Driver/Driver.cpp Index: cfe-3.8.1.src/lib/Driver/Driver.cpp
=================================================================== ===================================================================
--- cfe-3.8.0.src/lib/Driver/Driver.cpp --- cfe-3.8.1.src/lib/Driver/Driver.cpp
+++ cfe-3.8.0.src/lib/Driver/Driver.cpp +++ cfe-3.8.1.src/lib/Driver/Driver.cpp
@@ -64,7 +64,7 @@ Driver::Driver(StringRef ClangExecutable @@ -64,7 +64,7 @@ Driver::Driver(StringRef ClangExecutable
// Compute the path to the resource directory. // Compute the path to the resource directory.

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:afbda810106a6e64444bc164b921be928af46829117c95b996f2678ce4cb1ec4
size 334072

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:664a5c60220de9c290bf2a5b03d902ab731a4f95fe73a00856175ead494ec396
size 334768

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c8d3387e55f229543dac1941769120f24dc50183150bf19d1b070d53d29d56b0
size 1270128

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0df011dae14d8700499dfc961602ee0a9572fef926202ade5dcdfe7858411e5c
size 1263312

View File

@ -1,7 +1,7 @@
Index: cfe-3.8.0.src/lib/Driver/Tools.cpp Index: cfe-3.8.1.src/lib/Driver/Tools.cpp
=================================================================== ===================================================================
--- cfe-3.8.0.src/lib/Driver/Tools.cpp.orig --- cfe-3.8.1.src/lib/Driver/Tools.cpp.orig
+++ cfe-3.8.0.src/lib/Driver/Tools.cpp +++ cfe-3.8.1.src/lib/Driver/Tools.cpp
@@ -1680,8 +1680,8 @@ static const char *getX86TargetCPU(const @@ -1680,8 +1680,8 @@ static const char *getX86TargetCPU(const
case llvm::Triple::Bitrig: case llvm::Triple::Bitrig:
return "i686"; return "i686";

View File

@ -1,7 +1,7 @@
Index: libcxx-3.8.0.src/test/std/numerics/c.math/cmath_isinf.pass.cpp Index: libcxx-3.8.1.src/test/std/numerics/c.math/cmath_isinf.pass.cpp
=================================================================== ===================================================================
--- libcxx-3.8.0.src.orig/test/std/numerics/c.math/cmath_isinf.pass.cpp --- libcxx-3.8.1.src.orig/test/std/numerics/c.math/cmath_isinf.pass.cpp
+++ libcxx-3.8.0.src/test/std/numerics/c.math/cmath_isinf.pass.cpp +++ libcxx-3.8.1.src/test/std/numerics/c.math/cmath_isinf.pass.cpp
@@ -11,8 +11,6 @@ @@ -11,8 +11,6 @@
// isinf // isinf
@ -18,10 +18,10 @@ Index: libcxx-3.8.0.src/test/std/numerics/c.math/cmath_isinf.pass.cpp
-} -}
\ No newline at end of file \ No newline at end of file
+} +}
Index: libcxx-3.8.0.src/test/std/numerics/c.math/cmath_isnan.pass.cpp Index: libcxx-3.8.1.src/test/std/numerics/c.math/cmath_isnan.pass.cpp
=================================================================== ===================================================================
--- libcxx-3.8.0.src.orig/test/std/numerics/c.math/cmath_isnan.pass.cpp --- libcxx-3.8.1.src.orig/test/std/numerics/c.math/cmath_isnan.pass.cpp
+++ libcxx-3.8.0.src/test/std/numerics/c.math/cmath_isnan.pass.cpp +++ libcxx-3.8.1.src/test/std/numerics/c.math/cmath_isnan.pass.cpp
@@ -11,8 +11,6 @@ @@ -11,8 +11,6 @@
// isnan // isnan
@ -31,10 +31,10 @@ Index: libcxx-3.8.0.src/test/std/numerics/c.math/cmath_isnan.pass.cpp
#include <cmath> #include <cmath>
#include <type_traits> #include <type_traits>
#include <cassert> #include <cassert>
Index: libcxx-3.8.0.src/test/std/depr/depr.c.headers/math_h_isinf.pass.cpp Index: libcxx-3.8.1.src/test/std/depr/depr.c.headers/math_h_isinf.pass.cpp
=================================================================== ===================================================================
--- libcxx-3.8.0.src.orig/test/std/depr/depr.c.headers/math_h_isinf.pass.cpp --- libcxx-3.8.1.src.orig/test/std/depr/depr.c.headers/math_h_isinf.pass.cpp
+++ libcxx-3.8.0.src/test/std/depr/depr.c.headers/math_h_isinf.pass.cpp +++ libcxx-3.8.1.src/test/std/depr/depr.c.headers/math_h_isinf.pass.cpp
@@ -11,8 +11,6 @@ @@ -11,8 +11,6 @@
// isinf // isinf
@ -44,10 +44,10 @@ Index: libcxx-3.8.0.src/test/std/depr/depr.c.headers/math_h_isinf.pass.cpp
#include <math.h> #include <math.h>
#include <type_traits> #include <type_traits>
#include <cassert> #include <cassert>
Index: libcxx-3.8.0.src/test/std/depr/depr.c.headers/math_h_isnan.pass.cpp Index: libcxx-3.8.1.src/test/std/depr/depr.c.headers/math_h_isnan.pass.cpp
=================================================================== ===================================================================
--- libcxx-3.8.0.src.orig/test/std/depr/depr.c.headers/math_h_isnan.pass.cpp --- libcxx-3.8.1.src.orig/test/std/depr/depr.c.headers/math_h_isnan.pass.cpp
+++ libcxx-3.8.0.src/test/std/depr/depr.c.headers/math_h_isnan.pass.cpp +++ libcxx-3.8.1.src/test/std/depr/depr.c.headers/math_h_isnan.pass.cpp
@@ -11,8 +11,6 @@ @@ -11,8 +11,6 @@
// isnan // isnan

View File

@ -1,7 +1,7 @@
Index: libcxx-3.8.0.src/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp Index: libcxx-3.8.1.src/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp
=================================================================== ===================================================================
--- libcxx-3.8.0.src/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp.orig --- libcxx-3.8.1.src/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp.orig
+++ libcxx-3.8.0.src/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp +++ libcxx-3.8.1.src/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp
@@ -113,7 +113,7 @@ int main() @@ -113,7 +113,7 @@ int main()
{ {

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:36804511b940bc8a7cefc7cb391a6b28f5e3f53f6372965642020db91174237b
size 1062884

3
libcxx-3.8.1.src.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:77d7f3784c88096d785bd705fa1bab7031ce184cd91ba8a7008abf55264eeecc
size 1074164

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c5ee0871aff6ec741380c4899007a7d97f0b791c81df69d25b744eebc5cee504
size 508900

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e1b55f7be3fad746bdd3025f43e42d429fb6194aac5919c2be17c4a06314dae1
size 508392

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e3f68f44147df0433e7989bf6ed1c58ff28d7c68b9c47553cb9915f744785a35
size 10929768

3
lldb-3.8.1.src.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:349148116a47e39dcb5d5042f10d8a6357d2c865034563283ca512f81cdce8a3
size 10928220

View File

@ -1,7 +1,7 @@
Index: lldb-3.8.0.src/cmake/modules/LLDBConfig.cmake Index: lldb-3.8.1.src/cmake/modules/LLDBConfig.cmake
=================================================================== ===================================================================
--- lldb-3.8.0.src.orig/cmake/modules/LLDBConfig.cmake --- lldb-3.8.1.src.orig/cmake/modules/LLDBConfig.cmake
+++ lldb-3.8.0.src/cmake/modules/LLDBConfig.cmake +++ lldb-3.8.1.src/cmake/modules/LLDBConfig.cmake
@@ -323,13 +323,9 @@ else() @@ -323,13 +323,9 @@ else()
endif() endif()

View File

@ -1,7 +1,7 @@
Index: lldb-3.8.0.src/source/lldb.cpp Index: lldb-3.8.1.src/source/lldb.cpp
=================================================================== ===================================================================
--- lldb-3.8.0.src.orig/source/lldb.cpp --- lldb-3.8.1.src.orig/source/lldb.cpp
+++ lldb-3.8.0.src/source/lldb.cpp +++ lldb-3.8.1.src/source/lldb.cpp
@@ -21,11 +21,7 @@ extern "C" const unsigned char liblldb_c @@ -21,11 +21,7 @@ extern "C" const unsigned char liblldb_c
static const char * static const char *
GetLLDBRevision() GetLLDBRevision()
@ -14,10 +14,10 @@ Index: lldb-3.8.0.src/source/lldb.cpp
} }
static const char * static const char *
Index: lldb-3.8.0.src/source/Core/IOHandler.cpp Index: lldb-3.8.1.src/source/Core/IOHandler.cpp
=================================================================== ===================================================================
--- lldb-3.8.0.src.orig/source/Core/IOHandler.cpp --- lldb-3.8.1.src.orig/source/Core/IOHandler.cpp
+++ lldb-3.8.0.src/source/Core/IOHandler.cpp +++ lldb-3.8.1.src/source/Core/IOHandler.cpp
@@ -9,8 +9,8 @@ @@ -9,8 +9,8 @@
// C Includes // C Includes

View File

@ -1,3 +1,47 @@
-------------------------------------------------------------------
Thu Aug 31 20:36:58 UTC 2016 - toddrme2178@gmail.com
- Update to llvm 3.8.1
* See http://llvm.org/releases/3.8.1/docs/ReleaseNotes.html and
http://llvm.org/releases/3.8.1/tools/docs/ReleaseNotes.html
- Use versioned libLLVM (to libLLVM3_8) and libclang (to libclang3_8)
- Change versioning of liblldb3_8 to liblldb-3_8 and use a variable
to control the name instead of hard-coding it.
- Use bcond_with and bcond_without to enable/disable build options
instead of hard-coding them.
- Put buildrequires as requires in -devel packages to avoid linker errors
when building packages against the -devel packages.
- Add ffi support (disabled by default).
- Add oprofile support (disabled by default).
- Add valgrind support (disabled by default).
- Link cmake files to the normal cmake file directory to allow autodetection
of cmake interfaces.
- Remove unused lldb components from main spec file.
- Split llvm python bindings into own subpackage.
- Split emacs plugin into own subpackage
- Move additional vim plugins into vim plugins package
- Split libc++, libLTO, LLVMgold, libomp, clang-chekers into own subpackages
- Make python-clang, llvm-vim-plugins, and llvm-emacs-plugins noarch since
they aren't architecture-specific.
- Make packages besides llvm, llvm-clang, and the shared libraries conflict
with other versions. This will be important when multiple LLVM versions
are supported.
- Various spec file cleanups
- Rebase patches:
* arm_suse_support.diff
* assume-opensuse.patch
* clang-resourcedirs.patch
* default-to-i586.patch
* glibc-2.23-libcxx.patch
* glibc-2.24-libcxx.patch
* lldb-add-pthread-dl-libs.patch
* lldb-cmake.patch
* llvm-fix-find-gcc5-install.patch
* llvm-nonvoid-return.patch
* llvm-remove-clang-only-flags.patch
* revert-cmake-soname.patch
* set-revision.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Aug 31 10:24:31 UTC 2016 - tchvatal@suse.com Wed Aug 31 10:24:31 UTC 2016 - tchvatal@suse.com

View File

@ -16,10 +16,11 @@
# #
%define _revision 262553
Name: lldb Name: lldb
Version: 3.8.0 Version: 3.8.1
Release: 0 Release: 0
%define _sonum 3_8
%define _revsn 273405
Summary: Software debugger built using LLVM libraries Summary: Software debugger built using LLVM libraries
License: NCSA License: NCSA
Group: Development/Tools/Debuggers Group: Development/Tools/Debuggers
@ -33,20 +34,20 @@ Patch1: D15067.id41365.diff
Patch2: lldb-add-pthread-dl-libs.patch Patch2: lldb-add-pthread-dl-libs.patch
BuildRequires: cmake BuildRequires: cmake
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: libedit-devel
BuildRequires: libffi-devel
BuildRequires: libxml2-devel
BuildRequires: llvm-clang-devel = %{version}
BuildRequires: llvm-devel = %{version}
BuildRequires: ncurses-devel BuildRequires: ncurses-devel
BuildRequires: ninja BuildRequires: ninja
BuildRequires: python-devel
BuildRequires: swig BuildRequires: swig
BuildRequires: zlib-devel BuildRequires: cmake(Clang) = %{version}
Requires: libLLVM = %{version} BuildRequires: cmake(LLVM) = %{version}
Requires: libclang = %{version} BuildRequires: pkgconfig(libedit)
BuildRequires: pkgconfig(libffi)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(python2)
BuildRequires: pkgconfig(zlib)
Requires: python Requires: python
Requires: python-six Requires: python-six
# Avoid multiple provider errors
Requires: liblldb%{_sonum} = %{version}
ExclusiveArch: arm x86_64 ExclusiveArch: arm x86_64
%description %description
@ -55,23 +56,46 @@ of reusable components which highly leverage existing libraries in the
larger LLVM Project, such as the Clang expression parser and LLVM larger LLVM Project, such as the Clang expression parser and LLVM
disassembler. disassembler.
%package -n liblldb3_8
%package -n liblldb%{_sonum}
Summary: LLDB software debugger runtime library Summary: LLDB software debugger runtime library
Group: System/Libraries Group: System/Libraries
# Avoid multiple provider errors
Requires: libLLVM%{_sonum} = %{version}
Requires: libclang%{_sonum} = %{version}
%description -n liblldb3_8 %description -n liblldb%{_sonum}
This subpackage contains the main LLDB component. This subpackage contains the main LLDB component.
%package devel %package devel
Summary: Development files for LLDB Summary: Development files for LLDB
Group: Development/Languages/Other Group: Development/Languages/Other
Requires: libedit-devel Requires: cmake
Requires: liblldb3_8 = %{version} Requires: liblldb%{_sonum} = %{version}
Requires: zlib-devel Requires: ncurses-devel
Requires: swig
Requires: cmake(Clang) = %{version}
Requires: cmake(LLVM) = %{version}
Requires: pkgconfig(libedit)
Requires: pkgconfig(libffi)
Requires: pkgconfig(libxml-2.0)
Requires: pkgconfig(zlib)
%description devel %description devel
This package contains the development files for LLDB. This package contains the development files for LLDB.
%package -n python-lldb
Summary: Python bindings for liblldb
Group: Development/Languages/Python
Requires: liblldb%{_sonum} = %{version}
Requires: python
%description -n python-lldb
This package contains the Python bindings to clang (C language) frontend for LLVM.
%prep %prep
%setup -q -n %{name}-%{version}.src %setup -q -n %{name}-%{version}.src
%patch0 -p1 %patch0 -p1
@ -79,7 +103,7 @@ This package contains the development files for LLDB.
%patch2 -p1 %patch2 -p1
# Set LLDB revision # Set LLDB revision
sed -i s,LLDB_REVISION,\"%{_revision}\",g source/lldb.cpp #" sed -i s,LLDB_REVISION,\"%{_revsn}\",g source/lldb.cpp #"
%build %build
%define __builder ninja %define __builder ninja
@ -101,13 +125,13 @@ sed -i s,LLDB_REVISION,\"%{_revision}\",g source/lldb.cpp #"
%cmake_install %cmake_install
# Python: fix binary libraries location. # Python: fix binary libraries location.
rm %{buildroot}%{py_sitedir}/lldb/_lldb.so rm %{buildroot}%{python_sitearch}/lldb/_lldb.so
liblldb=$(basename $(readlink -e %{buildroot}%{_libdir}/liblldb.so)) liblldb=$(basename $(readlink -e %{buildroot}%{_libdir}/liblldb.so))
ln -vsf "../../../${liblldb}" %{buildroot}%{python_sitearch}/lldb/_lldb.so ln -vsf "../../../${liblldb}" %{buildroot}%{python_sitearch}/lldb/_lldb.so
ln -vsf "../../${liblldb}" %{buildroot}%{python_sitearch}/_lldb.so ln -vsf "../../${liblldb}" %{buildroot}%{python_sitearch}/_lldb.so
# Remove bundled six.py. # Remove bundled six.py.
rm -f %{buildroot}%{py_sitedir}/six.* rm -f %{buildroot}%{python_sitearch}/six.*
# Remove static libraries. # Remove static libraries.
rm %{buildroot}%{_libdir}/liblldb*.a rm %{buildroot}%{_libdir}/liblldb*.a
@ -115,23 +139,41 @@ rm %{buildroot}%{_libdir}/liblldb*.a
# Fix duplicated files. # Fix duplicated files.
%fdupes %{_includedir}/%{name}/Host/ %fdupes %{_includedir}/%{name}/Host/
%post -n liblldb3_8 -p /sbin/ldconfig mkdir -p %{buildroot}%{_libdir}/cmake/lldb/
%postun -n liblldb3_8 -p /sbin/ldconfig cp cmake/modules/*.cmake %{buildroot}%{_libdir}/cmake/lldb/
# Make consistent with the rest of the executables
mv %{buildroot}%{_bindir}/lldb-argdumper %{buildroot}%{_bindir}/lldb-argdumper-%{version}
ln -s %{_bindir}/lldb-argdumper-%{version} %{buildroot}%{_bindir}/lldb-argdumper
%post -n liblldb%{_sonum} -p /sbin/ldconfig
%postun -n liblldb%{_sonum} -p /sbin/ldconfig
%files %files
%defattr(-,root,root,-) %defattr(-,root,root,-)
%{_bindir}/lldb* %{_bindir}/lldb
%{py_sitedir}/_lldb.so %{_bindir}/lldb-argdumper
%{py_sitedir}/lldb %{_bindir}/lldb-mi
%{py_sitedir}/readline.so %{_bindir}/lldb-server
%{_bindir}/lldb-%{version}
%{_bindir}/lldb-argdumper-%{version}
%{_bindir}/lldb-mi-%{version}
%{_bindir}/lldb-server-%{version}
%files -n liblldb3_8 %files -n python-lldb
%defattr(-,root,root)
%{python_sitearch}/_lldb.so
%{python_sitearch}/lldb/
%{python_sitearch}/readline.so
%files -n liblldb%{_sonum}
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/liblldb.so.* %{_libdir}/liblldb.so.*
%files devel %files devel
%defattr(-,root,root,-) %defattr(-,root,root,-)
%{_includedir}/lldb %{_libdir}/cmake/lldb/
%{_includedir}/lldb/
%{_libdir}/liblldb.so %{_libdir}/liblldb.so
%changelog %changelog

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:555b028e9ee0f6445ff8f949ea10e9cd8be0d084840e21fbbe1d31d51fc06e46
size 16580932

3
llvm-3.8.1.src.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6e82ce4adb54ff3afc18053d6981b6aed1406751b8742582ed50f04b5ab475f9
size 16551472

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:465e749bb89b96e50d0a03f1b7e84f25ed81a9e325664b1c5843580adfc94248
size 1605660

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1d7d51c4bc0946e3392fe1c71c0afe1be6b120f4423a1c10f3b1210f10853119
size 1664880

View File

@ -1,7 +1,7 @@
Index: cfe-3.8.0.src/lib/Driver/ToolChains.cpp Index: cfe-3.8.1.src/lib/Driver/ToolChains.cpp
=================================================================== ===================================================================
--- cfe-3.8.0.src/lib/Driver/ToolChains.cpp --- cfe-3.8.1.src/lib/Driver/ToolChains.cpp
+++ cfe-3.8.0.src/lib/Driver/ToolChains.cpp +++ cfe-3.8.1.src/lib/Driver/ToolChains.cpp
@@ -1091,7 +1091,8 @@ Generic_GCC::GCCVersion Linux::GCCVersio @@ -1091,7 +1091,8 @@ Generic_GCC::GCCVersion Linux::GCCVersio
if (First.first.getAsInteger(10, GoodVersion.Major) || GoodVersion.Major < 0) if (First.first.getAsInteger(10, GoodVersion.Major) || GoodVersion.Major < 0)
return BadVersion; return BadVersion;

View File

@ -1,7 +1,7 @@
Index: llvm-3.8.0.src/openmp-3.8.0.src/runtime/src/kmp_dispatch.cpp Index: llvm-3.8.1.src/openmp-3.8.1.src/runtime/src/kmp_dispatch.cpp
=================================================================== ===================================================================
--- llvm-3.8.0.src.orig/openmp-3.8.0.src/runtime/src/kmp_dispatch.cpp --- llvm-3.8.1.src.orig/openmp-3.8.1.src/runtime/src/kmp_dispatch.cpp
+++ llvm-3.8.0.src/openmp-3.8.0.src/runtime/src/kmp_dispatch.cpp +++ llvm-3.8.1.src/openmp-3.8.1.src/runtime/src/kmp_dispatch.cpp
@@ -254,7 +254,7 @@ test_then_inc< kmp_int64 >( volatile kmp @@ -254,7 +254,7 @@ test_then_inc< kmp_int64 >( volatile kmp
// compare_and_swap template (general template should NOT be used) // compare_and_swap template (general template should NOT be used)
template< typename T > template< typename T >

View File

@ -1,7 +1,7 @@
Index: llvm-3.8.0.src/cmake/modules/HandleLLVMOptions.cmake Index: llvm-3.8.1.src/cmake/modules/HandleLLVMOptions.cmake
=================================================================== ===================================================================
--- llvm-3.8.0.src.orig/cmake/modules/HandleLLVMOptions.cmake --- llvm-3.8.1.src.orig/cmake/modules/HandleLLVMOptions.cmake
+++ llvm-3.8.0.src/cmake/modules/HandleLLVMOptions.cmake +++ llvm-3.8.1.src/cmake/modules/HandleLLVMOptions.cmake
@@ -417,7 +417,6 @@ elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE @@ -417,7 +417,6 @@ elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE
append_if(LLVM_ENABLE_PEDANTIC "-pedantic" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) append_if(LLVM_ENABLE_PEDANTIC "-pedantic" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)

View File

@ -7,4 +7,3 @@ addFilter("devel-file-in-non-devel-package .*/usr/include/.*")
addFilter("devel-file-in-non-devel-package .*/lib.*/*.a") addFilter("devel-file-in-non-devel-package .*/lib.*/*.a")
addFilter("devel-file-in-non-devel-package .*/lib.*/*.so") addFilter("devel-file-in-non-devel-package .*/lib.*/*.so")
addFilter("llvm-clang.*shlib-policy-name-error")

View File

@ -1,3 +1,47 @@
-------------------------------------------------------------------
Thu Aug 31 20:36:58 UTC 2016 - toddrme2178@gmail.com
- Update to llvm 3.8.1
* See http://llvm.org/releases/3.8.1/docs/ReleaseNotes.html and
http://llvm.org/releases/3.8.1/tools/docs/ReleaseNotes.html
- Use versioned libLLVM (to libLLVM3_8) and libclang (to libclang3_8)
- Change versioning of liblldb3_8 to liblldb-3_8 and use a variable
to control the name instead of hard-coding it.
- Use bcond_with and bcond_without to enable/disable build options
instead of hard-coding them.
- Put buildrequires as requires in -devel packages to avoid linker errors
when building packages against the -devel packages.
- Add ffi support (disabled by default).
- Add oprofile support (disabled by default).
- Add valgrind support (disabled by default).
- Link cmake files to the normal cmake file directory to allow autodetection
of cmake interfaces.
- Remove unused lldb components from main spec file.
- Split llvm python bindings into own subpackage.
- Split emacs plugin into own subpackage
- Move additional vim plugins into vim plugins package
- Split libc++, libLTO, LLVMgold, libomp, clang-chekers into own subpackages
- Make python-clang, llvm-vim-plugins, and llvm-emacs-plugins noarch since
they aren't architecture-specific.
- Make packages besides llvm, llvm-clang, and the shared libraries conflict
with other versions. This will be important when multiple LLVM versions
are supported.
- Various spec file cleanups
- Rebase patches:
* arm_suse_support.diff
* assume-opensuse.patch
* clang-resourcedirs.patch
* default-to-i586.patch
* glibc-2.23-libcxx.patch
* glibc-2.24-libcxx.patch
* lldb-add-pthread-dl-libs.patch
* lldb-cmake.patch
* llvm-fix-find-gcc5-install.patch
* llvm-nonvoid-return.patch
* llvm-remove-clang-only-flags.patch
* revert-cmake-soname.patch
* set-revision.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Aug 26 10:03:56 UTC 2016 - tchvatal@suse.com Fri Aug 26 10:03:56 UTC 2016 - tchvatal@suse.com

607
llvm.spec
View File

@ -16,50 +16,53 @@
# #
%define _revision 262553 # Change this to 0 if this is not the latest version of LLVM
%define _release_version 3.8.0 %define _latest 1
%define build_lldb 0 %bcond_with ffi
%define build_libcxx 0 %bcond_with oprofile
%define build_openmp 0 %bcond_with valgrind
%ifarch x86_64 %if !0%{?is_opensuse} || !0%{_latest}
%define build_libcxx 1 %bcond_with libcxx
%define build_lldb 0 %bcond_with openmp
%endif %else
%ifarch ppc64 ppc64le %{ix86} x86_64 %ifarch x86_64
%define build_openmp 1 %bcond_without libcxx
%endif %else
%bcond_with libcxx
%endif
%if !0%{?is_opensuse} %ifarch ppc64 ppc64le %{ix86} x86_64
%define build_libcxx 0 %bcond_without openmp
%define build_lldb 0 %else
%define build_openmp 0 %bcond_with openmp
%endif
%endif %endif
Name: llvm Name: llvm
Version: 3.8.0 Version: 3.8.1
Release: 0 Release: 0
%define _relver 3.8.1
%define _minor 3.8
%define _sonum 3_8
%define _socxx 1
%define _revsn 273405
Summary: Low Level Virtual Machine Summary: Low Level Virtual Machine
License: NCSA License: NCSA
Group: Development/Languages/Other Group: Development/Languages/Other
Url: http://www.llvm.org Url: http://www.llvm.org
Source0: http://llvm.org/releases/%{version}/llvm-%{version}.src.tar.xz Source0: http://llvm.org/releases/%{version}/llvm-%{version}.src.tar.xz
Source1: http://llvm.org/releases/%{version}/cfe-%{version}.src.tar.xz Source1: http://llvm.org/releases/%{version}/cfe-%{version}.src.tar.xz
Source2: http://llvm.org/releases/%{version}/compiler-rt-%{version}.src.tar.xz Source2: http://llvm.org/releases/%{version}/clang-tools-extra-%{version}.src.tar.xz
Source3: http://llvm.org/releases/%{version}/libcxx-%{version}.src.tar.xz Source3: http://llvm.org/releases/%{version}/compiler-rt-%{version}.src.tar.xz
Source4: http://llvm.org/releases/%{version}/libcxxabi-%{version}.src.tar.xz Source4: http://llvm.org/releases/%{version}/libcxx-%{version}.src.tar.xz
Source5: http://llvm.org/releases/%{version}/openmp-%{version}.src.tar.xz Source5: http://llvm.org/releases/%{version}/libcxxabi-%{version}.src.tar.xz
# Manually created docs Source6: http://llvm.org/releases/%{version}/openmp-%{version}.src.tar.xz
# cd docs # Docs are created manually, see below
# make -f Makefile.sphinx man html Source50: llvm-docs-%{version}.src.tar.xz
# cd .. Source51: cfe-docs-%{version}.src.tar.xz
# tar cvJf llvm-docs-3.8.0.src.tar.xz llvm-3.8.0.src/docs/_build/{man,html}
Source6: llvm-docs-%{version}.src.tar.xz
Source7: cfe-docs-%{version}.src.tar.xz
Source8: http://llvm.org/releases/%{version}/clang-tools-extra-%{version}.src.tar.xz
Source9: http://llvm.org/releases/%{version}/lldb-%{version}.src.tar.xz
Source100: %{name}-rpmlintrc Source100: %{name}-rpmlintrc
Source101: baselibs.conf Source101: baselibs.conf
# PATCH-FIX-OPENSUSE set-revision.patch idoenmez@suse.de -- Allow us to set revision # PATCH-FIX-OPENSUSE set-revision.patch idoenmez@suse.de -- Allow us to set revision
@ -74,10 +77,9 @@ Patch5: clang-resourcedirs.patch
Patch6: llvm-remove-clang-only-flags.patch Patch6: llvm-remove-clang-only-flags.patch
Patch7: llvm-fix-find-gcc5-install.patch Patch7: llvm-fix-find-gcc5-install.patch
Patch8: revert-cmake-soname.patch Patch8: revert-cmake-soname.patch
Patch9: lldb-cmake.patch Patch9: llvm-nonvoid-return.patch
Patch10: glibc-2.23-libcxx.patch Patch20: glibc-2.23-libcxx.patch
Patch11: glibc-2.24-libcxx.patch Patch21: glibc-2.24-libcxx.patch
Patch12: llvm-nonvoid-return.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: binutils-devel >= 2.21.90 BuildRequires: binutils-devel >= 2.21.90
BuildRequires: bison BuildRequires: bison
@ -87,7 +89,6 @@ BuildRequires: flex
BuildRequires: gcc BuildRequires: gcc
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: groff BuildRequires: groff
BuildRequires: libedit-devel
BuildRequires: libstdc++-devel BuildRequires: libstdc++-devel
BuildRequires: libtool BuildRequires: libtool
BuildRequires: ncurses-devel BuildRequires: ncurses-devel
@ -95,6 +96,18 @@ BuildRequires: ninja
BuildRequires: procps BuildRequires: procps
BuildRequires: python-base BuildRequires: python-base
BuildRequires: python-xml BuildRequires: python-xml
BuildRequires: pkgconfig(libedit)
%if %{with ffi}
BuildRequires: pkgconfig(libffi)
%endif
%if %{with valgrind}
BuildRequires: pkgconfig(valgrind)
%endif
%if %{with oprofile}
BuildRequires: oprofile-devel
%endif
# Avoid multiple provider errors
Requires: libLLVM%{_sonum}
# llvm does not work on ppc or s390 # llvm does not work on ppc or s390
ExcludeArch: ppc s390 ExcludeArch: ppc s390
@ -106,82 +119,230 @@ arbitrary programming languages.
The compiler infrastructure includes mirror sets of programming The compiler infrastructure includes mirror sets of programming
tools as well as libraries with equivalent functionality. tools as well as libraries with equivalent functionality.
%package -n libLLVM
%package -n libLLVM%{_sonum}
Summary: Libraries for LLVM Summary: Libraries for LLVM
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
%description -n libLLVM %description -n libLLVM%{_sonum}
This package contains the shared libraries needed for LLVM. This package contains the shared libraries needed for LLVM.
%package devel %package devel
Summary: Header Files for LLVM Summary: Header Files for LLVM
Group: Development/Languages/Other Group: Development/Languages/Other
Conflicts: otherproviders(cmake(LLVM))
Requires: %{name} = %{version} Requires: %{name} = %{version}
Requires: binutils-devel >= 2.21.90
Requires: bison
Requires: cmake
Requires: flex
Requires: groff
Requires: libstdc++-devel
Requires: libtool
Requires: ncurses-devel
Requires: pkgconfig(libedit)
%if %{with ffi}
Requires: pkgconfig(libffi)
%endif
%if %{with valgrind}
Requires: pkgconfig(valgrind)
%endif
%if %{with oprofile}
Requires: oprofile-devel
%endif
%description devel %description devel
This package contains library and header files needed to develop This package contains library and header files needed to develop
new native programs that use the LLVM infrastructure. new native programs that use the LLVM infrastructure.
%package clang %package clang
Summary: CLANG frontend for LLVM Summary: CLANG frontend for LLVM
Group: Development/Languages/Other Group: Development/Languages/Other
Requires: libstdc++-devel Recommends: scan-build
Recommends: scan-view
Recommends: LLVMgold.so()(64bit)
%if %{with openmp} && %{_latest}
Recommends: libomp
%endif
# Avoid multiple provider errors
Requires: libLTO%{_sonum}
Requires: libc++%{_socxx}
Requires: libclang%{_sonum}
%description clang %description clang
This package contains the clang (C language) frontend for LLVM. This package contains the clang (C language) frontend for LLVM.
%package -n libclang
%package clang-checker
Summary: Static code analyzer for CLANG
Group: Development/Languages/Other
Provides: scan-build
Provides: scan-view
Conflicts: otherproviders(scan-build)
Conflicts: otherproviders(scan-view)
# Avoid multiple provider errors
Requires: libclang%{_sonum}
%description clang-checker
This package contains scan-build and scan-view, command line
static code analyzers for CLANG.
%package -n libclang%{_sonum}
Summary: Library files needed for clang Summary: Library files needed for clang
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: libstdc++-devel
# Avoid multiple provider errors
Requires: libLLVM%{_sonum}
%description -n libclang %description -n libclang%{_sonum}
This package contains the shared libraries needed for clang. This package contains the shared libraries needed for clang.
%package clang-devel %package clang-devel
Summary: CLANG frontend for LLVM (devel package) Summary: CLANG frontend for LLVM (devel package)
Group: Development/Languages/Other Group: Development/Languages/Other
Conflicts: otherproviders(cmake(Clang))
Requires: llvm-clang = %{version} Requires: llvm-clang = %{version}
Requires: llvm-devel = %{version} Requires: cmake(LLVM) = %{version}
%description clang-devel %description clang-devel
This package contains the clang (C language) frontend for LLVM. This package contains the clang (C language) frontend for LLVM.
(development files) (development files)
%package -n libLTO%{_sonum}
Summary: Link-time optimizer for LLVM
Group: Development/Languages/Other
# Avoid multiple provider errors
Requires: libLLVM%{_sonum}
%description -n libLTO%{_sonum}
This package contains the link-time optimizer for LLVM.
%package LTO-devel
Summary: Link-time optimizer for LLVM (devel package)
Group: Development/Languages/Other
Provides: libLTO.so
Conflicts: otherproviders(libLTO.so)
Requires: cmake(LLVM) = %{version}
# Avoid multiple provider errors
Requires: libLTO%{_sonum}
%description LTO-devel
This package contains the link-time optimizer for LLVM.
(development files)
%package gold
Summary: Gold linker plugin for LLVM
Group: Development/Languages/Other
Provides: LLVMgold.so()(64bit)
Conflicts: otherproviders(LLVMgold.so()(64bit))
# Avoid multiple provider errors
Requires: libLLVM%{_sonum}
Requires: cmake(LLVM) = %{version}
%description gold
This package contains the Gold linker plugin for LLVM.
%package -n libomp
Summary: MPI plugin for LLVM
Group: Development/Languages/Other
Provides: libomp.so()(64bit)
Conflicts: otherproviders(libomp.so()(64bit))
# Avoid multiple provider errors
Requires: libLLVM%{_sonum}
%description -n libomp
This package contains the OpenMP MPI plugin for LLVM.
%package -n libc++%{_socxx}
Summary: C++ standard library implementation
Group: Development/Libraries/C and C++
%description -n libc++%{_socxx}
This package contains libc++, a new implementation of the C++
standard library, targeting C++11.
%package libc++-devel
Summary: C++ standard library implementation (devel package)
Group: Development/Languages/C and C++
Provides: libc++.so
Conflicts: otherproviders(libc++.so)
%description libc++-devel
This package contains libc++, a new implementation of the C++
standard library, targeting C++11. (development files)
%package -n libc++abi%{_socxx}
Summary: C++ standard library ABI
Group: Development/Libraries/C and C++
%description -n libc++abi%{_socxx}
This package contains the ABI for libc++, a new implementation
of the C++ standard library, targeting C++11.
%package libc++abi-devel
Summary: C++ standard library ABI (devel package)
Group: Development/Languages/C and C++
Provides: libc++abi.so
Conflicts: otherproviders(libc++abi.so)
# Avoid multiple provider errors
Requires: %{name}-libc++-devel
%description libc++abi-devel
This package contains the ABI for libc++, a new implementation
of the C++ standard library, targeting C++11.
(development files)
%package vim-plugins %package vim-plugins
Summary: Vim plugins for LLVM Summary: Vim plugins for LLVM
Group: Productivity/Text/Editors Group: Productivity/Text/Editors
Provides: vim-plugin-llvm
Conflicts: otherproviders(vim-plugin-llvm)
Requires: vim Requires: vim
BuildArch: noarch
%description vim-plugins %description vim-plugins
This package contains vim plugins for LLVM like syntax highlighting. This package contains vim plugins for LLVM like syntax highlighting.
%package emacs-plugins
Summary: Emacs plugins for LLVM
Group: Productivity/Text/Editors
Provides: emacs-llvm
Conflicts: otherproviders(emacs-llvm)
Requires: emacs
BuildArch: noarch
%description emacs-plugins
This package contains Emacs plugins for LLVM like syntax highlighting.
%package -n python-clang %package -n python-clang
Summary: Python bindings for libclang Summary: Python 2 bindings for libclang
Group: Development/Languages/Python Group: Development/Languages/Python
Requires: libclang = %{version} Requires: %{name}-clang-devel = %{version}
Requires: python Requires: python
BuildArch: noarch
%description -n python-clang %description -n python-clang
This package contains the Python bindings to clang (C language) frontend for LLVM. This package contains the Python 2.x bindings to clang (C language)
frontend for LLVM.
%if %{build_lldb}
%package -n lldb
Summary: Next generation high-performance debugger
Group: Development/Languages
# We don't want to provide an unstable lldb-devel package now.
# Reconsider later when it has a stable API.
Provides: lldb-devel = %{version}
Obsoletes: lldb-devel < %{version}
%description -n lldb
LLDB is a next generation, high-performance debugger. It is built as a set
of reusable components which highly leverage existing libraries in the
larger LLVM Project, such as the Clang expression parser and LLVM
disassembler.
%endif
%prep %prep
%setup -q -a 1 -a 2 -a 3 -a 4 -a 5 -a 7 -a 8 -a 9 -b 6 -n %{name}-%{version}.src %setup -q -a 1 -a 2 -a 3 -a 4 -a 5 -a 6 -b 50 -a 51 -n llvm-%{version}.src
%patch1 %patch1
%patch2 %patch2
%patch3 %patch3
@ -190,23 +351,22 @@ disassembler.
%patch6 -p1 %patch6 -p1
%patch7 %patch7
%patch8 -p1 %patch8 -p1
%patch9 %patch9 -p1
%if 0%{?suse_version} > 1320 %if 0%{?suse_version} > 1320
%patch10 %patch20
%patch11 %patch21
%endif %endif
%patch12 -p1
# Move into right place # Move into right place
mv cfe-%{version}.src tools/clang mv cfe-%{version}.src tools/clang
mv compiler-rt-%{version}.src projects/compiler-rt mv compiler-rt-%{version}.src projects/compiler-rt
mv clang-tools-extra-%{version}.src tools/clang/tools/extra mv clang-tools-extra-%{version}.src tools/clang/tools/extra
%if %{build_openmp} %if %{with openmp}
mv openmp-%{version}.src projects/openmp mv openmp-%{version}.src projects/openmp
%endif %endif
%if %{build_libcxx} %if %{with libcxx}
mv libcxx-%{version}.src projects/libcxx mv libcxx-%{version}.src projects/libcxx
mv libcxxabi-%{version}.src projects/libcxxabi mv libcxxabi-%{version}.src projects/libcxxabi
@ -214,20 +374,12 @@ rm projects/libcxx/test/std/localization/locale.categories/category.time/locale.
rm projects/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp rm projects/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp
%endif %endif
%if %{build_lldb}
mv lldb-%{version}.src tools/lldb
%endif
# We hardcode i586 # We hardcode i586
rm tools/clang/test/Driver/x86_features.c rm tools/clang/test/Driver/x86_features.c
rm tools/clang/test/Driver/nacl-direct.c rm tools/clang/test/Driver/nacl-direct.c
sed -i s,SVN_REVISION,\"%{_revision}\",g tools/clang/lib/Basic/Version.cpp sed -i s,SVN_REVISION,\"%{_revsn}\",g tools/clang/lib/Basic/Version.cpp
sed -i s,LLVM_REVISION,\"%{_revision}\",g tools/clang/lib/Basic/Version.cpp sed -i s,LLVM_REVISION,\"%{_revsn}\",g tools/clang/lib/Basic/Version.cpp
%if %{build_lldb}
sed -i s,LLDB_REVISION,\"%{_revision}\",g tools/lldb/source/lldb.cpp
%endif
# ARMv6 needs this exact host triple # ARMv6 needs this exact host triple
%ifarch armv6hl %ifarch armv6hl
@ -238,8 +390,8 @@ EOF
%endif %endif
%build %build
# Disable c/xx/flags as the clang fails to build with hardening right now # Disable c/xx/flags as the clang fails to build with hardening right now
#flags="%{optflags} -fno-strict-aliasing" #flags="%%{optflags} -fno-strict-aliasing"
flags="-fno-strict-aliasing" flags="-fno-strict-aliasing"
%ifarch armv6hl %ifarch armv6hl
flags+=" -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp" flags+=" -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp"
@ -247,6 +399,12 @@ flags+=" -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp"
%ifarch armv7hl %ifarch armv7hl
flags+=" -mfloat-abi=hard -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16" flags+=" -mfloat-abi=hard -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16"
%endif %endif
%ifarch %{ix86} x86_64
TARGETS_TO_BUILD="all"
%else
TARGETS_TO_BUILD=host
%endif
# do not eat all memory # do not eat all memory
ninjaproc="%{?jobs:%{jobs}}" ninjaproc="%{?jobs:%{jobs}}"
echo "Available memory:" echo "Available memory:"
@ -289,68 +447,65 @@ export CXX=${PWD}/stage1/bin/clang++
-DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_ENABLE_PIC=ON \ -DLLVM_ENABLE_PIC=ON \
-DLLVM_BINUTILS_INCDIR=/usr/include \ -DLLVM_BINUTILS_INCDIR=/usr/include \
%ifarch %{ix86} x86_64 -DLLVM_TARGETS_TO_BUILD=${TARGETS_TO_BUILD} \
-DLLVM_TARGETS_TO_BUILD="all" \
%else
-DLLVM_TARGETS_TO_BUILD=host \
%endif
%if "%{_lib}" == "lib64" %if "%{_lib}" == "lib64"
-DLLVM_LIBDIR_SUFFIX=64 \ -DLLVM_LIBDIR_SUFFIX=64 \
%endif %endif
%if %{build_lldb} %if %{with ffi}
-DLLDB_DISABLE_PYTHON=ON \ -DLLVM_ENABLE_FFI=ON \
%endif
%if %{with oprofile}
-DLLVM_USE_OPROFILE=ON \
%endif %endif
-DCMAKE_SKIP_RPATH:BOOL=OFF \ -DCMAKE_SKIP_RPATH:BOOL=OFF \
-DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed" \ -DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed" \
-DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed" \ -DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed" \
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed" -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed"
ninja -v -j $ninjaproc ninja -v -j $ninjaproc
cd ..
%check
cd build
%ifnarch armv7hl armv7l
%if 0%{!?qemu_user_space_build:1}
# we just do not have enough memory with qemu emulation
ninja -v %{?_smp_mflags} check
ninja -v %{?_smp_mflags} clang-test
%if %{build_libcxx}
ninja -v %{?_smp_mflags} check-libcxx
ninja -v %{?_smp_mflags} check-libcxxabi
%endif
%endif
%endif
%install %install
%cmake_install %cmake_install
# Build man/html pages
cd docs
# Docs are prebuilt due to sphinx dependency
#make -f Makefile.sphinx html man
rm -rf %{buildroot}/usr/docs
# Docs are prebuilt due to sphinx dependency
#
# pushd llvm-3.8.1.src/docs
# make -f Makefile.sphinx man html
# popd
# pushd cfe-3.8.1.src/docs
# make -f Makefile.sphinx man html
# popd
# tar cvJf llvm-docs-3.8.1.src.tar.xz llvm-3.8.1.src/docs/_build/{man,html}
# tar cvJf cfe-docs-3.8.1.src.tar.xz cfe-3.8.1.src/docs/_build/{man,html}
# Build man/html pages
pushd docs
rm -rf %{buildroot}/usr/docs
mkdir -p %{buildroot}%{_docdir}/llvm/html mkdir -p %{buildroot}%{_docdir}/llvm/html
mkdir -p %{buildroot}/usr/share/man/man1 mkdir -p %{buildroot}/usr/share/man/man1
cp -r _build/man/* %{buildroot}/usr/share/man/man1 cp -r _build/man/* %{buildroot}/usr/share/man/man1
cp -r _build/html/* %{buildroot}%{_docdir}/llvm/html cp -r _build/html/* %{buildroot}%{_docdir}/llvm/html
popd
cd ../tools/clang/docs pushd tools/clang/docs
mkdir -p %{buildroot}%{_docdir}/llvm-clang/html mkdir -p %{buildroot}%{_docdir}/llvm-clang/html
cp -r _build/man/* %{buildroot}/usr/share/man/man1 cp -r _build/man/* %{buildroot}/usr/share/man/man1
cp -r _build/html/* %{buildroot}%{_docdir}/llvm-clang/html cp -r _build/html/* %{buildroot}%{_docdir}/llvm-clang/html
cd ../../.. popd
# install python bindings # install python bindings
install -d %{buildroot}%{py_sitedir}/clang # The python bindings use the unversioned libclang.so,
# so it doesn't make sense to have multiple versions of it
%if %{_latest}
install -d %{buildroot}%{python_sitelib}/clang
pushd tools/clang/bindings/python pushd tools/clang/bindings/python
cp clang/*.py %{buildroot}%{py_sitedir}/clang cp clang/*.py %{buildroot}%{python_sitelib}/clang
install -d %{buildroot}%{_docdir}/python-clang/examples/cindex install -d %{buildroot}%{_docdir}/python-clang/examples/cindex
cp -r examples %{buildroot}%{_docdir}/python-clang cp -r examples %{buildroot}%{_docdir}/python-clang
install -d %{buildroot}%{_docdir}/python-clang/tests/cindex/INPUTS install -d %{buildroot}%{_docdir}/python-clang/tests/cindex/INPUTS
cp -r tests %{buildroot}%{_docdir}/python-clang cp -r tests %{buildroot}%{_docdir}/python-clang
popd popd
%endif
mkdir -p %{buildroot}%{_libdir}/bfd-plugins mkdir -p %{buildroot}%{_libdir}/bfd-plugins
ln -s %{_libdir}/LLVMgold.so %{buildroot}%{_libdir}/bfd-plugins/ ln -s %{_libdir}/LLVMgold.so %{buildroot}%{_libdir}/bfd-plugins/
@ -362,40 +517,102 @@ done
mv utils/vim/README utils/vim/README.vim mv utils/vim/README utils/vim/README.vim
mv %{buildroot}%{_prefix}/libexec/{c++,ccc}-analyzer %{buildroot}%{_bindir} mv %{buildroot}%{_prefix}/libexec/{c++,ccc}-analyzer %{buildroot}%{_bindir}
mv %{buildroot}%{_datadir}/clang/clang-format-diff.py %{buildroot}%{_bindir}/clang-format-diff
mv %{buildroot}%{_datadir}/clang/clang-tidy-diff.py %{buildroot}%{_bindir}/clang-tidy-diff
mv %{buildroot}%{_datadir}/clang/run-clang-tidy.py %{buildroot}%{_bindir}/run-clang-tidy
chmod -x %{buildroot}%{_mandir}/man1/scan-build.1 chmod -x %{buildroot}%{_mandir}/man1/scan-build.1
# Stuff we don't want to include # Stuff we don't want to include
rm %{buildroot}%{_mandir}/man1/lit.1 rm %{buildroot}%{_mandir}/man1/lit.1
%if %{build_openmp} # Put cmake files where they can be detected
mkdir -p %{buildroot}%{_libdir}/cmake/llvm/
pushd %{buildroot}%{_datadir}/llvm/cmake/
for f in * ; do
ln -s %{_datadir}/llvm/cmake/$f %{buildroot}%{_libdir}/cmake/llvm/$f
done
# This confuses the rpm cmake provides detection
rm %{buildroot}%{_libdir}/cmake/llvm/LLVM-Config.cmake
mkdir -p %{buildroot}%{_libdir}/cmake/clang/
pushd %{buildroot}%{_datadir}/clang/cmake/
for f in * ; do
ln -s %{_datadir}/clang/cmake/$f %{buildroot}%{_libdir}/cmake/clang/$f
done
%if %{with libcxx}
rm %{buildroot}%{_libdir}/libc++abi.a
%endif
%if %{with openmp}
rm %{buildroot}%{_libdir}/libgomp.so rm %{buildroot}%{_libdir}/libgomp.so
rm %{buildroot}%{_libdir}/libiomp*.so rm %{buildroot}%{_libdir}/libiomp*.so
%endif %endif
%if %{build_lldb} # We don't care about applescript or sublime text
rm %{buildroot}%{_libdir}/liblldb*.a rm %{buildroot}%{_datadir}/clang/*.applescript
rm %{buildroot}%{_libdir}/liblldb.so rm %{buildroot}%{_datadir}/clang/clang-format-sublime.py
rm -r %{buildroot}%{_includedir}/lldb
%endif
%fdupes -s %{buildroot}%{_docdir}/%{name} %fdupes -s %{buildroot}%{_docdir}/%{name}
%fdupes -s %{buildroot}%{_docdir}/%{name}-doc %fdupes -s %{buildroot}%{_docdir}/%{name}-doc
%post -n libLLVM -p /sbin/ldconfig
%postun -n libLLVM -p /sbin/ldconfig
%post clang -p /sbin/ldconfig %check
%postun clang -p /sbin/ldconfig cd build
%ifnarch armv7hl armv7l
%if !0%{?qemu_user_space_build:1}
# we just do not have enough memory with qemu emulation
%post -n libclang -p /sbin/ldconfig ninja -v %{?_smp_mflags} check
%postun -n libclang -p /sbin/ldconfig ninja -v %{?_smp_mflags} clang-test
%if %{with libcxx}
ninja -v %{?_smp_mflags} check-libcxx
ninja -v %{?_smp_mflags} check-libcxxabi
%endif
%endif
%endif
%post -n libLLVM%{_sonum} -p /sbin/ldconfig
%postun -n libLLVM%{_sonum} -p /sbin/ldconfig
%post -n libclang%{_sonum} -p /sbin/ldconfig
%postun -n libclang%{_sonum} -p /sbin/ldconfig
%post -n libLTO%{_sonum} -p /sbin/ldconfig
%postun -n libLTO%{_sonum} -p /sbin/ldconfig
%post gold -p /sbin/ldconfig
%postun gold -p /sbin/ldconfig
%post devel -p /sbin/ldconfig
%postun devel -p /sbin/ldconfig
%post clang-devel -p /sbin/ldconfig %post clang-devel -p /sbin/ldconfig
%postun clang-devel -p /sbin/ldconfig %postun clang-devel -p /sbin/ldconfig
%if %{build_lldb} %post LTO-devel -p /sbin/ldconfig
%post -n lldb -p /sbin/ldconfig %postun LTO-devel -p /sbin/ldconfig
%postun -n lldb -p /sbin/ldconfig
%if %{with openmp}
%post -n libomp -p /sbin/ldconfig
%postun -n libomp -p /sbin/ldconfig
%endif
%if %{with libcxx}
%post -n libc++%{_socxx} -p /sbin/ldconfig
%postun -n libc++%{_socxx} -p /sbin/ldconfig
%post -n libc++abi%{_socxx} -p /sbin/ldconfig
%postun -n libc++abi%{_socxx} -p /sbin/ldconfig
%post libc++-devel -p /sbin/ldconfig
%postun libc++-devel -p /sbin/ldconfig
%post libc++abi-devel -p /sbin/ldconfig
%postun libc++abi-devel -p /sbin/ldconfig
%endif %endif
%files %files
@ -403,25 +620,21 @@ rm -r %{buildroot}%{_includedir}/lldb
%{_bindir}/bugpoint %{_bindir}/bugpoint
%{_bindir}/llc %{_bindir}/llc
%{_bindir}/lli %{_bindir}/lli
%exclude %{_bindir}/llvm-config %{_bindir}/llvm-*
%{_bindir}/llvm*
%{_bindir}/obj2yaml %{_bindir}/obj2yaml
%{_bindir}/opt %{_bindir}/opt
%{_bindir}/sancov %{_bindir}/sancov
%{_bindir}/verify-uselistorder %{_bindir}/verify-uselistorder
%{_bindir}/yaml2obj %{_bindir}/yaml2obj
%exclude %{_mandir}/man1/llvm-config.1%{ext_man} %{_mandir}/man1/FileCheck.1%{ext_man}
%{_mandir}/man1/bugpoint.1%{ext_man} %{_mandir}/man1/bugpoint.1%{ext_man}
%{_mandir}/man1/tblgen.1%{ext_man}
%{_mandir}/man1/llc.1%{ext_man} %{_mandir}/man1/llc.1%{ext_man}
%{_mandir}/man1/lli.1%{ext_man} %{_mandir}/man1/lli.1%{ext_man}
%{_mandir}/man1/llvm*.1%{ext_man} %{_mandir}/man1/llvm-*.1%{ext_man}
%{_mandir}/man1/FileCheck.1%{ext_man}
%{_mandir}/man1/opt.1%{ext_man} %{_mandir}/man1/opt.1%{ext_man}
%{_mandir}/man1/tblgen.1%{ext_man}
%files -n libLLVM %exclude %{_bindir}/llvm-config
%defattr(-,root,root,-) %exclude %{_mandir}/man1/llvm-config.1%{ext_man}
%{_libdir}/libLLVM*.so.*
%files clang %files clang
%defattr(-,root,root) %defattr(-,root,root)
@ -431,41 +644,64 @@ rm -r %{buildroot}%{_includedir}/lldb
%{_bindir}/clang %{_bindir}/clang
%{_bindir}/clang-* %{_bindir}/clang-*
%{_bindir}/clang++ %{_bindir}/clang++
%{_bindir}/clang-format
%{_bindir}/git-clang-format %{_bindir}/git-clang-format
%{_bindir}/modularize %{_bindir}/modularize
%{_bindir}/run-clang-tidy
%{_mandir}/man1/clang.1%{ext_man}
%dir %{_libdir}/clang/
%{_libdir}/clang/%{_relver}/
%files clang-checker
%defattr(-,root,root)
%{_bindir}/scan-build %{_bindir}/scan-build
%{_bindir}/scan-view %{_bindir}/scan-view
%{_datadir}/clang %{_datadir}/scan-build/
%{_datadir}/scan-build %{_datadir}/scan-view/
%{_datadir}/scan-view
%{_mandir}/man1/clang.1%{ext_man}
%{_mandir}/man1/scan-build.1%{ext_man} %{_mandir}/man1/scan-build.1%{ext_man}
%{_libdir}/libLTO.*
%if %{build_openmp}
%{_libdir}/libomp.so
%endif
%if %{build_libcxx}
%{_libdir}/libc++*
%{_includedir}/c++/*
%endif
%{_libdir}/LLVMgold.so
%{_libdir}/bfd-plugins/
%{_libdir}/clang
%ifnarch s390x
%{_libdir}/clang/%{_release_version}/lib/linux/
%endif
%files -n libclang %files -n libLLVM%{_sonum}
%defattr(-,root,root,-)
%{_libdir}/libLLVM*.so.*
%files -n libclang%{_sonum}
%defattr(-,root,root,-) %defattr(-,root,root,-)
%{_libdir}/libclang*.so.* %{_libdir}/libclang*.so.*
%files clang-devel %files -n libLTO%{_sonum}
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/libclang*.so %{_libdir}/libLTO.so.*
%{_includedir}/clang
%{_includedir}/clang-c %files gold
%doc %{_docdir}/llvm-clang %defattr(-,root,root)
%{_libdir}/LLVMgold.so
%dir %{_libdir}/bfd-plugins/
%{_libdir}/bfd-plugins/LLVMgold.so
%if %{with openmp}
%files -n libomp
%defattr(-,root,root)
%{_libdir}/libomp.so
%endif
%if %{with libcxx}
%files -n libc++%{_socxx}
%defattr(-,root,root)
%{_libdir}/libc++.so.*
%files -n libc++abi%{_socxx}
%defattr(-,root,root)
%{_libdir}/libc++abi.so.*
%files libc++-devel
%defattr(-,root,root)
%{_libdir}/libc++.so
%{_libdir}/libc++abi.so
%{_includedir}/c++/
%files libc++abi-devel
%defattr(-,root,root)
%{_libdir}/libc++abi.so
%endif
%files devel %files devel
%defattr(-,root,root,-) %defattr(-,root,root,-)
@ -473,31 +709,50 @@ rm -r %{buildroot}%{_includedir}/lldb
%{_libdir}/libLLVM*.so %{_libdir}/libLLVM*.so
%{_libdir}/BugpointPasses.* %{_libdir}/BugpointPasses.*
%{_libdir}/LLVMHello.* %{_libdir}/LLVMHello.*
%doc %{_mandir}/man1/llvm-config.1%{ext_man}
%{_includedir}/llvm/ %{_includedir}/llvm/
%{_includedir}/llvm-c/ %{_includedir}/llvm-c/
%dir %{_datadir}/llvm %dir %{_datadir}/llvm/
%{_datadir}/llvm/cmake/ %{_datadir}/llvm/cmake
%doc %{_docdir}/llvm %{_libdir}/cmake/llvm
%{_docdir}/llvm/
%{_mandir}/man1/llvm-config.1%{ext_man}
%files clang-devel
%defattr(-,root,root)
%{_libdir}/libclang*.so
%{_includedir}/clang/
%{_includedir}/clang-c/
%dir %{_datadir}/clang/
%{_datadir}/clang/cmake
%{_libdir}/cmake/clang
%{_docdir}/llvm-clang/
%files LTO-devel
%defattr(-,root,root)
%{_libdir}/libLTO.so
%files emacs-plugins
%defattr(-,root,root,-)
%dir %{_datadir}/clang/
%{_datadir}/clang/clang-format.el
%files vim-plugins %files vim-plugins
%defattr(-,root,root,-) %defattr(-,root,root,-)
%doc utils/vim/README.vim %doc utils/vim/README.vim
%{_datadir}/vim/ %{_datadir}/vim/
%dir %{_datadir}/clang/
%{_datadir}/clang/clang-format.py
# The python bindings use the unversioned libclang.so,
# so it doesn't make sense to have multiple versions of it
%if %{_latest}
%files -n python-clang %files -n python-clang
%defattr(-,root,root) %defattr(-,root,root)
%{py_sitedir}/clang %{python_sitelib}/clang/
%{py_sitedir}/clang/__init__.py %{python_sitelib}/clang/__init__.py
%{py_sitedir}/clang/cindex.py %{python_sitelib}/clang/cindex.py
%{py_sitedir}/clang/enumerations.py %{python_sitelib}/clang/enumerations.py
%doc %{_docdir}/python-clang %{_docdir}/python-clang/
%if %{build_lldb}
%files -n lldb
%defattr(-,root,root,-)
%{_libdir}/liblldb.so.*
%{_bindir}/lldb*
%endif %endif
%changelog %changelog

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:92510e3f62e3de955e3a0b6708cebee1ca344d92fb02369cba5fdd5c68f773a0
size 2233144

3
openmp-3.8.1.src.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:68fcde6ef34e0275884a2de3450a31e931caf1d6fda8606ef14f89c4123617dc
size 2009572

View File

@ -1,7 +1,7 @@
Index: llvm-3.8.0.src/cmake/modules/AddLLVM.cmake Index: llvm-3.8.1.src/cmake/modules/AddLLVM.cmake
=================================================================== ===================================================================
--- llvm-3.8.0.src.orig/cmake/modules/AddLLVM.cmake --- llvm-3.8.1.src.orig/cmake/modules/AddLLVM.cmake
+++ llvm-3.8.0.src/cmake/modules/AddLLVM.cmake +++ llvm-3.8.1.src/cmake/modules/AddLLVM.cmake
@@ -326,12 +326,10 @@ endfunction(set_windows_version_resource @@ -326,12 +326,10 @@ endfunction(set_windows_version_resource
# Same semantics as target_link_libraries(). # Same semantics as target_link_libraries().
# ADDITIONAL_HEADERS # ADDITIONAL_HEADERS
@ -95,10 +95,10 @@ Index: llvm-3.8.0.src/cmake/modules/AddLLVM.cmake
function(llvm_install_symlink name dest) function(llvm_install_symlink name dest)
cmake_parse_arguments(ARG "ALWAYS_GENERATE" "" "" ${ARGN}) cmake_parse_arguments(ARG "ALWAYS_GENERATE" "" "" ${ARGN})
foreach(path ${CMAKE_MODULE_PATH}) foreach(path ${CMAKE_MODULE_PATH})
Index: llvm-3.8.0.src/tools/llvm-shlib/CMakeLists.txt Index: llvm-3.8.1.src/tools/llvm-shlib/CMakeLists.txt
=================================================================== ===================================================================
--- llvm-3.8.0.src.orig/tools/llvm-shlib/CMakeLists.txt --- llvm-3.8.1.src.orig/tools/llvm-shlib/CMakeLists.txt
+++ llvm-3.8.0.src/tools/llvm-shlib/CMakeLists.txt +++ llvm-3.8.1.src/tools/llvm-shlib/CMakeLists.txt
@@ -38,7 +38,7 @@ if(LLVM_DYLIB_EXPORTED_SYMBOL_FILE) @@ -38,7 +38,7 @@ if(LLVM_DYLIB_EXPORTED_SYMBOL_FILE)
add_custom_target(libLLVMExports DEPENDS ${LLVM_EXPORTED_SYMBOL_FILE}) add_custom_target(libLLVMExports DEPENDS ${LLVM_EXPORTED_SYMBOL_FILE})
endif() endif()

View File

@ -1,7 +1,7 @@
Index: cfe-3.8.0.src/lib/Basic/Version.cpp Index: cfe-3.8.1.src/lib/Basic/Version.cpp
=================================================================== ===================================================================
--- cfe-3.8.0.src/lib/Basic/Version.cpp.orig --- cfe-3.8.1.src/lib/Basic/Version.cpp.orig
+++ cfe-3.8.0.src/lib/Basic/Version.cpp +++ cfe-3.8.1.src/lib/Basic/Version.cpp
@@ -72,19 +72,11 @@ std::string getLLVMRepositoryPath() { @@ -72,19 +72,11 @@ std::string getLLVMRepositoryPath() {
} }