diff --git a/llvm b/llvm index ef32c611..f28c006a 160000 --- a/llvm +++ b/llvm @@ -1 +1 @@ -Subproject commit ef32c611aa214dea855364efd7ba451ec5ec3f74 +Subproject commit f28c006a5895fc0e329fe15fead81e37457cb1d1 diff --git a/rpm/llvm-sailfishos-toolchain.patch b/rpm/0001-LLVM-Add-MeeGo-vendor-type.patch similarity index 73% rename from rpm/llvm-sailfishos-toolchain.patch rename to rpm/0001-LLVM-Add-MeeGo-vendor-type.patch index dcf936c8..d0d0e058 100644 --- a/rpm/llvm-sailfishos-toolchain.patch +++ b/rpm/0001-LLVM-Add-MeeGo-vendor-type.patch @@ -1,8 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ruben De Smet +Date: Sun, 26 Jun 2022 10:48:13 +0200 +Subject: [PATCH] LLVM: Add MeeGo vendor type + +--- + llvm/include/llvm/ADT/Triple.h | 3 ++- + llvm/lib/Support/Triple.cpp | 12 ++++++++++++ + llvm/unittests/ADT/TripleTest.cpp | 6 ++++++ + 3 files changed, 20 insertions(+), 1 deletion(-) + diff --git a/llvm/include/llvm/ADT/Triple.h b/llvm/include/llvm/ADT/Triple.h -index 76a754d671f..6ee7f680dee 100644 +index 42277c013035..9e36dfd4d2d5 100644 --- a/llvm/include/llvm/ADT/Triple.h +++ b/llvm/include/llvm/ADT/Triple.h -@@ -152,7 +152,8 @@ public: +@@ -165,7 +165,8 @@ public: Mesa, SUSE, OpenEmbedded, @@ -13,10 +24,10 @@ index 76a754d671f..6ee7f680dee 100644 enum OSType { UnknownOS, diff --git a/llvm/lib/Support/Triple.cpp b/llvm/lib/Support/Triple.cpp -index 2c480c1094a..e7d399bfa4f 100644 +index a9afcc9db96a..c4307bf457c7 100644 --- a/llvm/lib/Support/Triple.cpp +++ b/llvm/lib/Support/Triple.cpp -@@ -162,6 +162,7 @@ StringRef Triple::getVendorTypeName(VendorType Kind) { +@@ -177,6 +177,7 @@ StringRef Triple::getVendorTypeName(VendorType Kind) { case Freescale: return "fsl"; case IBM: return "ibm"; case ImaginationTechnologies: return "img"; @@ -24,7 +35,7 @@ index 2c480c1094a..e7d399bfa4f 100644 case Mesa: return "mesa"; case MipsTechnologies: return "mti"; case Myriad: return "myriad"; -@@ -479,6 +480,7 @@ static Triple::VendorType parseVendor(StringRef VendorName) { +@@ -507,6 +508,7 @@ static Triple::VendorType parseVendor(StringRef VendorName) { .Case("mesa", Triple::Mesa) .Case("suse", Triple::SUSE) .Case("oe", Triple::OpenEmbedded) @@ -32,7 +43,7 @@ index 2c480c1094a..e7d399bfa4f 100644 .Default(Triple::UnknownVendor); } -@@ -743,6 +745,9 @@ Triple::Triple(const Twine &Str) +@@ -802,6 +804,9 @@ Triple::Triple(const Twine &Str) OS = parseOS(Components[2]); if (Components.size() > 3) { Environment = parseEnvironment(Components[3]); @@ -42,7 +53,7 @@ index 2c480c1094a..e7d399bfa4f 100644 ObjectFormat = parseFormat(Components[3]); } } -@@ -794,6 +799,10 @@ Triple::Triple(const Twine &ArchStr, const Twine &VendorStr, const Twine &OSStr, +@@ -853,6 +858,10 @@ Triple::Triple(const Twine &ArchStr, const Twine &VendorStr, const Twine &OSStr, ObjectFormat(parseFormat(EnvironmentStr.str())) { if (ObjectFormat == Triple::UnknownObjectFormat) ObjectFormat = getDefaultFormat(*this); @@ -53,8 +64,8 @@ index 2c480c1094a..e7d399bfa4f 100644 } std::string Triple::normalize(StringRef Str) { -@@ -1056,6 +1065,9 @@ void Triple::getEnvironmentVersion(unsigned &Major, unsigned &Minor, - unsigned &Micro) const { +@@ -1103,6 +1112,9 @@ static VersionTuple parseVersionFromName(StringRef Name) { + VersionTuple Triple::getEnvironmentVersion() const { StringRef EnvironmentName = getEnvironmentName(); StringRef EnvironmentTypeName = getEnvironmentTypeName(getEnvironment()); + // MeeGo uses "gnueabi" to mean "gnueabihf" @@ -64,10 +75,10 @@ index 2c480c1094a..e7d399bfa4f 100644 EnvironmentName = EnvironmentName.substr(EnvironmentTypeName.size()); diff --git a/llvm/unittests/ADT/TripleTest.cpp b/llvm/unittests/ADT/TripleTest.cpp -index ef7f82d268e..5f9c04832ec 100644 +index 3006ab6d40e8..7a28ed624232 100644 --- a/llvm/unittests/ADT/TripleTest.cpp +++ b/llvm/unittests/ADT/TripleTest.cpp -@@ -355,6 +355,12 @@ TEST(TripleTest, ParsedIDs) { +@@ -384,6 +384,12 @@ TEST(TripleTest, ParsedIDs) { EXPECT_EQ(Triple::Linux, T.getOS()); EXPECT_EQ(Triple::GNUEABI, T.getEnvironment()); diff --git a/rpm/0001-ToolChain-Add-lgcc_s-to-the-linker-flags-when-using-.patch b/rpm/0001-ToolChain-Add-lgcc_s-to-the-linker-flags-when-using-.patch deleted file mode 100644 index 25332a47..00000000 --- a/rpm/0001-ToolChain-Add-lgcc_s-to-the-linker-flags-when-using-.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 09ae3ef5710a89505318ec721c65b6c838147276 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Thu, 7 Feb 2019 21:05:37 -0800 -Subject: [PATCH] ToolChain: Add -lgcc_s to the linker flags when using libc++ - -The libc++ build for Fedora does not include an implementation of -libunwind, so we need to explicitly link against something that -provides this implementation. ---- - clang/lib/Driver/ToolChain.cpp | 1 + - clang/test/Driver/netbsd.cpp | 4 ++-- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp -index 18400d9def5..3b455c26554 100644 ---- a/clang/lib/Driver/ToolChain.cpp -+++ b/clang/lib/Driver/ToolChain.cpp -@@ -895,6 +895,7 @@ void ToolChain::AddCXXStdlibLibArgs(const ArgList &Args, - switch (Type) { - case ToolChain::CST_Libcxx: - CmdArgs.push_back("-lc++"); -+ CmdArgs.push_back("-lgcc_s"); - break; - - case ToolChain::CST_Libstdcxx: -diff --git a/clang/test/Driver/netbsd.cpp b/clang/test/Driver/netbsd.cpp -index 4af7d8373d6..ff18c627f56 100644 ---- a/clang/test/Driver/netbsd.cpp -+++ b/clang/test/Driver/netbsd.cpp -@@ -131,7 +131,7 @@ - // ARM-7: clang{{.*}}" "-cc1" "-triple" "armv5e-unknown-netbsd7.0.0-eabi" - // ARM-7: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so" - // ARM-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o" --// ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc++" "-lm" "-lc" -+// ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc++" "-lgcc_s" "-lm" "-lc" - // ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o" - - // AARCH64: clang{{.*}}" "-cc1" "-triple" "aarch64-unknown-netbsd" -@@ -250,7 +250,7 @@ - // S-ARM-7: clang{{.*}}" "-cc1" "-triple" "armv5e-unknown-netbsd7.0.0-eabi" - // S-ARM-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic" - // S-ARM-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o" --// S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc++" "-lm" "-lc" -+// S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc++" "-lgcc_s" "-lm" "-lc" - // S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o" - - // S-AARCH64: clang{{.*}}" "-cc1" "-triple" "aarch64-unknown-netbsd" --- -1.8.3.1 - diff --git a/rpm/0002-Add-Triple-isMeeGo.patch b/rpm/0002-Add-Triple-isMeeGo.patch new file mode 100644 index 00000000..dee2066e --- /dev/null +++ b/rpm/0002-Add-Triple-isMeeGo.patch @@ -0,0 +1,23 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ruben De Smet +Date: Sun, 26 Jun 2022 10:41:44 +0200 +Subject: [PATCH] Add Triple::isMeeGo() + +--- + llvm/include/llvm/ADT/Triple.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/llvm/include/llvm/ADT/Triple.h b/llvm/include/llvm/ADT/Triple.h +index 9e36dfd4d2d5..8e66888615ff 100644 +--- a/llvm/include/llvm/ADT/Triple.h ++++ b/llvm/include/llvm/ADT/Triple.h +@@ -657,6 +657,9 @@ public: + /// Tests whether the target is Android + bool isAndroid() const { return getEnvironment() == Triple::Android; } + ++ /// Tests whether the target is Meego/SailfishOS ++ bool isMeeGo() const { return getVendor() == Triple::MeeGo; } ++ + bool isAndroidVersionLT(unsigned Major) const { + assert(isAndroid() && "Not an Android triple!"); + diff --git a/rpm/clang-sailfishos-toolchain.patch b/rpm/0003-Clang-SailfishOS-toolchain.patch similarity index 66% rename from rpm/clang-sailfishos-toolchain.patch rename to rpm/0003-Clang-SailfishOS-toolchain.patch index b8732e3d..b83c8fdb 100644 --- a/rpm/clang-sailfishos-toolchain.patch +++ b/rpm/0003-Clang-SailfishOS-toolchain.patch @@ -1,8 +1,21 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ruben De Smet +Date: Sun, 26 Jun 2022 10:57:51 +0200 +Subject: [PATCH] Clang: SailfishOS toolchain + +Signed-off-by: Ruben De Smet +--- + clang/include/clang/Driver/Distro.h | 5 +++++ + clang/lib/Driver/Distro.cpp | 3 +++ + clang/lib/Driver/ToolChains/Gnu.cpp | 4 +++- + clang/lib/Driver/ToolChains/Linux.cpp | 8 ++++---- + 4 files changed, 15 insertions(+), 5 deletions(-) + diff --git a/clang/include/clang/Driver/Distro.h b/clang/include/clang/Driver/Distro.h -index d382cf77a8b..8c06919f1d3 100644 +index 2723f75e8945..58616ad541e1 100644 --- a/clang/include/clang/Driver/Distro.h +++ b/clang/include/clang/Driver/Distro.h -@@ -42,6 +42,7 @@ public: +@@ -45,6 +45,7 @@ public: Fedora, Gentoo, OpenSUSE, @@ -10,8 +23,8 @@ index d382cf77a8b..8c06919f1d3 100644 UbuntuHardy, UbuntuIntrepid, UbuntuJaunty, -@@ -119,6 +120,10 @@ public: - return DistroVal >= DebianLenny && DistroVal <= DebianBullseye; +@@ -124,6 +125,10 @@ public: + return DistroVal >= DebianLenny && DistroVal <= DebianBookworm; } + bool IsSailfish() const { @@ -19,13 +32,13 @@ index d382cf77a8b..8c06919f1d3 100644 + } + bool IsUbuntu() const { - return DistroVal >= UbuntuHardy && DistroVal <= UbuntuFocal; + return DistroVal >= UbuntuHardy && DistroVal <= UbuntuJammy; } diff --git a/clang/lib/Driver/Distro.cpp b/clang/lib/Driver/Distro.cpp -index 06707fefc9d..cf14a4073fd 100644 +index 5ac38c34d112..cccb2026e527 100644 --- a/clang/lib/Driver/Distro.cpp +++ b/clang/lib/Driver/Distro.cpp -@@ -163,6 +163,9 @@ static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS, +@@ -197,6 +197,9 @@ static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS) { if (VFS.exists("/etc/gentoo-release")) return Distro::Gentoo; @@ -36,40 +49,39 @@ index 06707fefc9d..cf14a4073fd 100644 } diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp -index e8ef881e89a..1bad4f13226 100644 +index 7a9570a686f4..e7f57c824961 100644 --- a/clang/lib/Driver/ToolChains/Gnu.cpp +++ b/clang/lib/Driver/ToolChains/Gnu.cpp -@@ -1999,7 +1999,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes( +@@ -2073,7 +2073,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes( static const char *const AArch64LibDirs[] = {"/lib64", "/lib"}; static const char *const AArch64Triples[] = { "aarch64-none-linux-gnu", "aarch64-linux-gnu", "aarch64-redhat-linux", -- "aarch64-suse-linux", "aarch64-linux-android"}; -+ "aarch64-suse-linux", "aarch64-linux-android", "aarch64-meego-linux-gnu"}; +- "aarch64-suse-linux"}; ++ "aarch64-suse-linux", "aarch64-meego-linux-gnu"}; static const char *const AArch64beLibDirs[] = {"/lib"}; static const char *const AArch64beTriples[] = {"aarch64_be-none-linux-gnu", "aarch64_be-linux-gnu"}; -@@ -2009,6 +2009,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes( - "arm-linux-androideabi"}; +@@ -2082,6 +2082,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes( + static const char *const ARMTriples[] = {"arm-linux-gnueabi"}; static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf", "armv7hl-redhat-linux-gnueabi", + "armv7hl-meego-linux-gnueabi", "armv6hl-suse-linux-gnueabi", "armv7hl-suse-linux-gnueabi"}; static const char *const ARMebLibDirs[] = {"/lib"}; -@@ -2036,7 +2037,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes( - "i586-redhat-linux", "i386-redhat-linux", "i586-suse-linux", - "i486-slackware-linux", "i686-montavista-linux", "i586-linux-gnu", - "i686-linux-android", "i386-gnu", "i486-gnu", -- "i586-gnu", "i686-gnu"}; -+ "i586-gnu", "i686-gnu", "i486-meego-linux"}; +@@ -2108,6 +2109,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes( + "i586-linux-gnu", "i686-linux-gnu", "i686-pc-linux-gnu", + "i386-redhat-linux6E", "i686-redhat-linux", "i386-redhat-linux", + "i586-suse-linux", "i686-montavista-linux", "i686-gnu", ++ "i486-meego-linux" + }; - static const char *const MIPSLibDirs[] = {"/lib"}; - static const char *const MIPSTriples[] = { + static const char *const M68kLibDirs[] = {"/lib"}; diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp -index 6532c899492..3fa0bea23bd 100644 +index 83cb41159de7..e7c2dcaef02a 100644 --- a/clang/lib/Driver/ToolChains/Linux.cpp +++ b/clang/lib/Driver/ToolChains/Linux.cpp -@@ -248,7 +248,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) +@@ -194,7 +194,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) } if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux() || @@ -78,7 +90,7 @@ index 6532c899492..3fa0bea23bd 100644 ExtraOpts.push_back("-z"); ExtraOpts.push_back("relro"); } -@@ -289,13 +289,13 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) +@@ -233,13 +233,13 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) // Hexagon linker/loader does not support .gnu.hash if (!IsMips && !IsHexagon) { if (Distro.IsRedhat() || Distro.IsOpenSUSE() || Distro.IsAlpineLinux() || @@ -94,7 +106,7 @@ index 6532c899492..3fa0bea23bd 100644 (IsAndroid && Triple.isAndroidVersionLT(23))) ExtraOpts.push_back("--hash-style=both"); } -@@ -304,7 +304,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) +@@ -248,7 +248,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) ExtraOpts.push_back("--build-id"); #endif diff --git a/rpm/0001-Make-funwind-tables-the-default-for-all-archs.patch b/rpm/0004-Make-funwind-tables-the-default-for-all-archs.patch similarity index 61% rename from rpm/0001-Make-funwind-tables-the-default-for-all-archs.patch rename to rpm/0004-Make-funwind-tables-the-default-for-all-archs.patch index d4dbc46b..d8642217 100644 --- a/rpm/0001-Make-funwind-tables-the-default-for-all-archs.patch +++ b/rpm/0004-Make-funwind-tables-the-default-for-all-archs.patch @@ -1,18 +1,18 @@ -From 690373af5a5d50cf115ed6e4d2849bb786f9dc8e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: serge-sans-paille Date: Tue, 10 Dec 2019 09:18:03 +0000 Subject: [PATCH] Make -funwind-tables the default for all archs --- clang/lib/Driver/ToolChain.cpp | 2 +- - clang/lib/Driver/ToolChains/Gnu.cpp | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) + clang/lib/Driver/ToolChains/Gnu.cpp | 3 +++ + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp -index 18400d9def5..2643e9decc3 100644 +index d657d21bfcdb..eac667382fa9 100644 --- a/clang/lib/Driver/ToolChain.cpp +++ b/clang/lib/Driver/ToolChain.cpp -@@ -247,7 +247,7 @@ std::string ToolChain::getInputFilename(const InputInfo &Input) const { +@@ -258,7 +258,7 @@ std::string ToolChain::getInputFilename(const InputInfo &Input) const { } bool ToolChain::IsUnwindTablesDefault(const ArgList &Args) const { @@ -22,18 +22,16 @@ index 18400d9def5..2643e9decc3 100644 Tool *ToolChain::getClang() const { diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp -index e8ef881e89a..088a21455ac 100644 +index e7f57c824961..9c44b2e741ce 100644 --- a/clang/lib/Driver/ToolChains/Gnu.cpp +++ b/clang/lib/Driver/ToolChains/Gnu.cpp -@@ -2610,7 +2610,7 @@ void Generic_GCC::printVerboseInfo(raw_ostream &OS) const { +@@ -2692,6 +2692,9 @@ void Generic_GCC::printVerboseInfo(raw_ostream &OS) const { } bool Generic_GCC::IsUnwindTablesDefault(const ArgList &Args) const { -- return getArch() == llvm::Triple::x86_64; -+ return true; - } - - bool Generic_GCC::isPICDefault() const { --- -2.20.1 - ++ if (getTriple().isMeeGo()) { ++ return true; ++ } + switch (getArch()) { + case llvm::Triple::aarch64: + case llvm::Triple::ppc: diff --git a/rpm/0005-Disable-out-of-line-atomics-on-MeeGo.patch b/rpm/0005-Disable-out-of-line-atomics-on-MeeGo.patch new file mode 100644 index 00000000..05159269 --- /dev/null +++ b/rpm/0005-Disable-out-of-line-atomics-on-MeeGo.patch @@ -0,0 +1,22 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ruben De Smet +Date: Sun, 26 Jun 2022 10:42:13 +0200 +Subject: [PATCH] Disable out-of-line atomics on MeeGo + +--- + clang/lib/Driver/ToolChains/Linux.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp +index e7c2dcaef02a..9b377eca9dc8 100644 +--- a/clang/lib/Driver/ToolChains/Linux.cpp ++++ b/clang/lib/Driver/ToolChains/Linux.cpp +@@ -672,6 +672,8 @@ bool Linux::IsAArch64OutlineAtomicsDefault(const ArgList &Args) const { + // and libgcc since 9.3.1 + assert(getTriple().isAArch64() && "expected AArch64 target!"); + ToolChain::RuntimeLibType RtLib = GetRuntimeLibType(Args); ++ if (getTriple().isMeeGo()) ++ return false; + if (RtLib == ToolChain::RLT_CompilerRT) + return true; + assert(RtLib == ToolChain::RLT_Libgcc && "unexpected runtime library type!"); diff --git a/rpm/clang.spec b/rpm/clang.spec index bd1c3a9c..e47d5df5 100644 --- a/rpm/clang.spec +++ b/rpm/clang.spec @@ -1,6 +1,6 @@ -%global maj_ver 10 +%global maj_ver 14 %global min_ver 0 -%global patch_ver 1 +%global patch_ver 6 %global clang_tools_binaries \ %{_bindir}/clang-apply-replacements \ @@ -9,21 +9,24 @@ %{_bindir}/clang-doc \ %{_bindir}/clang-extdef-mapping \ %{_bindir}/clang-format \ - %{_bindir}/clang-import-test \ %{_bindir}/clang-include-fixer \ %{_bindir}/clang-move \ %{_bindir}/clang-offload-bundler \ %{_bindir}/clang-offload-wrapper \ + %{_bindir}/clang-linker-wrapper \ + %{_bindir}/clang-nvlink-wrapper \ %{_bindir}/clang-query \ %{_bindir}/clang-refactor \ %{_bindir}/clang-reorder-fields \ %{_bindir}/clang-rename \ + %{_bindir}/clang-repl \ %{_bindir}/clang-scan-deps \ %{_bindir}/clang-tidy \ %{_bindir}/clangd \ %{_bindir}/diagtool \ %{_bindir}/hmaptool \ - %{_bindir}/pp-trace + %{_bindir}/pp-trace \ + %{_bindir}/run-clang-tidy %global clang_binaries \ %{_bindir}/clang \ @@ -41,12 +44,11 @@ License: NCSA URL: http://llvm.org Source: %{version}/%{name}-%{version}.tar.gz -# LLVM patch -Patch0: llvm-sailfishos-toolchain.patch -# clang patches -Patch1: 0001-ToolChain-Add-lgcc_s-to-the-linker-flags-when-using-.patch -Patch2: 0001-Make-funwind-tables-the-default-for-all-archs.patch -Patch3: clang-sailfishos-toolchain.patch +Patch1: 0001-LLVM-Add-MeeGo-vendor-type.patch +Patch2: 0002-Add-Triple-isMeeGo.patch +Patch3: 0003-Clang-SailfishOS-toolchain.patch +Patch4: 0004-Make-funwind-tables-the-default-for-all-archs.patch +Patch5: 0005-Disable-out-of-line-atomics-on-MeeGo.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -109,6 +111,13 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %description tools-extra A set of extra tools built using Clang's tooling API. +%package tools-extra-devel +Summary: Development header files for clang tools +Requires: %{name}-tools-extra = %{version}-%{release} + +%description tools-extra-devel +Development header files for clang tools. + %prep %autosetup -p1 -n %{name}-%{version}/llvm @@ -161,7 +170,8 @@ pushd build -DCLANG_LINK_CLANG_DYLIB=ON \ -DSPHINX_WARNINGS_AS_ERRORS=OFF \ -DBUILD_SHARED_LIBS=OFF \ - -DCLANG_BUILD_EXAMPLES:BOOL=OFF + -DCLANG_BUILD_EXAMPLES:BOOL=OFF \ + -DCLANG_DEFAULT_UNWINDLIB=libgcc %ninja_build popd @@ -173,6 +183,11 @@ pushd clang %ninja_install -C build +mkdir -p %{buildroot}%{python3_sitelib}/clang/ + +# install scanbuild-py to python sitelib. +mv %{buildroot}%{_prefix}/lib/{libear,libscanbuild} %{buildroot}%{python3_sitelib} + # remove editor integrations (bbedit, sublime, emacs, vim) rm -vf %{buildroot}%{_datadir}/clang/clang-format-bbedit.applescript rm -vf %{buildroot}%{_datadir}/clang/clang-format-sublime.py* @@ -221,10 +236,19 @@ popd %files analyzer %{_bindir}/scan-view %{_bindir}/scan-build +%{_bindir}/analyze-build +%{_bindir}/intercept-build +%{_bindir}/scan-build-py %{_libexecdir}/ccc-analyzer %{_libexecdir}/c++-analyzer +%{_libexecdir}/analyze-c++ +%{_libexecdir}/analyze-cc +%{_libexecdir}/intercept-c++ +%{_libexecdir}/intercept-cc %{_datadir}/scan-view/ %{_datadir}/scan-build/ +%{python3_sitelib}/libear +%{python3_sitelib}/libscanbuild %files tools-extra %{clang_tools_binaries} @@ -235,6 +259,8 @@ popd %{_datadir}/clang/clang-format-diff.py* %{_datadir}/clang/clang-include-fixer.py* %{_datadir}/clang/clang-tidy-diff.py* -%{_datadir}/clang/run-clang-tidy.py* %{_datadir}/clang/run-find-all-symbols.py* %{_datadir}/clang/clang-rename.py* + +%files tools-extra-devel +%{_includedir}/clang-tidy/ diff --git a/rpm/llvm.spec b/rpm/llvm.spec index 967be6b6..5df55178 100644 --- a/rpm/llvm.spec +++ b/rpm/llvm.spec @@ -10,18 +10,19 @@ %endif Name: llvm -Version: 10.0.1 +Version: 14.0.6 Release: 0 Summary: The Low Level Virtual Machine (An Optimizing Compiler Infrastructure) License: University of Illinois/NCSA Open Source License URL: http://llvm.org/ Source: %{version}/%{name}-%{version}.tar.gz -# LLVM patch -Patch0: llvm-sailfishos-toolchain.patch -# clang patches -Patch1: 0001-ToolChain-Add-lgcc_s-to-the-linker-flags-when-using-.patch -Patch2: 0001-Make-funwind-tables-the-default-for-all-archs.patch -Patch3: clang-sailfishos-toolchain.patch + +Patch1: 0001-LLVM-Add-MeeGo-vendor-type.patch +Patch2: 0002-Add-Triple-isMeeGo.patch +Patch3: 0003-Clang-SailfishOS-toolchain.patch +Patch4: 0004-Make-funwind-tables-the-default-for-all-archs.patch +Patch5: 0005-Disable-out-of-line-atomics-on-MeeGo.patch + Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig BuildRequires: cmake, ninja