LLVM 12, git snapshot

This commit is contained in:
Mikhail Novosyolov 2021-01-21 15:28:52 +03:00
parent cc907b6cd4
commit 114c888cb4
4 changed files with 52 additions and 128 deletions

View file

@ -1,6 +1,2 @@
sources: sources:
clang-11.0.1.src.tar.xz: 10516c6d177dc3d893e640c75d891ee3d6c1edcf llvm12-bc9ab9a5cd6bafc5e1293f3d5d51638f8f5cd26c.tar.gz: 782707b0cf798ac7deb9da87b3a2161f5992646a
clang-tools-extra-11.0.1.src.tar.xz: f5698eb81569a5dea2496c4934401be653eeb031
compiler-rt-11.0.1.src.tar.xz: c492a0142887efbe667f6b3994b43a48f53d4832
llvm-11.0.1.src.tar.xz: 1a911295260d4e41116b72788eb602702b4bb252
polly-11.0.1.src.tar.xz: 1489870c457e7a6396bf4793b62dd264faf844b7

View file

@ -1,7 +1,7 @@
diff -Naur clang-9.0.1.src-orig/include/clang/Driver/Distro.h clang-9.0.1.src/include/clang/Driver/Distro.h diff -urN a/clang/include/clang/Driver/Distro.h b/clang/include/clang/Driver/Distro.h
--- clang-9.0.1.src-orig/include/clang/Driver/Distro.h 2019-12-11 22:15:30.000000000 +0300 --- a/clang/include/clang/Driver/Distro.h 2021-01-21 14:47:54.887955961 +0300
+++ clang-9.0.1.src/include/clang/Driver/Distro.h 2020-02-14 19:46:31.781378040 +0300 +++ b/clang/include/clang/Driver/Distro.h 2021-01-21 14:49:48.564035875 +0300
@@ -38,8 +38,10 @@ @@ -41,8 +41,10 @@
RHEL5, RHEL5,
RHEL6, RHEL6,
RHEL7, RHEL7,
@ -12,7 +12,7 @@ diff -Naur clang-9.0.1.src-orig/include/clang/Driver/Distro.h clang-9.0.1.src/in
OpenSUSE, OpenSUSE,
UbuntuHardy, UbuntuHardy,
UbuntuIntrepid, UbuntuIntrepid,
@@ -109,6 +111,10 @@ @@ -115,6 +117,10 @@
return DistroVal == Fedora || (DistroVal >= RHEL5 && DistroVal <= RHEL7); return DistroVal == Fedora || (DistroVal >= RHEL5 && DistroVal <= RHEL7);
} }
@ -20,12 +20,12 @@ diff -Naur clang-9.0.1.src-orig/include/clang/Driver/Distro.h clang-9.0.1.src/in
+ return DistroVal == ROSA; + return DistroVal == ROSA;
+ } + }
+ +
bool IsOpenSUSE() const { bool IsOpenSUSE() const { return DistroVal == OpenSUSE; }
return DistroVal == OpenSUSE;
} bool IsDebian() const {
@@ -129,6 +135,9 @@ @@ -129,6 +135,9 @@
return DistroVal == Gentoo;
} bool IsGentoo() const { return DistroVal == Gentoo; }
+ bool IsMandriva() const { + bool IsMandriva() const {
+ return DistroVal == OpenMandriva; + return DistroVal == OpenMandriva;
@ -33,24 +33,23 @@ diff -Naur clang-9.0.1.src-orig/include/clang/Driver/Distro.h clang-9.0.1.src/in
/// @} /// @}
}; };
diff -Naur clang-9.0.1.src-orig/lib/Driver/Distro.cpp clang-9.0.1.src/lib/Driver/Distro.cpp diff -urN a/clang/lib/Driver/Distro.cpp b/clang/lib/Driver/Distro.cpp
--- clang-9.0.1.src-orig/lib/Driver/Distro.cpp 2019-12-11 22:15:30.000000000 +0300 --- a/clang/lib/Driver/Distro.cpp 2021-01-21 14:47:54.974619591 +0300
+++ clang-9.0.1.src/lib/Driver/Distro.cpp 2020-02-14 19:50:25.775772017 +0300 +++ b/clang/lib/Driver/Distro.cpp 2021-01-21 14:52:04.312828583 +0300
@@ -57,6 +57,10 @@ @@ -188,6 +188,9 @@
return Version;
} }
+ File = VFS.getBufferForFile("/etc/rosa-release"); // ...and others.
+ if (File) + if (VFS.exists("/etc/rosa-release"))
+ return Distro::ROSA; + return Distro::ROSA;
+ +
File = VFS.getBufferForFile("/etc/redhat-release"); if (VFS.exists("/etc/exherbo-release"))
if (File) { return Distro::Exherbo;
StringRef Data = File.get()->getBuffer();
diff -Naur clang-9.0.1.src-orig/lib/Driver/ToolChains/Gnu.cpp clang-9.0.1.src/lib/Driver/ToolChains/Gnu.cpp diff -urN a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
--- clang-9.0.1.src-orig/lib/Driver/ToolChains/Gnu.cpp 2019-12-11 22:15:30.000000000 +0300 --- a/clang/lib/Driver/ToolChains/Gnu.cpp 2021-01-21 14:47:54.984619240 +0300
+++ clang-9.0.1.src/lib/Driver/ToolChains/Gnu.cpp 2020-02-14 19:19:59.341584610 +0300 +++ b/clang/lib/Driver/ToolChains/Gnu.cpp 2021-01-21 14:49:10.282009317 +0300
@@ -1927,7 +1927,9 @@ @@ -2075,7 +2075,9 @@
static const char *const AArch64LibDirs[] = {"/lib64", "/lib"}; static const char *const AArch64LibDirs[] = {"/lib64", "/lib"};
static const char *const AArch64Triples[] = { static const char *const AArch64Triples[] = {
"aarch64-none-linux-gnu", "aarch64-linux-gnu", "aarch64-redhat-linux", "aarch64-none-linux-gnu", "aarch64-linux-gnu", "aarch64-redhat-linux",
@ -61,7 +60,7 @@ diff -Naur clang-9.0.1.src-orig/lib/Driver/ToolChains/Gnu.cpp clang-9.0.1.src/li
static const char *const AArch64beLibDirs[] = {"/lib"}; static const char *const AArch64beLibDirs[] = {"/lib"};
static const char *const AArch64beTriples[] = {"aarch64_be-none-linux-gnu", static const char *const AArch64beTriples[] = {"aarch64_be-none-linux-gnu",
"aarch64_be-linux-gnu"}; "aarch64_be-linux-gnu"};
@@ -1937,6 +1939,8 @@ @@ -2085,6 +2087,8 @@
"arm-linux-androideabi"}; "arm-linux-androideabi"};
static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf", static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
"armv7hl-redhat-linux-gnueabi", "armv7hl-redhat-linux-gnueabi",
@ -70,7 +69,7 @@ diff -Naur clang-9.0.1.src-orig/lib/Driver/ToolChains/Gnu.cpp clang-9.0.1.src/li
"armv6hl-suse-linux-gnueabi", "armv6hl-suse-linux-gnueabi",
"armv7hl-suse-linux-gnueabi"}; "armv7hl-suse-linux-gnueabi"};
static const char *const ARMebLibDirs[] = {"/lib"}; static const char *const ARMebLibDirs[] = {"/lib"};
@@ -1955,7 +1959,8 @@ @@ -2103,7 +2107,8 @@
"x86_64-redhat-linux", "x86_64-suse-linux", "x86_64-redhat-linux", "x86_64-suse-linux",
"x86_64-manbo-linux-gnu", "x86_64-linux-gnu", "x86_64-manbo-linux-gnu", "x86_64-linux-gnu",
"x86_64-slackware-linux", "x86_64-unknown-linux", "x86_64-slackware-linux", "x86_64-unknown-linux",
@ -80,7 +79,7 @@ diff -Naur clang-9.0.1.src-orig/lib/Driver/ToolChains/Gnu.cpp clang-9.0.1.src/li
static const char *const X32LibDirs[] = {"/libx32"}; static const char *const X32LibDirs[] = {"/libx32"};
static const char *const X86LibDirs[] = {"/lib32", "/lib"}; static const char *const X86LibDirs[] = {"/lib32", "/lib"};
static const char *const X86Triples[] = { static const char *const X86Triples[] = {
@@ -1964,7 +1969,9 @@ @@ -2112,7 +2117,9 @@
"i586-redhat-linux", "i386-redhat-linux", "i586-suse-linux", "i586-redhat-linux", "i386-redhat-linux", "i586-suse-linux",
"i486-slackware-linux", "i686-montavista-linux", "i586-linux-gnu", "i486-slackware-linux", "i686-montavista-linux", "i586-linux-gnu",
"i686-linux-android", "i386-gnu", "i486-gnu", "i686-linux-android", "i386-gnu", "i486-gnu",
@ -91,10 +90,10 @@ diff -Naur clang-9.0.1.src-orig/lib/Driver/ToolChains/Gnu.cpp clang-9.0.1.src/li
static const char *const MIPSLibDirs[] = {"/lib"}; static const char *const MIPSLibDirs[] = {"/lib"};
static const char *const MIPSTriples[] = { static const char *const MIPSTriples[] = {
diff -Naur clang-9.0.1.src-orig/lib/Driver/ToolChains/Linux.cpp clang-9.0.1.src/lib/Driver/ToolChains/Linux.cpp diff -urN a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
--- clang-9.0.1.src-orig/lib/Driver/ToolChains/Linux.cpp 2019-12-11 22:15:30.000000000 +0300 --- a/clang/lib/Driver/ToolChains/Linux.cpp 2021-01-21 14:47:54.984619240 +0300
+++ clang-9.0.1.src/lib/Driver/ToolChains/Linux.cpp 2020-02-14 19:35:44.855908872 +0300 +++ b/clang/lib/Driver/ToolChains/Linux.cpp 2021-01-21 14:49:10.285342537 +0300
@@ -248,7 +248,7 @@ @@ -231,7 +231,7 @@
} }
if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux() || if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux() ||
@ -103,7 +102,7 @@ diff -Naur clang-9.0.1.src-orig/lib/Driver/ToolChains/Linux.cpp clang-9.0.1.src/
ExtraOpts.push_back("-z"); ExtraOpts.push_back("-z");
ExtraOpts.push_back("relro"); ExtraOpts.push_back("relro");
} }
@@ -289,6 +289,7 @@ @@ -271,6 +271,7 @@
// Hexagon linker/loader does not support .gnu.hash // Hexagon linker/loader does not support .gnu.hash
if (!IsMips && !IsHexagon) { if (!IsMips && !IsHexagon) {
if (Distro.IsRedhat() || Distro.IsOpenSUSE() || Distro.IsAlpineLinux() || if (Distro.IsRedhat() || Distro.IsOpenSUSE() || Distro.IsAlpineLinux() ||
@ -111,7 +110,7 @@ diff -Naur clang-9.0.1.src-orig/lib/Driver/ToolChains/Linux.cpp clang-9.0.1.src/
(Distro.IsUbuntu() && Distro >= Distro::UbuntuMaverick) || (Distro.IsUbuntu() && Distro >= Distro::UbuntuMaverick) ||
(IsAndroid && !Triple.isAndroidVersionLT(23))) (IsAndroid && !Triple.isAndroidVersionLT(23)))
ExtraOpts.push_back("--hash-style=gnu"); ExtraOpts.push_back("--hash-style=gnu");
@@ -304,7 +305,7 @@ @@ -286,7 +287,7 @@
ExtraOpts.push_back("--build-id"); ExtraOpts.push_back("--build-id");
#endif #endif

View file

@ -7,11 +7,11 @@
%define _libdir %{_prefix}/%{_lib} %define _libdir %{_prefix}/%{_lib}
%define _libexecdir %{_prefix}/libexec %define _libexecdir %{_prefix}/libexec
%define _mandir %{_prefix}/share/man %define _mandir %{_prefix}/share/man
%define __cmake /usr/bin/cmake
%define debugcflags %{nil} %define debugcflags %{nil}
%define debug_package %{nil} %define debug_package %{nil}
%define _disable_ld_no_undefined 1
%global optflags %{optflags} -fno-strict-aliasing %global optflags %{optflags} -fno-strict-aliasing
%global ldflags %{ldflags} -Wl,-rpath,%{_libdir} %global ldflags %{ldflags} -Wl,-rpath,%{_libdir}
@ -22,21 +22,21 @@
%define compile_apidox 0 %define compile_apidox 0
%{?_with_apidox: %{expand: %%global compile_apidox 1}} %{?_with_apidox: %{expand: %%global compile_apidox 1}}
%define maj_ver 11 %define maj_ver 12
# pre-release
%define commit bc9ab9a5cd6bafc5e1293f3d5d51638f8f5cd26c
%define short_commit %(echo %{commit} | head -c 6)
Summary: LLVM and Clang in %{_prefix} Summary: LLVM and Clang in %{_prefix}
# llvm11 # llvm11
Name: llvm%{maj_ver} Name: llvm%{maj_ver}
Version: %{maj_ver}.0.1 Version: %{maj_ver}
Release: 3 Release: 0.git%{short_commit}.1
License: NCSA License: NCSA
Group: Development/Other Group: Development/Other
Url: http://llvm.org Url: http://llvm.org
Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/llvm-%{version}.src.tar.xz Source0: https://github.com/llvm/llvm-project/archive/%{commit}.tar.gz?/%{name}-%{commit}.tar.gz
Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/clang-%{version}.src.tar.xz
Source2: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/clang-tools-extra-%{version}.src.tar.xz
Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/polly-%{version}.src.tar.xz
Source4: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/compiler-rt-%{version}.src.tar.xz
Source1000: llvm%{maj_ver}.rpmlintrc Source1000: llvm%{maj_ver}.rpmlintrc
# Adjust the search paths to match the OS, adjust the default compiler flags # Adjust the search paths to match the OS, adjust the default compiler flags
# as well. # as well.
@ -70,7 +70,7 @@ AutoProv: 0
Requires: %(patchelf --print-soname /usr/%{_lib}/libffi.so || echo foo)%{_arch_tag_suffix} Requires: %(patchelf --print-soname /usr/%{_lib}/libffi.so || echo foo)%{_arch_tag_suffix}
%else %else
# _arch_tag_suffix in needed form does not exist in rpm5, make a more dirty hack # _arch_tag_suffix in needed form does not exist in rpm5, make a more dirty hack
Requires: %mklibname ffi %(patchelf --print-soname /usr/%{_lib}/libffi.so | awk -F '.' '{print $NF}' || echo 0) Requires: %{_lib}ffi%(patchelf --print-soname /usr/%{_lib}/libffi.so | rev | cut -d. -f1 | rev)
%endif %endif
@ -85,82 +85,12 @@ for effective implementation, proper tail calls or garbage collection.
This package contains LLVM and Clang in %{_prefix}. This package contains LLVM and Clang in %{_prefix}.
%files %files
%doc LICENSE.TXT %{_prefix}
%doc README.txt
%doc docs/tutorial
%doc examples
%if %{compile_apidox}
%doc docs/doxygen
%endif
%{_bindir}/bugpoint
%{_bindir}/c-index-test
%{_bindir}/clang*
%{_bindir}/diagtool
%{_bindir}/dsymutil
%{_bindir}/find-all-symbols
%{_bindir}/git-clang-format
%{_bindir}/hmaptool
%{_bindir}/llc
%{_bindir}/lli
%{_bindir}/llvm*
%{_bindir}/modularize
%{_bindir}/obj2yaml
%{_bindir}/opt
%{_bindir}/pollyc++
%{_bindir}/pollycc
%{_bindir}/pp-trace
%{_bindir}/sancov
%{_bindir}/sanstats
%{_bindir}/scan-build
%{_bindir}/scan-view
%{_bindir}/verify-uselistorder
%{_bindir}/yaml2obj
%{_datadir}/clang
%{_datadir}/opt-viewer
%{_datadir}/scan-build/
%{_datadir}/scan-view/
%{_includedir}/clang
%{_includedir}/clang-c
%{_includedir}/clang-tidy
%{_includedir}/%{oname}
%{_includedir}/%{oname}-c
%{_includedir}/polly
%{_libdir}/BugpointPasses.so
%{_libdir}/clang/
%{_libdir}/cmake/clang/ClangConfig.cmake
%{_libdir}/cmake/clang/ClangTargets.cmake
%{_libdir}/cmake/clang/ClangTargets-relwithdebinfo.cmake
%{_libdir}/cmake/%{oname}/*
%{_libdir}/cmake/polly/*.cmake
%{_libdir}/libclang*.a
%{_libdir}/libclang*.so
%{_libdir}/libclang*.so.%{maj_ver}
%{_libdir}/libfindAllSymbols.a
%{_libdir}/libLLVM*.a
%{_libdir}/libLLVM-*.so
%{_libdir}/libLLVM.so
%{_libdir}/libLTO.so*
%{_libdir}/libPolly*.a
%{_libdir}/libRemarks.so*
%{_libdir}/LLVMgold.so
%{_libdir}/LLVMHello.so
%{_libdir}/LLVMPolly.so
%{_libexecdir}/c++-analyzer
%{_libexecdir}/ccc-analyzer
%{_mandir}/man1/scan-build.1
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
%prep %prep
%setup -qn %{oname}-%{version}.src -a1 -a2 -a3 -a4 %autosetup -p1 -n llvm-project-%{commit}
rm -rf tools/clang
mv clang-%{version}.src tools/clang
mv polly-%{version}.src tools/polly
mv clang-tools-extra-%{version}.src tools/clang/tools/extra
mv compiler-rt-%{version}.src projects/compiler-rt
cd tools/clang
%patch1 -p1 -b .rosa~
cd -
%build %build
# Build with gcc/g++, not clang if it happens to be installed # Build with gcc/g++, not clang if it happens to be installed
@ -194,19 +124,18 @@ EOF
done done
%endif %endif
%cmake \ %setup_compile_flags
-DCMAKE_BUILD_TYPE=RelWithDebInfo \ mkdir -p build
cd build
cmake ../llvm \
-DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_PROJECTS='clang;clang-tools-extra;libcxx;libcxxabi;libunwind;lldb;compiler-rt;lld;polly' \
-DBUILD_SHARED_LIBS:BOOL=OFF \ -DBUILD_SHARED_LIBS:BOOL=OFF \
-DLLVM_LIBDIR_SUFFIX=$(echo %{_lib} | sed -e 's,^lib,,') \ -DLLVM_LIBDIR_SUFFIX=$(echo %{_lib} | sed -e 's,^lib,,') \
-DCLANG_LIBDIR_SUFFIX=$(echo %{_lib} | sed -e 's,^lib,,') \ -DCLANG_LIBDIR_SUFFIX=$(echo %{_lib} | sed -e 's,^lib,,') \
-DWITH_POLLY:BOOL=ON \
-DLINK_POLLY_INTO_TOOLS:BOOL=ON \
-DLLVM_ENABLE_FFI:BOOL=ON \ -DLLVM_ENABLE_FFI:BOOL=ON \
-DLLVM_ENABLE_RTTI:BOOL=ON \ -DLLVM_ENABLE_RTTI:BOOL=ON \
-DLLVM_BINUTILS_INCDIR=%{_includedir} \
-DLLVM_INCLUDE_UTILS:BOOL=ON \
-DLLVM_BUILD_LLVM_DYLIB=ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DOCAMLFIND=NOTFOUND \ -DOCAMLFIND=NOTFOUND \
%if %{compile_apidox} %if %{compile_apidox}
-DLLVM_INCLUDE_DOCS:BOOL=ON \ -DLLVM_INCLUDE_DOCS:BOOL=ON \