distro: Add new feature to indicate thumb-interworking.
authorKhem Raj <raj.khem@gmail.com>
Wed, 21 Jul 2010 22:42:40 +0000 (15:42 -0700)
committerKoen Kooi <koen@openembedded.org>
Sat, 24 Jul 2010 07:39:15 +0000 (09:39 +0200)
* This would be used to decide if we can use BX in return
  instructions in uclibc.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
conf/distro/include/angstrom.inc
conf/distro/include/kaeilos.inc
conf/distro/include/slugos.inc
conf/distro/minimal-uclibc.conf
conf/distro/minimal.conf
recipes/uclibc/uclibc-config.inc

index f13cc22..3ba94fa 100644 (file)
@@ -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"]}'
index bdc4aad..edbad69 100644 (file)
@@ -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"]}'
index 807d45d..8d53ffc 100644 (file)
@@ -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
index 44805cf..287d6de 100644 (file)
@@ -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"]}'
index 9a08130..5fbbc33 100644 (file)
@@ -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
index 5a6fbe8..ef4385e 100644 (file)
@@ -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)