Skip to contentSkip to conversation

SDK Fixes and other Patches

GIT PULL Saul Wold 3 participants 20 messages Jul 3, 2012

lore
Share & tools
lore

Saul Wold

author
#0 lore raw

Richard,

This has been built against the AB and ready for pull

There is one multilib related issue I am still tracking down related to task-core-boot, but I can seem to determin which commit here casues it yet.

Please pull this set and we will work that out.

Sau!

The following changes since commit 64422f7c5da160050a5454817c8fa9d070104b34:

package.bbclass: Add missing PKGR, PKGV, PKGE and ALTERNATIVE variables from PACKAGEVARS (2012-07-02 16:44:57 +0100)

are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib sgw/stage
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=sgw/stage

Darren Hart (2):
linux-yocto-custom: Remove linux-tools
core-image*sdk: Add kernel-dev to sdk images

Dennis Lan (1):
openjade-native: fix undefined Getopts error, use std namespace

Khem Raj (1):
kconfig-frontends: New recipe

Mark Hatle (9):
Fix manual log file paths
populate_sdk.bbclass: Split into two parts
populate_sdk: Allow for attempt only packages in the SDK populate_sdk_base.bbclass: Change to using task specific depends
populate_sdk: enable basic multilib support
libc-common: Allow -dbg package to append, and not just set package
variables
package.bbclass: Allow a package to skip per file dependency
generation
image.bbclass: Add support to build the SDK in parallel with the
image
base.bbclass: Add cross-canadian-${TRANSLATED_TARGET_ARCH} to the
license exclusion list

Paul Gortmaker (2):
u-boot: Don't make the -Os removal part of global settings.
u-boot: do not clobber PARALLEL_MAKE setting

Richard Purdie (1):
autotools.bbclass: When configure fails, dump the config.log files
the logs

Robert Yang (1):
icu 3.6: do_install failed: Segmentation fault

 .../recipes-kernel/linux/linux-yocto-custom.bb     |    2 -
 meta/classes/autotools.bbclass                     |    9 ++-
 meta/classes/base.bbclass                          |    2 +-
 meta/classes/image.bbclass                         |    7 +-
 meta/classes/libc-common.bbclass                   |    6 +-
 meta/classes/package.bbclass                       |    3 +
 meta/classes/package_deb.bbclass                   |    4 +-
 meta/classes/package_ipk.bbclass                   |    2 +-
 meta/classes/package_rpm.bbclass                   |   10 +-
 meta/classes/populate_sdk.bbclass                  |   91 +-------------
 meta/classes/populate_sdk_base.bbclass             |  128 ++++++++++++++++++++
 meta/classes/populate_sdk_deb.bbclass              |    6 +-
 meta/classes/populate_sdk_ipk.bbclass              |    5 +-
 meta/classes/populate_sdk_rpm.bbclass              |    4 +-
 meta/classes/rootfs_deb.bbclass                    |    2 +
 meta/classes/rootfs_ipk.bbclass                    |    2 +
 meta/classes/toolchain-scripts.bbclass             |   16 ++-
 meta/recipes-bsp/u-boot/u-boot.inc                 |    5 +-
 .../kconfig-frontends/kconfig-frontends_3.4.bb     |   34 +++++
 .../openjade/openjade-1.3.2/msggen.pl.patch        |   44 +++++++
 .../openjade/openjade-native_1.3.2.bb              |    1 +
 meta/recipes-extended/images/core-image-lsb-sdk.bb |    1 +
 meta/recipes-rt/images/core-image-rt-sdk.bb        |    2 +-
 meta/recipes-sato/images/core-image-sato-sdk.bb    |    3 +
 .../icu/files/larger-cmd-size.patch                |   27 ++++
 meta/recipes-support/icu/icu-3.6.inc               |    1 +
 meta/recipes-support/icu/icu_3.6.bb                |    2 +-
 27 files changed, 299 insertions(+), 120 deletions(-)
 create mode 100644 meta/classes/populate_sdk_base.bbclass
 create mode 100644 meta/recipes-devtools/kconfig-frontends/kconfig-frontends_3.4.bb
 create mode 100644 meta/recipes-devtools/openjade/openjade-1.3.2/msggen.pl.patch
 create mode 100644 meta/recipes-support/icu/files/larger-cmd-size.patch
Signature · 1 line
1.7.7.6
author
#1 lore raw

[CONSOLIDATED PULL 01/17] kconfig-frontends: New recipe

From: Khem Raj <[email protected]>

kconfig-frontends provides the kconfig infrastructure thats used for linux kernel as a standalone package. Its not intended to be used for kernel itself but can be used by packages who are based on kconfig e.g. busybox uclibc or new packages who wants to use kconfig infra for the package build

kconfig-frontends names it's shared library as -3.4.0.so instead of .so.3.4.0, this causes the -dev package to grab it since it matches on *.so. This error would also have shown up with the old PACKAGE order.

---
 .../kconfig-frontends/kconfig-frontends_3.4.bb     |   34 ++++++++++++++++++++
 1 files changed, 34 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-devtools/kconfig-frontends/kconfig-frontends_3.4.bb
meta/recipes-devtools/kconfig-frontends/kconfig-frontends_3.4.bb new file +34 -0
new file mode 100644
index 0000000..9abfa75
@@ -0,0 +1,34 @@
+# Copyright (C) 2012 Khem Raj <[email protected]>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "The kconfig-frontends project aims at centralising \
+the effort of keeping an up-to-date, out-of-tree, packaging of the \
+kconfig infrastructure, ready for use by third-party projects. \
+The kconfig-frontends package provides the kconfig parser, as well as all \
+the frontends"
+HOMEPAGE = "http://ymorin.is-a-geek.org/projects/kconfig-frontends"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9b8cf60ff39767ff04b671fca8302408"
+SECTION = "devel"
+DEPENDS += "ncurses flex bison gperf"
+PR = "r0"
+PV = "3.4.0"
+SPIN = "0"
+SRC_URI = "http://ymorin.is-a-geek.org/download/${BPN}/${BPN}-${PV}-${SPIN}.tar.xz"
+SRC_URI[md5sum] = "7eed0faf5a41d6dd0b2a886a440a972d"
+SRC_URI[sha256sum] = "638006f3d1aefefdc1db3030a15b562cf3c89f2028b1cea0bf0f0629708802f2"
+
+S = "${WORKDIR}/${BPN}-${PV}-${SPIN}"
+
+inherit autotools
+do_configure_prepend () {
+	mkdir -p scripts/.autostuff/m4
+}
+EXTRA_OECONF += "--disable-gconf --disable-qconf"
+
+# Some packages have the version preceeding the .so instead properly
+# versioned .so.<version>, so we need to reorder and repackage.
+SOLIBS = "-${PV}.so"
+FILES_SOLIBSDEV = "${libdir}/libkconfig-parser.so"
+
+BBCLASSEXTEND = "native"
Signature · 1 line
1.7.7.6
author
#2 lore raw

[CONSOLIDATED PULL 02/17] icu 3.6: do_install failed: Segmentation fault

In reply to Saul Wold

From: Robert Yang <[email protected]>

There is a "Segmentation fault" error when the tmpdir is longer than 470 (or less), this is because it used "char cmd[1024]" which is not enough for the command line. Allocate a larger memory size should fix this problem.

