diff -ur origs/linux-3.8.0/debian/changelog linux-3.8.0/debian/changelog
--- origs/linux-3.8.0/debian/changelog	2013-01-18 15:12:38.000000000 +0000
+++ linux-3.8.0/debian/changelog	2013-01-24 20:55:58.000000000 +0000
@@ -1,3 +1,11 @@
+linux (3.8.0-1.5ubuntu1) raring; urgency=low
+
+  * Fix tools cross-build
+  * Fix cross- optional library detection
+  * Change confusing '$(build_arch)' to '$(kernel_arch)'
+
+ -- Wookey <wookey@wookware.org>  Thu, 24 Jan 2013 15:54:52 +0000
+
 linux (3.8.0-1.5) raring; urgency=low
 
   [Tim Gardner]
diff -ur origs/linux-3.8.0/debian/rules linux-3.8.0/debian/rules
--- origs/linux-3.8.0/debian/rules	2012-12-15 14:16:23.000000000 +0000
+++ linux-3.8.0/debian/rules	2013-01-24 20:54:05.000000000 +0000
@@ -232,15 +232,15 @@
 	    done;							\
 	fi
 
-	if [ ! -d $(builddir)/modules/$(build_arch) ]; then		\
-		mkdir -p $(builddir)/modules/$(build_arch);		\
+	if [ ! -d $(builddir)/modules/$(kernel_arch) ]; then		\
+		mkdir -p $(builddir)/modules/$(kernel_arch);		\
 		cp $(builddir)/modules/$(arch)/*			\
-			$(builddir)/modules/$(build_arch);		\
+			$(builddir)/modules/$(kernel_arch);		\
 	fi
-	if [ ! -d $(builddir)/firmware/$(build_arch) ]; then		\
-		mkdir -p $(builddir)/firmware/$(build_arch);		\
+	if [ ! -d $(builddir)/firmware/$(kernel_arch) ]; then		\
+		mkdir -p $(builddir)/firmware/$(kernel_arch);		\
 		cp $(builddir)/firmware/$(arch)/*			\
-			$(builddir)/firmware/$(build_arch);		\
+			$(builddir)/firmware/$(kernel_arch);		\
 	fi
 
 	cp $(DEBIAN)/control.stub debian/control.stub
diff -ur origs/linux-3.8.0/debian/rules.d/0-common-vars.mk linux-3.8.0/debian/rules.d/0-common-vars.mk
--- origs/linux-3.8.0/debian/rules.d/0-common-vars.mk	2013-01-03 13:01:57.000000000 +0000
+++ linux-3.8.0/debian/rules.d/0-common-vars.mk	2013-01-24 20:54:05.000000000 +0000
@@ -219,7 +219,7 @@
 conc_level		= -j$(CONCURRENCY_LEVEL)
 
 # target_flavour is filled in for each step
-kmake = make ARCH=$(build_arch) \
+kmake = make ARCH=$(kernel_arch) \
 	CROSS_COMPILE=$(CROSS_COMPILE) \
 	KERNELVERSION=$(abi_release)-$(target_flavour) \
 	CONFIG_DEBUG_SECTION_MISMATCH=y \
diff -ur origs/linux-3.8.0/debian/rules.d/2-binary-arch.mk linux-3.8.0/debian/rules.d/2-binary-arch.mk
--- origs/linux-3.8.0/debian/rules.d/2-binary-arch.mk	2013-01-10 20:05:37.000000000 +0000
+++ linux-3.8.0/debian/rules.d/2-binary-arch.mk	2013-01-24 20:54:05.000000000 +0000
@@ -9,6 +9,7 @@
 build_cd =
 build_O  = O=$(builddir)/build-$*
 endif
+STRIP = $(CROSS_COMPILE)strip
 
 $(stampdir)/stamp-prepare-%: config-prepare-check-%
 	@echo Debug: $@
@@ -146,7 +147,7 @@
 	install -d $(pkgdir)/DEBIAN
 	for script in postinst postrm preinst prerm; do				\
 	  sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(instfile)/g'		\
-	      -e 's/=L/$(loader)/g'         -e 's@=B@$(build_arch)@g'		\
+	      -e 's/=L/$(loader)/g'         -e 's@=B@$(kernel_arch)@g'		\
 	       $(DROOT)/control-scripts/$$script > $(pkgdir)/DEBIAN/$$script;	\
 	  chmod 755 $(pkgdir)/DEBIAN/$$script;					\
 	done
@@ -155,7 +156,7 @@
 		install -d $(pkgdir_ex)/DEBIAN;					\
 		for script in postinst postrm ; do				\
 			sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(instfile)/g'		\
-			    -e 's/=L/$(loader)/g'         -e 's@=B@$(build_arch)@g'		\
+			    -e 's/=L/$(loader)/g'         -e 's@=B@$(kernel_arch)@g'		\
 			    debian/control-scripts/$$script > $(pkgdir_ex)/DEBIAN/$$script; \
 			chmod 755 $(pkgdir_ex)/DEBIAN/$$script;			\
 		done;								\
@@ -181,7 +182,7 @@
 			sed -e 's/=V/$(abi_release)-$*/g'			\
 			    -e 's/=K/$(instfile)/g'				\
 			    -e 's/=L/$(loader)/g'				\
-			    -e 's@=B@$(build_arch)@g'				\
+			    -e 's@=B@$(kernel_arch)@g'				\
 				$(DROOT)/control-scripts/$$script >		\
 				debian/$(bin_pkg_name)-$$sub/DEBIAN/$$script;\
 			chmod 755  debian/$(bin_pkg_name)-$$sub/DEBIAN/$$script;\
@@ -249,7 +250,7 @@
 	done
 
 	# At the end of the package prep, call the tests
