[oe-commits] Khem Raj : distro: Add new feature to indicate thumb-interworking.

git version control git at git.openembedded.org
Sat Jul 24 07:39:43 UTC 2010


Module: openembedded.git
Branch: org.openembedded.dev
Commit: 63040b62cbfeec043a229ab240006b104533d08f
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=63040b62cbfeec043a229ab240006b104533d08f

Author: Khem Raj <raj.khem at gmail.com>
Date:   Wed Jul 21 15:42:40 2010 -0700

distro: Add new feature to indicate thumb-interworking.

* This would be used to decide if we can use BX in return
  instructions in uclibc.

Signed-off-by: Khem Raj <raj.khem at gmail.com>

---

 conf/distro/include/angstrom.inc |    3 +++
 conf/distro/include/kaeilos.inc  |    3 +++
 conf/distro/include/slugos.inc   |    9 +++++++++
 conf/distro/minimal-uclibc.conf  |    1 +
 conf/distro/minimal.conf         |    1 +
 recipes/uclibc/uclibc-config.inc |    6 ++----
 6 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/conf/distro/include/angstrom.inc b/conf/distro/include/angstrom.inc
index f13cc22..3ba94fa 100644
--- a/conf/distro/include/angstrom.inc
+++ b/conf/distro/include/angstrom.inc
@@ -204,3 +204,6 @@ DISTRO_FEATURES = "largefile ipv4 ipv6 nfs smbfs wifi ppp alsa bluetooth ext2 vf
 
 # Use-like features
 DISTRO_FEATURES += "tk"
+
+# Add thumb-interwork to feature list if selected machine supports it.
+DISTRO_FEATURES += ' ${@["", "thumb-interwork"][bb.data.getVar('THUMB_INTERWORK', d, 1) == "yes"]}'
diff --git a/conf/distro/include/kaeilos.inc b/conf/distro/include/kaeilos.inc
index bdc4aad..edbad69 100644
--- a/conf/distro/include/kaeilos.inc
+++ b/conf/distro/include/kaeilos.inc
@@ -214,3 +214,6 @@ DISTRO_FEATURES = "nfs smbfs wifi ppp alsa bluetooth ext2 vfat irda pcmcia usbga
 
 # Use-like features
 DISTRO_FEATURES += "tk"
+
+# Add thumb-interwork to feature list if selected machine supports it.
+DISTRO_FEATURES += ' ${@["", "thumb-interwork"][bb.data.getVar('THUMB_INTERWORK', d, 1) == "yes"]}'
diff --git a/conf/distro/include/slugos.inc b/conf/distro/include/slugos.inc
index 807d45d..8d53ffc 100644
--- a/conf/distro/include/slugos.inc
+++ b/conf/distro/include/slugos.inc
@@ -23,9 +23,18 @@ DISTRO_VERSION ?= "${SLUGOS_VERSION}${DISTRO_REVISION}-${DISTRO_TYPE}"
 # DISTRO_FEED ?= "${SLUGOS_VERSION}-${DISTRO_TYPE}"
 DISTRO_FEED ?= "unstable"
 
+THUMB_INTERWORK = "yes"
+# "yes" "no"
+#    Whether to compile with code to allow interworking between the two
+#    instruction sets.  This allows thumb code to be executed on a primarily
+#    arm system and vice versa.  It is strongly recommended that DISTROs not
+#    turn this off - the actual cost is very small.
 # We want images supporting the following features (for task-base)
 DISTRO_FEATURES = "nfs smbfs wifi ppp alsa bluetooth ext2 vfat irda pcmcia usbgadget usbhost pci"
 
+# Add thumb-interwork to feature list if selected machine supports it.
+DISTRO_FEATURES += ' ${@["", "thumb-interwork"][bb.data.getVar('THUMB_INTERWORK', d, 1) == "yes"]}'
+
 IMAGE_BASENAME = "${@['slugos${SITEINFO_ENDIANESS}', 'ucslugc'][bb.data.getVar('TARGET_OS', d, 1) == 'linux-uclibc']}"
 
 # The following need not be set, the defaults should be adequate
diff --git a/conf/distro/minimal-uclibc.conf b/conf/distro/minimal-uclibc.conf
index 44805cf..287d6de 100644
--- a/conf/distro/minimal-uclibc.conf
+++ b/conf/distro/minimal-uclibc.conf
@@ -44,3 +44,4 @@ DISTRO_FEATURES += "pam"
 DISTRO_FEATURES += "largefile"
 # glib-2.0 nneds ipv6 and there is no knob to control it
 DISTRO_FEATURES += "ipv4 ipv6"
+DISTRO_FEATURES += ' ${@["", "thumb-interwork"][bb.data.getVar('THUMB_INTERWORK', d, 1) == "yes"]}'
diff --git a/conf/distro/minimal.conf b/conf/distro/minimal.conf
index 9a08130..5fbbc33 100644
--- a/conf/distro/minimal.conf
+++ b/conf/distro/minimal.conf
@@ -33,6 +33,7 @@ DISTRO_FEATURES += "eabi"
 # or higher
 
 DISTRO_FEATURES += "mplt"
+DISTRO_FEATURES += ' ${@["", "thumb-interwork"][bb.data.getVar('THUMB_INTERWORK', d, 1) == "yes"]}'
 
 #############################################################################
 # LIBRARY NAMES
diff --git a/recipes/uclibc/uclibc-config.inc b/recipes/uclibc/uclibc-config.inc
index 5a6fbe8..ef4385e 100644
--- a/recipes/uclibc/uclibc-config.inc
+++ b/recipes/uclibc/uclibc-config.inc
@@ -94,10 +94,8 @@ def uclibc_cfg(feature, features, tokens, cnf, rem):
 # Map distro and machine features to config settings
 def features_to_uclibc_settings(d):
 	cnf, rem = ([], [])
-	distro_features = bb.data.getVar('DISTRO_FEATURES', d).split()
-	if bb.data.getVar('THUMB_INTERWORKING', d, 1) == "yes":
-		distro_features += "thumb-interworking"
-	#machine_features = bb.data.getVar('MACHINE_FEATURES', d).split()
+	distro_features = bb.data.getVar('DISTRO_FEATURES', d, True).split()
+	#machine_features = bb.data.getVar('MACHINE_FEATURES', d, True).split()
 	uclibc_cfg('ipv4',      distro_features, 'UCLIBC_HAS_IPV4', cnf, rem)
 	uclibc_cfg('ipv6',      distro_features, 'UCLIBC_HAS_IPV6', cnf, rem)
 	uclibc_cfg('largefile', distro_features, 'UCLIBC_HAS_LFS', cnf, rem)





More information about the Openembedded-commits mailing list