[YOCTO #2664]

---
 .../icu/files/larger-cmd-size.patch                |   27 ++++++++++++++++++++
 meta/recipes-support/icu/icu-3.6.inc               |    1 +
 meta/recipes-support/icu/icu_3.6.bb                |    2 +-
 3 files changed, 29 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-support/icu/files/larger-cmd-size.patch
meta/recipes-support/icu/files/larger-cmd-size.patch new file +27 -0
new file mode 100644
index 0000000..74a84f1
@@ -0,0 +1,27 @@
+Allocate a larger memory size for cmd
+
+The length of the command line can be longer than 1024 sometimes,
+which will cause a "Segmentation fault" error.
+
+Signed-off-by: Robert Yang <[email protected]>
+
+Upstream-Status: Pending
+---
+ tools/pkgdata/pkgdata.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/pkgdata/pkgdata.c b/tools/pkgdata/pkgdata.c
+--- a/tools/pkgdata/pkgdata.c
++++ b/tools/pkgdata/pkgdata.c
+@@ -439,7 +439,7 @@ main(int argc, char* argv[]) {
+ /* POSIX - execute makefile */
+ static int executeMakefile(const UPKGOptions *o)
+ {
+-    char cmd[1024];
++    char cmd[2048];
+     /*char pwd[1024];*/
+     const char *make;
+     int rc;
+-- 
+1.7.10.2
+
meta/recipes-support/icu/icu-3.6.inc +1 -0
index d3391fe..d969caa 100644
@@ -6,6 +6,7 @@ BASE_SRC_URI = "ftp://ftp.software.ibm.com/software/globalization/icu/3.6/icu4c-
            file://gccfix.patch \
            file://fix-parallel-build.patch \
            file://use-g++-for-linking.patch \
+           file://larger-cmd-size.patch \
            "
 SRC_URI = "${BASE_SRC_URI} \
            file://noldlibpath.patch \
meta/recipes-support/icu/icu_3.6.bb +1 -1
index d7be522..f941acf 100644
@@ -1,6 +1,6 @@
 require icu-3.6.inc
 
-PR = "r8"
+PR = "r9"
 
 SRC_URI[md5sum] = "6243f7a19e03e05403ce84e597510d4c"
 SRC_URI[sha256sum] = "5135e8d69d6206d320515df7aeee7027711ab1aef9d8dbf29571a97a9746b041"
Signature · 1 line
1.7.7.6
author
#3 lore raw

[CONSOLIDATED PULL 04/17] core-image*sdk: Add kernel-dev to sdk images

In reply to Saul Wold

From: Darren Hart <[email protected]>

While sdk images already have dev-pkgs included, the kernel-dev package is special and does not get installed. Add kernel-dev explicitly to the *sdk image recipes.

Note: We have to be careful with "IMAGE_INSTALL +=" as it must appear after "inherit core-image" which makes an "IMAGE_INSTALL ?=" assignment.

CC Jessica Zhang <[email protected]>
CC Khem Raj <[email protected]>
---
 meta/recipes-extended/images/core-image-lsb-sdk.bb |    1 +
 meta/recipes-rt/images/core-image-rt-sdk.bb        |    2 +-
 meta/recipes-sato/images/core-image-sato-sdk.bb    |    3 +++
 3 files changed, 5 insertions(+), 1 deletions(-)
meta/recipes-extended/images/core-image-lsb-sdk.bb +1 -0
index 32a5077..047d66b 100644
@@ -10,6 +10,7 @@ IMAGE_INSTALL = "\
     ${CORE_IMAGE_BASE_INSTALL} \
     task-core-basic \
     task-core-lsb \
+    kernel-dev \
     "
 
 inherit core-image
meta/recipes-rt/images/core-image-rt-sdk.bb +1 -1
index 6ec2d00..29512e3 100644
@@ -11,6 +11,6 @@ DEPENDS = "linux-yocto-rt"
 IMAGE_FEATURES += "dev-pkgs tools-sdk"
 EXTRA_IMAGE_FEATURES += "tools-debug tools-profile tools-testapps debug-tweaks"
 
-IMAGE_INSTALL += "rt-tests"
+IMAGE_INSTALL += "rt-tests kernel-dev"
 
 LICENSE = "MIT"
meta/recipes-sato/images/core-image-sato-sdk.bb +3 -0
index eed1698..75ed64f 100644
@@ -11,3 +11,6 @@ EXTRA_IMAGE_FEATURES += "tools-debug tools-profile tools-testapps debug-tweaks"
 LICENSE = "MIT"
 
 inherit core-image
+
+IMAGE_INSTALL += "kernel-dev"
+
Signature · 1 line
1.7.7.6
author
#4 lore raw

[CONSOLIDATED PULL 03/17] linux-yocto-custom: Remove linux-tools

In reply to Saul Wold

From: Darren Hart <[email protected]>

Remove the linux-tools include as perf is now packaged independently. Without this, including meta-skeleton in bblayers.conf results in a build failure as linux-tools.inc cannot be found.

---
 .../recipes-kernel/linux/linux-yocto-custom.bb     |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)
meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb +0 -2
index 1438ad8..55f0c38 100644
@@ -42,5 +42,3 @@ PR = "r0"
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
 COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64)"
-
-require recipes-kernel/linux/linux-tools.inc
Signature · 1 line
1.7.7.6
author
#5 lore raw

[CONSOLIDATED PULL 06/17] populate_sdk.bbclass: Split into two parts

In reply to Saul Wold

From: Mark Hatle <[email protected]>

populate_sdk was renamed to populate_sdk_base in order to allow for changes that may break existing SDK recipes. Any such changes need an analog in populate_sdk (new version) to restore previous desired behavior.

In addition to the rename, one minor change was made. The _base version only had the do_populate_sdk as an added task, but no before or after defined.

For compatibility, populate_sdk has do_populate_sdk defined as "after" do_install and before do_build, this is identical to the original behavior.

---
 meta/classes/populate_sdk.bbclass      |   91 ++------------------------------
 meta/classes/populate_sdk_base.bbclass |   89 +++++++++++++++++++++++++++++++
 2 files changed, 93 insertions(+), 87 deletions(-)
 create mode 100644 meta/classes/populate_sdk_base.bbclass
meta/classes/populate_sdk.bbclass +4 -87
index 1131d68..e5bb540 100644
@@ -1,89 +1,6 @@
-inherit meta toolchain-scripts
-inherit populate_sdk_${IMAGE_PKGTYPE}
+# The majority of populate_sdk is located in populate_sdk_base
+# This chunk simply facilitates compatibility with SDK only recipes.
 
-SDK_DIR = "${WORKDIR}/sdk"
-SDK_OUTPUT = "${SDK_DIR}/image"
-SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
+inherit populate_sdk_base
 
-SDKTARGETSYSROOT = "${SDKPATH}/sysroots/${MULTIMACH_TARGET_SYS}"
-
-TOOLCHAIN_HOST_TASK ?= "task-sdk-host-nativesdk task-cross-canadian-${TRANSLATED_TARGET_ARCH}"
-TOOLCHAIN_TARGET_TASK ?= "task-core-standalone-sdk-target task-core-standalone-sdk-target-dbg"
-TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${DISTRO_VERSION}"
-
-RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
-DEPENDS = "virtual/fakeroot-native sed-native"
-
-PID = "${@os.getpid()}"
-
-EXCLUDE_FROM_WORLD = "1"
-
-python () {
-    # If we don't do this we try and run the mapping hooks while parsing which is slow
-    # bitbake should really provide something to let us know this...
-    if bb.data.getVar('BB_WORKERCONTEXT', d, True) is not None:
-        runtime_mapping_rename("TOOLCHAIN_TARGET_TASK", d)
-}
-
-fakeroot do_populate_sdk() {
-	rm -rf ${SDK_OUTPUT}
-	mkdir -p ${SDK_OUTPUT}
-
-	# populate_sdk_<image> is required to construct two images:
-	#  SDK_ARCH-nativesdk - contains the cross compiler and associated tooling
-	#  target - contains a target rootfs configured for the SDK usage
-	#
-	# the output of populate_sdk_<image> should end up in ${SDK_OUTPUT} it is made
-	# up of:
-	#  ${SDK_OUTPUT}/<sdk_arch-nativesdk pkgs>
-	#  ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/<target pkgs>
-
-	populate_sdk_${IMAGE_PKGTYPE}
-
-	# Don't ship any libGL in the SDK
-	rm -rf ${SDK_OUTPUT}/${SDKPATHNATIVE}${libdir_nativesdk}/libGL*
-
-	# Can copy pstage files here
-	# target_pkgs=`cat ${SDK_OUTPUT}/${SDKTARGETSYSROOT}/var/lib/opkg/status | grep Package: | cut -f 2 -d ' '`
-
-	# Fix or remove broken .la files
-	#rm -f ${SDK_OUTPUT}/${SDKPATHNATIVE}/lib/*.la
-	rm -f ${SDK_OUTPUT}/${SDKPATHNATIVE}${libdir_nativesdk}/*.la
-
-	# Link the ld.so.cache file into the hosts filesystem
-	ln -s /etc/ld.so.cache ${SDK_OUTPUT}/${SDKPATHNATIVE}/etc/ld.so.cache
-
-	# Setup site file for external use
-	toolchain_create_sdk_siteconfig ${SDK_OUTPUT}/${SDKPATH}/site-config-${MULTIMACH_TARGET_SYS}
-
-	toolchain_create_sdk_env_script
-
-	# Add version information
-	toolchain_create_sdk_version ${SDK_OUTPUT}/${SDKPATH}/version-${MULTIMACH_TARGET_SYS}
-
-	# Package it up
-	mkdir -p ${SDK_DEPLOY}
-	cd ${SDK_OUTPUT}
-	tar --owner=root --group=root -cj --file=${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 .
-}
-
-populate_sdk_log_check() {
-	for target in $*
-	do
-		lf_path="`dirname ${BB_LOGFILE}`/log.do_$target.${PID}"
-
-		echo "log_check: Using $lf_path as logfile"
-
-		if test -e "$lf_path"
-		then
-			${IMAGE_PKGTYPE}_log_check $target $lf_path
-		else
-			echo "Cannot find logfile [$lf_path]"
-		fi
-		echo "Logfile is clean"
-	done
-}
-
-do_populate_sdk[nostamp] = "1"
-do_populate_sdk[recrdeptask] = "do_package_write"
-addtask populate_sdk before do_build after do_install
+addtask populate_sdk after do_install before do_build
meta/classes/populate_sdk_base.bbclass new file +89 -0

89 lines not on this page · raw message

Signature · 1 line
1.7.7.6
author
#6 lore raw

[CONSOLIDATED PULL 07/17] populate_sdk: Allow for attempt only packages in the SDK

In reply to Saul Wold

From: Mark Hatle <[email protected]>

We want to be able to supply attempt only packages in the SDK in order to support more advanced SDK images that more closely match specific image recipes.

---
 meta/classes/populate_sdk_base.bbclass |    2 ++
 meta/classes/populate_sdk_deb.bbclass  |    4 ++--
 meta/classes/populate_sdk_ipk.bbclass  |    3 ++-
 meta/classes/populate_sdk_rpm.bbclass  |    4 ++--
 4 files changed, 8 insertions(+), 5 deletions(-)
meta/classes/populate_sdk_base.bbclass +2 -0
index a3bf8c2..a0a0a80 100644
@@ -8,7 +8,9 @@ SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
 SDKTARGETSYSROOT = "${SDKPATH}/sysroots/${MULTIMACH_TARGET_SYS}"
 
 TOOLCHAIN_HOST_TASK ?= "task-sdk-host-nativesdk task-cross-canadian-${TRANSLATED_TARGET_ARCH}"
+TOOLCHAIN_HOST_TASK_ATTEMPTONLY ?= ""
 TOOLCHAIN_TARGET_TASK ?= "task-core-standalone-sdk-target task-core-standalone-sdk-target-dbg"
+TOOLCHAIN_TARGET_TASK_ATTEMPTONLY ?= ""
 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${DISTRO_VERSION}"
 
 RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
meta/classes/populate_sdk_deb.bbclass +2 -2
index 920c89a..c3b3e0c 100644
@@ -28,7 +28,7 @@ populate_sdk_deb () {
 	export INSTALL_BASEARCH_DEB="${DPKG_ARCH}"
 	export INSTALL_ARCHS_DEB="${PACKAGE_ARCHS}"
 	export INSTALL_PACKAGES_DEB="${TOOLCHAIN_TARGET_TASK}"
-	export INSTALL_PACKAGES_ATTEMPTONLY_DEB=""
+	export INSTALL_PACKAGES_ATTEMPTONLY_DEB="${TOOLCHAIN_TARGET_TASK_ATTEMPTONLY}"
 	export PACKAGES_LINGUAS_DEB=""
 	export INSTALL_TASK_DEB="populate_sdk-target"
 
@@ -44,7 +44,7 @@ populate_sdk_deb () {
 	export INSTALL_BASEARCH_DEB="${DEB_SDK_ARCH}"
 	export INSTALL_ARCHS_DEB="${SDK_PACKAGE_ARCHS}"
 	export INSTALL_PACKAGES_DEB="${TOOLCHAIN_HOST_TASK}"
-	export INSTALL_PACKAGES_ATTEMPTONLY_DEB=""
+	export INSTALL_PACKAGES_ATTEMPTONLY_DEB="${TOOLCHAIN_HOST_TASK_ATTEMPTONLY}"
 	export PACKAGES_LINGUAS_DEB=""
 	export INSTALL_TASK_DEB="populate_sdk-nativesdk"
 
meta/classes/populate_sdk_ipk.bbclass +2 -1
index c256c69..aa3efde 100644
@@ -11,7 +11,6 @@ populate_sdk_ipk() {
 	package_update_index_ipk
 	package_generate_ipkg_conf
 
-	export INSTALL_PACKAGES_ATTEMPTONLY_IPK=""
 	export INSTALL_PACKAGES_LINGUAS_IPK=""
 	export INSTALL_TASK_IPK="populate_sdk"
 
@@ -19,6 +18,7 @@ populate_sdk_ipk() {
 	export INSTALL_ROOTFS_IPK="${SDK_OUTPUT}/${SDKTARGETSYSROOT}"
 	export INSTALL_CONF_IPK="${IPKGCONF_TARGET}"
 	export INSTALL_PACKAGES_IPK="${TOOLCHAIN_TARGET_TASK}"
+	export INSTALL_PACKAGES_ATTEMPTONLY_IPK="${TOOLCHAIN_TARGET_TASK_ATTEMPTONLY}"
 
 	export D=${INSTALL_ROOTFS_IPK}
 	export OFFLINE_ROOT=${INSTALL_ROOTFS_IPK}
@@ -31,6 +31,7 @@ populate_sdk_ipk() {
 	export INSTALL_ROOTFS_IPK="${SDK_OUTPUT}"
 	export INSTALL_CONF_IPK="${IPKGCONF_SDK}"
 	export INSTALL_PACKAGES_IPK="${TOOLCHAIN_HOST_TASK}"
+	export INSTALL_PACKAGES_ATTEMPTONLY_IPK="${TOOLCHAIN_HOST_TASK_ATTEMPTONLY}"
 
 	package_install_internal_ipk
 
meta/classes/populate_sdk_rpm.bbclass +2 -2
index e0adb8f..b115c27 100644
@@ -33,7 +33,7 @@ populate_sdk_rpm () {
 	export INSTALL_PLATFORM_RPM="${TARGET_ARCH}"
 	export INSTALL_CONFBASE_RPM="${RPMCONF_TARGET_BASE}"
 	export INSTALL_PACKAGES_RPM="${TOOLCHAIN_TARGET_TASK}"
-	export INSTALL_PACKAGES_ATTEMPTONLY_RPM=""
+	export INSTALL_PACKAGES_ATTEMPTONLY_RPM="${TOOLCHAIN_TARGET_TASK_ATTEMPTONLY}"
 	export INSTALL_PACKAGES_LINGUAS_RPM=""
 	export INSTALL_PROVIDENAME_RPM="/bin/sh /bin/bash /usr/bin/env /usr/bin/perl pkgconfig pkgconfig(pkg-config)"
 	export INSTALL_TASK_RPM="populate_sdk-target"
@@ -82,7 +82,7 @@ EOF
 	export INSTALL_PLATFORM_RPM="${SDK_ARCH}"
 	export INSTALL_CONFBASE_RPM="${RPMCONF_HOST_BASE}"
 	export INSTALL_PACKAGES_RPM="${TOOLCHAIN_HOST_TASK}"
-	export INSTALL_PACKAGES_ATTEMPTONLY_RPM=""
+	export INSTALL_PACKAGES_ATTEMPTONLY_RPM="${TOOLCHAIN_TARGET_HOST_ATTEMPTONLY}"
 	export INSTALL_PACKAGES_LINGUAS_RPM=""
 	export INSTALL_PROVIDENAME_RPM="/bin/sh /bin/bash /usr/bin/env /usr/bin/perl pkgconfig libGL.so()(64bit) libGL.so"
 	export INSTALL_TASK_RPM="populate_sdk_rpm-nativesdk"
Signature · 1 line
1.7.7.6
author
#7 lore raw

[CONSOLIDATED PULL 09/17] populate_sdk: enable basic multilib support

In reply to Saul Wold

From: Mark Hatle <[email protected]>

In order to enable basic multilib support for the export of an SDK image, a number of minor changes had to be made:

The value of MULTIMACH_TARGET_SYS needs to be variable. This way we can define the value to the appropriate multilib. (Also in some cases the default PACKAGE_ARCH is set to MACHINE_ARCH which is incorrect for the SDK.) Add a companion REAL_MULTIMACH_TARGET_SYS, based on code from meta-environment, to allow for this.

We have to convert the do_populate_sdk into a python call, and then break up the previous items into three parts.
* Image construction
* Setup of environment files
* Generation of the tarball

Then we can iterate over the multilibs to populate the environment files.

Finally, matching changes were needed in the toolchain-scripts file. And what I presume is an optimization of immediate evaluation for TOOLCHAIN_CONFIGSITE_NOCACHE and ..._SYSROOTCACHE needed to be done at runtime, otherwise the wrong values may be used.

---
 meta/classes/populate_sdk_base.bbclass |   42 ++++++++++++++++++++++++++++---
 meta/classes/toolchain-scripts.bbclass |   16 +++++++----
 2 files changed, 48 insertions(+), 10 deletions(-)
meta/classes/populate_sdk_base.bbclass +38 -4
index 6508bd9..6dc66fb 100644
@@ -16,6 +16,10 @@ TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${DISTRO_VERSION}"
 SDK_RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
 SDK_DEPENDS = "virtual/fakeroot-native sed-native"
 
+# We want the MULTIARCH_TARGET_SYS to point to the TUNE_PKGARCH, not PACKAGE_ARCH as it
+# could be set to the MACHINE_ARCH
+REAL_MULTIMACH_TARGET_SYS = "${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}"
+
 PID = "${@os.getpid()}"
 
 EXCLUDE_FROM_WORLD = "1"
@@ -27,7 +31,33 @@ python () {
         runtime_mapping_rename("TOOLCHAIN_TARGET_TASK", d)
 }
 
-fakeroot do_populate_sdk() {
+fakeroot python do_populate_sdk() {
+	bb.build.exec_func("populate_sdk_image", d)
+
+	# Handle multilibs in the SDK environment, siteconfig, etc files...
+	localdata = bb.data.createCopy(d)
+
+	# make sure we only use the WORKDIR value from 'd', or it can change
+	localdata.setVar('WORKDIR', d.getVar('WORKDIR', True))
+
+	# make sure we only use the SDKTARGETSYSROOT value from 'd'
+	localdata.setVar('SDKTARGETSYSROOT', d.getVar('SDKTARGETSYSROOT', True))
+
+	# Process DEFAULTTUNE
+	bb.build.exec_func("create_sdk_files", localdata)
+
+	variants = d.getVar("MULTILIB_VARIANTS", True) or ""
+	for item in variants.split():
+		# Load overrides from 'd' to avoid having to reset the value...
+		overrides = d.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item
+		localdata.setVar("OVERRIDES", overrides)
+		bb.data.update_data(localdata)
+		bb.build.exec_func("create_sdk_files", localdata)
+
+	bb.build.exec_func("tar_sdk", d)
+}
+
+fakeroot populate_sdk_image() {
 	rm -rf ${SDK_OUTPUT}
 	mkdir -p ${SDK_OUTPUT}
 
@@ -54,15 +84,19 @@ fakeroot do_populate_sdk() {
 
 	# Link the ld.so.cache file into the hosts filesystem
 	ln -s /etc/ld.so.cache ${SDK_OUTPUT}/${SDKPATHNATIVE}/etc/ld.so.cache
+}
 
+fakeroot create_sdk_files() {
 	# Setup site file for external use
-	toolchain_create_sdk_siteconfig ${SDK_OUTPUT}/${SDKPATH}/site-config-${MULTIMACH_TARGET_SYS}
+	toolchain_create_sdk_siteconfig ${SDK_OUTPUT}/${SDKPATH}/site-config-${REAL_MULTIMACH_TARGET_SYS}
 
-	toolchain_create_sdk_env_script
+	toolchain_create_sdk_env_script ${SDK_OUTPUT}/${SDKPATH}/environment-setup-${REAL_MULTIMACH_TARGET_SYS}
 
 	# Add version information
-	toolchain_create_sdk_version ${SDK_OUTPUT}/${SDKPATH}/version-${MULTIMACH_TARGET_SYS}
+	toolchain_create_sdk_version ${SDK_OUTPUT}/${SDKPATH}/version-${REAL_MULTIMACH_TARGET_SYS}
+}
 
+fakeroot tar_sdk() {
 	# Package it up
 	mkdir -p ${SDK_DEPLOY}
 	cd ${SDK_OUTPUT}
meta/classes/toolchain-scripts.bbclass +10 -6
index 2099c4d..bedcd61 100644
@@ -1,15 +1,19 @@
 inherit siteinfo
 
+# We want to be able to change the value of MULTIMACH_TARGET_SYS, because it
+# doesn't always match our expectations... but we default to the stock value
+REAL_MULTIMACH_TARGET_SYS ?= "${MULTIMACH_TARGET_SYS}"
+
 # This function creates an environment-setup-script for use in a deployable SDK
 toolchain_create_sdk_env_script () {
 	# Create environment setup script
-	script=${SDK_OUTPUT}/${SDKPATH}/environment-setup-${MULTIMACH_TARGET_SYS}
+	script=${1:-${SDK_OUTPUT}/${SDKPATH}/environment-setup-${REAL_MULTIMACH_TARGET_SYS}}
 	rm -f $script
 	touch $script
-	echo 'export PATH=${SDKPATHNATIVE}${bindir_nativesdk}:${SDKPATHNATIVE}${bindir_nativesdk}/${MULTIMACH_TARGET_SYS}:$PATH' >> $script
+	echo 'export PATH=${SDKPATHNATIVE}${bindir_nativesdk}:${SDKPATHNATIVE}${bindir_nativesdk}/${REAL_MULTIMACH_TARGET_SYS}:$PATH' >> $script
 	echo 'export PKG_CONFIG_SYSROOT_DIR=${SDKTARGETSYSROOT}' >> $script
 	echo 'export PKG_CONFIG_PATH=${SDKTARGETSYSROOT}${libdir}/pkgconfig' >> $script
-	echo 'export CONFIG_SITE=${SDKPATH}/site-config-${MULTIMACH_TARGET_SYS}' >> $script
+	echo 'export CONFIG_SITE=${SDKPATH}/site-config-${REAL_MULTIMACH_TARGET_SYS}' >> $script
 	echo 'export CC=${TARGET_PREFIX}gcc' >> $script
 	echo 'export CXX=${TARGET_PREFIX}g++' >> $script
 	echo 'export GDB=${TARGET_PREFIX}gdb' >> $script
@@ -36,7 +40,7 @@ toolchain_create_sdk_env_script () {
 # This function creates an environment-setup-script in the TMPDIR which enables
 # a OE-core IDE to integrate with the build tree
 toolchain_create_tree_env_script () {
-	script=${TMPDIR}/environment-setup-${MULTIMACH_TARGET_SYS}
+	script=${TMPDIR}/environment-setup-${REAL_MULTIMACH_TARGET_SYS}
 	rm -f $script
 	touch $script
 	echo 'export PATH=${PATH}' >> $script
@@ -103,8 +107,8 @@ toolchain_create_sdk_env_script_for_installer () {
 }
 
 #we get the cached site config in the runtime
-TOOLCHAIN_CONFIGSITE_NOCACHE := "${@siteinfo_get_files(d, True)}"
-TOOLCHAIN_CONFIGSITE_SYSROOTCACHE := "${STAGING_DATADIR}/${TARGET_SYS}_config_site.d"
+TOOLCHAIN_CONFIGSITE_NOCACHE = "${@siteinfo_get_files(d, True)}"
+TOOLCHAIN_CONFIGSITE_SYSROOTCACHE = "${STAGING_DATADIR}/${TARGET_SYS}_config_site.d"
 TOOLCHAIN_NEED_CONFIGSITE_CACHE = "${TCLIBC} ncurses"
 
 #This function create a site config file
Signature · 1 line
1.7.7.6
author
#8 lore raw

[CONSOLIDATED PULL 08/17] populate_sdk_base.bbclass: Change to using task specific depends

In reply to Saul Wold

From: Mark Hatle <[email protected]>

If we combine the do_populate_sdk with the image generation, we want to avoid the dependency processing unless do_populate_sdk is run.

This requires the bitbake change to implement task based rdepends.

---
 meta/classes/populate_sdk_base.bbclass |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
meta/classes/populate_sdk_base.bbclass +4 -2
index a0a0a80..6508bd9 100644
@@ -13,8 +13,8 @@ TOOLCHAIN_TARGET_TASK ?= "task-core-standalone-sdk-target task-core-standalone-s
 TOOLCHAIN_TARGET_TASK_ATTEMPTONLY ?= ""
 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${DISTRO_VERSION}"
 
-RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
-DEPENDS = "virtual/fakeroot-native sed-native"
+SDK_RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
+SDK_DEPENDS = "virtual/fakeroot-native sed-native"
 
 PID = "${@os.getpid()}"
 
@@ -87,5 +87,7 @@ populate_sdk_log_check() {
 }
 
 do_populate_sdk[nostamp] = "1"
+do_populate_sdk[depends] = "${@' '.join([x + ':do_populate_sysroot' for x in d.getVar('SDK_DEPENDS', True).split()])}"
+do_populate_sdk[rdepends] = "${@' '.join([x + ':do_populate_sysroot' for x in d.getVar('SDK_RDEPENDS', True).split()])}"
 do_populate_sdk[recrdeptask] = "do_package_write"
 addtask populate_sdk
Signature · 1 line
1.7.7.6
author
#9 lore raw

[CONSOLIDATED PULL 10/17] u-boot: Don't make the -Os removal part of global settings.

In reply to Saul Wold

From: Paul Gortmaker <[email protected]>

We don't want to force everyone to be stripping the -Os flags from their u-boot builds. Remove it, since it pertains to an old toolchain issue that is no longer relevant, and it breaks the powerpc mpc8315.

---
 meta/recipes-bsp/u-boot/u-boot.inc |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
meta/recipes-bsp/u-boot/u-boot.inc +1 -2
index a13eddc..5de3583 100644
@@ -7,8 +7,7 @@ inherit deploy
 
 PARALLEL_MAKE=""
 
-# GCC 4.5.1 builds unusable binaries using -Os, remove it from OPTFLAGS
-EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX} OPTFLAGS='-O2'"
+EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
 
 python () {
 	if not d.getVar("UBOOT_MACHINE", True):
Signature · 1 line
1.7.7.6
author
#10 lore raw

[CONSOLIDATED PULL 05/17] Fix manual log file paths

In reply to Saul Wold

From: Mark Hatle <[email protected]>

When a recent change, the path to log files may be contained within an arbitrary directory. To generate the manual log files in the correct path we should be using the ${BB_LOGFILE}'s path instead of always assuming the logs go into ${WORKDIR}/temp.

---
 meta/classes/image.bbclass        |    2 +-
 meta/classes/package_deb.bbclass  |    4 ++--
 meta/classes/package_ipk.bbclass  |    2 +-
 meta/classes/package_rpm.bbclass  |   10 +++++-----
 meta/classes/populate_sdk.bbclass |    2 +-
 5 files changed, 10 insertions(+), 10 deletions(-)
meta/classes/image.bbclass +1 -1
index 7e4bb69..9fae1fe 100644
@@ -220,7 +220,7 @@ insert_feed_uris () {
 log_check() {
 	for target in $*
 	do
-		lf_path="${WORKDIR}/temp/log.do_$target.${PID}"
+		lf_path="`dirname ${BB_LOGFILE}`/log.do_$target.${PID}"
 		
 		echo "log_check: Using $lf_path as logfile"
 		
meta/classes/package_deb.bbclass +2 -2
index 0a8dc1b..f58fd2b 100644
@@ -167,10 +167,10 @@ package_install_internal_deb () {
 		fi
 	done
 
-	rm -f ${WORKDIR}/temp/log.do_${task}-attemptonly.${PID}
+	rm -f `dirname ${BB_LOGFILE}`/log.do_${task}-attemptonly.${PID}
 	if [ ! -z "${package_attemptonly}" ]; then
 		for i in ${package_attemptonly}; do
-			apt-get install $i --force-yes --allow-unauthenticated >> ${WORKDIR}/temp/log.do_${task}-attemptonly.${PID} 2>&1 || true
+			apt-get install $i --force-yes --allow-unauthenticated >> `dirname ${BB_LOGFILE}`/log.do_${task}-attemptonly.${PID} 2>&1 || true
 		done
 	fi
 
meta/classes/package_ipk.bbclass +1 -1
index c86ea03..e682e6a 100644
@@ -157,7 +157,7 @@ package_install_internal_ipk() {
 	fi
 
 	if [ ! -z "${package_attemptonly}" ]; then
-		opkg-cl ${ipkg_args} install ${package_attemptonly} > "${WORKDIR}/temp/log.do_${task}_attemptonly.${PID}" || true
+		opkg-cl ${ipkg_args} install ${package_attemptonly} > "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}" || true
 	fi
 
 	package_tryout_install_multilib_ipk
meta/classes/package_rpm.bbclass +5 -5
index 5559a46..78279f5 100644
@@ -342,14 +342,14 @@ package_install_internal_rpm () {
 				echo "Note: Unable to find package $pkg ($ml_pkg) -- PACKAGE_INSTALL_ATTEMPTONLY"
 				continue
 			fi
-			echo "Attempting $pkg_name..." >> "${WORKDIR}/temp/log.do_${task}_attemptonly.${PID}"
+			echo "Attempting $pkg_name..." >> "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}"
 			${RPM} --predefine "_rpmds_sysinfo_path ${target_rootfs}/etc/rpm/sysinfo" \
 				--predefine "_rpmrc_platform_path ${target_rootfs}/etc/rpm/platform" \
 				--root "${target_rootfs}/install" \
 				-D "_dbpath ${target_rootfs}/install" -D "`cat ${confbase}.macro`" \
 				-D "__dbi_txn create nofsync private" \
 				-U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \
-			$pkg_name >> "${WORKDIR}/temp/log.do_${task}_attemptonly.${PID}" || true
+			$pkg_name >> "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}" || true
 		done
 	fi
 
@@ -390,17 +390,17 @@ package_install_internal_rpm () {
 
 			if [ $found -eq 0 ]; then
 				echo "Note: Unable to find package $pkg -- suggests"
-				echo "Unable to find package $pkg." >> "${WORKDIR}/temp/log.do_${task}_recommend.${PID}"
+				echo "Unable to find package $pkg." >> "`dirname ${BB_LOGFILE}`/log.do_${task}_recommend.${PID}"
 				continue
 			fi
-			echo "Attempting $pkg_name..." >> "${WORKDIR}/temp/log.do_{task}_recommend.${PID}"
+			echo "Attempting $pkg_name..." >> "`dirname ${BB_LOGFILE}`/log.do_{task}_recommend.${PID}"
 			${RPM} --predefine "_rpmds_sysinfo_path ${target_rootfs}/etc/rpm/sysinfo" \
 				--predefine "_rpmrc_platform_path ${target_rootfs}/etc/rpm/platform" \
 				--root "${target_rootfs}/install" \
 				-D "_dbpath ${target_rootfs}/install" -D "`cat ${confbase}.macro`" \
 				-D "__dbi_txn create nofsync private" \
 				-U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \
-				$pkg_name >> "${WORKDIR}/temp/log.do_${task}_recommend.${PID}" 2>&1 || true
+				$pkg_name >> "`dirname ${BB_LOGFILE}`/log.do_${task}_recommend.${PID}" 2>&1 || true
 		done
 		cat ${target_rootfs}/install/recommend.list ${target_rootfs}/install/recommend.new | sort -u > ${target_rootfs}/install/recommend.new.list
 		mv -f ${target_rootfs}/install/recommend.new.list ${target_rootfs}/install/recommend.list
meta/classes/populate_sdk.bbclass +1 -1
index 5aa8e92..1131d68 100644
@@ -70,7 +70,7 @@ fakeroot do_populate_sdk() {
 populate_sdk_log_check() {
 	for target in $*
 	do
-		lf_path="${WORKDIR}/temp/log.do_$target.${PID}"
+		lf_path="`dirname ${BB_LOGFILE}`/log.do_$target.${PID}"
 
 		echo "log_check: Using $lf_path as logfile"
 
Signature · 1 line
1.7.7.6
author
#11 lore raw

[CONSOLIDATED PULL 11/17] u-boot: do not clobber PARALLEL_MAKE setting

In reply to Saul Wold

From: Paul Gortmaker <[email protected]>

The u-boot tree is fully capable of parallel builds, so this setting should not exist as a blanket setting for all of the recipes. Going forward, if there is a parallelism issue in u-boot, it needs to be reported and fixed there, and not with the "make -j1" band-aid approach.

---
 meta/recipes-bsp/u-boot/u-boot.inc |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)
meta/recipes-bsp/u-boot/u-boot.inc +0 -2
index 5de3583..afc2d12 100644
@@ -5,8 +5,6 @@ PROVIDES = "virtual/bootloader"
 
 inherit deploy
 
-PARALLEL_MAKE=""
-
 EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
 
 python () {
Signature · 1 line
1.7.7.6
author
#12 lore raw

[CONSOLIDATED PULL 12/17] autotools.bbclass: When configure fails, dump the config.log files the logs

In reply to Saul Wold

From: Richard Purdie <[email protected]>

When configure fails, it usually says "see config.log" yet nobody ever shares the config.log file meaning the person trying to help invariably has to ask for more information.

This patch dumps all the config.log files into the main bitbake log files when configure fails, meaning all the information is present to help someone debug such failures. It does make the log rather larger but this is preferable to not having enough information in most cases.

[YOCTO #2463]

---
 meta/classes/autotools.bbclass |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)
meta/classes/autotools.bbclass +8 -1
index 9b36f3c..02b984d 100644
@@ -74,7 +74,14 @@ oe_runconf () {
 	cfgscript="${S}/configure"
 	if [ -x "$cfgscript" ] ; then
 		bbnote "Running $cfgscript ${CONFIGUREOPTS} ${EXTRA_OECONF} $@"
-		${CACHED_CONFIGUREVARS} $cfgscript ${CONFIGUREOPTS} ${EXTRA_OECONF} "$@" || bbfatal "oe_runconf failed"
+		set +e
+		${CACHED_CONFIGUREVARS} $cfgscript ${CONFIGUREOPTS} ${EXTRA_OECONF} "$@"
+		if [ "$?" != "0" ]; then
+			echo "Configure failed. The contents of all config.log files follows to aid debugging"
+			find ${S} -name config.log -print -exec cat {} \;
+			bbfatal "oe_runconf failed"
+		fi
+		set -e
 	else
 		bbfatal "no configure script found at $cfgscript"
 	fi
Signature · 1 line
1.7.7.6
author
#13 lore raw

[CONSOLIDATED PULL 14/17] package.bbclass: Allow a package to skip per file dependency generation

In reply to Saul Wold

From: Mark Hatle <[email protected]>

Most of the time skipping per file dependency generation is a bad idea, but when building a nativesdk or similar you may be required to pickup host dependencies. These host dependencies can not always be reconciled within the scope of other nativesdk components, so if we skip them we can facilitate this unique situation.

---
 meta/classes/package.bbclass |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
meta/classes/package.bbclass +3 -0
index 0b98c6b..d94d32f 100644
@@ -1154,6 +1154,9 @@ RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/bin/rpmdeps-oecore --macros ${STAGING_LI
 python package_do_filedeps() {
 	import re
 
+	if d.getVar('SKIP_FILEDEPS', True) == '1':
+		return
+
 	pkgdest = d.getVar('PKGDEST', True)
 	packages = d.getVar('PACKAGES', True)
 
Signature · 1 line
1.7.7.6
author
#14 lore raw

[CONSOLIDATED PULL 13/17] libc-common: Allow -dbg package to append, and not just set package variables

In reply to Saul Wold

From: Mark Hatle <[email protected]>

The libc-common attempts to rewrite the package information in a way similar to debian.bbclass. When it does this, it should be appending to the dependency variables (RPROVIDES, RREPLACES, and RCONFLICTS), instead of simply setting a hard coded value. Otherwise the lib package can not tailor the dependency variables to suite it's needs.

---
 meta/classes/libc-common.bbclass |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
meta/classes/libc-common.bbclass +3 -3
index 9b91f0a..8145d64 100644
@@ -29,7 +29,7 @@ python populate_packages_prepend () {
 		d.setVar('PKG_'+bpn+'-dev', 'libc6-dev')
 		d.setVar('PKG_'+bpn+'-dbg', 'libc6-dbg')
 		# For backward compatibility with old -dbg package
-		d.setVar('RPROVIDES_' + bpn + '-dbg', 'libc-dbg')
-		d.setVar('RCONFLICTS_' + bpn + '-dbg', 'libc-dbg')
-		d.setVar('RREPLACES_' + bpn + '-dbg', 'libc-dbg')
+		d.appendVar('RPROVIDES_' + bpn + '-dbg', ' libc-dbg')
+		d.appendVar('RCONFLICTS_' + bpn + '-dbg', ' libc-dbg')
+		d.appendVar('RREPLACES_' + bpn + '-dbg', ' libc-dbg')
 }
Signature · 1 line
1.7.7.6
author
#15 lore raw

[CONSOLIDATED PULL 16/17] base.bbclass: Add cross-canadian-${TRANSLATED_TARGET_ARCH} to the license exclusion list

In reply to Saul Wold

From: Mark Hatle <[email protected]>

This appears to be an oversight in the original implementation. All of the host package types were being ignored except for the SDK cross-canadian type.

---
 meta/classes/base.bbclass |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
meta/classes/base.bbclass +1 -1
index 9219170..08065c6 100644
@@ -432,7 +432,7 @@ python () {
 
         dont_want_license = d.getVar('INCOMPATIBLE_LICENSE', True)
 
-        if dont_want_license and not pn.endswith("-native") and not pn.endswith("-cross") and not pn.endswith("-cross-initial") and not pn.endswith("-cross-intermediate") and not pn.endswith("-crosssdk-intermediate") and not pn.endswith("-crosssdk") and not pn.endswith("-crosssdk-initial") and not pn.endswith("-nativesdk"):
+        if dont_want_license and not pn.endswith("-native") and not pn.endswith("-cross") and not pn.endswith("-cross-initial") and not pn.endswith("-cross-intermediate") and not pn.endswith("-crosssdk-intermediate") and not pn.endswith("-crosssdk") and not pn.endswith("-crosssdk-initial") and not pn.endswith("-cross-canadian-%s" % d.getVar('TRANSLATED_TARGET_ARCH', True)) and not pn.endswith("-nativesdk"):
         # Internally, we'll use the license mapping. This way INCOMPATIBLE_LICENSE = "GPLv2" and
         # INCOMPATIBLE_LICENSE = "GPLv2.0" will pick up all variations of GPL-2.0
             spdx_license = return_spdx(d, dont_want_license)
Signature · 1 line
1.7.7.6
author
#16 lore raw

[CONSOLIDATED PULL 17/17] openjade-native: fix undefined Getopts error, use std namespace

In reply to Saul Wold

From: Dennis Lan <[email protected]>

Using Gentoo Linux as the build host, it fails without this patch Use Getopt::Std in place of getopts.pl.

https://bugs.gentoo.org/show_bug.cgi?id=420083

which following error:
/usr/bin/perl -w ./../msggen.pl -l jstyleModule InterpreterMessages.msg /usr/bin/perl -w ./../msggen.pl -l jstyleModule DssslAppMessages.msg Undefined subroutine &main::Getopts called at ./../msggen.pl line 22. make[2]: *** [InterpreterMessages.h] Error 2
make[2]: *** Waiting for unfinished jobs....
Undefined subroutine &main::Getopts called at ./../msggen.pl line 22. make[2]: *** [DssslAppMessages.h] Error 2

---
 .../openjade/openjade-1.3.2/msggen.pl.patch        |   44 ++++++++++++++++++++
 .../openjade/openjade-native_1.3.2.bb              |    1 +
 2 files changed, 45 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-devtools/openjade/openjade-1.3.2/msggen.pl.patch
meta/recipes-devtools/openjade/openjade-1.3.2/msggen.pl.patch new file +44 -0
new file mode 100644
index 0000000..b47fd46
@@ -0,0 +1,44 @@
+commit fcc5b94f118495b1a467edcda6c6f631691c3f69
+Author: Dennis Lan <[email protected]>
+Date:   Tue Jul 3 09:25:42 2012 +0800
+
+    openjade: fix undefined Getopts error, use std namespace
+    
+    Using Gentoo Linux as the build host, it fails without this patch
+    Use Getopt::Std in place of getopts.pl.
+    
+    Upstream-Status: Inappropriate [no upstream]
+    Original-Author-By: Mike Gilbert <[email protected]>
+    Signed-off-by: Dennis Lan <[email protected]>
+
+diff --git a/msggen.pl b/msggen.pl
+index 0c33968..2ee3f66 100644
+--- a/msggen.pl
++++ b/msggen.pl
+@@ -4,6 +4,7 @@
+ # See the file COPYING for copying permission.
+ 
+ use POSIX;
++use Getopt::Std;
+ 
+ # Package and version.
+ $package = 'openjade';
+@@ -18,8 +19,7 @@ $gen_c = 0;
+ undef $opt_l;
+ undef $opt_p;
+ undef $opt_t;
+-do 'getopts.pl';
+-&Getopts('l:p:t:');
++getopts('l:p:t:');
+ $module = $opt_l;
+ $pot_file = $opt_p;
+ 
+@@ -72,7 +72,7 @@ while (<DEF>) {
+     else {
+ 	$field[0] =~ /^[IWQXE][0-9]$/ || &error("invalid first field");;
+ 	$type[$num] = substr($field[0], 0, 1);
+-	$argc = int(substr($field[0], 1, 1));
++	$argc = substr($field[0], 1, 1);
+     }
+     $nargs[$num] = $argc;
+     $field[1] =~ /^[a-zA-Z_][a-zA-Z0-9_]+$/ || &error("invalid tag");
meta/recipes-devtools/openjade/openjade-native_1.3.2.bb +1 -0
index 5b29c1f..efd1e11 100644
@@ -14,6 +14,7 @@ RDEPENDS_${PN} = "sgml-common-native"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/openjade/openjade-${PV}.tar.gz \
            file://makefile.patch \
+           file://msggen.pl.patch \
            file://reautoconf.patch \
 	   file://user-declared-default-constructor.patch"
 
Signature · 1 line
1.7.7.6
author
#18 lore raw

[CONSOLIDATED PULL 15/17] image.bbclass: Add support to build the SDK in parallel with the image

In reply to Saul Wold

From: Mark Hatle <[email protected]>

When building an image recipe, you can now build a companion SDK by calling the populate_sdk task:
bitbake -c populate_sdk core-image-minimal

Note: there are still issues w/ the SDK not working completely with multilibs.

A lock is required between rootfs and populate_sdk activities to prevent configuration file clashes and similar package management problems in ipk and deb based systems. (RPM already had a lock for a different reason.)

---
 meta/classes/image.bbclass             |    5 +++++
 meta/classes/populate_sdk_base.bbclass |    1 +
 meta/classes/populate_sdk_deb.bbclass  |    2 ++
 meta/classes/populate_sdk_ipk.bbclass  |    2 ++
 meta/classes/rootfs_deb.bbclass        |    2 ++
 meta/classes/rootfs_ipk.bbclass        |    2 ++
 6 files changed, 14 insertions(+), 0 deletions(-)
meta/classes/image.bbclass +5 -0
index 9fae1fe..24fd868 100644
@@ -3,6 +3,11 @@ inherit rootfs_${IMAGE_PKGTYPE}
 IMAGETEST ?= "dummy"
 inherit imagetest-${IMAGETEST}
 
+inherit populate_sdk_base
+
+TOOLCHAIN_TARGET_TASK += "${PACKAGE_INSTALL}"
+TOOLCHAIN_TARGET_TASK_ATTEMPTONLY += "${PACKAGE_INSTALL_ATTEMPTONLY} ${PACKAGE_GROUP_dev-pkgs} ${PACKAGE_GROUP_dbg-pkgs}"
+
 inherit gzipnative
 
 LICENSE = "MIT"
meta/classes/populate_sdk_base.bbclass +1 -0
index 6dc66fb..ed2dca0 100644
@@ -120,6 +120,7 @@ populate_sdk_log_check() {
 	done
 }
 
+do_populate_sdk[dirs] = "${TOPDIR}"
 do_populate_sdk[nostamp] = "1"
 do_populate_sdk[depends] = "${@' '.join([x + ':do_populate_sysroot' for x in d.getVar('SDK_DEPENDS', True).split()])}"
 do_populate_sdk[rdepends] = "${@' '.join([x + ':do_populate_sysroot' for x in d.getVar('SDK_RDEPENDS', True).split()])}"
meta/classes/populate_sdk_deb.bbclass +2 -0
index c3b3e0c..9e9e1e1 100644
@@ -6,6 +6,8 @@ DEB_SDK_ARCH = "${@[d.getVar('SDK_ARCH', True), "i386"]\
                 [d.getVar('SDK_ARCH', True) in \
                 ["x86", "i486", "i586", "i686", "pentium"]]}"
 
+do_populate_sdk[lockfiles] += "${WORKDIR}/deb.lock"
+
 populate_sdk_post_deb () {
 
 	local target_rootfs=$1
meta/classes/populate_sdk_ipk.bbclass +2 -0
index aa3efde..4321afb 100644
@@ -1,6 +1,8 @@
 do_populate_sdk[depends] += "opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot"
 do_populate_sdk[recrdeptask] += "do_package_write_ipk"
 
+do_populate_sdk[lockfiles] += "${WORKDIR}/ipk.lock"
+
 populate_sdk_ipk() {
 
 	rm -f ${IPKGCONF_TARGET}
meta/classes/rootfs_deb.bbclass +2 -0
index 6c9767f..4ea71da 100644
@@ -8,6 +8,8 @@ ROOTFS_PKGMANAGE_BOOTSTRAP  = "run-postinsts"
 do_rootfs[depends] += "dpkg-native:do_populate_sysroot apt-native:do_populate_sysroot"
 do_rootfs[recrdeptask] += "do_package_write_deb"
 
+do_rootfs[lockfiles] += "${WORKDIR}/deb.lock"
+
 DEB_POSTPROCESS_COMMANDS = "rootfs_install_all_locales; "
 
 opkglibdir = "${localstatedir}/lib/opkg"
meta/classes/rootfs_ipk.bbclass +2 -0
index 1580086..9732385 100644
@@ -12,6 +12,8 @@ ROOTFS_PKGMANAGE_BOOTSTRAP  = "run-postinsts"
 do_rootfs[depends] += "opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot"
 do_rootfs[recrdeptask] += "do_package_write_ipk"
 
+do_rootfs[lockfiles] += "${WORKDIR}/ipk.lock"
+
 IPKG_ARGS = "-f ${IPKGCONF_TARGET} -o ${IMAGE_ROOTFS} --force-overwrite"
 
 OPKG_PREPROCESS_COMMANDS = "package_update_index_ipk; package_generate_ipkg_conf"
Signature · 1 line
1.7.7.6
#17 lore raw

Re: [CONSOLIDATED PULL 17/17] openjade-native: fix undefined Getopts error, use std namespace

In reply to Saul Wold
Quoted 4 lines · Saul Wold

From: Dennis Lan <[email protected]>

Using Gentoo Linux as the build host, it fails without this patch Use Getopt::Std in place of getopts.pl.

This looks like older version (v2 instead of v3) without PR bump.

Quoted 89 lines

https://bugs.gentoo.org/show_bug.cgi?id=420083

which following error:
/usr/bin/perl -w ./../msggen.pl -l jstyleModule InterpreterMessages.msg /usr/bin/perl -w ./../msggen.pl -l jstyleModule DssslAppMessages.msg Undefined subroutine &main::Getopts called at ./../msggen.pl line 22. make[2]: *** [InterpreterMessages.h] Error 2
make[2]: *** Waiting for unfinished jobs....
Undefined subroutine &main::Getopts called at ./../msggen.pl line 22. make[2]: *** [DssslAppMessages.h] Error 2

---
 .../openjade/openjade-1.3.2/msggen.pl.patch        |   44 ++++++++++++++++++++
 .../openjade/openjade-native_1.3.2.bb              |    1 +
 2 files changed, 45 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-devtools/openjade/openjade-1.3.2/msggen.pl.patch
meta/recipes-devtools/openjade/openjade-1.3.2/msggen.pl.patch new file +44 -0
new file mode 100644
index 0000000..b47fd46
@@ -0,0 +1,44 @@
+commit fcc5b94f118495b1a467edcda6c6f631691c3f69
+Author: Dennis Lan <[email protected]>
+Date:   Tue Jul 3 09:25:42 2012 +0800
+
+    openjade: fix undefined Getopts error, use std namespace
+    
+    Using Gentoo Linux as the build host, it fails without this patch
+    Use Getopt::Std in place of getopts.pl.
+    
+    Upstream-Status: Inappropriate [no upstream]
+    Original-Author-By: Mike Gilbert <[email protected]>
+    Signed-off-by: Dennis Lan <[email protected]>
+
+diff --git a/msggen.pl b/msggen.pl
+index 0c33968..2ee3f66 100644
+--- a/msggen.pl
++++ b/msggen.pl
+@@ -4,6 +4,7 @@
+ # See the file COPYING for copying permission.
+ 
+ use POSIX;
++use Getopt::Std;
+ 
+ # Package and version.
+ $package = 'openjade';
+@@ -18,8 +19,7 @@ $gen_c = 0;
+ undef $opt_l;
+ undef $opt_p;
+ undef $opt_t;
+-do 'getopts.pl';
+-&Getopts('l:p:t:');
++getopts('l:p:t:');
+ $module = $opt_l;
+ $pot_file = $opt_p;
+ 
+@@ -72,7 +72,7 @@ while (<DEF>) {
+     else {
+ 	$field[0] =~ /^[IWQXE][0-9]$/ || &error("invalid first field");;
+ 	$type[$num] = substr($field[0], 0, 1);
+-	$argc = int(substr($field[0], 1, 1));
++	$argc = substr($field[0], 1, 1);
+     }
+     $nargs[$num] = $argc;
+     $field[1] =~ /^[a-zA-Z_][a-zA-Z0-9_]+$/ || &error("invalid tag");
meta/recipes-devtools/openjade/openjade-native_1.3.2.bb +1 -0
index 5b29c1f..efd1e11 100644
@@ -14,6 +14,7 @@ RDEPENDS_${PN} = "sgml-common-native"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/openjade/openjade-${PV}.tar.gz \
            file://makefile.patch \
+           file://msggen.pl.patch \
            file://reautoconf.patch \
 	   file://user-declared-default-constructor.patch"
 
Signature · 7 lines
1.7.7.6


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#19 lore raw
In reply to Saul Wold
Quoted 9 lines · Saul Wold

Richard,

This has been built against the AB and ready for pull

There is one multilib related issue I am still tracking down related to task-core-boot, but I can seem to determin which commit here casues it yet.

Please pull this set and we will work that out.

I've merged this. I updated to v3 of the openjade-native patch.

Cheers,

Richard