diff options
| -rw-r--r-- | meta/classes/cross-canadian.bbclass | 2 | ||||
| -rw-r--r-- | meta/classes/package_deb.bbclass | 35 |
2 files changed, 26 insertions, 11 deletions
diff --git a/meta/classes/cross-canadian.bbclass b/meta/classes/cross-canadian.bbclass index 7b26ed631b..e07b1bdb6c 100644 --- a/meta/classes/cross-canadian.bbclass +++ b/meta/classes/cross-canadian.bbclass | |||
| @@ -103,7 +103,7 @@ HOST_LD_ARCH = "${SDK_LD_ARCH}" | |||
| 103 | HOST_AS_ARCH = "${SDK_AS_ARCH}" | 103 | HOST_AS_ARCH = "${SDK_AS_ARCH}" |
| 104 | 104 | ||
| 105 | #assign DPKG_ARCH | 105 | #assign DPKG_ARCH |
| 106 | DPKG_ARCH = "${SDK_ARCH}" | 106 | DPKG_ARCH = "${@debian_arch_map(d.getVar('SDK_ARCH', True), '')}" |
| 107 | 107 | ||
| 108 | CPPFLAGS = "${BUILDSDK_CPPFLAGS}" | 108 | CPPFLAGS = "${BUILDSDK_CPPFLAGS}" |
| 109 | CFLAGS = "${BUILDSDK_CFLAGS}" | 109 | CFLAGS = "${BUILDSDK_CFLAGS}" |
diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass index 5feeeb0ecc..8d27adf292 100644 --- a/meta/classes/package_deb.bbclass +++ b/meta/classes/package_deb.bbclass | |||
| @@ -6,7 +6,7 @@ inherit package | |||
| 6 | 6 | ||
| 7 | IMAGE_PKGTYPE ?= "deb" | 7 | IMAGE_PKGTYPE ?= "deb" |
| 8 | 8 | ||
| 9 | DPKG_ARCH ?= "${TARGET_ARCH}" | 9 | DPKG_ARCH ?= "${@debian_arch_map(d.getVar('TARGET_ARCH', True), d.getVar('TUNE_FEATURES', True))}" |
| 10 | 10 | ||
| 11 | PKGWRITEDIRDEB = "${WORKDIR}/deploy-debs" | 11 | PKGWRITEDIRDEB = "${WORKDIR}/deploy-debs" |
| 12 | 12 | ||
| @@ -14,6 +14,28 @@ APTCONF_TARGET = "${WORKDIR}" | |||
| 14 | 14 | ||
| 15 | APT_ARGS = "${@['', '--no-install-recommends'][d.getVar("NO_RECOMMENDATIONS", True) == "1"]}" | 15 | APT_ARGS = "${@['', '--no-install-recommends'][d.getVar("NO_RECOMMENDATIONS", True) == "1"]}" |
| 16 | 16 | ||
| 17 | def debian_arch_map(arch, tune): | ||
| 18 | tune_features = tune.split() | ||
| 19 | if arch in ["i586", "i686"]: | ||
| 20 | return "i386" | ||
| 21 | if arch == "x86_64": | ||
| 22 | if "mx32" in tune_features: | ||
| 23 | return "x32" | ||
| 24 | return "amd64" | ||
| 25 | if arch.startswith("mips"): | ||
| 26 | endian = ["el", ""]["bigendian" in tune_features] | ||
| 27 | if "n64" in tune_features: | ||
| 28 | return "mips64" + endian | ||
| 29 | if "n32" in tune_features: | ||
| 30 | return "mipsn32" + endian | ||
| 31 | return "mips" + endian | ||
| 32 | if arch == "powerpc": | ||
| 33 | return arch + ["", "spe"]["spe" in tune_features] | ||
| 34 | if arch == "aarch64": | ||
| 35 | return "arm64" | ||
| 36 | if arch == "arm": | ||
| 37 | return arch + ["el", "hf"]["callconvention-hard" in tune_features] | ||
| 38 | return arch | ||
| 17 | # | 39 | # |
| 18 | # install a bunch of packages using apt | 40 | # install a bunch of packages using apt |
| 19 | # the following shell variables needs to be set before calling this func: | 41 | # the following shell variables needs to be set before calling this func: |
| @@ -288,6 +310,8 @@ python do_package_deb () { | |||
| 288 | cleanupcontrol(root) | 310 | cleanupcontrol(root) |
| 289 | bb.utils.unlockfile(lf) | 311 | bb.utils.unlockfile(lf) |
| 290 | } | 312 | } |
| 313 | # Indirect references to these vars | ||
| 314 | do_package_write_deb[vardeps] += "PKGV PKGR PKGV DESCRIPTION SECTION PRIORITY MAINTAINER DPKG_ARCH PN HOMEPAGE" | ||
| 291 | # Otherwise allarch packages may change depending on override configuration | 315 | # Otherwise allarch packages may change depending on override configuration |
| 292 | do_package_deb[vardepsexclude] = "OVERRIDES" | 316 | do_package_deb[vardepsexclude] = "OVERRIDES" |
| 293 | 317 | ||
| @@ -311,15 +335,6 @@ python () { | |||
| 311 | deps = ' dpkg-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot' | 335 | deps = ' dpkg-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot' |
| 312 | d.appendVarFlag('do_package_write_deb', 'depends', deps) | 336 | d.appendVarFlag('do_package_write_deb', 'depends', deps) |
| 313 | d.setVarFlag('do_package_write_deb', 'fakeroot', "1") | 337 | d.setVarFlag('do_package_write_deb', 'fakeroot', "1") |
| 314 | |||
| 315 | # Map TARGET_ARCH to Debian's ideas about architectures | ||
| 316 | darch = d.getVar('DPKG_ARCH', True) | ||
| 317 | if darch in ["x86", "i486", "i586", "i686", "pentium"]: | ||
| 318 | d.setVar('DPKG_ARCH', 'i386') | ||
| 319 | elif darch == "x86_64": | ||
| 320 | d.setVar('DPKG_ARCH', 'amd64') | ||
| 321 | elif darch == "arm": | ||
| 322 | d.setVar('DPKG_ARCH', 'armel') | ||
| 323 | } | 338 | } |
| 324 | 339 | ||
| 325 | python do_package_write_deb () { | 340 | python do_package_write_deb () { |
