summaryrefslogtreecommitdiff
path: root/conf
diff options
context:
space:
mode:
authorPaul Sokolovsky <pmiscml@gmail.com>2006-12-22 09:44:03 +0000
committerPaul Sokolovsky <pmiscml@gmail.com>2006-12-22 09:44:03 +0000
commit16c89f95689e9ead5f0438bbb5c0d601a7fdff74 (patch)
tree943fcd074f542c81a7e11e159abbe731ab290e23 /conf
parentf0ac326b0c83fad9315d406e12b5f2e992674913 (diff)
parentc0c21a6d23cf70c053dbf39f85402e2d4ba21677 (diff)
merge of '5ea326f3b26f2123d331eace3ce101ac2983534e'
and 'fd22e946abe117169eb2505f30a12a2aa70f1a71'
Diffstat (limited to 'conf')
-rw-r--r--conf/local.conf.sample21
-rw-r--r--conf/machine/include/tune-thumb.conf32
2 files changed, 44 insertions, 9 deletions
diff --git a/conf/local.conf.sample b/conf/local.conf.sample
index 52bd88a4e9..df00fbae37 100644
--- a/conf/local.conf.sample
+++ b/conf/local.conf.sample
@@ -55,8 +55,9 @@ PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
# TMPDIR = /usr/local/projects/oetmp
# Uncomment this to specify a machine to build for. See the conf directory
-# for machines currently known to OpenEmbedded.
-# MACHINE = "collie"
+# for machines currently known to OpenEmbedded. This will automatically take care
+# of TARGET_ARCH
+# MACHINE = "c7x0"
# Use this to specify the target architecture. Note that this is only
# needed when building for a machine not known to OpenEmbedded. Better use
@@ -66,25 +67,26 @@ PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
# Use this to specify the target operating system. The default is "linux",
# for a normal linux system with glibc. Set this to "linux-uclibc" if you want
# to build a uclibc based system.
+# Normally the DISTRO of your choosing will take care of this
# TARGET_OS = "linux"
# TARGET_OS = "linux-uclibc"
# Uncomment this to select a distribution policy. See the conf directory
# for distributions currently known to OpenEmbedded.
-# Although they no longer contain version number in the (file-)name
-# familiar-unstable and openzaurus-unstable are so called "versioned"
-# distros, i.e. they explicitely select specific versions of various
-# packages.
+# Although it no longer contain version number in the (file-)name
+# openzaurus-unstable is a so called "versioned" distro, i.e. they
+# explicitely select specific versions of various packages.
# Stay away from unversioned distros unless you really know what you are doing
# DISTRO = "generic"
-# So far, angstrom.conf and familiar.conf set ENABLE_BINARY_LOCALE_GENERATION
+# So far, angstrom.conf sets ENABLE_BINARY_LOCALE_GENERATION
# to generate binary locale packages at build time using qemu-native and
# thereby guarantee i18n support on all devices. If your build breaks on
# qemu-native consider disabling ENABLE_BINARY_LOCALE_GENERATION (note that
# this breaks i18n on devices with less than 128MB RAM) or installing
# a working third-party qemu (e.g. provided by your distribution) and
-# adding qemu-native to ASSUME_PROVIDED
+# adding qemu-native to ASSUME_PROVIDED. Caveat emptor, since third-party
+# qemus lack patches needed to work with various OE targets.
# ENABLE_BINARY_LOCALE_GENERATION = "0"
# ASSUME_PROVIDED += "qemu-native"
@@ -108,7 +110,8 @@ IMAGE_FSTYPES = "jffs2 tar"
# BBDEBUG = "yes"
# Uncomment these two if you want BitBake to build images useful for debugging.
-# Note that INHIBIT_PACKAGE_STRIP needs a package format to be defined
+# Note that INHIBIT_PACKAGE_STRIP needs a package format to be defined.
+# Also note that OE now produces -dbg packages which contain debugging symbols.
# DEBUG_BUILD = "1"
# INHIBIT_PACKAGE_STRIP = "1"
diff --git a/conf/machine/include/tune-thumb.conf b/conf/machine/include/tune-thumb.conf
new file mode 100644
index 0000000000..2a12443b3d
--- /dev/null
+++ b/conf/machine/include/tune-thumb.conf
@@ -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"
+