angstrom: Leverage oe-core configurations when possible

tclibc-* files also get included via bibake.conf so we dont need to
include them here and it also means that we dont append to OVERRIDES n
number of times the inclusions happen

${TCLIBC}.inc files are really unused so delete them and move
interesting content from uclibc.inc to angstrom-uclibc.inc

Set SOC_FAMILY to be empty if not set. Setting it to 'Unknown'
adds Unknown to OVERRIDES which we should avoid.

Adjust MACHINEOVERRIDES to account for empty SOC_FAMILY

No need to pin webkit-gtk and cairo to armv4t it works fine
without it.

thumb-interwork is already available in OVERRIDES via
tune features from OE core so we dont add it to DISTRO_FEATURES

arm-thumb.inc is unused, delete it whatever it provided is
already available through tune features

No need to set THUMB_INTERWORK, machine confs know it better now

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
This commit is contained in:
Khem Raj
2012-01-27 01:01:08 -08:00
committed by Koen Kooi
parent 38bf6aeab9
commit 0e503fdabb
9 changed files with 25 additions and 108 deletions

View File

@@ -158,7 +158,6 @@ require conf/distro/include/angstrom.inc
# Toolchain virtuals:
require conf/distro/include/toolchain-${TOOLCHAIN_TYPE}.inc
require conf/distro/include/arm-thumb.inc
# Set DISTRO_FEED_CONFIGS to our config var, assigned in the above .inc
DISTRO_FEED_CONFIGS = "${ANGSTROM_FEED_CONFIGS}"

View File

@@ -1,6 +1,4 @@
# eglibc:
require conf/distro/include/tclibc-eglibc.inc
ANGSTROM_BLACKLIST_pn-libiconv = "the eglibc provided iconv library is used"
TARGET_OS = "linux"

View File

@@ -1,9 +1,29 @@
# uclibc:
require conf/distro/include/uclibc.inc
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
# The things uclibc can provide. We default to wanting uclibc to provide them.
PREFERRED_PROVIDER_virtual/libintl = "proxy-libintl"
PREFERRED_PROVIDER_virtual/gettext = "proxy-libintl"
#fix some iconv issues, needs to be adjusted when doing uclibc builds
PREFERRED_PROVIDER_virtual/libintl_avr32 = "proxy-libintl"
PREFERRED_PROVIDER_virtual/gettext_avr32 = "proxy-libintl"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "uclibc-initial"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "uclibc"
PREFERRED_PROVIDER_virtual/libiconv-nativesdk = "eglibc-nativesdk"
PREFERRED_PROVIDER_virtual/libc-nativesdk = "eglibc-nativesdk"
PREFERRED_PROVIDER_virtual/${SDK_PREFIX}libc-initial-nativesdk = "eglibc-initial-nativesdk"
PREFERRED_PROVIDER_virtual/${SDK_PREFIX}libc-nativesdk = "eglibc-nativesdk"
PREFERRED_PROVIDER_virtual/${SDK_PREFIX}libc-for-gcc-nativesdk = "eglibc-nativesdk"
# libc settings
DISTRO_FEATURES += "${@['', ' nls'][bb.data.getVar('ENABLE_BINARY_LOCALE_GENERATION', d, 1) == '1']}"
MACHINE_FEATURES += "${@['', ' bx'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
# FIXME: We enable IPv4 per default to avoid alot of breakage.
# FIXME: Figure out an acceptable way to negotiate either
# FIXME: desired features or hard requirements, either top-down or bottom-up.
DISTRO_FEATURES += " ipv4"
USE_NLS_glib-2.0 = "yes"
USE_NLS_glib-2.0-native = "yes"
USE_NLS_gcc-cross = "no"

View File

@@ -1,5 +1,5 @@
# uclibc:
require conf/distro/include/uclibc.inc
require conf/distro/include/angstrom-uclibc.inc
USE_NLS ?= "no"
USE_NLS_glib-2.0 = "yes"

View File