-	DPKG_ARCH="$(arch)" KERN_ARCH="$(build_arch)" FLAVOUR="$*"	\
+	DPKG_ARCH="$(arch)" KERN_ARCH="$(kernel_arch)" FLAVOUR="$*"	\
 	 VERSION="$(abi_release)" REVISION="$(revision)"		\
 	 PREV_REVISION="$(prev_revision)" ABI_NUM="$(abinum)"		\
 	 PREV_ABI_NUM="$(prev_abinum)" BUILD_DIR="$(builddir)/build-$*"	\
@@ -442,8 +443,12 @@
 	@echo Debug: $@
 ifeq ($(do_tools),true)
 ifeq ($(do_tools_perf),true)
+	# we don't have cross-libiberty yet so avoid it by leaving out C++ demangling when crossbuilding
+ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
+	perf_features=HAVE_CPLUS_DEMANGLE=1
+endif
 	cd $(builddirpa)/tools/perf && \
-		make HAVE_CPLUS_DEMANGLE=1 CROSS_COMPILE=$(CROSS_COMPILE)
+		make $(perf_features)  ARCH=$(header_arch) CROSS_COMPILE=$(CROSS_COMPILE)
 endif
 	if [ "$(arch)" = "amd64" ] || [ "$(arch)" = "i386" ]; then \
 		cd $(builddirpa)/tools/power/x86/x86_energy_perf_policy && make CROSS_COMPILE=$(CROSS_COMPILE); \
@@ -462,17 +467,17 @@
 ifeq ($(do_tools),true)
 	install -d $(toolspkgdir)/usr/bin
 ifeq ($(do_tools_perf),true)
-	install -s -m755 $(builddirpa)/tools/perf/perf \
+	install -s --strip-program=$(STRIP) -m755 $(builddirpa)/tools/perf/perf \
 		$(toolspkgdir)/usr/bin/perf_$(abi_release)
 endif
 	if [ "$(arch)" = "amd64" ] || [ "$(arch)" = "i386" ]; then \
-		install -s -m755 $(builddirpa)/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy \
+		install -s --strip-program=$(STRIP) -m755 $(builddirpa)/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy \
 			$(toolspkgdir)/usr/bin/x86_energy_perf_policy_$(abi_release); \
-		install -s -m755 $(builddirpa)/tools/power/x86/turbostat/turbostat \
+		install -s --strip-program=$(STRIP) -m755 $(builddirpa)/tools/power/x86/turbostat/turbostat \
 			$(toolspkgdir)/usr/bin/turbostat_$(abi_release); \
 		if [ "$(do_hyperv)" = "true" ]; then \
 			install -d $(toolspkgdir)/usr/sbin; \
