summaryrefslogtreecommitdiff
path: root/conf/distro
diff options
context:
space:
mode:
Diffstat (limited to 'conf/distro')
-rw-r--r--conf/distro/angstrom-2008.1.conf1
-rw-r--r--conf/distro/gmustix.conf2
-rw-r--r--conf/distro/include/arm-thumb.inc32
-rw-r--r--conf/distro/kaeilos-2010.conf1
-rw-r--r--conf/distro/kaeilos.conf1
-rw-r--r--conf/distro/micro.conf1
-rw-r--r--conf/distro/minimal.conf3
-rw-r--r--conf/distro/shr.conf1
-rw-r--r--conf/distro/slugos.conf2
9 files changed, 43 insertions, 1 deletions
diff --git a/conf/distro/angstrom-2008.1.conf b/conf/distro/angstrom-2008.1.conf
index 7c70c84552..84e80968a8 100644
--- a/conf/distro/angstrom-2008.1.conf
+++ b/conf/distro/angstrom-2008.1.conf
@@ -136,6 +136,7 @@ PREFERRED_VERSION_binutils-cross-sdk_avr32 = "2.17"
# Toolchain virtuals:
require conf/distro/include/toolchain-${TOOLCHAIN_TYPE}.inc
+require conf/distro/include/arm-thumb.inc
PREFERRED_PROVIDER_dbus-glib = "dbus-glib"
PREFERRED_PROVIDER_hotplug = "udev"
diff --git a/conf/distro/gmustix.conf b/conf/distro/gmustix.conf
index 17f805617a..5dd519d90a 100644
--- a/conf/distro/gmustix.conf
+++ b/conf/distro/gmustix.conf
@@ -5,6 +5,8 @@
INHERIT += "package_tar package_ipk"
LIBC = "uclibc"
require conf/distro/include/${LIBC}.inc
+require conf/distro/include/arm-thumb.inc
+
TARGET_OS = "linux-uclibc"
TARGET_FPU = "soft"
IMAGE_FSTYPES = "jffs2"
diff --git a/conf/distro/include/arm-thumb.inc b/conf/distro/include/arm-thumb.inc
new file mode 100644
index 0000000000..cd88bb4786
--- /dev/null
+++ b/conf/distro/include/arm-thumb.inc
@@ -0,0 +1,32 @@
+#tune file for thumb instructions
+
+ARM_INSTRUCTION_SET ?= "arm"
+# "arm" "thumb"
+# The instruction set the compiler should use when generating application
+# code. The kernel is always compiled with arm code at present. arm code
+# is the original 32 bit ARM instruction set, thumb code is the 16 bit
+# encoded RISC sub-set. Thumb code is smaller (maybe 70% of the ARM size)
+# but requires more instructions (140% for 70% smaller code) so may be
+# slower.
+
+THUMB_INTERWORK ?= "no"
+# "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.
+
+OVERRIDE_THUMB = "${@['', ':thumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
+OVERRIDE_INTERWORK = "${@['', ':thumb-interwork'][bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes']}"
+OVERRIDES .= "${OVERRIDE_THUMB}${OVERRIDE_INTERWORK}"
+
+# Compiler and linker options for application code and kernel code. These
+# options ensure that the compiler has the correct settings for the selected
+# instruction set and interworking.
+ARM_INTERWORK_M_OPT = "${@['-mno-thumb-interwork', '-mthumb-interwork'][bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes']}"
+ARM_THUMB_M_OPT = "${@['-mno-thumb', '-mthumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
+
+#
+TARGET_CC_ARCH += "${ARM_INTERWORK_M_OPT} ${ARM_THUMB_M_OPT}"
+TARGET_CC_KERNEL_ARCH += "-mno-thumb-interwork -mno-thumb"
+
diff --git a/conf/distro/kaeilos-2010.conf b/conf/distro/kaeilos-2010.conf
index 4bb637cfa6..ba374458f7 100644
--- a/conf/distro/kaeilos-2010.conf
+++ b/conf/distro/kaeilos-2010.conf
@@ -96,6 +96,7 @@ PREFERRED_VERSION_gcc-cross-intermediate ?= "${KAEILOS_GCC_VERSION}"
PREFERRED_ARM_INSTRUCTION_SET ?= "thumb"
require conf/distro/include/sane-toolchain.inc
+require conf/distro/include/arm-thumb.inc
PREFERRED_PROVIDER_dbus-glib = "dbus-glib"
PREFERRED_PROVIDER_hotplug = "udev"
diff --git a/conf/distro/kaeilos.conf b/conf/distro/kaeilos.conf
index eb12d2ed04..b1412805d1 100644
--- a/conf/distro/kaeilos.conf
+++ b/conf/distro/kaeilos.conf
@@ -124,6 +124,7 @@ PREFERRED_VERSION_binutils-cross-sdk_avr32 = "2.17"
# Toolchain virtuals:
require conf/distro/include/toolchain-${TOOLCHAIN_TYPE}.inc
+require conf/distro/include/arm-thumb.inc
PREFERRED_PROVIDER_dbus-glib = "dbus-glib"
PREFERRED_PROVIDER_hotplug = "udev"
diff --git a/conf/distro/micro.conf b/conf/distro/micro.conf
index 9885425979..fc50391f30 100644
--- a/conf/distro/micro.conf
+++ b/conf/distro/micro.conf
@@ -66,6 +66,7 @@ PREFERRED_VERSION_glibc ?= "2.10.1"
PREFERRED_VERSION_glibc-initial ?= "2.10.1"
PREFERRED_ARM_INSTRUCTION_SET ?= "thumb"
require conf/distro/include/sane-toolchain.inc
+require conf/distro/include/arm-thumb.inc
#############################################################################
# OVERRIDES adjusted from bitbake.conf to feature the MACHINE_CLASS
diff --git a/conf/distro/minimal.conf b/conf/distro/minimal.conf
index e400c14d65..9a081309e1 100644
--- a/conf/distro/minimal.conf
+++ b/conf/distro/minimal.conf
@@ -16,7 +16,7 @@ DISTRO_VERSION = "dev-snapshot-${SRCDATE}"
DISTRO_TYPE ?= "debug"
# Ensure some form of release config, so error out if someone thinks he knows better
-DISTRO_CHECK := "${@bb.data.getVar('DISTRO_VERSION',d,1) or bb.fatal('Remove this line or set a dummy DISTRO_VERSION")
+DISTRO_CHECK := "${@bb.data.getVar('DISTRO_VERSION',d,1) or bb.fatal('Remove this line or set a dummy DISTRO_VERSION')}"
#############################################################################
# FEATURE SELECTION
@@ -86,6 +86,7 @@ MACHINE_KERNEL_VERSION = "2.6"
#############################################################################
LIBC ?= "eglibc"
require conf/distro/include/sane-toolchain.inc
+require conf/distro/include/arm-thumb.inc
#############################################################################
# PREFERRED VERSIONS
diff --git a/conf/distro/shr.conf b/conf/distro/shr.conf
index f0167da3a8..9fd156fc1f 100644
--- a/conf/distro/shr.conf
+++ b/conf/distro/shr.conf
@@ -159,6 +159,7 @@ PREFERRED_VERSION_eglibc ?= "2.12"
PREFERRED_VERSION_eglibc-initial ?= "2.12"
PREFERRED_GCC_VERSION ?= "4.5"
require conf/distro/include/sane-toolchain.inc
+require conf/distro/include/arm-thumb.inc
# Set some java bits
require conf/distro/include/sane-toolchain-java.inc
diff --git a/conf/distro/slugos.conf b/conf/distro/slugos.conf
index 5a2f0dc620..5f9c06ca0b 100644
--- a/conf/distro/slugos.conf
+++ b/conf/distro/slugos.conf
@@ -22,3 +22,5 @@ require conf/distro/include/slugos.inc
# Can be either glibc or eglibc (or perhaps even uclibc)
LIBC ?= "eglibc"
require conf/distro/include/${LIBC}.inc
+require conf/distro/include/arm-thumb.inc
+