summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWookey <wookey@linaro.org>2013-01-28 09:50:29 -0700
committerJohn Rigby <john.rigby@linaro.org>2013-01-28 10:44:36 -0700
commit627a75aa9659e18075d161b7860ee74cdb0b2ef6 (patch)
tree842b3f0beddce30100e817f02eba75ca17bcfeeb
parent0f473e3e232df6dc66b2da92285c5663b05487bd (diff)
Fix basic tools cross-build
Fixes https://bugs.launchpad.net/linaro-ubuntu/+bug/1104017 Signed-off-by: John Rigby <john.rigby@linaro.org> Signed-off-by: Wookey <wookey@linaro.org>
-rw-r--r--debian.linaro/control.stub.in2
-rw-r--r--debian.linaro/rules.d/arm64.mk4
-rw-r--r--debian.linaro/rules.d/armhf.mk6
-rwxr-xr-xdebian/rules12
-rw-r--r--debian/rules.d/0-common-vars.mk7
-rw-r--r--debian/rules.d/2-binary-arch.mk40
6 files changed, 38 insertions, 33 deletions
diff --git a/debian.linaro/control.stub.in b/debian.linaro/control.stub.in
index bd4b6ce9dd1..43964ec94f3 100644
--- a/debian.linaro/control.stub.in
+++ b/debian.linaro/control.stub.in
@@ -3,7 +3,7 @@ Section: devel
Priority: optional
Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
Standards-Version: 3.8.4.0
-Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], device-tree-compiler [powerpc], libelf-dev, libnewt-dev, binutils-dev, rsync, libdw-dev, dpkg (>= 1.16.0~ubuntu4), util-linux, pkg-config, flex, bison
+Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], libelf-dev, libnewt-dev, binutils-dev, rsync, libdw-dev, dpkg (>= 1.16.0~ubuntu4), util-linux, pkg-config, flex, bison, libunwind8-dev, libaudit-dev [amd64 i386 arm64]
Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc
Build-Conflicts: findutils (= 4.4.1-1ubuntu1)
Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-precise.git
diff --git a/debian.linaro/rules.d/arm64.mk b/debian.linaro/rules.d/arm64.mk
index c30b57f86cd..b44fb9e4c49 100644
--- a/debian.linaro/rules.d/arm64.mk
+++ b/debian.linaro/rules.d/arm64.mk
@@ -1,10 +1,10 @@
human_arch = ARM64
-build_arch = arm64
+kernel_arch = arm64
header_arch = arm64
defconfig = defconfig
flavours = linaro-SOCFLAVOUR
build_image = Image.gz
-kernel_file = arch/$(build_arch)/boot/Image.gz
+kernel_file = arch/$(kernel_arch)/boot/Image.gz
install_file = Image.gz
no_dumpfile = true
diff --git a/debian.linaro/rules.d/armhf.mk b/debian.linaro/rules.d/armhf.mk
index 8c778c19515..9abc3013acc 100644
--- a/debian.linaro/rules.d/armhf.mk
+++ b/debian.linaro/rules.d/armhf.mk
@@ -1,17 +1,17 @@
human_arch = ARM (hard float)
-build_arch = arm
+kernel_arch = arm
header_arch = arm
defconfig = defconfig
flavours = linaro-SOCFLAVOUR
build_image = zImage
-kernel_file = arch/$(build_arch)/boot/zImage
+kernel_file = arch/$(kernel_arch)/boot/zImage
install_file = vmlinuz
no_dumpfile = true
loader = grub
# Flavour specific configuration.
-dtb_file_highbank = arch/$(build_arch)/boot/highbank.dtb
+dtb_file_highbank = arch/$(kernel_arch)/boot/highbank.dtb
skipmodule = true
skipabi = true
disable_d_i = true
diff --git a/debian/rules b/debian/rules
index c47ce37ee73..817b49f6520 100755
--- a/debian/rules
+++ b/debian/rules
@@ -223,15 +223,15 @@ debian/control: $(DEBIAN)/control.stub
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) || true; \
+ $(builddir)/modules/$(kernel_arch) || true; \
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) || true; \
+ $(builddir)/firmware/$(kernel_arch) || true; \
fi
cp $(DEBIAN)/control.stub debian/control.stub
diff --git a/debian/rules.d/0-common-vars.mk b/debian/rules.d/0-common-vars.mk
index 4be5ff34bed..c6ef465a5d7 100644
--- a/debian/rules.d/0-common-vars.mk
+++ b/debian/rules.d/0-common-vars.mk
@@ -108,9 +108,8 @@ ifneq ($(arch),$(DEB_HOST_ARCH))
endif
#
-# Detect invocations of the form 'dpkg-buildpackage -B -aarmel' within
-# an x86'en schroot. This is the only way to build all of the packages
-# (except for tools).
+# Detect invocations of the form 'dpkg-buildpackage -B -aarmhf' within
+# an x86'en schroot. This is the correct way to build all of the packages.
#
ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
CROSS_COMPILE ?= $(DEB_HOST_GNU_TYPE)-
@@ -215,7 +214,7 @@ endif
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 --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk
index 28b19f9aeb0..631037ea8b7 100644
--- a/debian/rules.d/2-binary-arch.mk
+++ b/debian/rules.d/2-binary-arch.mk
@@ -10,6 +10,7 @@ build_cd =
build_O = O=$(builddir)/build-$*
endif
crossbuildscripts=$(shell grep KBUILD_SCRIPTROOT scripts/Makefile.build && echo "true")
+STRIP = $(CROSS_COMPILE)strip
kbsr = $(builddir)/build-$*
@@ -98,12 +99,11 @@ endif
$(pkgdir)/boot/abi-$(abi_release)-$*
install -m600 $(builddir)/build-$*/System.map \
$(pkgdir)/boot/System.map-$(abi_release)-$*
- if [ "$(dtb_target)" ]; then \
- install -d $(pkgdir)/lib/firmware/$(abi_release)-$*/device-tree; \
- install -m644 $(builddir)/build-$*/$(dtb_file) \
- $(pkgdir)/lib/firmware/$(abi_release)-$*/device-tree/$(dtb_target) || echo "no dtb to install"; \
- fi
- install -m644 $(builddir)/boot-wrapper/*.axf $(pkgdir)/boot/ || echo "no axf file"
+ install -d $(pkgdir)/lib/firmware/$(abi_release)-$*/device-tree; \
+ install -m644 $(builddir)/build-$*/arch/$(kernel_arch)/boot/*.dtb \
+ $(pkgdir)/lib/firmware/$(abi_release)-$*/device-tree/ || true
+ install -m644 $(builddir)/build-$*/arch/$(kernel_arch)/boot/dts/*.dtb \
+ $(pkgdir)/lib/firmware/$(abi_release)-$*/device-tree/ || true
ifeq ($(no_dumpfile),)
makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \
-x $(builddir)/build-$*/vmlinux
@@ -149,7 +149,7 @@ endif
install -d $(pkgdir)/DEBIAN
for script in postinst postrm preinst prerm; do \
sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(install_file)/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
@@ -158,7 +158,7 @@ endif
install -d $(pkgdir_ex)/DEBIAN; \
for script in postinst postrm ; do \
sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(install_file)/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; \
@@ -184,7 +184,7 @@ ifneq ($(skipsub),true)
sed -e 's/=V/$(abi_release)-$*/g' \
-e 's/=K/$(install_file)/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;\
@@ -269,7 +269,7 @@ endif
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-$*" \
@@ -467,8 +467,12 @@ endif
$(stampdir)/stamp-build-perarch: $(stampdir)/stamp-prepare-perarch
@echo Debug: $@
ifeq ($(do_tools),true)
+ # we don't have cross-libiberty yet so avoid it by leaving out C++ demangling
+ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
+ features=HAVE_CPLUS_DEMANGLE=1
+endif
cd $(builddirpa)/tools/perf && \
- make HAVE_CPLUS_DEMANGLE=1 CROSS_COMPILE=$(CROSS_COMPILE)
+ make $(features) ARCH=$(header_arch) CROSS_COMPILE=$(CROSS_COMPILE)
if [ "$(arch)" = "amd64" ] || [ "$(arch)" = "i386" ]; then \
cd $(builddirpa)/tools/power/x86/x86_energy_perf_policy && make CROSS_COMPILE=$(CROSS_COMPILE); \
cd $(builddirpa)/tools/power/x86/turbostat && make CROSS_COMPILE=$(CROSS_COMPILE); \
@@ -483,16 +487,18 @@ install-perarch: $(stampdir)/stamp-build-perarch
# Add the tools.
ifeq ($(do_tools),true)
install -d $(toolspkgdir)/usr/bin
- install -s -m755 $(builddirpa)/tools/perf/perf \
+ install -s --strip-program=$(STRIP) -m755 $(builddirpa)/tools/perf/perf \
$(toolspkgdir)/usr/bin/perf_$(abi_release)
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); \
- install -d $(toolspkgdir)/usr/sbin; \
- install -s -m755 $(builddirpa)/tools/hv/hv_kvp_daemon \
- $(toolspkgdir)/usr/sbin/hv_kvp_daemon_$(abi_release); \
+ if [ "$(do_hyperv)" = "true" ]; then \
+ install -d $(toolspkgdir)/usr/sbin; \
+ install -s --strip-program=$(STRIP) -m755 $(builddirpa)/tools/hv/hv_kvp_daemon \
+ $(toolspkgdir)/usr/sbin/hv_kvp_daemon_$(abi_release); \
+ fi; \
fi
endif