-			install -s -m755 $(builddirpa)/tools/hv/hv_kvp_daemon \
+			install -s --strip-program=$(STRIP) -m755 $(builddirpa)/tools/hv/hv_kvp_daemon \
 				$(toolspkgdir)/usr/sbin/hv_kvp_daemon_$(abi_release); \
 		fi; \
 	fi
diff -ur origs/linux-3.8.0/debian.master/rules.d/amd64.mk linux-3.8.0/debian.master/rules.d/amd64.mk
--- origs/linux-3.8.0/debian.master/rules.d/amd64.mk	2013-01-03 13:01:57.000000000 +0000
+++ linux-3.8.0/debian.master/rules.d/amd64.mk	2013-01-24 20:52:23.000000000 +0000
@@ -1,10 +1,10 @@
 human_arch	= 64 bit x86
-build_arch	= x86_64
-header_arch	= $(build_arch)
+kernel_arch	= x86_64
+header_arch	= $(kernel_arch)
 defconfig	= defconfig
 flavours	= generic
 build_image	= bzImage
-kernel_file	= arch/$(build_arch)/boot/bzImage
+kernel_file	= arch/$(kernel_arch)/boot/bzImage
 install_file	= vmlinuz
 loader		= grub
 no_dumpfile	= true
diff -ur origs/linux-3.8.0/debian.master/rules.d/arm64.mk linux-3.8.0/debian.master/rules.d/arm64.mk
--- origs/linux-3.8.0/debian.master/rules.d/arm64.mk	2012-11-14 17:24:32.000000000 +0000
+++ linux-3.8.0/debian.master/rules.d/arm64.mk	2013-01-24 20:52:52.000000000 +0000
@@ -1,10 +1,10 @@
 human_arch	= ARMv8
-build_arch	= arm64
-header_arch	= arm64
+kernel_arch	= arm64
+header_arch	= $(kernel_arch)
 defconfig	= defconfig
 flavours	= omap
 build_image	= zImage
-kernel_file	= arch/$(build_arch)/boot/zImage
+kernel_file	= arch/$(kernel_arch)/boot/zImage
 install_file	= vmlinuz
 no_dumpfile = true
 
diff -ur origs/linux-3.8.0/debian.master/rules.d/armhf.mk linux-3.8.0/debian.master/rules.d/armhf.mk
--- origs/linux-3.8.0/debian.master/rules.d/armhf.mk	2013-01-10 15:13:50.000000000 +0000
+++ linux-3.8.0/debian.master/rules.d/armhf.mk	2013-01-24 20:53:05.000000000 +0000
@@ -1,11 +1,11 @@
 human_arch	= ARM (hard float)
-build_arch	= arm
-header_arch	= arm
+kernel_arch	= arm
+header_arch	= $(kernel_arch)
 defconfig	= defconfig
 #flavours	= omap highbank
 flavours	= omap
 build_image	= zImage
-kernel_file	= arch/$(build_arch)/boot/zImage
+kernel_file	= arch/$(kernel_arch)/boot/zImage
 install_file	= vmlinuz
 no_dumpfile	= true
 
@@ -13,4 +13,4 @@
 do_tools	= false
 
 # Flavour specific configuration.
-#dtb_file_highbank	= arch/$(build_arch)/boot/highbank.dtb
+#dtb_file_highbank	= arch/$(kernel_arch)/boot/highbank.dtb
diff -ur origs/linux-3.8.0/debian.master/rules.d/i386.mk linux-3.8.0/debian.master/rules.d/i386.mk
--- origs/linux-3.8.0/debian.master/rules.d/i386.mk	2012-10-28 21:29:41.000000000 +0000
+++ linux-3.8.0/debian.master/rules.d/i386.mk	2013-01-24 20:52:23.000000000 +0000
@@ -1,10 +1,10 @@
 human_arch	= 32 bit x86
-build_arch	= i386
+kernel_arch	= i386
 header_arch	= x86_64
 defconfig	= defconfig
 flavours        = generic
 build_image	= bzImage
