diff -Nru clang-3.0/debian/changelog clang-3.0/debian/changelog
--- clang-3.0/debian/changelog	2012-02-25 13:05:54.000000000 +0000
+++ clang-3.0/debian/changelog	2012-11-13 12:15:15.000000000 +0000
@@ -1,3 +1,14 @@
+clang (3.0-6.1) wheezy; urgency=low
+
+  * Non-maintainer upload.
+  * 26-set-correct-float-abi.diff: Fix default float abis for armel and armhf
+  * 24-path-multiarch.diff: Fix paths for armhf
+  * 27-dynamic-linker.patch: Fix dynamic linker path for armhf
+  * debian/rules: fix clean target to remove generated file 
+    tools/clang/include/clang/Debian/debian_path.h
+
+ -- Peter Michael Green <plugwash@debian.org>  Mon, 12 Nov 2012 22:04:07 +0000
+
 clang (3.0-6) unstable; urgency=low
 
   * Improve the soname patch
diff -Nru clang-3.0/debian/patches/24-path-multiarch.diff clang-3.0/debian/patches/24-path-multiarch.diff
--- clang-3.0/debian/patches/24-path-multiarch.diff	2012-02-25 13:05:16.000000000 +0000
+++ clang-3.0/debian/patches/24-path-multiarch.diff	2012-11-12 22:03:48.000000000 +0000
@@ -1,8 +1,8 @@
 Index: clang-3.0/tools/clang/lib/Driver/ToolChains.cpp
 ===================================================================
---- clang-3.0.orig/tools/clang/lib/Driver/ToolChains.cpp	2012-02-25 13:20:26.235542936 +0100
-+++ clang-3.0/tools/clang/lib/Driver/ToolChains.cpp	2012-02-25 13:21:02.951542117 +0100
-@@ -1785,6 +1785,15 @@
+--- clang-3.0.orig/tools/clang/lib/Driver/ToolChains.cpp	2012-11-12 21:17:23.000000000 +0000
++++ clang-3.0/tools/clang/lib/Driver/ToolChains.cpp	2012-11-12 22:03:25.000000000 +0000
+@@ -1785,6 +1785,19 @@
      if (llvm::sys::fs::exists(SysRoot + "/lib/x86_64-unknown-linux-gnu"))
        return "x86_64-unknown-linux-gnu";
      return TargetTriple.str();
@@ -11,8 +11,12 @@
 +      return "powerpc-linux-gnu";
 +    return TargetTriple.str();
 +  case llvm::Triple::arm:
-+    if (llvm::sys::fs::exists(SysRoot + "/lib/arm-linux-gnueabi"))
-+      return "arm-linux-gnueabi";
++    if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABI)
++      if (llvm::sys::fs::exists(SysRoot + "/lib/arm-linux-gnueabi"))
++        return "arm-linux-gnueabi";
++    if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABIHF)
++      if (llvm::sys::fs::exists(SysRoot + "/lib/arm-linux-gnueabihf"))
++        return "arm-linux-gnueabihf";
 +    return TargetTriple.str();
 +
    }
