From 597b73316a7a8c47ffd6d34615860f574ea83bfb Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 9 Oct 2013 17:27:03 +0000 Subject: [PATCH] Fix a FTBFS with a duplicate declaration of shouldUseInlineAtomic --- .../patches/removeduplicatedeclaration.diff | 38 +++++++++++++++++++ debian/patches/series | 2 + 2 files changed, 40 insertions(+) create mode 100644 debian/patches/removeduplicatedeclaration.diff diff --git a/debian/patches/removeduplicatedeclaration.diff b/debian/patches/removeduplicatedeclaration.diff new file mode 100644 index 00000000..c9039383 --- /dev/null +++ b/debian/patches/removeduplicatedeclaration.diff @@ -0,0 +1,38 @@ +Index: llvm-toolchain-3.3-3.3/clang/lib/Basic/Targets.cpp +=================================================================== +--- llvm-toolchain-3.3-3.3.orig/clang/lib/Basic/Targets.cpp 2013-10-09 15:36:51.000000000 +0200 ++++ llvm-toolchain-3.3-3.3/clang/lib/Basic/Targets.cpp 2013-10-09 17:04:58.000000000 +0200 +@@ -3579,33 +3579,6 @@ + return Version >= 7; + } + +- static bool shouldUseInlineAtomic(const llvm::Triple &T) { +- // On linux, binaries targeting old cpus call functions in libgcc to +- // perform atomic operations. The implementation in libgcc then calls into +- // the kernel which on armv6 and newer uses ldrex and strex. The net result +- // is that if we assume the kernel is at least as recent as the hardware, +- // it is safe to use atomic instructions on armv6 and newer. +- if (T.getOS() != llvm::Triple::Linux) +- return false; +- StringRef ArchName = T.getArchName(); +- if (T.getArch() == llvm::Triple::arm) { +- if (!ArchName.startswith("armv")) +- return false; +- StringRef VersionStr = ArchName.substr(4); +- unsigned Version; +- if (VersionStr.getAsInteger(10, Version)) +- return false; +- return Version >= 6; +- } +- assert(T.getArch() == llvm::Triple::thumb); +- if (!ArchName.startswith("thumbv")) +- return false; +- StringRef VersionStr = ArchName.substr(6); +- unsigned Version; +- if (VersionStr.getAsInteger(10, Version)) +- return false; +- return Version >= 7; +- } + + public: + ARMTargetInfo(const std::string &TripleStr) diff --git a/debian/patches/series b/debian/patches/series index 7e54c41e..7b5381db 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -38,3 +38,5 @@ kfreebsd_target_info_clang33.diff lldb-install-headers.diff atomic_library_1.diff atomic_library_2.diff +removeduplicatedeclaration.diff +python-clangpath.diff