@@ -12,7 +12,7 @@ BUILDNAME = "Angstrom ${DISTRO_VERSION}"
TARGET_VENDOR = "-angstrom"
SDK_VENDOR = "-angstromsdk"
SOC_FAMILY ?= "Unknown"
SOC_FAMILY ?= ""
# Yocto work around for missing ONLINE_PACKAGE_MANAGEMENT support
ONLINE_PACKAGE_MANAGEMENT = "full"
@@ -27,8 +27,8 @@ FEED_ARCH_bfin = "blackfin"
# Add FEED_ARCH and SOC_FAMILY to machine overrides so we get access to e.g. 'armv7a' and 'omap3'
# Hopefully we'll never see a machine or arch with 'all' as substring
MACHINEOVERRIDES .= ":${@bb.data.getVar('FEED_ARCH', d,1).replace('all','noarch')}:${SOC_FAMILY}"
MACHINEOVERRIDES .= ":${@bb.data.getVar('FEED_ARCH', d,1).replace('all','noarch')}"
MACHINEOVERRIDES .= "${@['', ':${SOC_FAMILY}']['${SOC_FAMILY}' != '']}"
# Put links to sources in deploy/sources to make it easier for people to be GPL compliant
#INHERIT += "src_distribute_local"
SRC_DIST_LOCAL ?= "symlink"
@@ -73,14 +73,6 @@ ARM_INSTRUCTION_SET = "${ANGSTROM_ARM_INSTRUCTION_SET}"
# but requires more instructions (140% for 70% smaller code) so may be
# slower.
THUMB_INTERWORK = "yes"
# "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.
#Use this variable in feeds and other parts that need a URI
ANGSTROM_URI ?= "http://feeds.angstrom-distribution.org"
@@ -148,11 +140,6 @@ ENABLE_BINARY_LOCALE_GENERATION_armeb = "0"
# Prelink images
INHERIT += "image-prelink"
# webkit-gtk and cairo have alignment issues with double instructions on armv5 so
# disable them here
TARGET_CC_ARCH_pn-webkit-gtk_armv5te = "-march=armv4t"
TARGET_CC_ARCH_pn-cairo_armv5te = "-march=armv4t"
#Name the generated images in a sane way
IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${TCLIBC}-${ANGSTROM_PKG_FORMAT}-${DISTRO_VERSION}-${MACHINE}"
DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}"
@@ -196,9 +183,6 @@ DISTRO_FEATURES = "alsa argp bluetooth ext2 ipv4 ipv6 irda largefile nfs pam pci
DISTRO_FEATURES += "tk"
DISTRO_FEATURES += "x11"
# Add thumb-interwork to feature list if selected machine supports it.
DISTRO_FEATURES += ' ${@["", "thumb-interwork"][bb.data.getVar('THUMB_INTERWORK', d, 1) == "yes"]}'
# Inherit the default LIBC features superset from OE-core
DISTRO_FEATURES += "${DISTRO_FEATURES_LIBC}"

View File

@@ -1,30 +0,0 @@
#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_prepend_arm =. "${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_append_arm =. " ${ARM_INTERWORK_M_OPT} ${ARM_THUMB_M_OPT}"
TARGET_CC_KERNEL_ARCH_append_arm =. " -mno-thumb-interwork -mno-thumb"

View File

@@ -1,16 +0,0 @@
require conf/distro/include/tclibc-eglibc.inc
# The things eglibc can provide. We default to wanting eglibc to provide them.
PREFERRED_PROVIDER_virtual/libiconv ?= "eglibc"
PREFERRED_PROVIDER_virtual/libintl ?= "eglibc"
# And the same as above for the nativesdk
PREFERRED_PROVIDER_virtual/libiconv-nativesdk ?= "eglibc-nativesdk"
PREFERRED_PROVIDER_virtual/libintl-nativesdk ?= "eglibc-nativesdk"
# eglibc is configured for OLDEST_KERNEL kernel version, so we set minimal
# sane versions there
# ARM OABI is fine with 2.4.0, EABI is not, so we override on "-gnueabi"
# TARGET_OS here, not on architecture which is 'arm' in both cases

View File

@@ -1,16 +0,0 @@
# Add glibc to the overrides.
OVERRIDES =. "libc-glibc:"
# The things glibc can provide. We default to wanting glibc to provide them.
PREFERRED_PROVIDER_virtual/libiconv ?= "glibc"
PREFERRED_PROVIDER_virtual/libintl ?= "glibc"
PREFERRED_PROVIDER_virtual/libc = "glibc"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "glibc-initial"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
# glibc is configured for OLDEST_KERNEL kernel version, so we set minimal
# sane versions there
# ARM OABI is fine with 2.4.0, EABI is not, so we override on "-gnueabi"
# TARGET_OS here, not on architecture which is 'arm' in both cases

View File

@@ -1,22 +0,0 @@
require conf/distro/include/tclibc-uclibc.inc
# The things uclibc can provide. We default to wanting uclibc to provide them.
PREFERRED_PROVIDER_virtual/libintl = "proxy-libintl"
PREFERRED_PROVIDER_virtual/gettext = "proxy-libintl"
#fix some iconv issues, needs to be adjusted when doing uclibc builds
PREFERRED_PROVIDER_virtual/libintl_avr32 = "proxy-libintl"
PREFERRED_PROVIDER_virtual/gettext_avr32 = "proxy-libintl"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "uclibc-initial"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "uclibc"
PREFERRED_PROVIDER_virtual/libiconv-nativesdk = "eglibc-nativesdk"
PREFERRED_PROVIDER_virtual/libc-nativesdk = "eglibc-nativesdk"
PREFERRED_PROVIDER_virtual/${SDK_PREFIX}libc-initial-nativesdk = "eglibc-initial-nativesdk"
PREFERRED_PROVIDER_virtual/${SDK_PREFIX}libc-nativesdk = "eglibc-nativesdk"
PREFERRED_PROVIDER_virtual/${SDK_PREFIX}libc-for-gcc-nativesdk = "eglibc-nativesdk"
# libc settings
DISTRO_FEATURES += "${@['', ' nls'][bb.data.getVar('ENABLE_BINARY_LOCALE_GENERATION', d, 1) == '1']}"
MACHINE_FEATURES += "${@['', ' bx'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
# FIXME: We enable IPv4 per default to avoid alot of breakage.
# FIXME: Figure out an acceptable way to negotiate either
# FIXME: desired features or hard requirements, either top-down or bottom-up.
DISTRO_FEATURES += " ipv4"