diff -Nru clang-3.0/debian/patches/26-set-correct-float-abi.diff clang-3.0/debian/patches/26-set-correct-float-abi.diff
--- clang-3.0/debian/patches/26-set-correct-float-abi.diff	1970-01-01 00:00:00.000000000 +0000
+++ clang-3.0/debian/patches/26-set-correct-float-abi.diff	2012-11-13 12:03:39.000000000 +0000
@@ -0,0 +1,37 @@
+Description: set correct float abi settings for armel and armhf
+ debian armel supports systems that don't have a fpu so should use a "float abi"
+ setting of soft by default.
+ 
+ Debian armhf needs a float abi setting of "hard"
+Author: Peter Michael Green <plugwash@debian.org>
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: <vendor|upstream|other>, <url of original patch>
+Bug: <url in upstream bugtracker>
+Bug-Debian: http://bugs.debian.org/<bugnumber>
+Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
+Forwarded: <no|not-needed|url proving that it has been forwarded>
+Reviewed-By: <name and email of someone who approved the patch>
+Last-Update: <YYYY-MM-DD>
+
+Index: clang-3.0/tools/clang/lib/Driver/Tools.cpp
+===================================================================
+--- clang-3.0.orig/tools/clang/lib/Driver/Tools.cpp	2012-11-12 22:03:29.000000000 +0000
++++ clang-3.0/tools/clang/lib/Driver/Tools.cpp	2012-11-13 12:03:33.000000000 +0000
+@@ -583,7 +583,11 @@
+ 
+     case llvm::Triple::Linux: {
+       if (getToolChain().getTriple().getEnvironment() == llvm::Triple::GNUEABI) {
+-        FloatABI = "softfp";
++        FloatABI = "soft";
++        break;
++      }
++      if (getToolChain().getTriple().getEnvironment() == llvm::Triple::GNUEABIHF) {
++        FloatABI = "hard";
+         break;
+       }
+     }
diff -Nru clang-3.0/debian/patches/27-dynamic-linker.diff clang-3.0/debian/patches/27-dynamic-linker.diff
--- clang-3.0/debian/patches/27-dynamic-linker.diff	1970-01-01 00:00:00.000000000 +0000
+++ clang-3.0/debian/patches/27-dynamic-linker.diff	2012-11-13 12:12:44.000000000 +0000
@@ -0,0 +1,33 @@
+Description: set correct dynamic linker path for armhf
+ armhf uses a different dynamic linker path from armel
+Author: Peter Michael Green <plugwash@debian.org>
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: <vendor|upstream|other>, <url of original patch>
+Bug: <url in upstream bugtracker>
+Bug-Debian: http://bugs.debian.org/<bugnumber>
+Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
+Forwarded: <no|not-needed|url proving that it has been forwarded>
+Reviewed-By: <name and email of someone who approved the patch>
+Last-Update: <YYYY-MM-DD>
+
+Index: clang-3.0/tools/clang/lib/Driver/Tools.cpp
+===================================================================
+--- clang-3.0.orig/tools/clang/lib/Driver/Tools.cpp	2012-11-13 12:04:59.000000000 +0000
++++ clang-3.0/tools/clang/lib/Driver/Tools.cpp	2012-11-13 12:04:59.000000000 +0000
+@@ -4315,7 +4315,10 @@
+       CmdArgs.push_back("/lib/ld-linux.so.2");
+     else if (ToolChain.getArch() == llvm::Triple::arm ||
+              ToolChain.getArch() == llvm::Triple::thumb)
+-      CmdArgs.push_back("/lib/ld-linux.so.3");
++      if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF)
++        CmdArgs.push_back("/lib/ld-linux-armhf.so.3");
++      else
++        CmdArgs.push_back("/lib/ld-linux.so.3");
+     else if (ToolChain.getArch() == llvm::Triple::ppc)
+       CmdArgs.push_back("/lib/ld.so.1");
+     else if (ToolChain.getArch() == llvm::Triple::ppc64)
diff -Nru clang-3.0/debian/patches/series clang-3.0/debian/patches/series
--- clang-3.0/debian/patches/series	2012-02-25 13:05:54.000000000 +0000
+++ clang-3.0/debian/patches/series	2012-11-13 12:14:01.000000000 +0000
@@ -6,3 +6,5 @@
 23-strlcpy_strlcat_warning_removed.diff
 24-path-multiarch.diff
 25-amdfam10.diff
+26-set-correct-float-abi.diff
+27-dynamic-linker.diff
diff -Nru clang-3.0/debian/rules clang-3.0/debian/rules
--- clang-3.0/debian/rules	2011-10-04 12:58:06.000000000 +0000
+++ clang-3.0/debian/rules	2012-11-13 12:09:43.000000000 +0000
@@ -36,5 +36,6 @@
 endif
 	$(RM) -r $(D)/debian/ccache
 	find utils -name '*.py[co]' | xargs rm -f
+	$(RM) tools/clang/include/clang/Debian/debian_path.h
 
 .PHONY: clean
