summaryrefslogtreecommitdiff
path: root/conf/distro/include
diff options
context:
space:
mode:
authorStefan Schmidt <stefan@datenfreihafen.org>2009-09-08 08:51:06 +0200
committerStefan Schmidt <stefan@datenfreihafen.org>2009-09-08 08:51:06 +0200
commitb59c344423e531716b8714d3c39d7bcc43f0498a (patch)
treebec91178be154d6e6bd30be319932a535c705368 /conf/distro/include
parentc78af9bb0767f738bcee35b290bb6c7f04580cd4 (diff)
parentb7e05654818cc8139e241874b075c843ef23e614 (diff)
Merge branch 'org.openembedded.dev' of git@git.openembedded.org:openembedded into org.openembedded.dev
Diffstat (limited to 'conf/distro/include')
-rw-r--r--conf/distro/include/angstrom-2007-for-openmoko.inc4
-rw-r--r--conf/distro/include/angstrom-uclibc.inc2
-rw-r--r--conf/distro/include/angstrom-uclinux-uclibc.inc2
-rw-r--r--conf/distro/include/fso-autorev.inc1
-rw-r--r--conf/distro/include/sane-toolchain-eglibc.inc2
-rw-r--r--conf/distro/include/sane-toolchain-glibc.inc2
-rw-r--r--conf/distro/include/sane-toolchain-uclibc.inc3
-rw-r--r--conf/distro/include/sane-toolchain-uclinux-uclibc.inc2
-rw-r--r--conf/distro/include/sane-toolchain.inc60
9 files changed, 63 insertions, 15 deletions
diff --git a/conf/distro/include/angstrom-2007-for-openmoko.inc b/conf/distro/include/angstrom-2007-for-openmoko.inc
index 1deb85d7f7..6741bae3e1 100644
--- a/conf/distro/include/angstrom-2007-for-openmoko.inc
+++ b/conf/distro/include/angstrom-2007-for-openmoko.inc
@@ -143,8 +143,8 @@ PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc = "glibc"
PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc = "glibc"
PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-uclibcgnueabi-libc-for-gcc = "uclibc-initial"
-PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-uclibcgnueabi-libc-for-gcc = "uclibc-initial"
+PREFERRED_PROVIDER_virtual/arm-angstrom-linux-uclibceabi-libc-for-gcc = "uclibc-initial"
+PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-uclibceabi-libc-for-gcc = "uclibc-initial"
# hostap stuff, we prefer the in-kernel modules, but those don't work for all machines
PREFERRED_PROVIDER_hostap-conf ?= "hostap-conf"
diff --git a/conf/distro/include/angstrom-uclibc.inc b/conf/distro/include/angstrom-uclibc.inc
index a60952ff06..004d90434c 100644
--- a/conf/distro/include/angstrom-uclibc.inc
+++ b/conf/distro/include/angstrom-uclibc.inc
@@ -9,7 +9,7 @@ USE_NLS_glib-2.0 = "yes"
USE_NLS_glib-2.0-native = "yes"
USE_NLS_gcc-cross = "no"
-TARGET_OS_UC = "linux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
+TARGET_OS_UC = "linux${@['-uclibc','-uclibceabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
TARGET_OS = "${@['${TARGET_OS_UC}', 'uclinux-uclibc'][bb.data.getVar('TARGET_ARCH',d) in ['bfin']]}"
#mess with compiler flags to use -Os instead of -O2
diff --git a/conf/distro/include/angstrom-uclinux-uclibc.inc b/conf/distro/include/angstrom-uclinux-uclibc.inc
index 019f814b8f..ad499f7b67 100644
--- a/conf/distro/include/angstrom-uclinux-uclibc.inc
+++ b/conf/distro/include/angstrom-uclinux-uclibc.inc
@@ -6,7 +6,7 @@ USE_NLS_glib-2.0 = "yes"
USE_NLS_glib-2.0-native = "yes"
USE_NLS_gcc-cross = "no"
-TARGET_OS_UC = "uclinux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
+TARGET_OS_UC = "uclinux${@['-uclibc','-uclibceabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
#mess with compiler flags to use -Os instead of -O2
#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
diff --git a/conf/distro/include/fso-autorev.inc b/conf/distro/include/fso-autorev.inc
index a66a37fdd0..607f3cd06d 100644
--- a/conf/distro/include/fso-autorev.inc
+++ b/conf/distro/include/fso-autorev.inc
@@ -29,6 +29,7 @@ SRCREV_pn-libfso-glib = "${AUTOREV}"
SRCREV_pn-libgee = "${AUTOREV}"
SRCREV_pn-libgsm0710 = "${AUTOREV}"
SRCREV_pn-libgsm0710mux = "${AUTOREV}"
+SRCREV_pn-libpersistence = "${AUTOREV}"
SRCREV_pn-mickeydbus = "${AUTOREV}"
SRCREV_pn-mickeyterm = "${AUTOREV}"
SRCREV_pn-misc-vapi = "${AUTOREV}"
diff --git a/conf/distro/include/sane-toolchain-eglibc.inc b/conf/distro/include/sane-toolchain-eglibc.inc
index 88719f5f33..4c5f44ff8e 100644
--- a/conf/distro/include/sane-toolchain-eglibc.inc
+++ b/conf/distro/include/sane-toolchain-eglibc.inc
@@ -3,8 +3,6 @@
# eglibc:
# [23:00] oxo: glibc (any version) on sparc does not like (repeat me) "-Os"
-TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-
FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1"
FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
diff --git a/conf/distro/include/sane-toolchain-glibc.inc b/conf/distro/include/sane-toolchain-glibc.inc
index f3da7c31a2..f029c6fe46 100644
--- a/conf/distro/include/sane-toolchain-glibc.inc
+++ b/conf/distro/include/sane-toolchain-glibc.inc
@@ -2,8 +2,6 @@
# glibc:
-TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-
#mess with compiler flags to use -Os instead of -O2
#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
# perl has some problems, see http://bugs.openembedded.net/show_bug.cgi?id=1616
diff --git a/conf/distro/include/sane-toolchain-uclibc.inc b/conf/distro/include/sane-toolchain-uclibc.inc
index 04935fe46d..3069820918 100644
--- a/conf/distro/include/sane-toolchain-uclibc.inc
+++ b/conf/distro/include/sane-toolchain-uclibc.inc
@@ -15,9 +15,6 @@ USE_NLS_glib-2.0 = "yes"
USE_NLS_glib-2.0-native = "yes"
USE_NLS_gcc-cross = "no"
-TARGET_OS_UC = "linux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-TARGET_OS = "${@['${TARGET_OS_UC}', 'uclinux-uclibc'][bb.data.getVar('TARGET_ARCH',d) in ['bfin']]}"
-
#mess with compiler flags to use -Os instead of -O2
#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
diff --git a/conf/distro/include/sane-toolchain-uclinux-uclibc.inc b/conf/distro/include/sane-toolchain-uclinux-uclibc.inc
index b757efb55a..fbb239a683 100644
--- a/conf/distro/include/sane-toolchain-uclinux-uclibc.inc
+++ b/conf/distro/include/sane-toolchain-uclinux-uclibc.inc
@@ -7,8 +7,6 @@ USE_NLS_glib-2.0 = "yes"
USE_NLS_glib-2.0-native = "yes"
USE_NLS_gcc-cross = "no"
-TARGET_OS_UC = "uclinux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-
#mess with compiler flags to use -Os instead of -O2
#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
diff --git a/conf/distro/include/sane-toolchain.inc b/conf/distro/include/sane-toolchain.inc
index cebe77b4b5..65cb7763d1 100644
--- a/conf/distro/include/sane-toolchain.inc
+++ b/conf/distro/include/sane-toolchain.inc
@@ -65,16 +65,21 @@ PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
# Branding
TARGET_VENDOR = "-oe"
+# Add FEED_ARCH to the overrides list so that we can override the
+# ARM_INSTRUCTION_SET like below
+
+OVERRIDES .= ":${FEED_ARCH}"
+
# ARM920T and up can use thumb mode to decrease binary size at the expense of speed
# (the complete story is a bit more nuanced due to cache starvation)
# Minimal turns on thumb for armv4t machine according to this RFC:
# http://lists.linuxtogo.org/pipermail/angstrom-distro-devel/2008-October/002714.html
# We can't set ARM_INSTRUCTION_SET_<override> directly since that will un-overridable in recipes like gcc
-PREFERRED_ARM_INSTRUCTION_SET ?= "arm"
PREFERRED_ARM_INSTRUCTION_SET_armv4t = "thumb"
PREFERRED_ARM_INSTRUCTION_SET_armv5te = "thumb"
PREFERRED_ARM_INSTRUCTION_SET_armv5teb = "thumb"
+PREFERRED_ARM_INSTRUCTION_SET ?= "arm"
ARM_INSTRUCTION_SET = "${PREFERRED_ARM_INSTRUCTION_SET}"
# "arm" "thumb"
# The instruction set the compiler should use when generating application
@@ -136,7 +141,58 @@ ENABLE_BINARY_LOCALE_GENERATION_armv7a = "0"
#qemu has taken a dislike to armeb as well
ENABLE_BINARY_LOCALE_GENERATION_armeb = "0"
+def detect_arm_abi (d):
+ import bb
+ if bb.data.getVar('DISTRO_FEATURES',d) is None:
+ if bb.data.getVar('TARGET_ARCH', d, 1) in [ 'arm', 'armeb' ]:
+ return "oabi"
+ else:
+ return ""
+ if bb.data.getVar('TARGET_ARCH', d, 1) in [ 'arm', 'armeb' ]:
+ if 'eabi' in bb.data.getVar('DISTRO_FEATURES',d).split():
+ return "eabi"
+ return "oabi"
+ return ""
+
+def compute_os_portion_of_target_triplet (d):
+ import bb
+ arm_eabi_supporting_arches = "armv6 armv6-novfp \
+ armv5te iwmmxt armv7a armv7 armv6 armv5teb armv5te armv4t"
+ ppc_spe_supporting_arches = "ppce500v2 ppce500"
+
+ if bb.data.getVar("LIBC", d, 1) == "uclibc":
+ libc_suffix = "uclibc"
+ else:
+ libc_suffix = "gnu"
+
+ if bb.data.getVar('TARGET_ARCH',d,1) in ['bfin']:
+ if libc_suffix == "gnu":
+ bb.fatal("bfin is not supported on glibc/eglibc. Please choose uclibc")
+ else:
+ os_suffix = "uclinux"
+ else:
+ os_suffix = "linux"
+ bparch = bb.data.getVar('BASE_PACKAGE_ARCH', d,1)
+
+ if bb.data.getVar('DISTRO_FEATURES',d,1) is not None and \
+ bparch is not None:
+ if 'eabi' in bb.data.getVar('DISTRO_FEATURES',d,1).split() and \
+ bb.data.getVar('TARGET_ARCH', d, 1) in [ 'arm', 'armeb' ]:
+ if bparch not in arm_eabi_supporting_arches.split():
+ bb.fatal("DISTRO requested EABI but selected machine does not support EABI")
+ abi_suffix = ""
+ else:
+ abi_suffix = "eabi"
+ elif bparch in ppc_spe_supporting_arches.split():
+ abi_suffix = "spe"
+ else:
+ abi_suffix = ""
+ else:
+ bb.note("DISTRO_FEATURES is not set abi suffix not set")
+ abi_suffix = ""
+ return os_suffix + "-" + libc_suffix + abi_suffix
# This is needed to get a correct PACKAGE_ARCH for packages that have PACKAGE_ARCH = ${MACHINE_ARCH}
-ARM_ABI ?= "${@['','oabi'][bb.data.getVar('MACHINE',d) in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
+ARM_ABI = "${@detect_arm_abi(d)}"
+TARGET_OS = "${@compute_os_portion_of_target_triplet(d)}"
include conf/distro/include/sane-toolchain-${ARM_ABI}.inc