Split staging by base package arch (armv7a, ppc603e, etc) * tested on beagleboard, dht-walnut, efika, c7x0 and om-gta01 * python, perl, gtk and qt4-x11 build and work classes/base.bbclass | 2 +- conf/bitbake.conf | 32 +++++++++++++++++++++----------- conf/sanity.conf | 2 +- 3 files changed, 23 insertions(+), 13 deletions(-) ============================================================ --- classes/base.bbclass 42c3339379745f02de17747ffc6c264a4598e5a7 +++ classes/base.bbclass a87c3a17d0789bff3ec85c390af6f387435989e1 @@ -909,7 +909,7 @@ def get_subpkgedata_fn(pkg, d): import bb, os archs = bb.data.expand("${PACKAGE_ARCHS}", d).split(" ") archs.reverse() - pkgdata = bb.data.expand('${STAGING_DIR}/pkgdata/', d) + pkgdata = bb.data.expand('${TMPDIR}/pkgdata/', d) targetdir = bb.data.expand('${TARGET_VENDOR}-${TARGET_OS}/runtime/', d) for arch in archs: fn = pkgdata + arch + targetdir + pkg ============================================================ --- conf/bitbake.conf 594d3a72f00517bb62b18ce2426a8ae7ebbc3131 +++ conf/bitbake.conf 21d8719a52297db9028807e4fd34755c14e10ff4 @@ -94,11 +94,14 @@ MULTIMACH_HOST_SYS = "${MULTIMACH_ARCH}$ MULTIMACH_ARCH = "${PACKAGE_ARCH}" MULTIMACH_TARGET_SYS = "${MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}" MULTIMACH_HOST_SYS = "${MULTIMACH_ARCH}${HOST_VENDOR}-${HOST_OS}" +BASEPKG_HOST_SYS = "${BASE_PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}" +BASEPKG_TARGET_SYS = "${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}" # select proper CPU to get binary locales generated QEMU_OPTIONS = "" QEMU_OPTIONS_iwmmxt = "-cpu pxa270-c5" QEMU_OPTIONS_armv6 = "-cpu arm1136" +QEMU_OPTIONS_armv7a = "-cpu cortex-a8" ################################################################## # Date/time variables. @@ -236,13 +239,15 @@ STAGING_BINDIR_NATIVE = "${STAGING_DIR_N STAGING_DIR_NATIVE = "${STAGING_DIR}/${BUILD_SYS}" STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_bindir}" -STAGING_BINDIR_CROSS = "${STAGING_DIR_NATIVE}${layout_bindir}/${HOST_SYS}" +STAGING_BINDIR_CROSS = "${STAGING_DIR_NATIVE}${layout_bindir}/${MULTIMACH_HOST_SYS}" STAGING_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_libdir}" STAGING_INCDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_includedir}" STAGING_ETCDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_sysconfdir}" STAGING_DATADIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_datadir}" -STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}" +# This should really be MULTIMACH_HOST_SYS but that breaks "all" and machine +# specific packages - hack around it for now. +STAGING_DIR_HOST = "${STAGING_DIR}/${BASEPKG_HOST_SYS}" STAGING_BINDIR = "${STAGING_DIR_HOST}${layout_bindir}" STAGING_LIBDIR = "${STAGING_DIR_HOST}${layout_libdir}" STAGING_INCDIR = "${STAGING_DIR_HOST}${layout_includedir}" @@ -252,7 +257,9 @@ STAGING_PYDIR = "${STAGING_DIR}/lib/pyth STAGING_FIRMWARE_DIR = "${STAGING_DIR_HOST}/firmware" STAGING_PYDIR = "${STAGING_DIR}/lib/python2.4" -STAGING_DIR_TARGET = "${STAGING_DIR}/${TARGET_SYS}" +# This should really be MULTIMACH_TARGET_SYS but that breaks "all" and machine +# specific packages - hack around it for now. +STAGING_DIR_TARGET = "${STAGING_DIR}/${BASEPKG_TARGET_SYS}" DEPLOY_DIR = "${TMPDIR}/deploy" DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar" @@ -262,7 +269,7 @@ DEPLOY_DIR_TOOLS = "${DEPLOY_DIR}/tools" DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images" DEPLOY_DIR_TOOLS = "${DEPLOY_DIR}/tools" -PKGDATA_DIR = "${STAGING_DIR}/pkgdata/${MULTIMACH_TARGET_SYS}" +PKGDATA_DIR = "${TMPDIR}/pkgdata/${MULTIMACH_TARGET_SYS}" SDK_NAME = "${DISTRO}/${TARGET_ARCH}" SDK_PREFIX = "/usr/local/${SDK_NAME}" @@ -282,6 +289,7 @@ IMAGE_LINK_NAME = "${IMAGE_BASENAME}-${M IMAGE_BASENAME = "${PN}" IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}" IMAGE_LINK_NAME = "${IMAGE_BASENAME}-${MACHINE}" +IMAGE_EXTRA_SPACE = 10240 IMAGE_CMD = "" IMAGE_CMD_jffs2 = "mkfs.jffs2 -x lzo --root=${IMAGE_ROOTFS} --faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 ${EXTRA_IMAGECMD}" @@ -322,9 +330,9 @@ EXTRA_IMAGEDEPENDS = "" # Toolchain info. ################################################################## -CROSS_DIR = "${TMPDIR}/cross" +CROSS_DIR = "${TMPDIR}/cross/${BASE_PACKAGE_ARCH}" CROSS_DATADIR = "${CROSS_DIR}/share" -PATH_prepend = "${STAGING_BINDIR_CROSS}:${STAGING_DIR_NATIVE}${layout_sbindir}:${STAGING_BINDIR_NATIVE}:${CROSS_DIR}/bin:${STAGING_DIR_NATIVE}${layout_base_sbindir}:" +PATH_prepend = "${STAGING_BINDIR_CROSS}:${STAGING_DIR_NATIVE}${layout_sbindir}:${STAGING_BINDIR_NATIVE}:${CROSS_DIR}/bin:${STAGING_DIR_NATIVE}${layout_base_sbindir}:${STAGING_DIR_NATIVE}${layout_base_bindir}:" export PATH ################################################################## @@ -372,10 +380,12 @@ export BUILD_CPPFLAGS = "-isystem${STAGI ################################################################## export BUILD_CPPFLAGS = "-isystem${STAGING_INCDIR_NATIVE}" +BUILDSDK_CPPFLAGS = "-isystem${STAGING_INCDIR}" export CPPFLAGS = "${TARGET_CPPFLAGS}" export TARGET_CPPFLAGS = "-isystem${STAGING_DIR_TARGET}${layout_includedir}" export BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}" +BUILDSDK_CFLAGS = "${BUILDSDK_CPPFLAGS} ${BUILD_OPTIMIZATION}" export CFLAGS = "${TARGET_CFLAGS}" export TARGET_CFLAGS = "${TARGET_CPPFLAGS} ${SELECTED_OPTIMIZATION}" @@ -404,7 +414,7 @@ FULL_OPTIMIZATION = "-fexpensive-optimiz ################################################################## FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2" -DEBUG_OPTIMIZATION = "-O -g" +DEBUG_OPTIMIZATION = "-O -fno-omit-frame-pointer -g" SELECTED_OPTIMIZATION = "${@bb.data.getVar(['FULL_OPTIMIZATION', 'DEBUG_OPTIMIZATION'][bb.data.getVar('DEBUG_BUILD', d, 1) == '1'], d, 1)}" BUILD_OPTIMIZATION = "-O2" @@ -462,7 +472,7 @@ FETCHCOMMAND_wget = "/usr/bin/env wget - FETCHCOMMAND = "ERROR, this must be a BitBake bug" FETCHCOMMAND_wget = "/usr/bin/env wget -t 5 --passive-ftp -P ${DL_DIR} ${URI}" -FETCHCOMMAND_cvs = "/usr/bin/env cvs -d${CVSROOT} co ${CVSCOOPTS} ${CVSMODULE}" +FETCHCOMMAND_cvs = "/usr/bin/env cvs '-d${CVSROOT}' co ${CVSCOOPTS} ${CVSMODULE}" FETCHCOMMAND_svn = "/usr/bin/env svn co ${SVNCOOPTS} ${SVNROOT} ${SVNMODULE}" RESUMECOMMAND = "ERROR, this must be a BitBake bug" RESUMECOMMAND_wget = "/usr/bin/env wget -c -t 5 --passive-ftp -P ${DL_DIR} ${URI}" @@ -521,9 +531,9 @@ SLOT = "0" # Other -export PKG_CONFIG_DIR = "${STAGING_LIBDIR}/pkgconfig" -export PKG_CONFIG_PATH = "${PKG_CONFIG_DIR}" -export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR}/${TARGET_SYS}" +export PKG_CONFIG_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}${layout_libdir}/pkgconfig" +export PKG_CONFIG_PATH = "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig" +export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}" export PKG_CONFIG_DISABLE_UNINSTALLED = "yes" export QMAKE_MKSPEC_PATH = "${STAGING_DATADIR_NATIVE}/qmake" ============================================================ --- conf/sanity.conf 0b8a4c4acfe94430a373d0c7c51dc052f45c98a7 +++ conf/sanity.conf 212d9f0bfa5c8197207eb0911295b663e4431c47 @@ -11,7 +11,7 @@ BB_MIN_VERSION = "1.8.10" # that breaks the format and have been previously discussed on the mailing list # with general agreement from the core team. # -SANITY_ABI = "1" +SANITY_ABI = "2" SANITY_ABIFILE = "${TMPDIR}/abi_version" INHERIT += "sanity"