-kernel_file	= arch/$(build_arch)/boot/bzImage
+kernel_file	= arch/$(kernel_arch)/boot/bzImage
 install_file	= vmlinuz
 loader		= grub
 no_dumpfile	= true
diff -ur origs/linux-3.8.0/debian.master/rules.d/powerpc.mk linux-3.8.0/debian.master/rules.d/powerpc.mk
--- origs/linux-3.8.0/debian.master/rules.d/powerpc.mk	2012-11-14 17:24:32.000000000 +0000
+++ linux-3.8.0/debian.master/rules.d/powerpc.mk	2013-01-24 20:52:23.000000000 +0000
@@ -1,6 +1,6 @@
 human_arch	= PowerPC
-build_arch	= powerpc
-header_arch	= $(build_arch)
+kernel_arch	= powerpc
+header_arch	= $(kernel_arch)
 defconfig	= pmac32_defconfig
 flavours	=
 build_image	= vmlinux
diff -ur origs/linux-3.8.0/debian.master/rules.d/x32.mk linux-3.8.0/debian.master/rules.d/x32.mk
--- origs/linux-3.8.0/debian.master/rules.d/x32.mk	2012-11-14 17:24:32.000000000 +0000
+++ linux-3.8.0/debian.master/rules.d/x32.mk	2013-01-24 20:52:23.000000000 +0000
@@ -1,10 +1,10 @@
 human_arch	= 64 bit x86 (32 bit userspace)
-build_arch	= x86_64
-header_arch	= $(build_arch)
+kernel_arch	= x86_64
+header_arch	= $(kernel_arch)
 defconfig	= defconfig
 flavours	= generic
 build_image	= bzImage
-kernel_file	= arch/$(build_arch)/boot/bzImage
+kernel_file	= arch/$(kernel_arch)/boot/bzImage
 install_file	= vmlinuz
 loader		= grub
 no_dumpfile	= true
Only in origs/linux-3.8.0/firmware/bnx2x: bnx2x-e1-7.8.2.0.fw
Only in origs/linux-3.8.0/firmware/bnx2x: bnx2x-e1h-7.8.2.0.fw
Only in origs/linux-3.8.0/firmware/bnx2x: bnx2x-e2-7.8.2.0.fw
diff -ur origs/linux-3.8.0/tools/perf/config/utilities.mak linux-3.8.0/tools/perf/config/utilities.mak
--- origs/linux-3.8.0/tools/perf/config/utilities.mak	2013-01-03 13:01:59.000000000 +0000
+++ linux-3.8.0/tools/perf/config/utilities.mak	2013-01-24 18:07:41.000000000 +0000
@@ -190,5 +190,5 @@
 	'TMP="$(OUTPUT)$(TMPOUT).$$$$";				  \
 	 $(TRY_CC_MSG)						  \
 	 echo "$(1)" |						  \
-	 $(CC) -x c - $(2) -o "$$TMP" $(TRY_CC_OUTPUT) && echo y; \
+	 $(CROSS-COMPILE)$(CC) -x c - $(2) -o "$$TMP" $(TRY_CC_OUTPUT) && echo y; \
 	 rm -f "$$TMP"')
diff -ur origs/linux-3.8.0/tools/perf/Makefile linux-3.8.0/tools/perf/Makefile
--- origs/linux-3.8.0/tools/perf/Makefile	2013-01-03 13:01:59.000000000 +0000
+++ linux-3.8.0/tools/perf/Makefile	2013-01-24 18:00:56.000000000 +0000
@@ -64,7 +64,12 @@
 CC = $(CROSS_COMPILE)gcc
 AR = $(CROSS_COMPILE)ar
 
-# Additional ARCH settings for x86
+# Additional ARCH settings
+ifeq ($(ARCH),arm)
+	override ARCH := arm
+	NO_PERF_REGS := 0
+	LIBUNWIND_LIBS = -lunwind -lunwind-arm
+endif
 ifeq ($(ARCH),i386)
 	override ARCH := x86
 	NO_PERF_REGS := 0
Only in linux-3.8.0/tools/perf: Makefile~
Only in linux-3.8.0/tools/perf: PERF-VERSION-FILE
