[OE-core] [PATCH 3/6] distro: Add defaultsetup.conf, a set of default configuration providing sane overrridable default for commonly used options
Koen Kooi
koen at dominion.thruhere.net
Tue May 10 14:31:10 UTC 2011
Op 10 mei 2011, om 16:00 heeft Richard Purdie het volgende geschreven:
> From: Richard Purdie <richard.purdie at linuxfoundation.org>
>
> The intent is to allow distros to share common core config but still allow
> customisations. The core should work with no distro set but users
> can still customise in any ways needed.
>
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> ---
> meta/conf/bitbake.conf | 4 +-
> meta/conf/distro/defaultsetup.conf | 23 ++++++++++
> .../include/{poky-eglibc.inc => tclibc-eglibc.inc} | 6 ++-
> .../include/{poky-glibc.inc => tclibc-glibc.inc} | 6 ++-
> .../include/{poky-uclibc.inc => tclibc-uclibc.inc} | 4 ++
> .../{poky-default.inc => tcmode-default.inc} | 13 +++---
> meta/conf/distro/poky.conf | 46 +++++--------------
> 7 files changed, 54 insertions(+), 48 deletions(-)
> create mode 100644 meta/conf/distro/defaultsetup.conf
> rename meta/conf/distro/include/{poky-eglibc.inc => tclibc-eglibc.inc} (92%)
> rename meta/conf/distro/include/{poky-glibc.inc => tclibc-glibc.inc} (91%)
> rename meta/conf/distro/include/{poky-uclibc.inc => tclibc-uclibc.inc} (86%)
> rename meta/conf/distro/include/{poky-default.inc => tcmode-default.inc} (85%)
>
> diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
> index d843e70..ce74a9b 100644
> --- a/meta/conf/bitbake.conf
> +++ b/meta/conf/bitbake.conf
> @@ -627,9 +627,7 @@ include conf/build/${BUILD_SYS}.conf
> include conf/target/${TARGET_SYS}.conf
> include conf/machine/${MACHINE}.conf
> include conf/machine-sdk/${SDKMACHINE}.conf
> -include conf/distro/include/default-providers.inc
> -include conf/distro/include/default-versions.inc
> -include conf/distro/include/world-broken.inc
> +include conf/distro/defaultsetup.conf
> include conf/distro/${DISTRO}.conf
Please include it after $DISTRO, otherwise ?= in $DISTRO won't work as intended.
> include conf/documentation.conf
> require conf/sanity.conf
> diff --git a/meta/conf/distro/defaultsetup.conf b/meta/conf/distro/defaultsetup.conf
> new file mode 100644
> index 0000000..af5ef7b
> --- /dev/null
> +++ b/meta/conf/distro/defaultsetup.conf
> @@ -0,0 +1,23 @@
> +include conf/distro/include/default-providers.inc
> +include conf/distro/include/default-versions.inc
> +include conf/distro/include/world-broken.inc
> +
> +TARGET_VENDOR ?= "-oecore"
> +
> +TARGET_FPU_arm ?= "soft"
> +TARGET_FPU_armeb ?= "soft"
Something more elaborate would be better, this is what angstrom has:
conf/distro/include/angstrom.inc:TARGET_FPU_arm = "soft"
conf/distro/include/angstrom.inc:TARGET_FPU_armeb = "soft"
conf/distro/include/angstrom.inc:TARGET_FPU_ixp4xx = "soft"
conf/distro/include/angstrom.inc:TARGET_FPU_ppc405 = "soft"
conf/distro/include/angstrom.inc:TARGET_FPU_armv6 = "hard"
conf/distro/include/angstrom.inc:TARGET_FPU_armv6-novfp = "soft"
conf/distro/include/angstrom.inc:TARGET_FPU_armv7a = "hard"
conf/distro/include/angstrom.inc:TARGET_FPU_ppc603e = "hard"
you really want to use hard (don't confuse it with hardfp) on armv7a.
> +INHERIT_INSANE ?= "insane"
excellent!
>
> --- a/meta/conf/distro/include/poky-eglibc.inc
> +++ b/meta/conf/distro/include/tclibc-eglibc.inc
> @@ -2,6 +2,10 @@
> # eglibc specific configuration
> #
>
> +TARGET_OS = "linux"
> +TARGET_OS_arm = "linux-gnueabi"
> +TARGET_OS_armeb = "linux-gnueabi"
Maybe something like angstroms version:
TARGET_OS = "linux"
TARGET_OS .= "${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb']]}"
TARGET_OS .= "${@['','-gnuspe'][bb.data.getVar('BASE_PACKAGE_ARCH',d,1) in ['ppce500', 'ppce500v2']]}"
or the sane-toolchain version:
def compute_os_portion_of_target_triplet (d):
import bb
arm_eabi_unsupported_arches = "armv1 armv2 armv3"
ppc_spe_supporting_arches = "ppce500v2 ppce500"
gnu_suffix = ""
if bb.data.getVar('LIBC', d, 1) == "uclibc":
libc_suffix = "uclibc"
else:
libc_suffix = ""
if bb.data.getVar('TARGET_ARCH',d,1) in ['bfin']:
if libc_suffix is not "uclibc":
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 in arm_eabi_unsupported_arches.split():
bb.fatal("DISTRO requested EABI but selected machine does not support EABI")
abi_suffix = ""
else:
if libc_suffix is not "uclibc":
gnu_suffix = "gnu"
abi_suffix = "eabi"
elif bparch in ppc_spe_supporting_arches.split():
if libc_suffix is not "uclibc":
gnu_suffix = "gnu"
abi_suffix = "spe"
else:
abi_suffix = ""
else:
bb.note("DISTRO_FEATURES is not set abi suffix not set")
abi_suffix = ""
if bb.data.getVar('TOOLCHAIN_BRAND', d, 1) is not None and \
"csl" in bb.data.getVar('TOOLCHAIN_BRAND', d, 1):
gnu_suffix = "gnu"
if libc_suffix + gnu_suffix + abi_suffix is not "":
return os_suffix + "-" + libc_suffix + gnu_suffix + abi_suffix
else:
return os_suffix
> diff --git a/meta/conf/distro/include/poky-default.inc b/meta/conf/distro/include/tcmode-default.inc
> similarity index 85%
> rename from meta/conf/distro/include/poky-default.inc
> rename to meta/conf/distro/include/tcmode-default.inc
> index 91985b3..909d802 100644
> --- a/meta/conf/distro/include/poky-default.inc
> +++ b/meta/conf/distro/include/tcmode-default.inc
> @@ -1,18 +1,16 @@
> -PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "${POKYLIBC}"
> +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "${TCLIBC}"
> PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
> PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
> PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
> PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
> PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
> PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs = "gcc-runtime"
> -PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "${POKYLIBC}-initial"
> -PREFERRED_PROVIDER_virtual/${SDK_PREFIX}libc-for-gcc-nativesdk ?= "${POKYLIBC}-nativesdk"
> +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "${TCLIBC}-initial"
> +PREFERRED_PROVIDER_virtual/${SDK_PREFIX}libc-for-gcc-nativesdk ?= "${TCLIBC}-nativesdk"
Angstrom has this for *libc:
# The things *libc can provide.
PREFERRED_PROVIDER_virtual/libc = "${TCLIBC}"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "${TCLIBC}-initial"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "${TCLIBC}"
# And the same as above for the nativesdk
PREFERRED_PROVIDER_virtual/libc-nativesdk = "${TCLIBC}-nativesdk"
PREFERRED_PROVIDER_virtual/${SDK_PREFIX}libc-initial-nativesdk = "${TCLIBC}-initial-nativesdk"
PREFERRED_PROVIDER_virtual/${SDK_PREFIX}libc-for-gcc-nativesdk = "${TCLIBC}-nativesdk"
I needed the initial-nativesdk for meta-toolchain, but I can't recall the exact problem
regards,
Koen
More information about the Openembedded-core
mailing list