summaryrefslogtreecommitdiff
path: root/conf
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2009-09-03 15:22:46 -0700
committerKhem Raj <raj.khem@gmail.com>2009-09-03 15:34:56 -0700
commit558f6d44365f062523fbba3926ab46e5cd1984b8 (patch)
tree67123ae2247951ded269701de07cb06977e1e94a /conf
parentb9feafad3e4f1cac5e0eb4d6da498febdea7d5ae (diff)
OpenEmbedded: Switch to using linux-uclibceabi and linux-gnu for TARGET_OS
* Bump the ABI_LAYOUT. Build from scratch will be needed. * Replace using TARGET_OS from linux->linux-gnu. * Replace using linux-uclibcgnueabi->linux-uclibceabi. * Add 'eabi' to DISTRO_FEATURES (only for minimal and micro). * Use eabi and BASE_PACKAGE_ARCH to compute real TARGET_OS. * Fix the micro conf to get console image building. * Fix the linux-uclibcgnueabi overrides in all recipes. Signed-off-by: Khem Raj <raj.khem@gmail.com> Acked-by: Phill Blundell <pb@reciva.com> Acked-by: Michael 'Mickey' Lauer <mickey@vanille-media.de>
Diffstat (limited to 'conf')
-rw-r--r--conf/abi_version.conf2
-rw-r--r--conf/checksums.ini4
-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.inc60
-rw-r--r--conf/distro/micro.conf11
-rw-r--r--conf/distro/minimal.conf12
-rw-r--r--conf/machine/include/tune-strongarm.inc2
-rw-r--r--conf/machine/include/tune-xscale.inc2
10 files changed, 75 insertions, 25 deletions
diff --git a/conf/abi_version.conf b/conf/abi_version.conf
index 7939d65ad1..7f190c38c1 100644
--- a/conf/abi_version.conf
+++ b/conf/abi_version.conf
@@ -4,7 +4,7 @@
# that breaks the format and have been previously discussed on the mailing list
# with general agreement from the core team.
#
-OELAYOUT_ABI = "2"
+OELAYOUT_ABI = "3"
#
# DISTRO_PR allows us to regenerate all packages when a fundamental change is
diff --git a/conf/checksums.ini b/conf/checksums.ini
index 1377816bcc..49dad615b7 100644
--- a/conf/checksums.ini
+++ b/conf/checksums.ini
@@ -12510,6 +12510,10 @@ sha256=feb4abd0ea31b5a0b8344bfcb0e5987eefad723fa45f1d8e1e95c62acebab524
md5=9e10a77ff225587e59c0a28c66b4faa7
sha256=91a5b69435f10002b222be022c832d9860a93e0bc181e3f94abc150486ab031a
+[http://ftp.gnome.org/pub/GNOME/sources/libIDL/0.8/libIDL-0.8.13.tar.bz2]
+md5=b43b289a859eb38a710f70622c46e571
+sha256=bccc7e10dae979518ff012f8464e47ec4b3558a5456a94c8679653aa0b262b71
+
[ftp://ftp.gnome.org/pub/GNOME/sources/libIDL/0.8/libIDL-0.8.2.tar.bz2]
md5=a75d2dbf3a3c66b567047c94245f8b82
sha256=1c9529f7245778a4f1422d6257d446b7c90a19c3b603b1a25db1669552c464b3
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.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
diff --git a/conf/distro/micro.conf b/conf/distro/micro.conf
index 2d45425290..aca4a18caf 100644
--- a/conf/distro/micro.conf
+++ b/conf/distro/micro.conf
@@ -16,16 +16,10 @@ DISTRO_NAME = "micro"
DISTRO_VERSION = "${SRCDATE}"
#############################################################################
-# TARGET OS
-#############################################################################
-# Linux
-TARGET_OS = "linux"
-
-#############################################################################
# DISTRO FEATURE SELECTION
#############################################################################
# No features selected
-DISTRO_FEATURES = ""
+DISTRO_FEATURES = "eabi"
#############################################################################
# LIBRARY NAMES
@@ -79,7 +73,7 @@ ${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
# PREFERRED PROVIDERS
#############################################################################
PREFERRED_PROVIDER_task-bootstrap = "task-bootstrap"
-
+PREFERRED_PROVIDER_virtual/libx11 = "libx11"
#############################################################################
# PREFERRED VERSIONS
#############################################################################
@@ -110,3 +104,4 @@ USE_LDCONFIG = "0"
# Disable online package management
ONLINE_PACKAGE_MANAGEMENT = "none"
+DISTRO_BLUETOOTH_MANAGER = "bluez4"
diff --git a/conf/distro/minimal.conf b/conf/distro/minimal.conf
index fa2a926a1d..ecf6649fab 100644
--- a/conf/distro/minimal.conf
+++ b/conf/distro/minimal.conf
@@ -25,6 +25,8 @@ DISTRO_CHECK := "${@bb.data.getVar("DISTRO_VERSION",d,1) or bb.fatal('Remove thi
DISTRO_BLUETOOTH_MANAGER = "bluez4"
# We want images supporting the following features (for task-base)
DISTRO_FEATURES = "nfs smbfs wifi ppp alsa ext2 vfat pcmcia usbgadget usbhost pci"
+# Following features are for ARM and E500 based machines
+DISTRO_FEATURES += "eabi"
#############################################################################
# LIBRARY NAMES
@@ -71,15 +73,15 @@ KERNEL = "kernel26"
MACHINE_KERNEL_VERSION = "2.6"
#############################################################################
-# TOOLCHAIN
+# OVERWRITES adjusted from bitbake.conf to feature the MACHINE_CLASS
#############################################################################
-LIBC ?= "eglibc"
-require conf/distro/include/sane-toolchain.inc
+OVERRIDES = "local:${MACHINE}:${MACHINE_CLASS}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
#############################################################################
-# OVERWRITES adjusted from bitbake.conf to feature the MACHINE_CLASS
+# TOOLCHAIN
#############################################################################
-OVERRIDES = "local:${MACHINE}:${MACHINE_CLASS}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
+LIBC ?= "eglibc"
+require conf/distro/include/sane-toolchain.inc
#############################################################################
# PREFERRED PROVIDERS
diff --git a/conf/machine/include/tune-strongarm.inc b/conf/machine/include/tune-strongarm.inc
index 5745c36311..2a583fe6e4 100644
--- a/conf/machine/include/tune-strongarm.inc
+++ b/conf/machine/include/tune-strongarm.inc
@@ -5,5 +5,5 @@
ARM_ABI = "oabi"
TARGET_CC_ARCH = "-march=armv4 -mtune=strongarm"
FEED_ARCH = "arm-oabi"
-
+PACKAGE_BASE_ARCH = "armv4"
PACKAGE_EXTRA_ARCHS += "armv4 "
diff --git a/conf/machine/include/tune-xscale.inc b/conf/machine/include/tune-xscale.inc
index 79d22bc794..7fa6447648 100644
--- a/conf/machine/include/tune-xscale.inc
+++ b/conf/machine/include/tune-xscale.inc
@@ -3,7 +3,7 @@ FEED_ARCH = "${@['armv5teb', 'armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d,
TARGET_CC_ARCH = "-march=armv5te -mtune=xscale"
TARGET_CC_KERNEL_ARCH = "-march=armv5te -mtune=xscale"
PACKAGE_EXTRA_ARCHS += "${@['armv4b armv4tb armv5teb', 'armv4 armv4t armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}"
-BASE_PACKAGE_ARCH = "${@['armv5teb', 'armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}"
+BASE_PACKAGE_ARCH := "${@['armv5teb', 'armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}"
# Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish
require conf/machine/include/tune-thumb.inc