mirror of
https://abf.rosa.ru/djam/llvm13.git
synced 2025-02-24 08:52:45 +00:00
12 -> 13, snapshot of not released git master, build clang only
This commit is contained in:
parent
dec5246fb6
commit
1851a903e9
4 changed files with 74 additions and 60 deletions
2
.abf.yml
2
.abf.yml
|
@ -1,2 +1,2 @@
|
||||||
sources:
|
sources:
|
||||||
llvm12-12.0.1.tar.gz: b608c40c5b946ce2d78c0efa96754244febcf46b
|
llvm13-dfc46f02681447370a1ccbe340034e970bc7e572.tar.gz: 137946b26cf4e2b23c3f8d9a84dc5c1bcc485b9e
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
diff -urN a/clang/include/clang/Driver/Distro.h b/clang/include/clang/Driver/Distro.h
|
diff --git a/clang/include/clang/Driver/Distro.h b/clang/include/clang/Driver/Distro.h
|
||||||
--- a/clang/include/clang/Driver/Distro.h 2021-01-21 14:47:54.887955961 +0300
|
index d9909bc..0790ef2 100644
|
||||||
+++ b/clang/include/clang/Driver/Distro.h 2021-01-21 14:49:48.564035875 +0300
|
--- a/clang/include/clang/Driver/Distro.h
|
||||||
@@ -41,8 +41,10 @@
|
+++ b/clang/include/clang/Driver/Distro.h
|
||||||
|
@@ -42,8 +42,10 @@ public:
|
||||||
RHEL5,
|
RHEL5,
|
||||||
RHEL6,
|
RHEL6,
|
||||||
RHEL7,
|
RHEL7,
|
||||||
|
@ -12,7 +13,7 @@ diff -urN a/clang/include/clang/Driver/Distro.h b/clang/include/clang/Driver/Dis
|
||||||
OpenSUSE,
|
OpenSUSE,
|
||||||
UbuntuHardy,
|
UbuntuHardy,
|
||||||
UbuntuIntrepid,
|
UbuntuIntrepid,
|
||||||
@@ -115,6 +117,10 @@
|
@@ -117,6 +119,10 @@ public:
|
||||||
return DistroVal == Fedora || (DistroVal >= RHEL5 && DistroVal <= RHEL7);
|
return DistroVal == Fedora || (DistroVal >= RHEL5 && DistroVal <= RHEL7);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +24,7 @@ diff -urN a/clang/include/clang/Driver/Distro.h b/clang/include/clang/Driver/Dis
|
||||||
bool IsOpenSUSE() const { return DistroVal == OpenSUSE; }
|
bool IsOpenSUSE() const { return DistroVal == OpenSUSE; }
|
||||||
|
|
||||||
bool IsDebian() const {
|
bool IsDebian() const {
|
||||||
@@ -129,6 +135,9 @@
|
@@ -131,6 +137,9 @@ public:
|
||||||
|
|
||||||
bool IsGentoo() const { return DistroVal == Gentoo; }
|
bool IsGentoo() const { return DistroVal == Gentoo; }
|
||||||
|
|
||||||
|
@ -33,23 +34,23 @@ diff -urN a/clang/include/clang/Driver/Distro.h b/clang/include/clang/Driver/Dis
|
||||||
/// @}
|
/// @}
|
||||||
};
|
};
|
||||||
|
|
||||||
diff -urN a/clang/lib/Driver/Distro.cpp b/clang/lib/Driver/Distro.cpp
|
diff --git a/clang/lib/Driver/Distro.cpp b/clang/lib/Driver/Distro.cpp
|
||||||
--- a/clang/lib/Driver/Distro.cpp 2021-01-21 14:47:54.974619591 +0300
|
index cdb5a17..f697c8c 100644
|
||||||
+++ b/clang/lib/Driver/Distro.cpp 2021-01-21 14:52:04.312828583 +0300
|
--- a/clang/lib/Driver/Distro.cpp
|
||||||
@@ -188,6 +188,9 @@
|
+++ b/clang/lib/Driver/Distro.cpp
|
||||||
|
@@ -44,6 +44,7 @@ static Distro::DistroType DetectOsRelease(llvm::vfs::FileSystem &VFS) {
|
||||||
|
.Case("sles", Distro::OpenSUSE)
|
||||||
|
.Case("opensuse", Distro::OpenSUSE)
|
||||||
|
.Case("exherbo", Distro::Exherbo)
|
||||||
|
+ .Case("rosa", Distro::ROSA)
|
||||||
|
.Default(Distro::UnknownDistro);
|
||||||
|
return Version;
|
||||||
}
|
}
|
||||||
|
diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
|
||||||
// ...and others.
|
index c28fe78..8a72332 100644
|
||||||
+ if (VFS.exists("/etc/rosa-release"))
|
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
|
||||||
+ return Distro::ROSA;
|
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
|
||||||
+
|
@@ -2078,7 +2078,9 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
|
||||||
if (VFS.exists("/etc/exherbo-release"))
|
|
||||||
return Distro::Exherbo;
|
|
||||||
|
|
||||||
diff -urN a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
|
|
||||||
--- a/clang/lib/Driver/ToolChains/Gnu.cpp 2021-01-21 14:47:54.984619240 +0300
|
|
||||||
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp 2021-01-21 14:49:10.282009317 +0300
|
|
||||||
@@ -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",
|
||||||
|
@ -60,7 +61,7 @@ diff -urN a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gn
|
||||||
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"};
|
||||||
@@ -2085,6 +2087,8 @@
|
@@ -2088,6 +2090,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
|
||||||
"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",
|
||||||
|
@ -69,31 +70,31 @@ diff -urN a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gn
|
||||||
"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"};
|
||||||
@@ -2103,7 +2107,8 @@
|
@@ -2106,7 +2110,9 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
|
||||||
"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",
|
||||||
- "x86_64-amazon-linux", "x86_64-linux-android"};
|
- "x86_64-amazon-linux", "x86_64-linux-android"};
|
||||||
+ "x86_64-amazon-linux", "x86_64-linux-android",
|
+ "x86_64-amazon-linux", "x86_64-linux-android",
|
||||||
+ "x86_64-rosa-linux-gnu", "x86_64-openmandriva-linux-gnu"};
|
+ "x86_64-rosa-linux-gnu", "x86_64-openmandriva-linux-gnu"
|
||||||
static const char *const X32LibDirs[] = {"/libx32"};
|
+ };
|
||||||
static const char *const X86LibDirs[] = {"/lib32", "/lib"};
|
static const char *const X32Triples[] = {"x86_64-linux-gnux32",
|
||||||
static const char *const X86Triples[] = {
|
"x86_64-pc-linux-gnux32"};
|
||||||
@@ -2112,7 +2117,9 @@
|
static const char *const X32LibDirs[] = {"/libx32", "/lib"};
|
||||||
"i586-redhat-linux", "i386-redhat-linux", "i586-suse-linux",
|
@@ -2117,6 +2123,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
|
||||||
"i486-slackware-linux", "i686-montavista-linux", "i586-linux-gnu",
|
"i686-redhat-linux", "i386-redhat-linux",
|
||||||
"i686-linux-android", "i386-gnu", "i486-gnu",
|
"i586-suse-linux", "i686-montavista-linux",
|
||||||
- "i586-gnu", "i686-gnu"};
|
"i686-linux-android", "i686-gnu",
|
||||||
+ "i586-gnu", "i686-gnu", "i586-unknown-linux-gnu",
|
+ "i586-rosa-linux-gnu", "i686-rosa-linux-gnu",
|
||||||
+ "i586-rosa-linux-gnu", "i686-rosa-linux-gnu", "i586-openmandriva-linux-gnu",
|
+ "i586-unknown-linux-gnu", "i586-openmandriva-linux-gnu"
|
||||||
+ "i686-openmandriva-linux-gnu"};
|
};
|
||||||
|
|
||||||
static const char *const MIPSLibDirs[] = {"/lib"};
|
static const char *const M68kLibDirs[] = {"/lib"};
|
||||||
static const char *const MIPSTriples[] = {
|
diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
|
||||||
diff -urN a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
|
index a80b8ad..b69ffda 100644
|
||||||
--- a/clang/lib/Driver/ToolChains/Linux.cpp 2021-01-21 14:47:54.984619240 +0300
|
--- a/clang/lib/Driver/ToolChains/Linux.cpp
|
||||||
+++ b/clang/lib/Driver/ToolChains/Linux.cpp 2021-01-21 14:49:10.285342537 +0300
|
+++ b/clang/lib/Driver/ToolChains/Linux.cpp
|
||||||
@@ -231,7 +231,7 @@
|
@@ -194,7 +194,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux() ||
|
if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux() ||
|
||||||
|
@ -102,7 +103,7 @@ diff -urN a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/
|
||||||
ExtraOpts.push_back("-z");
|
ExtraOpts.push_back("-z");
|
||||||
ExtraOpts.push_back("relro");
|
ExtraOpts.push_back("relro");
|
||||||
}
|
}
|
||||||
@@ -271,6 +271,7 @@
|
@@ -233,6 +233,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
|
||||||
// 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() ||
|
||||||
|
@ -110,7 +111,7 @@ diff -urN a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/
|
||||||
(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");
|
||||||
@@ -286,7 +287,7 @@
|
@@ -248,7 +249,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
|
||||||
ExtraOpts.push_back("--build-id");
|
ExtraOpts.push_back("--build-id");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -15,14 +15,10 @@
|
||||||
%global optflags %{optflags} -fno-strict-aliasing
|
%global optflags %{optflags} -fno-strict-aliasing
|
||||||
%global ldflags %{ldflags} -Wl,-rpath,%{_libdir}
|
%global ldflags %{ldflags} -Wl,-rpath,%{_libdir}
|
||||||
|
|
||||||
# clang header paths are hard-coded at compile time
|
|
||||||
# and need adjustment whenever there's a new GCC version
|
|
||||||
%define gcc_version %(gcc -dumpversion)
|
|
||||||
|
|
||||||
%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 12
|
%define maj_ver 13
|
||||||
|
|
||||||
%if %{mdvver} == 201610
|
%if %{mdvver} == 201610
|
||||||
%bcond_without lldb
|
%bcond_without lldb
|
||||||
|
@ -30,19 +26,26 @@
|
||||||
%bcond_with lldb
|
%bcond_with lldb
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%define commit dfc46f02681447370a1ccbe340034e970bc7e572
|
||||||
|
%define commit_short %(echo %{commit} | head -c 6)
|
||||||
|
|
||||||
Summary: LLVM and Clang in %{_prefix}
|
Summary: LLVM and Clang in %{_prefix}
|
||||||
# llvm11
|
# llvm13
|
||||||
Name: llvm%{maj_ver}
|
Name: llvm%{maj_ver}
|
||||||
Version: 12.0.1
|
Version: 13
|
||||||
Release: 1
|
Release: 0.git%{commit_short}.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/archive/llvmorg-%{version}.tar.gz?/%{name}-%{version}.tar.gz
|
Source0: https://github.com/llvm/llvm-project/archive/%{commit}.tar.gz?/%{name}-%{commit}.tar.gz
|
||||||
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.
|
||||||
Patch1: clang-rosa.patch
|
Patch1: clang-rosa.patch
|
||||||
|
BuildRequires: gcc
|
||||||
|
BuildRequires: stdc++-devel
|
||||||
|
# gcc is too old in rosa2016.1, llvm12 was buildable with it but llvm13 is already not
|
||||||
|
BuildRequires: llvm12
|
||||||
BuildRequires: binutils-devel
|
BuildRequires: binutils-devel
|
||||||
BuildRequires: bison
|
BuildRequires: bison
|
||||||
BuildRequires: chrpath
|
BuildRequires: chrpath
|
||||||
|
@ -93,12 +96,14 @@ This package contains LLVM and Clang in %{_prefix}.
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1 -n llvm-project-llvmorg-%{version}
|
%autosetup -p1 -n llvm-project-%{commit}
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# Build with gcc/g++, not clang if it happens to be installed
|
# gcc is too old in rosa2016.1
|
||||||
export CC=gcc
|
#export CC=gcc
|
||||||
export CXX=g++
|
#export CXX=g++
|
||||||
|
export CC=/opt/llvm12/bin/clang
|
||||||
|
export CXX=/opt/llvm12/bin/clang++
|
||||||
|
|
||||||
# A couple more fixes from OMV + a workaround for a bug (?) in GCC 4.9:
|
# A couple more fixes from OMV + a workaround for a bug (?) in GCC 4.9:
|
||||||
# https://llvm.org/bugs/show_bug.cgi?id=20080 and
|
# https://llvm.org/bugs/show_bug.cgi?id=20080 and
|
||||||
|
@ -134,13 +139,21 @@ export PATH=$PYTHONPATH:$PATH
|
||||||
%setup_compile_flags
|
%setup_compile_flags
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
cd build
|
cd build
|
||||||
|
# We actually need only clang to build chromium-browser-stable,
|
||||||
|
# other subprojects fail to build when using /opt/llvm12/bin/clang++,
|
||||||
|
# build OK when using gcc, but gcc is too old in rosa2016.1,
|
||||||
|
# so let's build clang only for now.
|
||||||
|
# -DLLVM_ENABLE_PROJECTS='clang-tools-extra;libcxx;libcxxabi;%{!?with_lldb:lldb;}compiler-rt;lld;polly'
|
||||||
cmake ../llvm \
|
cmake ../llvm \
|
||||||
-DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
|
-DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
-DLLVM_ENABLE_PROJECTS='clang;clang-tools-extra;libcxx;libcxxabi;libunwind;%{!?with_lldb:lldb;}compiler-rt;lld;polly' \
|
-DLLVM_ENABLE_PROJECTS='clang' \
|
||||||
-DBUILD_SHARED_LIBS:BOOL=OFF \
|
-DBUILD_SHARED_LIBS:BOOL=OFF \
|
||||||
|
-DLLVM_INCLUDE_TESTS: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,,') \
|
||||||
|
-DCLANG_DEFAULT_CXX_STDLIB="libstdc++" \
|
||||||
|
-DCLANG_DEFAULT_RTLIB="libgcc" \
|
||||||
-DLLVM_ENABLE_FFI:BOOL=ON \
|
-DLLVM_ENABLE_FFI:BOOL=ON \
|
||||||
-DLLVM_ENABLE_RTTI:BOOL=ON \
|
-DLLVM_ENABLE_RTTI:BOOL=ON \
|
||||||
-DOCAMLFIND=NOTFOUND \
|
-DOCAMLFIND=NOTFOUND \
|
Loading…
Add table
Reference in a new issue