diff --git a/debian/patches/removeduplicatedeclaration.diff b/debian/patches/removeduplicatedeclaration.diff new file mode 100644 index 00000000..797042d5 --- /dev/null +++ b/debian/patches/removeduplicatedeclaration.diff @@ -0,0 +1,38 @@ +Index: llvm-toolchain-snapshot-3.4~svn192427/clang/lib/Basic/Targets.cpp +=================================================================== +--- llvm-toolchain-snapshot-3.4~svn192427.orig/clang/lib/Basic/Targets.cpp 2013-10-11 10:36:58.260142400 +0200 ++++ llvm-toolchain-snapshot-3.4~svn192427/clang/lib/Basic/Targets.cpp 2013-10-11 10:36:58.252142403 +0200 +@@ -3612,33 +3612,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 llvm::Triple &Triple) diff --git a/debian/patches/series b/debian/patches/series index 5f53aa77..5fec2726 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -28,3 +28,4 @@ libstdc++-header-i386.diff atomic_library_1.diff atomic_library_2.diff python-clangpath.diff +removeduplicatedeclaration.diff