Skip to contentSkip to conversation

A couple of SDK fixes

PATCH New Paul Eggleton 1 participant 3 messages Nov 1, 2016

lore
Share & tools
lore
#0 lore raw

cover A couple of SDK fixes

The following changes since commit b18fa5f2f2f46afc6fdc58f4d29679dea9c36c43:

Remove LIC_FILES_CHKSUM from recipes without SRC_URI (2016-10-28 11:27:33 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib paule/sdk-fixes
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/sdk-fixes

Paul Eggleton (2):
classes/populate_sdk_base: fix usage of & character in SDK_TITLE classes/nativesdk: set SDK_OLDEST_KERNEL appropriately

 meta/classes/nativesdk.bbclass         | 2 ++
 meta/classes/populate_sdk_base.bbclass | 7 +------
 meta/conf/bitbake.conf                 | 5 +++++
 meta/conf/machine-sdk/i586.conf        | 1 +
 meta/conf/machine-sdk/i686.conf        | 1 +
 meta/conf/machine-sdk/x86_64.conf      | 1 +
 6 files changed, 11 insertions(+), 6 deletions(-)
Signature · 1 line
2.5.5
#1 lore raw

PATCH 1/2 classes/populate_sdk_base: fix usage of & character in SDK_TITLE

If you used an & character in SDK_TITLE (possibly indirectly from DISTRO_NAME) then sed interpreted this as a directive to paste in the replaced string (@SDK_TITLE@ in this case). Escape any & characters in SDK_TITLE to avoid that.

---
 meta/classes/populate_sdk_base.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/classes/populate_sdk_base.bbclass +1 -1
index 4462b52..a762655 100644
@@ -223,7 +223,7 @@ EOF
 		-e 's#@SDKEXTPATH@#${SDKEXTPATH}#g' \
 		-e 's#@OLDEST_KERNEL@#${SDK_OLDEST_KERNEL}#g' \
 		-e 's#@REAL_MULTIMACH_TARGET_SYS@#${REAL_MULTIMACH_TARGET_SYS}#g' \
-		-e 's#@SDK_TITLE@#${SDK_TITLE}#g' \
+		-e 's#@SDK_TITLE@#${@d.getVar("SDK_TITLE", True).replace('&', '\&')}#g' \
 		-e 's#@SDK_VERSION@#${SDK_VERSION}#g' \
 		-e '/@SDK_PRE_INSTALL_COMMAND@/d' \
 		-e '/@SDK_POST_INSTALL_COMMAND@/d' \
Signature · 1 line
2.5.5
#2 lore raw

PATCH 2/2 classes/nativesdk: set SDK_OLDEST_KERNEL appropriately

In reply to Paul Eggleton

SDK_OLDEST_KERNEL currently only controls the check on SDK installation, however as with OLDEST_KERNEL it should be controlling the OLDEST_KERNEL value for building glibc used in the SDK. Thus, set it in nativesdk.bbclass. This means we need to move the default to bitbake.conf so that it can be seen in both places.

Also set a more reasonable default for SDK_OLDEST_KERNEL for x86/x86-64 as glibc 2.24 still supports back to 2.6.32 there and there are still people wanting to build SDKs that will install on older distros (e.g. CentOS 6). However it's not possible to set this with overrides since there aren't any for the SDK_ARCH, however we can instead set the variable from conf files in conf/machine-sdk especially as there is now a soft default for SDKMACHINE.

Fixes [YOCTO #10561].

---
 meta/classes/nativesdk.bbclass         | 2 ++
 meta/classes/populate_sdk_base.bbclass | 5 -----
 meta/conf/bitbake.conf                 | 5 +++++
 meta/conf/machine-sdk/i586.conf        | 1 +
 meta/conf/machine-sdk/i686.conf        | 1 +
 meta/conf/machine-sdk/x86_64.conf      | 1 +
 6 files changed, 10 insertions(+), 5 deletions(-)
meta/classes/nativesdk.bbclass +2 -0
index a78257c..31dde4a 100644
@@ -97,3 +97,5 @@ do_populate_sysroot[stamp-extra-info] = ""
 do_packagedata[stamp-extra-info] = ""
 
 USE_NLS = "${SDKUSE_NLS}"
+
+OLDEST_KERNEL = "${SDK_OLDEST_KERNEL}"
meta/classes/populate_sdk_base.bbclass +0 -5
index a762655..69aae26 100644
@@ -89,11 +89,6 @@ POPULATE_SDK_POST_HOST_COMMAND_append = " write_host_sdk_manifest; "
 SDK_PACKAGING_COMMAND = "${@'${SDK_PACKAGING_FUNC};' if '${SDK_PACKAGING_FUNC}' else ''}"
 SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots; tar_sdk; ${SDK_PACKAGING_COMMAND} "
 
-# Some archs override this, we need the nativesdk version
-# turns out this is hard to get from the datastore due to TRANSLATED_TARGET_ARCH
-# manipulation.
-SDK_OLDEST_KERNEL = "3.2.0"
-
 def populate_sdk_common(d):
     from oe.sdk import populate_sdk
     from oe.manifest import create_manifest, Manifest
meta/conf/bitbake.conf +5 -0
index 54a587f..9f445bb 100644
@@ -408,6 +408,11 @@ OLDEST_KERNEL = "3.2.0"
 OLDEST_KERNEL_aarch64 = "3.14"
 OLDEST_KERNEL_nios2 = "3.19"
 
+# SDK_OLDEST_KERNEL can't be set using overrides since there are
+# none for the SDK architecture. Best to set it from a machine-sdk
+# include file if you need an SDK arch-specific value
+SDK_OLDEST_KERNEL = "3.2.0"
+
 # Define where the kernel headers are installed on the target as well as where
 # they are staged.
 KERNEL_SRC_PATH = "/usr/src/kernel"
meta/conf/machine-sdk/i586.conf +1 -0
index 41e5e15..99083fb 100644
@@ -1,4 +1,5 @@
 SDK_ARCH = "i586"
 SDK_CC_ARCH = "-march=i586"
 ABIEXTENSION_class-nativesdk = ""
+SDK_OLDEST_KERNEL = "2.6.32"
 
meta/conf/machine-sdk/i686.conf +1 -0
index fe40697..cf22784 100644
@@ -1,3 +1,4 @@
 SDK_ARCH = "i686"
 SDK_CC_ARCH = "-march=i686"
 ABIEXTENSION_class-nativesdk = ""
+SDK_OLDEST_KERNEL = "2.6.32"
meta/conf/machine-sdk/x86_64.conf +1 -0
index 61439b4..7d2e717 100644
@@ -1,2 +1,3 @@
 SDK_ARCH = "x86_64"
 ABIEXTENSION_class-nativesdk = ""
+SDK_OLDEST_KERNEL = "2.6.32"
Signature · 1 line
2.5.5