diff options
Diffstat (limited to 'conf/distro')
-rw-r--r-- | conf/distro/angstrom-2008.1.conf | 1 | ||||
-rw-r--r-- | conf/distro/gmustix.conf | 2 | ||||
-rw-r--r-- | conf/distro/include/arm-thumb.inc | 32 | ||||
-rw-r--r-- | conf/distro/kaeilos-2010.conf | 1 | ||||
-rw-r--r-- | conf/distro/kaeilos.conf | 1 | ||||
-rw-r--r-- | conf/distro/micro.conf | 1 | ||||
-rw-r--r-- | conf/distro/minimal.conf | 3 | ||||
-rw-r--r-- | conf/distro/shr.conf | 1 | ||||
-rw-r--r-- | conf/distro/slugos.conf | 2 |
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 + |