All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] Bring PREFERRED_LIBC to all distros
@ 2009-04-27 14:19 Tom Rini
  2009-04-27 14:22 ` [RFC][PATCH] All distro conf files: Use PREFERRED_LIBC to pick or set your libc Tom Rini
                   ` (4 more replies)
  0 siblings, 5 replies; 29+ messages in thread
From: Tom Rini @ 2009-04-27 14:19 UTC (permalink / raw)
  To: OpenEmbedded Devel List

Hey all.  I've created a new branch, trini/add-libc-overrides which does
the following:
- Make every distro declare PREFERRED_LIBC, either outright or
  overridable.
- For Angstrom/foonas have DISTROVAR ?= ${PREFERRED_LIBC},
  PREFERRED_LIBC ?= default
- Add conf/distro/include/{eglibc,glibc,uclibc}.inc that have:
  - Add 'glibc' to OVERRIDES for eglibc/glibc and 'uclibc' for
    uclibc.inc
  - Default providers.
  NOTE: ${TARGET_PREFIX} includes ${TARGET_VENDOR} so ...
- Switch all distros to have:
  require conf/distro/include/${PREFERED_LIBC}.inc
  - Clean up distro-specific includes, and sane-toolchain.inc a little
    bit by removing all of the PREFERRED_PROVIDER stuff it no longer
    needs.
- For glibc*.bb older than 2.5, add in some missing RPROVIDES.

That last change was required so that a number of distros would parse
without trying to build say both glibc_2.3.3 and glibc_2.9 (for
virtual-libc-dev) when I ran bitbake -g meta-toolchain minimal-image.

The next step, once something like this goes in, would be to change all
of the overrides that test for uclibc (or glibc) from
linux/linux-gnueabi vs linux-uclibc/linux-uclibcgnueabi to just
linux_glibc vs linux_uclibc.

That branch has been tested with bitbake -g meta-toolchain minimal image
for every distro for nslu2be nslu2le and beagleboard (arm/armeb/newer
arm) before and after, and the only differences are the stuff that now
parses thanks to the glibc changes.  I've got a loop going now with
qemux86 db1200 and mpc8313e-rdb but don't expect any problems.  I'll be
following up with the patches shortly.

-- 
Tom Rini



^ permalink raw reply	[flat|nested] 29+ messages in thread

* [RFC][PATCH] All distro conf files: Use PREFERRED_LIBC to pick or set your libc.
  2009-04-27 14:19 [RFC] Bring PREFERRED_LIBC to all distros Tom Rini
@ 2009-04-27 14:22 ` Tom Rini
  2009-04-27 14:23   ` [RFC][PATCH] Add distro inc files for eglibc, glibc and uclibc Tom Rini
  2009-04-27 15:33 ` [RFC] Bring PREFERRED_LIBC to all distros Koen Kooi
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 29+ messages in thread
From: Tom Rini @ 2009-04-27 14:22 UTC (permalink / raw)
  To: OpenEmbedded Devel List

All distro conf files: Use PREFERRED_LIBC to pick or set your libc.

---
 conf/distro/angstrom-2008.1.conf                   |    2 +-
 conf/distro/asusoe.conf                            |    1 +
 conf/distro/celinux-test.conf                      |    1 +
 conf/distro/chinook-compat.conf                    |    1 +
 conf/distro/foonas.conf                            |    5 +++--
 conf/distro/gmustix.conf                           |    1 +
 conf/distro/include/angstrom-2007-for-openmoko.inc |    2 +-
 conf/distro/include/angstrom.inc                   |   13 +++++++------
 conf/distro/include/kaeilos.inc                    |   12 ++++++------
 conf/distro/jlime-2009.1.conf                      |    1 +
 conf/distro/jlime-donkey.conf                      |    1 +
 conf/distro/jlime-henchman.conf                    |    1 +
 conf/distro/jlime-mongo.conf                       |    1 +
 conf/distro/jlime-shrek.conf                       |    1 +
 conf/distro/kaeilos.conf                           |    2 +-
 conf/distro/mamona.conf                            |    1 +
 conf/distro/minimal-uclibc.conf                    |    1 +
 conf/distro/nylon.conf                             |    1 +
 conf/distro/openmn.conf                            |    1 +
 conf/distro/openmoko.conf                          |    2 ++
 conf/distro/openprotium.conf                       |    1 +
 conf/distro/oplinux-uclibc.conf                    |    1 +
 conf/distro/oplinux.conf                           |    1 +
 conf/distro/slugos.conf                            |    1 +
 conf/distro/ucslugc.conf                           |    1 +
 conf/distro/unslung.conf                           |    1 +
 conf/distro/wrt54oe.conf                           |    1 +
 27 files changed, 41 insertions(+), 17 deletions(-)

diff --git a/conf/distro/angstrom-2008.1.conf b/conf/distro/angstrom-2008.1.conf
index 740ff31..ec48ee4 100644
--- a/conf/distro/angstrom-2008.1.conf
+++ b/conf/distro/angstrom-2008.1.conf
@@ -46,7 +46,7 @@ IMAGE_LINGUAS = '${@base_less_or_equal("ROOT_FLASH_SIZE", "16", "", "en-us", d)}
 
 
 # set feed path variables
-FEED_BASEPATH = "feeds/2008/${ANGSTROM_PKG_FORMAT}/${ANGSTROMLIBC}/"
+FEED_BASEPATH = "feeds/2008/${ANGSTROM_PKG_FORMAT}/${PREFERRED_LIBC}/"
 
 
 #The angstrom-mirrors.bbclass should have everything, but we can use this as a fallback
diff --git a/conf/distro/asusoe.conf b/conf/distro/asusoe.conf
index 35be6a4..18778ac 100644
--- a/conf/distro/asusoe.conf
+++ b/conf/distro/asusoe.conf
@@ -7,6 +7,7 @@ DISTRO_VERSION = "0.1-alpha"
 
 TARGET_OS = "linux-uclibc"
 TARGET_SYS = "${TARGET_ARCH}-uclibc"
+PREFERRED_LIBC = "uclibc"
 
 CROSS_DIR = "/opt/brcm/hndtools-mipsel-uclibc"
 
diff --git a/conf/distro/celinux-test.conf b/conf/distro/celinux-test.conf
index 0787ff2..7397792 100644
--- a/conf/distro/celinux-test.conf
+++ b/conf/distro/celinux-test.conf
@@ -49,6 +49,7 @@ PREFERRED_VERSION_gcc-cross = "3.4.4"
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
 PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
 
+PREFERRED_LIBC = "glibc"
 PREFERRED_VERSION_glibc = "2.3.5+cvs20050627"
 
 # glibc provides iconv and intl
diff --git a/conf/distro/chinook-compat.conf b/conf/distro/chinook-compat.conf
index d2ff51e..33819ee 100644
--- a/conf/distro/chinook-compat.conf
+++ b/conf/distro/chinook-compat.conf
@@ -21,6 +21,7 @@ DISTRO_TYPE = "debug"
 # Needed for e.g. libffi builds on armv6
 OVERRIDES .= ":${FEED_ARCH}"
 
+PREFERRED_LIBC = "glibc"
 require conf/distro/include/angstrom-glibc.inc
 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -O1"
 
diff --git a/conf/distro/foonas.conf b/conf/distro/foonas.conf
index cc5bbbb..67c250f 100644
--- a/conf/distro/foonas.conf
+++ b/conf/distro/foonas.conf
@@ -6,8 +6,9 @@
 #@MAINTAINER: Øyvind Repvik <repvik@foonas.org>
 #@--------------------------------------------------------------------
 
-FOONAS_MODE ?= "glibc"
-ANGSTROMLIBC = ${FOONAS_MODE}
+PREFERRED_LIBC ?= "glibc"
+FOONAS_MODE ?= "${PRERRED_LIBC}"
+ANGSTROMLIBC = "${PREFERRED_LIBC}"
 require conf/distro/angstrom-2008.1.conf
 
 DISTRO_NAME = "foonas"
diff --git a/conf/distro/gmustix.conf b/conf/distro/gmustix.conf
index a47de7c..756176e 100644
--- a/conf/distro/gmustix.conf
+++ b/conf/distro/gmustix.conf
@@ -3,6 +3,7 @@
 #@DESCRIPTION: Gumstix distribution for GMU (George Mason University)
 
 INHERIT += "package_tar package_ipk"
+PREFERRED_LIBC = "uclibc"
 TARGET_OS = "linux-uclibc"
 TARGET_FPU = "soft"
 IMAGE_FSTYPES = "jffs2"
diff --git a/conf/distro/include/angstrom-2007-for-openmoko.inc b/conf/distro/include/angstrom-2007-for-openmoko.inc
index b931d34..0c3d265 100644
--- a/conf/distro/include/angstrom-2007-for-openmoko.inc
+++ b/conf/distro/include/angstrom-2007-for-openmoko.inc
@@ -28,7 +28,7 @@ DISTRO_TYPE ?= "debug"
 IMAGE_LINGUAS = '${@base_less_or_equal("ROOT_FLASH_SIZE", "16", "", "en-gb", d)}'
 
 # set feed path variables
-FEED_BASEPATH = "feeds/2007/${ANGSTROM_PKG_FORMAT}/${ANGSTROMLIBC}/"
+FEED_BASEPATH = "feeds/2007/${ANGSTROM_PKG_FORMAT}/${PREFERRED_LIBC}/"
 
 
 #The angstrom-mirrors.bbclass should have everything, but we can use this as a fallback
diff --git a/conf/distro/include/angstrom.inc b/conf/distro/include/angstrom.inc
index 1f0fced..e18395a 100644
--- a/conf/distro/include/angstrom.inc
+++ b/conf/distro/include/angstrom.inc
@@ -18,11 +18,12 @@ SRC_DIST_LOCAL ?= "symlink"
 
 # Can be "glibc", "eglibc" or "uclibc"
 ANGSTROMLIBC ?= "glibc"
-PSTAGE_EXTRAPATH = "${ANGSTROMLIBC}"
+PREFERRED_LIBC ?= "${ANGSTROMLIBC}"
+PSTAGE_EXTRAPATH = "${PREFERRED_LIBC}"
 
-CACHE = "${TMPDIR}/cache/${ANGSTROMLIBC}/${MACHINE}"
-DEPLOY_DIR = "${TMPDIR}/deploy/${ANGSTROMLIBC}"
-require conf/distro/include/angstrom-${ANGSTROMLIBC}.inc
+CACHE = "${TMPDIR}/cache/${PREFERRED_LIBC}/${MACHINE}"
+DEPLOY_DIR = "${TMPDIR}/deploy/${PREFERRED_LIBC}"
+require conf/distro/include/angstrom-${PREFERRED_LIBC}.inc
 
 # 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)
@@ -144,7 +145,7 @@ PACKAGE_EXTRA_ARCHS_htcwallaby = "arm-oabi"
 
 
 #Name the generated images in a sane way
-IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${ANGSTROMLIBC}-${ANGSTROM_PKG_FORMAT}-${DISTRO_VERSION}-${MACHINE}"
+IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${PREFERRED_LIBC}-${ANGSTROM_PKG_FORMAT}-${DISTRO_VERSION}-${MACHINE}"
 DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}"
 
 # Angstrom *always* has some form of release config, so error out if someone thinks he knows better 
@@ -156,7 +157,7 @@ DISTRO_CHECK := "${@bb.data.getVar("DISTRO_VERSION",d,1) or bb.fatal('Remove thi
 # in their local.conf 
 
 #Name of the client
-TINDER_MACHINE  = "${MACHINE}-${ANGSTROMLIBC}-build-image"
+TINDER_MACHINE  = "${MACHINE}-${PREFERRED_LIBC}-build-image"
 
 # Which lof file to write to, which tree to report to
 TINDER_LOG        = "${TMPDIR}/tinder.log"
diff --git a/conf/distro/include/kaeilos.inc b/conf/distro/include/kaeilos.inc
index 6d5ceb8..18b1489 100644
--- a/conf/distro/include/kaeilos.inc
+++ b/conf/distro/include/kaeilos.inc
@@ -20,12 +20,12 @@ SRC_DIST_LOCAL ?= "symlink"
 INHERIT += "src_distribute_local"
 
 # Can be "glibc", "eglibc" or "uclibc"
-ANGSTROMLIBC ?= "glibc"
-PSTAGE_EXTRAPATH = "${ANGSTROMLIBC}"
+PREFERRED_LIBC ?= "glibc"
+PSTAGE_EXTRAPATH = "${PREFERRED_LIBC}"
 
-CACHE = "${TMPDIR}/cache/${ANGSTROMLIBC}/${MACHINE}"
-DEPLOY_DIR = "${TMPDIR}/deploy/${ANGSTROMLIBC}"
-require conf/distro/include/angstrom-${ANGSTROMLIBC}.inc
+CACHE = "${TMPDIR}/cache/${PREFERRED_LIBC}/${MACHINE}"
+DEPLOY_DIR = "${TMPDIR}/deploy/${PREFERRED_LIBC}"
+require conf/distro/include/angstrom-${PREFERRED_LIBC}.inc
 
 # 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)
@@ -283,7 +283,7 @@ PACKAGE_EXTRA_ARCHS_htcwallaby = "arm-oabi"
 
 
 #Name the generated images in a sane way
-IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${ANGSTROMLIBC}-${ANGSTROM_PKG_FORMAT}-${DISTRO_VERSION}-${MACHINE}"
+IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${PREFERRED_LIBC}-${ANGSTROM_PKG_FORMAT}-${DISTRO_VERSION}-${MACHINE}"
 DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}"
 
 # KaeilOS *always* has some form of release config, so error out if someone thinks he knows better 
diff --git a/conf/distro/jlime-2009.1.conf b/conf/distro/jlime-2009.1.conf
index a72988e..277da3c 100644
--- a/conf/distro/jlime-2009.1.conf
+++ b/conf/distro/jlime-2009.1.conf
@@ -69,6 +69,7 @@ TARGET_OS = "linux"
 TARGET_FPU_arm = "soft"
 TARGET_FPU_armeb = "soft"
 
+PREFERRED_LIBC = "glibc"
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl = "glibc"
 PREFERRED_PROVIDER_virtual/libc = "glibc"
diff --git a/conf/distro/jlime-donkey.conf b/conf/distro/jlime-donkey.conf
index dad1f1f..4ff7f9b 100644
--- a/conf/distro/jlime-donkey.conf
+++ b/conf/distro/jlime-donkey.conf
@@ -23,6 +23,7 @@ PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}g++:gcc-cross"
+PREFERRED_LIBC = "glibc"
 PREFERRED_PROVIDER_virtual/sh3-linux-libc-for-gcc = "glibc"
 PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
 
diff --git a/conf/distro/jlime-henchman.conf b/conf/distro/jlime-henchman.conf
index 5a99ef2..452d62e 100644
--- a/conf/distro/jlime-henchman.conf
+++ b/conf/distro/jlime-henchman.conf
@@ -68,6 +68,7 @@ TARGET_OS = "linux"
 TARGET_FPU_arm = "fixed"
 TARGET_FPU_armeb = "fixed"
 
+PREFERRED_LIBC = "glibc"
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl = "glibc"
 PREFERRED_PROVIDER_virtual/libc = "glibc"
diff --git a/conf/distro/jlime-mongo.conf b/conf/distro/jlime-mongo.conf
index 4e922ea..a262c5c 100644
--- a/conf/distro/jlime-mongo.conf
+++ b/conf/distro/jlime-mongo.conf
@@ -69,6 +69,7 @@ TARGET_OS = "linux"
 TARGET_FPU_arm = "soft"
 TARGET_FPU_armeb = "soft"
 
+PREFERRED_LIBC = "glibc"
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl = "glibc"
 PREFERRED_PROVIDER_virtual/libc = "glibc"
diff --git a/conf/distro/jlime-shrek.conf b/conf/distro/jlime-shrek.conf
index 7928387..610694f 100644
--- a/conf/distro/jlime-shrek.conf
+++ b/conf/distro/jlime-shrek.conf
@@ -15,6 +15,7 @@ PREFERRED_PROVIDERS  =  "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
 PREFERRED_PROVIDERS  =  "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
+PREFERRED_LIBC = "glibc"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
 PREFERRED_PROVIDER_virtual/kernel = "jlime-kernel-${TARGET_ARCH}"
 PREFERRED_PROVIDER_xserver        = "xserver-kdrive"
diff --git a/conf/distro/kaeilos.conf b/conf/distro/kaeilos.conf
index 1cc165b..c584cfc 100644
--- a/conf/distro/kaeilos.conf
+++ b/conf/distro/kaeilos.conf
@@ -41,7 +41,7 @@ IMAGE_LINGUAS = '${@base_less_or_equal("ROOT_FLASH_SIZE", "16", "", "en-us", d)}
 
 
 # set feed path variables
-FEED_BASEPATH = "feeds/2008/${ANGSTROM_PKG_FORMAT}/${ANGSTROMLIBC}/"
+FEED_BASEPATH = "feeds/2008/${ANGSTROM_PKG_FORMAT}/${PREFERRED_LIBC}/"
 
 
 #The angstrom-mirrors.bbclass should have everything, but we can use this as a fallback
diff --git a/conf/distro/mamona.conf b/conf/distro/mamona.conf
index 83e1026..564567d 100644
--- a/conf/distro/mamona.conf
+++ b/conf/distro/mamona.conf
@@ -53,6 +53,7 @@ PREFERRED_VERSION_binutils-cross-sdk ?= "2.18"
 
 # *libc
 TARGET_OS = "linux-gnueabi"
+PREFERRED_LIBC = "glibc"
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl = "glibc"
 PREFERRED_PROVIDER_virtual/libc = "glibc"
diff --git a/conf/distro/minimal-uclibc.conf b/conf/distro/minimal-uclibc.conf
index 62eb86a..82b2fc9 100644
--- a/conf/distro/minimal-uclibc.conf
+++ b/conf/distro/minimal-uclibc.conf
@@ -21,6 +21,7 @@ DISTRO_NAME = "minimal-uclibc"
 TARGET_OS = "linux-uclibc"
 TARGET_FPU_arm = "soft"
 TARGET_FPU_armeb = "soft"
+PREFERRED_LIBC = "uclibc"
 PREFERRED_PROVIDER_virtual/libc = "uclibc"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "uclibc"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
diff --git a/conf/distro/nylon.conf b/conf/distro/nylon.conf
index 3d1f057..54b55a3 100644
--- a/conf/distro/nylon.conf
+++ b/conf/distro/nylon.conf
@@ -16,6 +16,7 @@ TARGET_OS = "linux"
 INHERIT += "package_ipk debian nylon-mirrors"
 INHERIT += "linux-kernel-base"
 
+PREFERRED_LIBC = "glibc"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
diff --git a/conf/distro/openmn.conf b/conf/distro/openmn.conf
index 9de6c7d..b6fcf8a 100644
--- a/conf/distro/openmn.conf
+++ b/conf/distro/openmn.conf
@@ -13,6 +13,7 @@ TARGET_OS = "linux"
 INHERIT += "package_ipk"
 INHERIT += "debian"
 PACKAGE_EXTRA_ARCHS = "armv5te openmn"
+PREFERRED_LIBC = "glibc"
 
 FEED_URIS  = "mnci54##http://www.mn-solutions.de/feed/mnci54/base"
 
diff --git a/conf/distro/openmoko.conf b/conf/distro/openmoko.conf
index 3646108..0b49f92 100644
--- a/conf/distro/openmoko.conf
+++ b/conf/distro/openmoko.conf
@@ -18,6 +18,8 @@ DISTRO = "openmoko"
 
 OVERRIDES = "local:${MACHINE}:openmoko:angstrom:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
 
+PREFERRED_LIBC = "glibc"
+
 INHERIT += "packaged-staging"
 
 CVS_TARBALL_STASH += "http://downloads.openmoko.org/developer/sources/"
diff --git a/conf/distro/openprotium.conf b/conf/distro/openprotium.conf
index 633e3bc..b52a800 100644
--- a/conf/distro/openprotium.conf
+++ b/conf/distro/openprotium.conf
@@ -67,6 +67,7 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
 PREFERRED_PROVIDER_virtual/powerpc-linux-libc-for-gcc = "glibc"
 PREFERRED_PROVIDER_virtual/powerpc-linux-libc-initial = "glibc-initial"
 
+PREFERRED_LIBC = "glibc"
 PREFERRED_PROVIDER_virtual/libc     = "glibc"
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl  = "glibc"
diff --git a/conf/distro/oplinux-uclibc.conf b/conf/distro/oplinux-uclibc.conf
index 3a97c36..1032d1b 100644
--- a/conf/distro/oplinux-uclibc.conf
+++ b/conf/distro/oplinux-uclibc.conf
@@ -31,6 +31,7 @@ DISTRO_TYPE = "debug"
 TARGET_OS = "linux-uclibc"
 PREFERRED_PROVIDER_virtual/libiconv = "libiconv"
 PREFERRED_PROVIDER_virtual/libintl = "gettext"
+PREFERRED_LIBC = "uclibc"
 
 #
 # Kernel
diff --git a/conf/distro/oplinux.conf b/conf/distro/oplinux.conf
index bab726f..9d59549 100644
--- a/conf/distro/oplinux.conf
+++ b/conf/distro/oplinux.conf
@@ -46,6 +46,7 @@ PREFERRED_PROVIDER_esound 		?= "pulseaudio"
 
 
 # glibc:
+PREFERRED_LIBC ?= "glibc"
 PREFERRED_PROVIDER_virtual/libiconv ?= "glibc"
 PREFERRED_PROVIDER_virtual/libintl ?= "glibc"
 PREFERRED_PROVIDER_virtual/libc ?= "glibc"
diff --git a/conf/distro/slugos.conf b/conf/distro/slugos.conf
index 3e816f7..f329179 100644
--- a/conf/distro/slugos.conf
+++ b/conf/distro/slugos.conf
@@ -18,6 +18,7 @@ IMAGE_INITSCRIPTS ?= "initscripts-slugos"
 require conf/distro/include/slugos.inc
 
 # glibc:
+PREFERRED_LIBC ?= "glibc"
 PREFERRED_PROVIDER_virtual/libiconv ?= "glibc"
 PREFERRED_PROVIDER_virtual/libintl ?= "glibc"
 PREFERRED_PROVIDER_virtual/libc ?= "glibc"
diff --git a/conf/distro/ucslugc.conf b/conf/distro/ucslugc.conf
index e3fa016..14d3e99 100644
--- a/conf/distro/ucslugc.conf
+++ b/conf/distro/ucslugc.conf
@@ -8,6 +8,7 @@ TARGET_ARCH = "armeb"
 ARM_INSTRUCTION_SET = "thumb"
 THUMB_INTERWORK = "yes"
 TARGET_OS = "linux-uclibc"
+PREFERRED_LIBC = "uclibc"
 
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
 PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
diff --git a/conf/distro/unslung.conf b/conf/distro/unslung.conf
index 5cb1625..bf74509 100644
--- a/conf/distro/unslung.conf
+++ b/conf/distro/unslung.conf
@@ -51,6 +51,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}binutils:binutils-cross"
 PREFERRED_PROVIDERS += " virtual/libc:glibc"
 PREFERRED_PROVIDERS += " linux-libc-headers:linux-libc-headers"
 
+PREFERRED_LIBC = "glibc"
 PREFERRED_PROVIDER_libc6-unslung = "glibc"
 
 PREFERRED_VERSION_binutils ?= "2.15.94.0.1"
diff --git a/conf/distro/wrt54oe.conf b/conf/distro/wrt54oe.conf
index 4d18407..c9b6e2b 100644
--- a/conf/distro/wrt54oe.conf
+++ b/conf/distro/wrt54oe.conf
@@ -12,6 +12,7 @@
 INHERIT += "package_ipk debian"
 
 TARGET_OS = "linux-uclibc"
+PREFERRED_LIBC = "uclibc"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
-- 
1.6.2.1.469.gdffc

-- 
Tom Rini



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [RFC][PATCH] Add distro inc files for eglibc, glibc and uclibc.
  2009-04-27 14:22 ` [RFC][PATCH] All distro conf files: Use PREFERRED_LIBC to pick or set your libc Tom Rini
@ 2009-04-27 14:23   ` Tom Rini
  2009-04-27 14:23     ` [RFC][PATCH] All distros: Bring in conf/distro/include/${PREFERRED_LIBC}.inc Tom Rini
  0 siblings, 1 reply; 29+ messages in thread
From: Tom Rini @ 2009-04-27 14:23 UTC (permalink / raw)
  To: OpenEmbedded Devel List

 Add distro inc files for eglibc, glibc and uclibc.
 This gives us the libc into OVERRIDES, of glibc for glibc/eglibc and uclibc
 for uclibc. We also ?= for libintl/libiconv and = set the rest of the virtuals.

---
 conf/distro/include/eglibc.inc |    9 +++++++++
 conf/distro/include/glibc.inc  |    9 +++++++++
 conf/distro/include/uclibc.inc |    9 +++++++++
 3 files changed, 27 insertions(+), 0 deletions(-)
 create mode 100644 conf/distro/include/eglibc.inc
 create mode 100644 conf/distro/include/glibc.inc
 create mode 100644 conf/distro/include/uclibc.inc

diff --git a/conf/distro/include/eglibc.inc b/conf/distro/include/eglibc.inc
new file mode 100644
index 0000000..ed3e0ec
--- /dev/null
+++ b/conf/distro/include/eglibc.inc
@@ -0,0 +1,9 @@
+# Add glibc overrides to the overrides for eglibc.
+OVERRIDES .= ":glibc"
+
+# The things eglibc can provide.  We default to wanting eglibc to provide them.
+PREFERRED_PROVIDER_virtual/libiconv ?= "eglibc"
+PREFERRED_PROVIDER_virtual/libintl ?= "eglibc"
+PREFERRED_PROVIDER_virtual/libc = "eglibc"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "eglibc-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "eglibc"
diff --git a/conf/distro/include/glibc.inc b/conf/distro/include/glibc.inc
new file mode 100644
index 0000000..1d6b22d
--- /dev/null
+++ b/conf/distro/include/glibc.inc
@@ -0,0 +1,9 @@
+# Add glibc to the overrides.
+OVERRIDES .= ":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"
diff --git a/conf/distro/include/uclibc.inc b/conf/distro/include/uclibc.inc
new file mode 100644
index 0000000..bb2e2be
--- /dev/null
+++ b/conf/distro/include/uclibc.inc
@@ -0,0 +1,9 @@
+# Add uclibc overrides to the overrides.
+OVERRIDES .= ":uclibc"
+
+# The things uclibc can provide.  We default to wanting uclibc to provide them.
+PREFERRED_PROVIDER_virtual/libiconv ?= "libiconv"
+PREFERRED_PROVIDER_virtual/libintl ?= "gettext"
+PREFERRED_PROVIDER_virtual/libc = "uclibc"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "uclibc-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "uclibc"
-- 
1.6.2.1.469.gdffc

-- 
Tom Rini



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [RFC][PATCH] All distros: Bring in conf/distro/include/${PREFERRED_LIBC}.inc
  2009-04-27 14:23   ` [RFC][PATCH] Add distro inc files for eglibc, glibc and uclibc Tom Rini
@ 2009-04-27 14:23     ` Tom Rini
  2009-04-27 14:24       ` [RFC][PATCH] glibc: In various old recipes add RPROVIDES virtual-libc-dev, bump PR Tom Rini
  0 siblings, 1 reply; 29+ messages in thread
From: Tom Rini @ 2009-04-27 14:23 UTC (permalink / raw)
  To: OpenEmbedded Devel List

 All distros: Bring in conf/distro/include/${PREFERRED_LIBC}.inc

---
 conf/distro/asusoe.conf                            |    1 +
 conf/distro/celinux-test.conf                      |    6 +-----
 conf/distro/chinook-compat.conf                    |    6 ------
 conf/distro/gmustix.conf                           |    2 +-
 conf/distro/include/angstrom-2007-for-openmoko.inc |    1 -
 conf/distro/include/angstrom-eglibc.inc            |   13 +------------
 conf/distro/include/angstrom-glibc.inc             |   16 ++--------------
 conf/distro/include/angstrom-uclibc.inc            |    9 +--------
 conf/distro/include/angstrom-uclinux-uclibc.inc    |    5 +----
 conf/distro/include/sane-toolchain-eglibc.inc      |   20 --------------------
 conf/distro/include/sane-toolchain-glibc.inc       |   17 ++---------------
 conf/distro/include/sane-toolchain-uclibc.inc      |    8 --------
 .../include/sane-toolchain-uclinux-uclibc.inc      |    4 ----
 conf/distro/include/sane-toolchain.inc             |    1 +
 conf/distro/include/slugos.inc                     |    7 -------
 conf/distro/include/uclibc.inc                     |    2 ++
 conf/distro/jlime-2009.1.conf                      |    8 ++------
 conf/distro/jlime-donkey.conf                      |    3 +--
 conf/distro/jlime-henchman.conf                    |    8 ++------
 conf/distro/jlime-mongo.conf                       |    8 ++------
 conf/distro/jlime-shrek.conf                       |    2 +-
 conf/distro/mamona.conf                            |   12 +-----------
 conf/distro/minimal-uclibc.conf                    |    8 ++++----
 conf/distro/nylon.conf                             |    2 +-
 conf/distro/openmn.conf                            |    1 +
 conf/distro/openmoko.conf                          |    1 +
 conf/distro/openprotium.conf                       |    8 +-------
 conf/distro/oplinux-uclibc.conf                    |    3 +--
 conf/distro/oplinux.conf                           |   16 +---------------
 conf/distro/slugos.conf                            |    5 +----
 conf/distro/ucslugc.conf                           |    1 +
 conf/distro/unslung.conf                           |    4 +---
 conf/distro/wrt54oe.conf                           |    2 +-
 33 files changed, 36 insertions(+), 174 deletions(-)

diff --git a/conf/distro/asusoe.conf b/conf/distro/asusoe.conf
index 18778ac..67505b8 100644
--- a/conf/distro/asusoe.conf
+++ b/conf/distro/asusoe.conf
@@ -8,6 +8,7 @@ DISTRO_VERSION = "0.1-alpha"
 TARGET_OS = "linux-uclibc"
 TARGET_SYS = "${TARGET_ARCH}-uclibc"
 PREFERRED_LIBC = "uclibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
 
 CROSS_DIR = "/opt/brcm/hndtools-mipsel-uclibc"
 
diff --git a/conf/distro/celinux-test.conf b/conf/distro/celinux-test.conf
index 7397792..903eb00 100644
--- a/conf/distro/celinux-test.conf
+++ b/conf/distro/celinux-test.conf
@@ -39,7 +39,6 @@ PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-inte
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}binutils:binutils-cross"
-PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
 
 PREFERRED_VERSION_binutils = "2.16"
 PREFERRED_VERSION_binutils-cross = "2.16"
@@ -50,12 +49,9 @@ PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
 PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
 
 PREFERRED_LIBC = "glibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
 PREFERRED_VERSION_glibc = "2.3.5+cvs20050627"
 
-# glibc provides iconv and intl
-PREFERRED_PROVIDER_virtual/libiconv = "glibc"
-PREFERRED_PROVIDER_virtual/libintl = "glibc"
-
 #
 # omap5912osk settings
 #
diff --git a/conf/distro/chinook-compat.conf b/conf/distro/chinook-compat.conf
index 33819ee..f236e8c 100644
--- a/conf/distro/chinook-compat.conf
+++ b/conf/distro/chinook-compat.conf
@@ -50,12 +50,6 @@ PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-inte
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
-PREFERRED_PROVIDER_virtual/libc = "glibc"
-
-# NPTL stuff
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-libc-for-gcc = "glibc"
-
 PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-binutils = "binutils-cross"
 PREFERRED_PROVIDER_linux-libc-header = "linux-libc-headers"
 PREFERRED_PROVIDER_virtual/libx11 = "libx11"
diff --git a/conf/distro/gmustix.conf b/conf/distro/gmustix.conf
index 756176e..e67b8aa 100644
--- a/conf/distro/gmustix.conf
+++ b/conf/distro/gmustix.conf
@@ -4,6 +4,7 @@
 
 INHERIT += "package_tar package_ipk"
 PREFERRED_LIBC = "uclibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
 TARGET_OS = "linux-uclibc"
 TARGET_FPU = "soft"
 IMAGE_FSTYPES = "jffs2"
@@ -12,7 +13,6 @@ PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
-PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:uclibc"
 
 PREFERRED_PROVIDER_classpath = "classpath-minimal"
 
diff --git a/conf/distro/include/angstrom-2007-for-openmoko.inc b/conf/distro/include/angstrom-2007-for-openmoko.inc
index 0c3d265..04f5f63 100644
--- a/conf/distro/include/angstrom-2007-for-openmoko.inc
+++ b/conf/distro/include/angstrom-2007-for-openmoko.inc
@@ -137,7 +137,6 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
 #Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc"
 PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc"
 PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc"
 PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc"
diff --git a/conf/distro/include/angstrom-eglibc.inc b/conf/distro/include/angstrom-eglibc.inc
index c0d87a4..655cf9d 100644
--- a/conf/distro/include/angstrom-eglibc.inc
+++ b/conf/distro/include/angstrom-eglibc.inc
@@ -1,16 +1,5 @@
 # eglibc:
-PREFERRED_PROVIDER_virtual/libiconv = "eglibc"
-PREFERRED_PROVIDER_virtual/libintl = "eglibc"
-PREFERRED_PROVIDER_virtual/libc = "eglibc"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "eglibc-initial"
-
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "eglibc"
-PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc    = "eglibc"
-PREFERRED_PROVIDER_virtual/armeb${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc  = "eglibc"
-PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-libc-for-gcc            = "eglibc"
-PREFERRED_PROVIDER_virtual/powerpc${TARGET_VENDOR}-linux-libc-for-gcc        = "eglibc"
-PREFERRED_PROVIDER_virtual/mipsel${TARGET_VENDOR}-linux-libc-for-gcc         = "eglibc"
-PREFERRED_PROVIDER_virtual/sparc${TARGET_VENDOR}-linux-libc-for-gcc          = "eglibc"
+require conf/distro/include/eglibc.inc
 
 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']]}"
 
diff --git a/conf/distro/include/angstrom-glibc.inc b/conf/distro/include/angstrom-glibc.inc
index b14f880..5df77d8 100644
--- a/conf/distro/include/angstrom-glibc.inc
+++ b/conf/distro/include/angstrom-glibc.inc
@@ -1,19 +1,7 @@
 # glibc:
-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_linux-libc-headers ?= "linux-libc-headers"
-
-#Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc"
-PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc            = "glibc"
-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"
+require conf/distro/include/glibc.inc
 
+PREFERRED_PROVIDER_linux-libc-headers ?= "linux-libc-headers"
 
 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']]}"
 
diff --git a/conf/distro/include/angstrom-uclibc.inc b/conf/distro/include/angstrom-uclibc.inc
index 86a9afd..3079e0d 100644
--- a/conf/distro/include/angstrom-uclibc.inc
+++ b/conf/distro/include/angstrom-uclibc.inc
@@ -1,12 +1,5 @@
 # uclibc:
-#fix some iconv issues, needs to be adjusted when doing uclibc builds
-PREFERRED_PROVIDER_virtual/libc = "uclibc"
-PREFERRED_PROVIDER_virtual/libiconv ?= "libiconv"
-PREFERRED_PROVIDER_virtual/libintl ?= "gettext"
-PREFERRED_PROVIDER_virtual/libintl_avr32 = "proxy-libintl"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "uclibc"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-uclibcgnueabi-libc-for-gcc    = "uclibc-initial"
-PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-uclibcgnueabi-libc-for-gcc  = "uclibc-initial"
+require conf/distro/include/uclibc.inc
 
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
 PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
diff --git a/conf/distro/include/angstrom-uclinux-uclibc.inc b/conf/distro/include/angstrom-uclinux-uclibc.inc
index 68ad145..c3f908c 100644
--- a/conf/distro/include/angstrom-uclinux-uclibc.inc
+++ b/conf/distro/include/angstrom-uclinux-uclibc.inc
@@ -1,8 +1,5 @@
 # uclibc:
-#fix some iconv issues, needs to be adjusted when doing uclibc builds
-PREFERRED_PROVIDER_virtual/libc = "uclibc"
-PREFERRED_PROVIDER_virtual/libiconv ?= "libiconv"
-PREFERRED_PROVIDER_virtual/libintl ?= "gettext"
+require conf/distro/include/uclibc.inc
 
 USE_NLS ?= "no"
 USE_NLS_glib-2.0 = "yes"
diff --git a/conf/distro/include/sane-toolchain-eglibc.inc b/conf/distro/include/sane-toolchain-eglibc.inc
index e780349..1b0d493 100644
--- a/conf/distro/include/sane-toolchain-eglibc.inc
+++ b/conf/distro/include/sane-toolchain-eglibc.inc
@@ -1,26 +1,6 @@
 # Originally brought to you by the Angstrom Distribution
 
 # eglibc:
-PREFERRED_PROVIDER_virtual/libiconv = "eglibc"
-PREFERRED_PROVIDER_virtual/libintl = "eglibc"
-PREFERRED_PROVIDER_virtual/libc = "eglibc"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "eglibc-initial"
-
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "eglibc"
-PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc    = "eglibc"
-PREFERRED_PROVIDER_virtual/armeb${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc  = "eglibc"
-PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-libc-for-gcc            = "eglibc"
-PREFERRED_PROVIDER_virtual/powerpc${TARGET_VENDOR}-linux-libc-for-gcc        = "eglibc"
-PREFERRED_PROVIDER_virtual/mipsel${TARGET_VENDOR}-linux-libc-for-gcc         = "eglibc"
-PREFERRED_PROVIDER_virtual/sparc${TARGET_VENDOR}-linux-libc-for-gcc          = "eglibc"
-
-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']]}"
-
-#TARGET_OS = "linux-gnuspe"
-
-#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
 # [23:00] oxo: glibc (any version) on sparc does not like (repeat me) "-Os"
 
 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
diff --git a/conf/distro/include/sane-toolchain-glibc.inc b/conf/distro/include/sane-toolchain-glibc.inc
index b14f880..b4da525 100644
--- a/conf/distro/include/sane-toolchain-glibc.inc
+++ b/conf/distro/include/sane-toolchain-glibc.inc
@@ -1,19 +1,6 @@
-# glibc:
-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_linux-libc-headers ?= "linux-libc-headers"
-
-#Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc"
-PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc            = "glibc"
-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"
+# Originally brought to you by the Angstrom Distribution
 
+# 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']]}"
 
diff --git a/conf/distro/include/sane-toolchain-uclibc.inc b/conf/distro/include/sane-toolchain-uclibc.inc
index 66ac81a..394b52a 100644
--- a/conf/distro/include/sane-toolchain-uclibc.inc
+++ b/conf/distro/include/sane-toolchain-uclibc.inc
@@ -1,14 +1,6 @@
 # Originally brought to you by the Angstrom Distribution
 
 # uclibc:
-#fix some iconv issues, needs to be adjusted when doing uclibc builds
-PREFERRED_PROVIDER_virtual/libc = "uclibc"
-PREFERRED_PROVIDER_virtual/libiconv ?= "libiconv"
-PREFERRED_PROVIDER_virtual/libintl ?= "gettext"
-PREFERRED_PROVIDER_virtual/libintl_avr32 = "proxy-libintl"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "uclibc"
-PREFERRED_PROVIDER_virtual/arm-${TARGET_VENDOR}-linux-uclibcgnueabi-libc-for-gcc    = "uclibc-initial"
-PREFERRED_PROVIDER_virtual/armeb-${TARGET_VENDOR}-linux-uclibcgnueabi-libc-for-gcc  = "uclibc-initial"
 
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
 PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
diff --git a/conf/distro/include/sane-toolchain-uclinux-uclibc.inc b/conf/distro/include/sane-toolchain-uclinux-uclibc.inc
index 85ccddf..b757efb 100644
--- a/conf/distro/include/sane-toolchain-uclinux-uclibc.inc
+++ b/conf/distro/include/sane-toolchain-uclinux-uclibc.inc
@@ -1,10 +1,6 @@
 # Originally brought to you by the Angstrom Distribution
 
 # uclibc:
-#fix some iconv issues, needs to be adjusted when doing uclibc builds
-PREFERRED_PROVIDER_virtual/libc = "uclibc"
-PREFERRED_PROVIDER_virtual/libiconv ?= "libiconv"
-PREFERRED_PROVIDER_virtual/libintl ?= "gettext"
 
 USE_NLS ?= "no"
 USE_NLS_glib-2.0 = "yes"
diff --git a/conf/distro/include/sane-toolchain.inc b/conf/distro/include/sane-toolchain.inc
index f70e98e..724e879 100644
--- a/conf/distro/include/sane-toolchain.inc
+++ b/conf/distro/include/sane-toolchain.inc
@@ -116,6 +116,7 @@ TARGET_CC_ARCH_pn-cairo_armv5te = "-march=armv4t"
 
 # Can be "glibc", "eglibc" or "uclibc"
 PREFERRED_LIBC ?= "glibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
 PSTAGE_EXTRAPATH = "${PREFERRED_LIBC}"
 require conf/distro/include/sane-toolchain-${PREFERRED_LIBC}.inc
 
diff --git a/conf/distro/include/slugos.inc b/conf/distro/include/slugos.inc
index b141548..252e80d 100644
--- a/conf/distro/include/slugos.inc
+++ b/conf/distro/include/slugos.inc
@@ -120,13 +120,6 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-interme
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc		    = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++		    = "gcc-cross"
 
-#Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc	    = "glibc"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc	    = "glibc"
-PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc	    = "glibc"
-PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-libc-for-gcc   = "glibc"
-PREFERRED_PROVIDER_virtual/armeb-linux-gnueabi-libc-for-gcc = "glibc"
-
 # Set the preferred provider for a few toolchain-related items, otherwise
 # these may be selected from the external-toolchain instead.
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils	    = "binutils-cross"
diff --git a/conf/distro/include/uclibc.inc b/conf/distro/include/uclibc.inc
index bb2e2be..979b7f1 100644
--- a/conf/distro/include/uclibc.inc
+++ b/conf/distro/include/uclibc.inc
@@ -4,6 +4,8 @@ OVERRIDES .= ":uclibc"
 # The things uclibc can provide.  We default to wanting uclibc to provide them.
 PREFERRED_PROVIDER_virtual/libiconv ?= "libiconv"
 PREFERRED_PROVIDER_virtual/libintl ?= "gettext"
+#fix some iconv issues, needs to be adjusted when doing uclibc builds
+PREFERRED_PROVIDER_virtual/libintl_avr32 = "proxy-libintl"
 PREFERRED_PROVIDER_virtual/libc = "uclibc"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "uclibc-initial"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "uclibc"
diff --git a/conf/distro/jlime-2009.1.conf b/conf/distro/jlime-2009.1.conf
index 277da3c..57a853b 100644
--- a/conf/distro/jlime-2009.1.conf
+++ b/conf/distro/jlime-2009.1.conf
@@ -70,12 +70,8 @@ TARGET_FPU_arm = "soft"
 TARGET_FPU_armeb = "soft"
 
 PREFERRED_LIBC = "glibc"
-PREFERRED_PROVIDER_virtual/libiconv = "glibc"
-PREFERRED_PROVIDER_virtual/libintl = "glibc"
-PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
+
 PREFERRED_VERSION_linux-libc-headers = "2.6.18"
 PREFERRED_VERSION_glibc = "2.5"
 
diff --git a/conf/distro/jlime-donkey.conf b/conf/distro/jlime-donkey.conf
index 4ff7f9b..7034cb5 100644
--- a/conf/distro/jlime-donkey.conf
+++ b/conf/distro/jlime-donkey.conf
@@ -24,8 +24,7 @@ PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-inte
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_LIBC = "glibc"
-PREFERRED_PROVIDER_virtual/sh3-linux-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
 
 #<>----------------------------------------------------------------->
 #<> We want this so we can crosscompile the kernel using gcc 3.4.3
diff --git a/conf/distro/jlime-henchman.conf b/conf/distro/jlime-henchman.conf
index 452d62e..55da3d5 100644
--- a/conf/distro/jlime-henchman.conf
+++ b/conf/distro/jlime-henchman.conf
@@ -69,12 +69,8 @@ TARGET_FPU_arm = "fixed"
 TARGET_FPU_armeb = "fixed"
 
 PREFERRED_LIBC = "glibc"
-PREFERRED_PROVIDER_virtual/libiconv = "glibc"
-PREFERRED_PROVIDER_virtual/libintl = "glibc"
-PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
+
 PREFERRED_VERSION_linux-libc-headers = "2.6.23"
 PREFERRED_VERSION_glibc = "2.5"
 
diff --git a/conf/distro/jlime-mongo.conf b/conf/distro/jlime-mongo.conf
index a262c5c..cbf45d9 100644
--- a/conf/distro/jlime-mongo.conf
+++ b/conf/distro/jlime-mongo.conf
@@ -70,12 +70,8 @@ TARGET_FPU_arm = "soft"
 TARGET_FPU_armeb = "soft"
 
 PREFERRED_LIBC = "glibc"
-PREFERRED_PROVIDER_virtual/libiconv = "glibc"
-PREFERRED_PROVIDER_virtual/libintl = "glibc"
-PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
+
 PREFERRED_VERSION_linux-libc-headers = "2.6.18"
 PREFERRED_VERSION_glibc = "2.5"
 
diff --git a/conf/distro/jlime-shrek.conf b/conf/distro/jlime-shrek.conf
index 610694f..08b43a2 100644
--- a/conf/distro/jlime-shrek.conf
+++ b/conf/distro/jlime-shrek.conf
@@ -16,7 +16,7 @@ PREFERRED_PROVIDERS  =  "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-inte
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_LIBC = "glibc"
-PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
 PREFERRED_PROVIDER_virtual/kernel = "jlime-kernel-${TARGET_ARCH}"
 PREFERRED_PROVIDER_xserver        = "xserver-kdrive"
 
diff --git a/conf/distro/mamona.conf b/conf/distro/mamona.conf
index 564567d..2cfe79a 100644
--- a/conf/distro/mamona.conf
+++ b/conf/distro/mamona.conf
@@ -54,23 +54,13 @@ PREFERRED_VERSION_binutils-cross-sdk ?= "2.18"
 # *libc
 TARGET_OS = "linux-gnueabi"
 PREFERRED_LIBC = "glibc"
-PREFERRED_PROVIDER_virtual/libiconv = "glibc"
-PREFERRED_PROVIDER_virtual/libintl = "glibc"
-PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial ?= "glibc-initial"
+require conf/distro/include/${PREFERRED_LIBC}.inc
 
 PREFERRED_VERSION_glibc ?= "2.5"
 PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 PREFERRED_VERSION_glibc-initial ?= "2.5"
 PREFERRED_VERSION_uclibc ?= "0.9.29"
 
-# NPTL stuff
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-mamona-linux-gnueabi-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/armeb-mamona-linux-gnueabi-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-mamona-linux-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/i586-mamona-linux-libc-for-gcc = "glibc"
-
 # Other Packages
 # ==============
 
diff --git a/conf/distro/minimal-uclibc.conf b/conf/distro/minimal-uclibc.conf
index 82b2fc9..62e70e1 100644
--- a/conf/distro/minimal-uclibc.conf
+++ b/conf/distro/minimal-uclibc.conf
@@ -21,12 +21,12 @@ DISTRO_NAME = "minimal-uclibc"
 TARGET_OS = "linux-uclibc"
 TARGET_FPU_arm = "soft"
 TARGET_FPU_armeb = "soft"
-PREFERRED_LIBC = "uclibc"
-PREFERRED_PROVIDER_virtual/libc = "uclibc"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "uclibc"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
 PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
-PREFERRED_PROVIDER_virtual/libiconv = "libiconv"
+
+# Override the default virtual/libintl
+PREFERRED_LIBC = "uclibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
 PREFERRED_PROVIDER_virtual/libintl = "proxy-libintl"
 
 USE_NLS ?= "no"
diff --git a/conf/distro/nylon.conf b/conf/distro/nylon.conf
index 54b55a3..77a79b1 100644
--- a/conf/distro/nylon.conf
+++ b/conf/distro/nylon.conf
@@ -17,11 +17,11 @@ INHERIT += "package_ipk debian nylon-mirrors"
 INHERIT += "linux-kernel-base"
 
 PREFERRED_LIBC = "glibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
-PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
 PREFERRED_PROVIDERS += " virtual/libx11:diet-x11"
 PREFERRED_PROVIDERS += " python:python-curses"
 PREFERRED_PROVIDER_classpath = "classpath-minimal"
diff --git a/conf/distro/openmn.conf b/conf/distro/openmn.conf
index b6fcf8a..19e1dc1 100644
--- a/conf/distro/openmn.conf
+++ b/conf/distro/openmn.conf
@@ -14,6 +14,7 @@ INHERIT += "package_ipk"
 INHERIT += "debian"
 PACKAGE_EXTRA_ARCHS = "armv5te openmn"
 PREFERRED_LIBC = "glibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
 
 FEED_URIS  = "mnci54##http://www.mn-solutions.de/feed/mnci54/base"
 
diff --git a/conf/distro/openmoko.conf b/conf/distro/openmoko.conf
index 0b49f92..06cf866 100644
--- a/conf/distro/openmoko.conf
+++ b/conf/distro/openmoko.conf
@@ -19,6 +19,7 @@ DISTRO = "openmoko"
 OVERRIDES = "local:${MACHINE}:openmoko:angstrom:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
 
 PREFERRED_LIBC = "glibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
 
 INHERIT += "packaged-staging"
 
diff --git a/conf/distro/openprotium.conf b/conf/distro/openprotium.conf
index b52a800..c85bb40 100644
--- a/conf/distro/openprotium.conf
+++ b/conf/distro/openprotium.conf
@@ -63,14 +63,8 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-interme
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/powerpc-linux-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/powerpc-linux-libc-initial = "glibc-initial"
-
 PREFERRED_LIBC = "glibc"
-PREFERRED_PROVIDER_virtual/libc     = "glibc"
-PREFERRED_PROVIDER_virtual/libiconv = "glibc"
-PREFERRED_PROVIDER_virtual/libintl  = "glibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
 
 #silence a warning message...
 PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
diff --git a/conf/distro/oplinux-uclibc.conf b/conf/distro/oplinux-uclibc.conf
index 1032d1b..2237c6a 100644
--- a/conf/distro/oplinux-uclibc.conf
+++ b/conf/distro/oplinux-uclibc.conf
@@ -29,9 +29,8 @@ DISTRO_TYPE = "debug"
 # Target OS & FPU system
 #
 TARGET_OS = "linux-uclibc"
-PREFERRED_PROVIDER_virtual/libiconv = "libiconv"
-PREFERRED_PROVIDER_virtual/libintl = "gettext"
 PREFERRED_LIBC = "uclibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
 
 #
 # Kernel
diff --git a/conf/distro/oplinux.conf b/conf/distro/oplinux.conf
index 9d59549..9eb16b6 100644
--- a/conf/distro/oplinux.conf
+++ b/conf/distro/oplinux.conf
@@ -47,21 +47,7 @@ PREFERRED_PROVIDER_esound 		?= "pulseaudio"
 
 # glibc:
 PREFERRED_LIBC ?= "glibc"
-PREFERRED_PROVIDER_virtual/libiconv ?= "glibc"
-PREFERRED_PROVIDER_virtual/libintl ?= "glibc"
-PREFERRED_PROVIDER_virtual/libc ?= "glibc"
-
-
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-oplinux-linux-gnueabi-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/armeb-oplinux-linux-gnueabi-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/powerpc-oplinux-linux-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/mipsel-oplinux-linux-libc-for-gcc = "glibc"
-PREFERRED_PROVIDER_virtual/sparc-oplinux-linux-libc-for-gcc = "glibc"
-
-
+require conf/distro/include/${PREFERRED_LIBC}.inc
 
 # Virtuals:
 PREFERRED_PROVIDER_virtual/db ?= "db"
diff --git a/conf/distro/slugos.conf b/conf/distro/slugos.conf
index f329179..8a1738e 100644
--- a/conf/distro/slugos.conf
+++ b/conf/distro/slugos.conf
@@ -19,7 +19,4 @@ require conf/distro/include/slugos.inc
 
 # glibc:
 PREFERRED_LIBC ?= "glibc"
-PREFERRED_PROVIDER_virtual/libiconv ?= "glibc"
-PREFERRED_PROVIDER_virtual/libintl ?= "glibc"
-PREFERRED_PROVIDER_virtual/libc ?= "glibc"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial ?= "glibc-initial"
+require conf/distro/include/${PREFERRED_LIBC}.inc
diff --git a/conf/distro/ucslugc.conf b/conf/distro/ucslugc.conf
index 14d3e99..518a3a5 100644
--- a/conf/distro/ucslugc.conf
+++ b/conf/distro/ucslugc.conf
@@ -9,6 +9,7 @@ ARM_INSTRUCTION_SET = "thumb"
 THUMB_INTERWORK = "yes"
 TARGET_OS = "linux-uclibc"
 PREFERRED_LIBC = "uclibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
 
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
 PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
diff --git a/conf/distro/unslung.conf b/conf/distro/unslung.conf
index bf74509..859c89d 100644
--- a/conf/distro/unslung.conf
+++ b/conf/distro/unslung.conf
@@ -45,13 +45,11 @@ PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
-PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-initial:glibc-initial"
-PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}binutils:binutils-cross"
-PREFERRED_PROVIDERS += " virtual/libc:glibc"
 PREFERRED_PROVIDERS += " linux-libc-headers:linux-libc-headers"
 
 PREFERRED_LIBC = "glibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
 PREFERRED_PROVIDER_libc6-unslung = "glibc"
 
 PREFERRED_VERSION_binutils ?= "2.15.94.0.1"
diff --git a/conf/distro/wrt54oe.conf b/conf/distro/wrt54oe.conf
index c9b6e2b..982ba54 100644
--- a/conf/distro/wrt54oe.conf
+++ b/conf/distro/wrt54oe.conf
@@ -13,12 +13,12 @@ INHERIT += "package_ipk debian"
 
 TARGET_OS = "linux-uclibc"
 PREFERRED_LIBC = "uclibc"
+require conf/distro/include/${PREFERRED_LIBC}.inc
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
-PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:uclibc"
 
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
 PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
-- 
1.6.2.1.469.gdffc

-- 
Tom Rini



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [RFC][PATCH] glibc: In various old recipes add RPROVIDES virtual-libc-dev, bump PR.
  2009-04-27 14:23     ` [RFC][PATCH] All distros: Bring in conf/distro/include/${PREFERRED_LIBC}.inc Tom Rini
@ 2009-04-27 14:24       ` Tom Rini
  0 siblings, 0 replies; 29+ messages in thread
From: Tom Rini @ 2009-04-27 14:24 UTC (permalink / raw)
  To: OpenEmbedded Devel List

 glibc: In various old recipes add RPROVIDES virtual-libc-dev, bump PR.
 In some cases we also add in 'libc-dev' if nothing was being provided and
 add RDEPENDS += linux-libc-headers-dev if that was missing.

---
 recipes/glibc/glibc_2.2.5.bb             |    5 +++--
 recipes/glibc/glibc_2.3.2+cvs20040726.bb |    5 ++++-
 recipes/glibc/glibc_2.3.2.bb             |    5 +++--
 recipes/glibc/glibc_2.3.3+cvs20041128.bb |    5 ++++-
 recipes/glibc/glibc_2.3.3+cvs20050221.bb |    5 ++++-
 recipes/glibc/glibc_2.3.3+cvs20050420.bb |    5 ++++-
 recipes/glibc/glibc_2.3.3.bb             |    5 +++--
 recipes/glibc/glibc_2.3.5+cvs20050627.bb |    6 +++++-
 recipes/glibc/glibc_2.3.6.bb             |    5 ++++-
 recipes/glibc/glibc_2.4.bb               |    3 ++-
 recipes/glibc/glibc_cvs.bb               |    3 ++-
 11 files changed, 38 insertions(+), 14 deletions(-)

diff --git a/recipes/glibc/glibc_2.2.5.bb b/recipes/glibc/glibc_2.2.5.bb
index 7cb6681..5b3fbb4 100644
--- a/recipes/glibc/glibc_2.2.5.bb
+++ b/recipes/glibc/glibc_2.2.5.bb
@@ -1,7 +1,7 @@
 require glibc.inc
 
 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs"
-PR = "r20"
+PR = "r21"
 
 DEFAULT_PREFERENCE_sh3 = "-99"
 
@@ -41,7 +41,8 @@ DEPENDS_catchsegv = "libsegfault"
 FILES_glibc-pcprofile = "/lib/libpcprofile.so"
 FILES_glibc-thread-db = "/lib/libthread_db*"
 FILES_localedef = "${bindir}/localedef"
-RPROVIDES_glibc-dev += "libc-dev"
+RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
 
 #	   file://noinfo.patch;patch=1 \
 #	   file://ldconfig.patch;patch=1;pnum=0 \
diff --git a/recipes/glibc/glibc_2.3.2+cvs20040726.bb b/recipes/glibc/glibc_2.3.2+cvs20040726.bb
index f0521d4..754c85f 100644
--- a/recipes/glibc/glibc_2.3.2+cvs20040726.bb
+++ b/recipes/glibc/glibc_2.3.2+cvs20040726.bb
@@ -3,7 +3,7 @@ require glibc.inc
 DEFAULT_PREFERENCE_sh3 = "-99"
 
 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs"
-PR = "r30"
+PR = "r31"
 
 GLIBC_ADDONS ?= "linuxthreads"
 
@@ -31,6 +31,9 @@ SRC_URI_append_openmn = " file://ldsocache-varrun.patch;patch=1"
 S = "${WORKDIR}/libc"
 B = "${WORKDIR}/build-${TARGET_SYS}"
 
+RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
+
 EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
 	        --without-cvs --disable-profile --disable-debug --without-gd \
 		--enable-clocale=gnu \
diff --git a/recipes/glibc/glibc_2.3.2.bb b/recipes/glibc/glibc_2.3.2.bb
index 891d9da..2d2663f 100644
--- a/recipes/glibc/glibc_2.3.2.bb
+++ b/recipes/glibc/glibc_2.3.2.bb
@@ -1,6 +1,6 @@
 require glibc.inc
 
-PR = "r19"
+PR = "r20"
 
 DEFAULT_PREFERENCE_sh3 = "-99"
 
@@ -38,7 +38,8 @@ DEPENDS_catchsegv = "libsegfault"
 FILES_glibc-pcprofile = "/lib/libpcprofile.so"
 FILES_glibc-thread-db = "/lib/libthread_db*"
 FILES_localedef = "${bindir}/localedef"
-RPROVIDES_glibc-dev += "libc-dev"
+RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
 
 SRC_URI = "ftp://ftp.gnu.org/gnu/glibc/glibc-${PV}.tar.gz \
 	   ftp://ftp.gnu.org/pub/gnu/glibc/glibc-linuxthreads-2.3.2.tar.gz \
diff --git a/recipes/glibc/glibc_2.3.3+cvs20041128.bb b/recipes/glibc/glibc_2.3.3+cvs20041128.bb
index 560347d..02be256 100644
--- a/recipes/glibc/glibc_2.3.3+cvs20041128.bb
+++ b/recipes/glibc/glibc_2.3.3+cvs20041128.bb
@@ -3,7 +3,7 @@ require glibc.inc
 DEFAULT_PREFERENCE_sh3 = "-99"
 
 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs"
-PR = "r15"
+PR = "r16"
 
 GLIBC_ADDONS ?= "linuxthreads"
 
@@ -50,6 +50,9 @@ SRC_URI_append_openmn = " file://ldsocache-varrun.patch;patch=1"
 S = "${WORKDIR}/libc"
 B = "${WORKDIR}/build-${TARGET_SYS}"
 
+RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
+
 EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
 	        --without-cvs --disable-profile --disable-debug --without-gd \
 		--enable-clocale=gnu \
diff --git a/recipes/glibc/glibc_2.3.3+cvs20050221.bb b/recipes/glibc/glibc_2.3.3+cvs20050221.bb
index e0becb8..4eff27f 100644
--- a/recipes/glibc/glibc_2.3.3+cvs20050221.bb
+++ b/recipes/glibc/glibc_2.3.3+cvs20050221.bb
@@ -3,7 +3,7 @@ require glibc.inc
 DEFAULT_PREFERENCE_sh3 = "-99"
 
 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs"
-PR = "r15"
+PR = "r16"
 
 GLIBC_ADDONS ?= "linuxthreads"
 
@@ -35,6 +35,9 @@ SRC_URI_append_openmn = " file://ldsocache-varrun.patch;patch=1"
 S = "${WORKDIR}/libc"
 B = "${WORKDIR}/build-${TARGET_SYS}"
 
+RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
+
 EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
 	        --without-cvs --disable-profile --disable-debug --without-gd \
 		--enable-clocale=gnu \
diff --git a/recipes/glibc/glibc_2.3.3+cvs20050420.bb b/recipes/glibc/glibc_2.3.3+cvs20050420.bb
index 1ae3518..65654dc 100644
--- a/recipes/glibc/glibc_2.3.3+cvs20050420.bb
+++ b/recipes/glibc/glibc_2.3.3+cvs20050420.bb
@@ -5,7 +5,7 @@ DEFAULT_PREFERENCE_i586 = "0"
 DEFAULT_PREFERENCE_sh3 = "-99"
 
 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs"
-PR = "r13"
+PR = "r14"
 
 GLIBC_ADDONS ?= "linuxthreads"
 
@@ -36,6 +36,9 @@ SRC_URI_append_openmn = " file://ldsocache-varrun.patch;patch=1"
 S = "${WORKDIR}/libc"
 B = "${WORKDIR}/build-${TARGET_SYS}"
 
+RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
+
 EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
 	        --without-cvs --disable-profile --disable-debug --without-gd \
 		--enable-clocale=gnu \
diff --git a/recipes/glibc/glibc_2.3.3.bb b/recipes/glibc/glibc_2.3.3.bb
index 03711f7..05a8581 100644
--- a/recipes/glibc/glibc_2.3.3.bb
+++ b/recipes/glibc/glibc_2.3.3.bb
@@ -1,6 +1,6 @@
 require glibc.inc
 
-PR = "r16"
+PR = "r17"
 
 DEFAULT_PREFERENCE_sh3 = "-99"
 
@@ -41,7 +41,8 @@ DEPENDS_catchsegv = "libsegfault"
 FILES_glibc-pcprofile = "/lib/libpcprofile.so"
 FILES_glibc-thread-db = "/lib/libthread_db*"
 FILES_localedef = "${bindir}/localedef"
-RPROVIDES_glibc-dev += "libc-dev"
+RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
 
 SRC_URI = "ftp://ftp.gnu.org/gnu/glibc/glibc-${PV}.tar.gz \
 	   ftp://ftp.gnu.org/pub/gnu/glibc/glibc-linuxthreads-${PV}.tar.gz \
diff --git a/recipes/glibc/glibc_2.3.5+cvs20050627.bb b/recipes/glibc/glibc_2.3.5+cvs20050627.bb
index c9d0b66..5fa4010 100644
--- a/recipes/glibc/glibc_2.3.5+cvs20050627.bb
+++ b/recipes/glibc/glibc_2.3.5+cvs20050627.bb
@@ -2,7 +2,7 @@ require glibc.inc
 
 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs-2.3.5"
 SRCDATE = "20050627"
-PR = "r22"
+PR = "r23"
 
 #Doesnt build for sh3
 DEFAULT_PREFERENCE_sh3="-1"
@@ -28,6 +28,7 @@ python __anonymous () {
 }
 
 RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
 
 #	   file://noinfo.patch;patch=1
 #	   file://ldconfig.patch;patch=1;pnum=0
@@ -66,6 +67,9 @@ SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1 \
 S = "${WORKDIR}/libc"
 B = "${WORKDIR}/build-${TARGET_SYS}"
 
+RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
+
 EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
 	        --without-cvs --disable-profile --disable-debug --without-gd \
 		--enable-clocale=gnu \
diff --git a/recipes/glibc/glibc_2.3.6.bb b/recipes/glibc/glibc_2.3.6.bb
index 8442a15..ab167da 100644
--- a/recipes/glibc/glibc_2.3.6.bb
+++ b/recipes/glibc/glibc_2.3.6.bb
@@ -1,6 +1,6 @@
 require glibc.inc
 
-PR = "r4"
+PR = "r5"
 
 #FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.3.6', '${FILE_DIRNAME}/orig/glibc', '${FILE_DIRNAME}/orig/files', '${FILE_DIRNAME}/orig' ], d)}"
 
@@ -35,6 +35,9 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
 S = "${WORKDIR}/glibc-${PV}"
 B = "${WORKDIR}/build-${TARGET_SYS}"
 
+RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
+
 EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
 	        --without-cvs --disable-profile --disable-debug --without-gd \
 		--enable-clocale=gnu \
diff --git a/recipes/glibc/glibc_2.4.bb b/recipes/glibc/glibc_2.4.bb
index 8ee1000..54fe487 100644
--- a/recipes/glibc/glibc_2.4.bb
+++ b/recipes/glibc/glibc_2.4.bb
@@ -1,6 +1,6 @@
 require glibc.inc
 
-PR = "r20"
+PR = "r21"
 
 #add the hosts that are confirmed to be working to COMPATIBLE_HOSTi
 COMPATIBLE_HOST = '(i.86.*-linux|sh.*-linux)'
@@ -34,6 +34,7 @@ python __anonymous () {
 }
 
 RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
 
 #	   file://noinfo.patch;patch=1
 #	   file://ldconfig.patch;patch=1;pnum=0
diff --git a/recipes/glibc/glibc_cvs.bb b/recipes/glibc/glibc_cvs.bb
index 186c7d6..26d29f0 100644
--- a/recipes/glibc/glibc_cvs.bb
+++ b/recipes/glibc/glibc_cvs.bb
@@ -1,7 +1,7 @@
 require glibc.inc
 
 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs-2.3.5"
-PR = "r11"
+PR = "r12"
 PV = "2.3.5+cvs${SRCDATE}"
 
 GLIBC_ADDONS ?= "ports,linuxthreads"
@@ -25,6 +25,7 @@ python __anonymous () {
 }
 
 RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
 
 #	   file://noinfo.patch;patch=1
 #	   file://ldconfig.patch;patch=1;pnum=0
-- 
1.6.2.1.469.gdffc

-- 
Tom Rini



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-04-27 14:19 [RFC] Bring PREFERRED_LIBC to all distros Tom Rini
  2009-04-27 14:22 ` [RFC][PATCH] All distro conf files: Use PREFERRED_LIBC to pick or set your libc Tom Rini
@ 2009-04-27 15:33 ` Koen Kooi
  2009-04-27 15:43   ` Tom Rini
  2009-04-27 15:35 ` Otavio Salvador
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 29+ messages in thread
From: Koen Kooi @ 2009-04-27 15:33 UTC (permalink / raw)
  To: openembedded-devel

On 27-04-09 16:19, Tom Rini wrote:
> Hey all.  I've created a new branch, trini/add-libc-overrides which does
> the following:
> - Make every distro declare PREFERRED_LIBC, either outright or
>    overridable.

ACK on the idea, NACK on the implementation.

ANGSTROMLIBC is called ANGSTROMLIBC and not ANGSTROM_LIBC for a reason, 
since you can't pass env vars with underscores throught bitbake: 
http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-December/007258.html

I've shown the PREFERRED_LIBC thing in the past to other OE core 
developers as an example of the mindless copy/paste/rename process in 
angstrom clones. Don't clone if you don't know what you are doing.

So please keep things you want to override in buildscripts (e.g. 
machine, libc, distro) underscore free :)

regards,

Koen




^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-04-27 14:19 [RFC] Bring PREFERRED_LIBC to all distros Tom Rini
  2009-04-27 14:22 ` [RFC][PATCH] All distro conf files: Use PREFERRED_LIBC to pick or set your libc Tom Rini
  2009-04-27 15:33 ` [RFC] Bring PREFERRED_LIBC to all distros Koen Kooi
@ 2009-04-27 15:35 ` Otavio Salvador
  2009-04-29 16:06   ` Tom Rini
  2009-04-28 20:30 ` Khem Raj
  2009-04-29 16:12 ` Tom Rini
  4 siblings, 1 reply; 29+ messages in thread
From: Otavio Salvador @ 2009-04-27 15:35 UTC (permalink / raw)
  To: openembedded-devel; +Cc: OpenEmbedded Devel List

Hello Tom,

On Mon, Apr 27, 2009 at 11:19 AM, Tom Rini <trini@embeddedalley.com> wrote:
> That branch has been tested with bitbake -g meta-toolchain minimal image
> for every distro for nslu2be nslu2le and beagleboard (arm/armeb/newer
> arm) before and after, and the only differences are the stuff that now
> parses thanks to the glibc changes.  I've got a loop going now with
> qemux86 db1200 and mpc8313e-rdb but don't expect any problems.  I'll be
> following up with the patches shortly.

qemux86 raises an alarm from my side ;-)

-- 
Otavio Salvador                  O.S. Systems
E-mail: otavio@ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854         http://projetos.ossystems.com.br



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-04-27 15:33 ` [RFC] Bring PREFERRED_LIBC to all distros Koen Kooi
@ 2009-04-27 15:43   ` Tom Rini
  2009-04-27 16:45     ` Koen Kooi
  0 siblings, 1 reply; 29+ messages in thread
From: Tom Rini @ 2009-04-27 15:43 UTC (permalink / raw)
  To: openembedded-devel

On Mon, Apr 27, 2009 at 05:33:31PM +0200, Koen Kooi wrote:
> On 27-04-09 16:19, Tom Rini wrote:
>> Hey all.  I've created a new branch, trini/add-libc-overrides which does
>> the following:
>> - Make every distro declare PREFERRED_LIBC, either outright or
>>    overridable.
>
> ACK on the idea, NACK on the implementation.
>
> ANGSTROMLIBC is called ANGSTROMLIBC and not ANGSTROM_LIBC for a reason,  
> since you can't pass env vars with underscores throught bitbake:  
> http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-December/007258.html

OK.  But what about ANGSTROM_GCC_VERSION ?  I've been passing that in
via BB_ENV_EXTRAWHITE for a while and it's working, as far as I can
tell.

But, OK, I'll redo it as PREFERREDLIBC and get a new branch up soon.

-- 
Tom Rini



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-04-27 15:43   ` Tom Rini
@ 2009-04-27 16:45     ` Koen Kooi
  2009-04-27 16:51       ` Tom Rini
  0 siblings, 1 reply; 29+ messages in thread
From: Koen Kooi @ 2009-04-27 16:45 UTC (permalink / raw)
  To: openembedded-devel

On 27-04-09 17:43, Tom Rini wrote:
> On Mon, Apr 27, 2009 at 05:33:31PM +0200, Koen Kooi wrote:
>> On 27-04-09 16:19, Tom Rini wrote:
>>> Hey all.  I've created a new branch, trini/add-libc-overrides which does
>>> the following:
>>> - Make every distro declare PREFERRED_LIBC, either outright or
>>>     overridable.
>>
>> ACK on the idea, NACK on the implementation.
>>
>> ANGSTROMLIBC is called ANGSTROMLIBC and not ANGSTROM_LIBC for a reason,
>> since you can't pass env vars with underscores throught bitbake:
>> http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-December/007258.html
>
> OK.  But what about ANGSTROM_GCC_VERSION ?  I've been passing that in
> via BB_ENV_EXTRAWHITE for a while and it's working, as far as I can
> tell.

With bitbake 1.8.12? If it's fixed in bitbake svn, great!

regards,

Koen




^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-04-27 16:45     ` Koen Kooi
@ 2009-04-27 16:51       ` Tom Rini
  2009-04-27 17:32         ` Philip Balister
  0 siblings, 1 reply; 29+ messages in thread
From: Tom Rini @ 2009-04-27 16:51 UTC (permalink / raw)
  To: openembedded-devel

On Mon, Apr 27, 2009 at 06:45:02PM +0200, Koen Kooi wrote:
> On 27-04-09 17:43, Tom Rini wrote:
>> On Mon, Apr 27, 2009 at 05:33:31PM +0200, Koen Kooi wrote:
>>> On 27-04-09 16:19, Tom Rini wrote:
>>>> Hey all.  I've created a new branch, trini/add-libc-overrides which does
>>>> the following:
>>>> - Make every distro declare PREFERRED_LIBC, either outright or
>>>>     overridable.
>>>
>>> ACK on the idea, NACK on the implementation.
>>>
>>> ANGSTROMLIBC is called ANGSTROMLIBC and not ANGSTROM_LIBC for a reason,
>>> since you can't pass env vars with underscores throught bitbake:
>>> http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-December/007258.html
>>
>> OK.  But what about ANGSTROM_GCC_VERSION ?  I've been passing that in
>> via BB_ENV_EXTRAWHITE for a while and it's working, as far as I can
>> tell.
>
> With bitbake 1.8.12? If it's fixed in bitbake svn, great!

Yeap.  Even double-checked my build-dirs to be sure,
tmp.4.1.2/work/armv6... has gcc-4.1.2 stuff in it.

-- 
Tom Rini



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-04-27 16:51       ` Tom Rini
@ 2009-04-27 17:32         ` Philip Balister
  2009-04-27 17:36           ` Tom Rini
  0 siblings, 1 reply; 29+ messages in thread
From: Philip Balister @ 2009-04-27 17:32 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 1234 bytes --]

Tom Rini wrote:
> On Mon, Apr 27, 2009 at 06:45:02PM +0200, Koen Kooi wrote:
>> On 27-04-09 17:43, Tom Rini wrote:
>>> On Mon, Apr 27, 2009 at 05:33:31PM +0200, Koen Kooi wrote:
>>>> On 27-04-09 16:19, Tom Rini wrote:
>>>>> Hey all.  I've created a new branch, trini/add-libc-overrides which does
>>>>> the following:
>>>>> - Make every distro declare PREFERRED_LIBC, either outright or
>>>>>     overridable.
>>>> ACK on the idea, NACK on the implementation.
>>>>
>>>> ANGSTROMLIBC is called ANGSTROMLIBC and not ANGSTROM_LIBC for a reason,
>>>> since you can't pass env vars with underscores throught bitbake:
>>>> http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-December/007258.html
>>> OK.  But what about ANGSTROM_GCC_VERSION ?  I've been passing that in
>>> via BB_ENV_EXTRAWHITE for a while and it's working, as far as I can
>>> tell.
>> With bitbake 1.8.12? If it's fixed in bitbake svn, great!
> 
> Yeap.  Even double-checked my build-dirs to be sure,
> tmp.4.1.2/work/armv6... has gcc-4.1.2 stuff in it.

What bitbake is in the stable branch? We should be careful forcing dev 
to diverge stable for at least a few months ....

Of course, we can update .stables bitbake also.

Philip

[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/x-pkcs7-signature, Size: 3303 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-04-27 17:32         ` Philip Balister
@ 2009-04-27 17:36           ` Tom Rini
  0 siblings, 0 replies; 29+ messages in thread
From: Tom Rini @ 2009-04-27 17:36 UTC (permalink / raw)
  To: openembedded-devel

On Mon, Apr 27, 2009 at 01:32:43PM -0400, Philip Balister wrote:
> Tom Rini wrote:
>> On Mon, Apr 27, 2009 at 06:45:02PM +0200, Koen Kooi wrote:
>>> On 27-04-09 17:43, Tom Rini wrote:
>>>> On Mon, Apr 27, 2009 at 05:33:31PM +0200, Koen Kooi wrote:
>>>>> On 27-04-09 16:19, Tom Rini wrote:
>>>>>> Hey all.  I've created a new branch, trini/add-libc-overrides which does
>>>>>> the following:
>>>>>> - Make every distro declare PREFERRED_LIBC, either outright or
>>>>>>     overridable.
>>>>> ACK on the idea, NACK on the implementation.
>>>>>
>>>>> ANGSTROMLIBC is called ANGSTROMLIBC and not ANGSTROM_LIBC for a reason,
>>>>> since you can't pass env vars with underscores throught bitbake:
>>>>> http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-December/007258.html
>>>> OK.  But what about ANGSTROM_GCC_VERSION ?  I've been passing that in
>>>> via BB_ENV_EXTRAWHITE for a while and it's working, as far as I can
>>>> tell.
>>> With bitbake 1.8.12? If it's fixed in bitbake svn, great!
>>
>> Yeap.  Even double-checked my build-dirs to be sure,
>> tmp.4.1.2/work/armv6... has gcc-4.1.2 stuff in it.
>
> What bitbake is in the stable branch? We should be careful forcing dev  
> to diverge stable for at least a few months ....
>
> Of course, we can update .stables bitbake also.

Stable is .12 as well.  There's a few nice cleanups that Chris has done
that don't quite work with .12, but do with what's in development
(COLLECTIONS for example) so we need to think about this problem for
other reasons :)

-- 
Tom Rini



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-04-27 14:19 [RFC] Bring PREFERRED_LIBC to all distros Tom Rini
                   ` (2 preceding siblings ...)
  2009-04-27 15:35 ` Otavio Salvador
@ 2009-04-28 20:30 ` Khem Raj
  2009-04-28 20:55   ` Tom Rini
  2009-04-29 16:12 ` Tom Rini
  4 siblings, 1 reply; 29+ messages in thread
From: Khem Raj @ 2009-04-28 20:30 UTC (permalink / raw)
  To: openembedded-devel; +Cc: OpenEmbedded Devel List

On (27/04/09 07:19), Tom Rini wrote:
> Hey all.  I've created a new branch, trini/add-libc-overrides which does
> the following:
> - Make every distro declare PREFERRED_LIBC, either outright or
>   overridable.

may be you should call it something like SYSTEM_LIBC

> - For Angstrom/foonas have DISTROVAR ?= ${PREFERRED_LIBC},
>   PREFERRED_LIBC ?= default
> - Add conf/distro/include/{eglibc,glibc,uclibc}.inc that have:
>   - Add 'glibc' to OVERRIDES for eglibc/glibc and 'uclibc' for
>     uclibc.inc

what about klibc so some distro's use klibc too ?

>   - Default providers.
>   NOTE: ${TARGET_PREFIX} includes ${TARGET_VENDOR} so ...
> - Switch all distros to have:
>   require conf/distro/include/${PREFERED_LIBC}.inc
>   - Clean up distro-specific includes, and sane-toolchain.inc a little
>     bit by removing all of the PREFERRED_PROVIDER stuff it no longer
>     needs.
> - For glibc*.bb older than 2.5, add in some missing RPROVIDES.

OK

> 
> That last change was required so that a number of distros would parse
> without trying to build say both glibc_2.3.3 and glibc_2.9 (for
> virtual-libc-dev) when I ran bitbake -g meta-toolchain minimal-image.
> 
> The next step, once something like this goes in, would be to change all
> of the overrides that test for uclibc (or glibc) from
> linux/linux-gnueabi vs linux-uclibc/linux-uclibcgnueabi to just
> linux_glibc vs linux_uclibc.

only those two ? or one for each libc we have.

> 
> That branch has been tested with bitbake -g meta-toolchain minimal image
> for every distro for nslu2be nslu2le and beagleboard (arm/armeb/newer
> arm) before and after, and the only differences are the stuff that now
> parses thanks to the glibc changes.  I've got a loop going now with
> qemux86 db1200 and mpc8313e-rdb but don't expect any problems.  I'll be
> following up with the patches shortly.


general approach is good.

> 
> -- 
> Tom Rini
> 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-04-28 20:30 ` Khem Raj
@ 2009-04-28 20:55   ` Tom Rini
  2009-04-29  5:40     ` Koen Kooi
  0 siblings, 1 reply; 29+ messages in thread
From: Tom Rini @ 2009-04-28 20:55 UTC (permalink / raw)
  To: openembedded-devel

On Tue, Apr 28, 2009 at 01:30:09PM -0700, Khem Raj wrote:
> On (27/04/09 07:19), Tom Rini wrote:
> > Hey all.  I've created a new branch, trini/add-libc-overrides which does
> > the following:
> > - Make every distro declare PREFERRED_LIBC, either outright or
> >   overridable.
> 
> may be you should call it something like SYSTEM_LIBC

OK, will rework and get a new branch up sometime soon.

> > - For Angstrom/foonas have DISTROVAR ?= ${PREFERRED_LIBC},
> >   PREFERRED_LIBC ?= default
> > - Add conf/distro/include/{eglibc,glibc,uclibc}.inc that have:
> >   - Add 'glibc' to OVERRIDES for eglibc/glibc and 'uclibc' for
> >     uclibc.inc
> 
> what about klibc so some distro's use klibc too ?

Not that I could see.  At least not as the only libc.

> > That last change was required so that a number of distros would parse
> > without trying to build say both glibc_2.3.3 and glibc_2.9 (for
> > virtual-libc-dev) when I ran bitbake -g meta-toolchain minimal-image.
> > 
> > The next step, once something like this goes in, would be to change all
> > of the overrides that test for uclibc (or glibc) from
> > linux/linux-gnueabi vs linux-uclibc/linux-uclibcgnueabi to just
> > linux_glibc vs linux_uclibc.
> 
> only those two ? or one for each libc we have.

Until eglibc / glibc need different overrides, there's no need to have
them be different.  uClibc isn't always done correctly however as you
have to catch both (ie the USE_NLS thing in the gcc recipes isn't right
for every version).  And if we add another libc, we'll add another
override of course.

-- 
Tom Rini



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-04-28 20:55   ` Tom Rini
@ 2009-04-29  5:40     ` Koen Kooi
  0 siblings, 0 replies; 29+ messages in thread
From: Koen Kooi @ 2009-04-29  5:40 UTC (permalink / raw)
  To: openembedded-devel

On 28-04-09 22:55, Tom Rini wrote:
> On Tue, Apr 28, 2009 at 01:30:09PM -0700, Khem Raj wrote:
>> On (27/04/09 07:19), Tom Rini wrote:
>>> Hey all.  I've created a new branch, trini/add-libc-overrides which does
>>> the following:
>>> - Make every distro declare PREFERRED_LIBC, either outright or
>>>    overridable.
>>
>> may be you should call it something like SYSTEM_LIBC
>
> OK, will rework and get a new branch up sometime soon

Or just plain 'LIBC', avoids underscores as well :)

regards,

Koen




^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-04-27 15:35 ` Otavio Salvador
@ 2009-04-29 16:06   ` Tom Rini
  0 siblings, 0 replies; 29+ messages in thread
From: Tom Rini @ 2009-04-29 16:06 UTC (permalink / raw)
  To: openembedded-devel; +Cc: OpenEmbedded Devel List

On Mon, Apr 27, 2009 at 12:35:02PM -0300, Otavio Salvador wrote:
> Hello Tom,
> 
> On Mon, Apr 27, 2009 at 11:19 AM, Tom Rini <trini@embeddedalley.com> wrote:
> > That branch has been tested with bitbake -g meta-toolchain minimal image
> > for every distro for nslu2be nslu2le and beagleboard (arm/armeb/newer
> > arm) before and after, and the only differences are the stuff that now
> > parses thanks to the glibc changes.  I've got a loop going now with
> > qemux86 db1200 and mpc8313e-rdb but don't expect any problems.  I'll be
> > following up with the patches shortly.
> 
> qemux86 raises an alarm from my side ;-)

Sorry?  I just checked my log before and after and I don't see any
change.

-- 
Tom Rini



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-04-27 14:19 [RFC] Bring PREFERRED_LIBC to all distros Tom Rini
                   ` (3 preceding siblings ...)
  2009-04-28 20:30 ` Khem Raj
@ 2009-04-29 16:12 ` Tom Rini
  2009-04-29 23:25   ` Leon Woestenberg
  2009-05-02 19:55   ` Mike (mwester)
  4 siblings, 2 replies; 29+ messages in thread
From: Tom Rini @ 2009-04-29 16:12 UTC (permalink / raw)
  To: OpenEmbedded Devel List

On Mon, Apr 27, 2009 at 07:19:43AM -0700, Tom Rini wrote:

> Hey all.  I've created a new branch, trini/add-libc-overrides which does
> the following:
> - Make every distro declare PREFERRED_LIBC, either outright or
>   overridable.
> - For Angstrom/foonas have DISTROVAR ?= ${PREFERRED_LIBC},
>   PREFERRED_LIBC ?= default
> - Add conf/distro/include/{eglibc,glibc,uclibc}.inc that have:
>   - Add 'glibc' to OVERRIDES for eglibc/glibc and 'uclibc' for
>     uclibc.inc
>   - Default providers.
>   NOTE: ${TARGET_PREFIX} includes ${TARGET_VENDOR} so ...
> - Switch all distros to have:
>   require conf/distro/include/${PREFERED_LIBC}.inc
>   - Clean up distro-specific includes, and sane-toolchain.inc a little
>     bit by removing all of the PREFERRED_PROVIDER stuff it no longer
>     needs.
> - For glibc*.bb older than 2.5, add in some missing RPROVIDES.

I've pushed a trini/add-libc-overrides-2 branch with the following
changes:
- Change PREFERRED_LIBC to LIBC
- Fold fixing up minimal/minimal-uclibc into the commit that brings in
  the libc inc file.
- Re-order commits so that everything is functional from commit to
  commit.

I'm now looking for ack's to pull this branch into .dev

-- 
Tom Rini



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-04-29 16:12 ` Tom Rini
@ 2009-04-29 23:25   ` Leon Woestenberg
  2009-05-02 19:55   ` Mike (mwester)
  1 sibling, 0 replies; 29+ messages in thread
From: Leon Woestenberg @ 2009-04-29 23:25 UTC (permalink / raw)
  To: openembedded-devel; +Cc: OpenEmbedded Devel List

Hello Tom,

On Wed, Apr 29, 2009 at 6:12 PM, Tom Rini <trini@embeddedalley.com> wrote:
> On Mon, Apr 27, 2009 at 07:19:43AM -0700, Tom Rini wrote:
> - Change PREFERRED_LIBC to LIBC
>
Yes, this approach is simple and sane, and doesn't confuse people. Thanks Koen.

> I'm now looking for ack's to pull this branch into .dev
>
Acked-by: Leon Woestenberg <leon@sidebranch.com>

Regards,
-- 
Leon



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-04-29 16:12 ` Tom Rini
  2009-04-29 23:25   ` Leon Woestenberg
@ 2009-05-02 19:55   ` Mike (mwester)
  2009-05-03 12:29     ` Leon Woestenberg
  1 sibling, 1 reply; 29+ messages in thread
From: Mike (mwester) @ 2009-05-02 19:55 UTC (permalink / raw)
  To: openembedded-devel

Acked-by: Mike Westerhof <mwester@dls.net>

(Tested fine for the SlugOS distro)

Tom Rini wrote:
> On Mon, Apr 27, 2009 at 07:19:43AM -0700, Tom Rini wrote:
> 
>> Hey all.  I've created a new branch, trini/add-libc-overrides which does
>> the following:
>> - Make every distro declare PREFERRED_LIBC, either outright or
>>   overridable.
>> - For Angstrom/foonas have DISTROVAR ?= ${PREFERRED_LIBC},
>>   PREFERRED_LIBC ?= default
>> - Add conf/distro/include/{eglibc,glibc,uclibc}.inc that have:
>>   - Add 'glibc' to OVERRIDES for eglibc/glibc and 'uclibc' for
>>     uclibc.inc
>>   - Default providers.
>>   NOTE: ${TARGET_PREFIX} includes ${TARGET_VENDOR} so ...
>> - Switch all distros to have:
>>   require conf/distro/include/${PREFERED_LIBC}.inc
>>   - Clean up distro-specific includes, and sane-toolchain.inc a little
>>     bit by removing all of the PREFERRED_PROVIDER stuff it no longer
>>     needs.
>> - For glibc*.bb older than 2.5, add in some missing RPROVIDES.
> 
> I've pushed a trini/add-libc-overrides-2 branch with the following
> changes:
> - Change PREFERRED_LIBC to LIBC
> - Fold fixing up minimal/minimal-uclibc into the commit that brings in
>   the libc inc file.
> - Re-order commits so that everything is functional from commit to
>   commit.
> 
> I'm now looking for ack's to pull this branch into .dev
> 



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-05-02 19:55   ` Mike (mwester)
@ 2009-05-03 12:29     ` Leon Woestenberg
  2009-05-03 16:53       ` Tom Rini
  0 siblings, 1 reply; 29+ messages in thread
From: Leon Woestenberg @ 2009-05-03 12:29 UTC (permalink / raw)
  To: openembedded-devel; +Cc: openembedded-devel

Hello,

On Sat, May 2, 2009 at 9:55 PM, Mike (mwester) <mwester@dls.net> wrote:
> Acked-by: Mike Westerhof <mwester@dls.net>
>
I think we can add this functionality now.

By the recent merge of "micro.conf" and "micro-uclibc.conf", a new
TODO is to merge the LIBC feature into micro distro as well.
See "[oe] Pull request from DoréDevelopment - New: Micro distro/image"


Regards,
-- 
Leon



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-05-03 12:29     ` Leon Woestenberg
@ 2009-05-03 16:53       ` Tom Rini
  2009-05-10 19:47         ` Tom Rini
  0 siblings, 1 reply; 29+ messages in thread
From: Tom Rini @ 2009-05-03 16:53 UTC (permalink / raw)
  To: openembedded-devel

On Sun, May 03, 2009 at 02:29:53PM +0200, Leon Woestenberg wrote:
> Hello,
> 
> On Sat, May 2, 2009 at 9:55 PM, Mike (mwester) <mwester@dls.net> wrote:
> > Acked-by: Mike Westerhof <mwester@dls.net>
> >
> I think we can add this functionality now.
> 
> By the recent merge of "micro.conf" and "micro-uclibc.conf", a new
> TODO is to merge the LIBC feature into micro distro as well.
> See "[oe] Pull request from DoréDevelopment - New: Micro distro/image"

I'll push this out Monday AM us.  IMHO, for micro and micro-uclibc (and
similar for minimal/minimal-uclibc) is to merge them back into one and
make LIBC an easy override.

-- 
Tom Rini



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-05-03 16:53       ` Tom Rini
@ 2009-05-10 19:47         ` Tom Rini
  2009-05-10 21:03           ` Koen Kooi
  0 siblings, 1 reply; 29+ messages in thread
From: Tom Rini @ 2009-05-10 19:47 UTC (permalink / raw)
  To: openembedded-devel

On Sun, May 03, 2009 at 09:53:18AM -0700, Tom Rini wrote:
> On Sun, May 03, 2009 at 02:29:53PM +0200, Leon Woestenberg wrote:
> > Hello,
> > 
> > On Sat, May 2, 2009 at 9:55 PM, Mike (mwester) <mwester@dls.net> wrote:
> > > Acked-by: Mike Westerhof <mwester@dls.net>
> > >
> > I think we can add this functionality now.
> > 
> > By the recent merge of "micro.conf" and "micro-uclibc.conf", a new
> > TODO is to merge the LIBC feature into micro distro as well.
> > See "[oe] Pull request from DoréDevelopment - New: Micro distro/image"
> 
> I'll push this out Monday AM us.  IMHO, for micro and micro-uclibc (and
> similar for minimal/minimal-uclibc) is to merge them back into one and
> make LIBC an easy override.

So, here's a problem we've run into now.  With distros that use
debian.bbclass, having an OVERRIDE of 'glibc' added causes the glibc
recipe to not create a 'glibc' package, nor a 'libc6' package.  The
libc6-dev package is created.  For eglibc, libc6 and libc6-dev are
created.  For the uclibc recipe uclibc and uclibc-dev packages are
still created.  DISTRO=angstrom-2008.1 LIBC={eglibc,glibc,uclibc} will
show this.

-- 
Tom Rini



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-05-10 19:47         ` Tom Rini
@ 2009-05-10 21:03           ` Koen Kooi
  2009-05-10 21:51             ` Tom Rini
  0 siblings, 1 reply; 29+ messages in thread
From: Koen Kooi @ 2009-05-10 21:03 UTC (permalink / raw)
  To: openembedded-devel

On 10-05-09 21:47, Tom Rini wrote:
> On Sun, May 03, 2009 at 09:53:18AM -0700, Tom Rini wrote:
>> On Sun, May 03, 2009 at 02:29:53PM +0200, Leon Woestenberg wrote:
>>> Hello,
>>>
>>> On Sat, May 2, 2009 at 9:55 PM, Mike (mwester)<mwester@dls.net>  wrote:
>>>> Acked-by: Mike Westerhof<mwester@dls.net>
>>>>
>>> I think we can add this functionality now.
>>>
>>> By the recent merge of "micro.conf" and "micro-uclibc.conf", a new
>>> TODO is to merge the LIBC feature into micro distro as well.
>>> See "[oe] Pull request from DoréDevelopment - New: Micro distro/image"
>>
>> I'll push this out Monday AM us.  IMHO, for micro and micro-uclibc (and
>> similar for minimal/minimal-uclibc) is to merge them back into one and
>> make LIBC an easy override.
>
> So, here's a problem we've run into now.  With distros that use
> debian.bbclass, having an OVERRIDE of 'glibc' added causes the glibc
> recipe to not create a 'glibc' package, nor a 'libc6' package.  The
> libc6-dev package is created.

I suspect that's because ${PN} ('glibc') is now in overrides twice, try 
changing the override to libc-glibc or something similar.

regards,

KOen




^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-05-10 21:03           ` Koen Kooi
@ 2009-05-10 21:51             ` Tom Rini
  2009-05-10 22:27               ` Otavio Salvador
  0 siblings, 1 reply; 29+ messages in thread
From: Tom Rini @ 2009-05-10 21:51 UTC (permalink / raw)
  To: openembedded-devel; +Cc: openembedded-devel

On Sun, May 10, 2009 at 11:03:36PM +0200, Koen Kooi wrote:
> On 10-05-09 21:47, Tom Rini wrote:
>> On Sun, May 03, 2009 at 09:53:18AM -0700, Tom Rini wrote:
>>> On Sun, May 03, 2009 at 02:29:53PM +0200, Leon Woestenberg wrote:
>>>> Hello,
>>>>
>>>> On Sat, May 2, 2009 at 9:55 PM, Mike (mwester)<mwester@dls.net>  wrote:
>>>>> Acked-by: Mike Westerhof<mwester@dls.net>
>>>>>
>>>> I think we can add this functionality now.
>>>>
>>>> By the recent merge of "micro.conf" and "micro-uclibc.conf", a new
>>>> TODO is to merge the LIBC feature into micro distro as well.
>>>> See "[oe] Pull request from DoréDevelopment - New: Micro distro/image"
>>>
>>> I'll push this out Monday AM us.  IMHO, for micro and micro-uclibc (and
>>> similar for minimal/minimal-uclibc) is to merge them back into one and
>>> make LIBC an easy override.
>>
>> So, here's a problem we've run into now.  With distros that use
>> debian.bbclass, having an OVERRIDE of 'glibc' added causes the glibc
>> recipe to not create a 'glibc' package, nor a 'libc6' package.  The
>> libc6-dev package is created.
>
> I suspect that's because ${PN} ('glibc') is now in overrides twice, try  
> changing the override to libc-glibc or something similar.

Testing now.  But that means we'll be doing overrides like:
SRC_URI_libc-uclibc += "file://fixes-for-uclibc.patch;patch=1"
Not too wierd looking?  Otherwise, is there somewhere we can do,
roughly, sort -u, on ${OVERRIDES} ?  And not require a new bitbake for
everyone?

-- 
Tom Rini



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-05-10 21:51             ` Tom Rini
@ 2009-05-10 22:27               ` Otavio Salvador
  2009-05-10 22:36                 ` Tom Rini
  0 siblings, 1 reply; 29+ messages in thread
From: Otavio Salvador @ 2009-05-10 22:27 UTC (permalink / raw)
  To: openembedded-devel; +Cc: openembedded-devel

Hello Tom,

On Sun, May 10, 2009 at 6:51 PM, Tom Rini <trini@embeddedalley.com> wrote:
> Not too wierd looking?  Otherwise, is there somewhere we can do,
> roughly, sort -u, on ${OVERRIDES} ?  And not require a new bitbake for
> everyone?

I belive that we shouldn't add hacks into OE recipes to avoid the
requirement of new bitbake. If someone is using dev tree we can assume
that this person can also use a development version from bitbake
stable branch.

-- 
Otavio Salvador                  O.S. Systems
E-mail: otavio@ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854         http://projetos.ossystems.com.br



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-05-10 22:27               ` Otavio Salvador
@ 2009-05-10 22:36                 ` Tom Rini
  2009-05-11  7:03                   ` Koen Kooi
  0 siblings, 1 reply; 29+ messages in thread
From: Tom Rini @ 2009-05-10 22:36 UTC (permalink / raw)
  To: openembedded-devel

On Sun, May 10, 2009 at 07:27:42PM -0300, Otavio Salvador wrote:
> Hello Tom,
> 
> On Sun, May 10, 2009 at 6:51 PM, Tom Rini <trini@embeddedalley.com> wrote:
> > Not too wierd looking?  Otherwise, is there somewhere we can do,
> > roughly, sort -u, on ${OVERRIDES} ?  And not require a new bitbake for
> > everyone?
> 
> I belive that we shouldn't add hacks into OE recipes to avoid the
> requirement of new bitbake. If someone is using dev tree we can assume
> that this person can also use a development version from bitbake
> stable branch.

I don't mean a hack to glibc*.bb, but rather changing base.bbclass (and
anything else) to not blow up if OVERRIDES contains duplicates.  I think
it's possible to add a python function that does it, but it would have
to be 'slow' since the fast method is to throw everything into a dict
and then return the list of keys.  So perhaps it's best to just say
libc-<foo> for an additional per-libc override.

-- 
Tom Rini



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-05-10 22:36                 ` Tom Rini
@ 2009-05-11  7:03                   ` Koen Kooi
  2009-05-11  8:07                     ` Richard Purdie
  0 siblings, 1 reply; 29+ messages in thread
From: Koen Kooi @ 2009-05-11  7:03 UTC (permalink / raw)
  To: openembedded-devel

On 11-05-09 00:36, Tom Rini wrote:
> On Sun, May 10, 2009 at 07:27:42PM -0300, Otavio Salvador wrote:
>> Hello Tom,
>>
>> On Sun, May 10, 2009 at 6:51 PM, Tom Rini<trini@embeddedalley.com>  wrote:
>>> Not too wierd looking?  Otherwise, is there somewhere we can do,
>>> roughly, sort -u, on ${OVERRIDES} ?  And not require a new bitbake for
>>> everyone?

How do you decide which one to drop? The one with a lower or higher 
priority? You can see how that gets real ugly real fast.

>> I belive that we shouldn't add hacks into OE recipes to avoid the
>> requirement of new bitbake. If someone is using dev tree we can assume
>> that this person can also use a development version from bitbake
>> stable branch.
>
> I don't mean a hack to glibc*.bb, but rather changing base.bbclass (and
> anything else) to not blow up if OVERRIDES contains duplicates.  I think
> it's possible to add a python function that does it, but it would have
> to be 'slow' since the fast method is to throw everything into a dict
> and then return the list of keys.  So perhaps it's best to just say
> libc-<foo>  for an additional per-libc override.

libc-<foo> is also a lot clearer in the case of newlib :)

regards,

Koen





^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-05-11  7:03                   ` Koen Kooi
@ 2009-05-11  8:07                     ` Richard Purdie
  2009-05-11  8:27                       ` Graeme Gregory
  0 siblings, 1 reply; 29+ messages in thread
From: Richard Purdie @ 2009-05-11  8:07 UTC (permalink / raw)
  To: openembedded-devel

On Mon, 2009-05-11 at 09:03 +0200, Koen Kooi wrote:
> On 11-05-09 00:36, Tom Rini wrote:
> > On Sun, May 10, 2009 at 07:27:42PM -0300, Otavio Salvador wrote:
> >> Hello Tom,
> >>
> >> On Sun, May 10, 2009 at 6:51 PM, Tom Rini<trini@embeddedalley.com>  wrote:
> >>> Not too wierd looking?  Otherwise, is there somewhere we can do,
> >>> roughly, sort -u, on ${OVERRIDES} ?  And not require a new bitbake for
> >>> everyone?
> 
> How do you decide which one to drop? The one with a lower or higher 
> priority? You can see how that gets real ugly real fast.
> 
> >> I belive that we shouldn't add hacks into OE recipes to avoid the
> >> requirement of new bitbake. If someone is using dev tree we can assume
> >> that this person can also use a development version from bitbake
> >> stable branch.
> >
> > I don't mean a hack to glibc*.bb, but rather changing base.bbclass (and
> > anything else) to not blow up if OVERRIDES contains duplicates.  I think
> > it's possible to add a python function that does it, but it would have
> > to be 'slow' since the fast method is to throw everything into a dict
> > and then return the list of keys.  So perhaps it's best to just say
> > libc-<foo>  for an additional per-libc override.
> 
> libc-<foo> is also a lot clearer in the case of newlib :)

Playing with OVERRIDES can get messy quickly. The key to success is
having patterns which are unique. "glibc" is therefore not as good as
"libc-glibc". This is why there are the "task-" and "pn-" namespaces and
IMO, namespaces are essential there.

Yes, there are several things we add there without namespacing but we've
mostly been lucky...

Cheers,

Richard




^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [RFC] Bring PREFERRED_LIBC to all distros
  2009-05-11  8:07                     ` Richard Purdie
@ 2009-05-11  8:27                       ` Graeme Gregory
  0 siblings, 0 replies; 29+ messages in thread
From: Graeme Gregory @ 2009-05-11  8:27 UTC (permalink / raw)
  To: openembedded-devel

On 05/11/2009 09:07 AM, Richard Purdie wrote:
> On Mon, 2009-05-11 at 09:03 +0200, Koen Kooi wrote:
>    
>> On 11-05-09 00:36, Tom Rini wrote:
>>      
>>> On Sun, May 10, 2009 at 07:27:42PM -0300, Otavio Salvador wrote:
>>>        
>>>> Hello Tom,
>>>>
>>>> On Sun, May 10, 2009 at 6:51 PM, Tom Rini<trini@embeddedalley.com>   wrote:
>>>>          
>>>>> Not too wierd looking?  Otherwise, is there somewhere we can do,
>>>>> roughly, sort -u, on ${OVERRIDES} ?  And not require a new bitbake for
>>>>> everyone?
>>>>>            
>> How do you decide which one to drop? The one with a lower or higher
>> priority? You can see how that gets real ugly real fast.
>>
>>      
>>>> I belive that we shouldn't add hacks into OE recipes to avoid the
>>>> requirement of new bitbake. If someone is using dev tree we can assume
>>>> that this person can also use a development version from bitbake
>>>> stable branch.
>>>>          
>>> I don't mean a hack to glibc*.bb, but rather changing base.bbclass (and
>>> anything else) to not blow up if OVERRIDES contains duplicates.  I think
>>> it's possible to add a python function that does it, but it would have
>>> to be 'slow' since the fast method is to throw everything into a dict
>>> and then return the list of keys.  So perhaps it's best to just say
>>> libc-<foo>   for an additional per-libc override.
>>>        
>> libc-<foo>  is also a lot clearer in the case of newlib :)
>>      
>
> Playing with OVERRIDES can get messy quickly. The key to success is
> having patterns which are unique. "glibc" is therefore not as good as
> "libc-glibc". This is why there are the "task-" and "pn-" namespaces and
> IMO, namespaces are essential there.
>
> Yes, there are several things we add there without namespacing but we've
> mostly been lucky...
>
>    
I agree with this reasoning and I also far prefer libc-blah to read as 
well. I think we should go for this form.

G



^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2009-05-11  8:34 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-27 14:19 [RFC] Bring PREFERRED_LIBC to all distros Tom Rini
2009-04-27 14:22 ` [RFC][PATCH] All distro conf files: Use PREFERRED_LIBC to pick or set your libc Tom Rini
2009-04-27 14:23   ` [RFC][PATCH] Add distro inc files for eglibc, glibc and uclibc Tom Rini
2009-04-27 14:23     ` [RFC][PATCH] All distros: Bring in conf/distro/include/${PREFERRED_LIBC}.inc Tom Rini
2009-04-27 14:24       ` [RFC][PATCH] glibc: In various old recipes add RPROVIDES virtual-libc-dev, bump PR Tom Rini
2009-04-27 15:33 ` [RFC] Bring PREFERRED_LIBC to all distros Koen Kooi
2009-04-27 15:43   ` Tom Rini
2009-04-27 16:45     ` Koen Kooi
2009-04-27 16:51       ` Tom Rini
2009-04-27 17:32         ` Philip Balister
2009-04-27 17:36           ` Tom Rini
2009-04-27 15:35 ` Otavio Salvador
2009-04-29 16:06   ` Tom Rini
2009-04-28 20:30 ` Khem Raj
2009-04-28 20:55   ` Tom Rini
2009-04-29  5:40     ` Koen Kooi
2009-04-29 16:12 ` Tom Rini
2009-04-29 23:25   ` Leon Woestenberg
2009-05-02 19:55   ` Mike (mwester)
2009-05-03 12:29     ` Leon Woestenberg
2009-05-03 16:53       ` Tom Rini
2009-05-10 19:47         ` Tom Rini
2009-05-10 21:03           ` Koen Kooi
2009-05-10 21:51             ` Tom Rini
2009-05-10 22:27               ` Otavio Salvador
2009-05-10 22:36                 ` Tom Rini
2009-05-11  7:03                   ` Koen Kooi
2009-05-11  8:07                     ` Richard Purdie
2009-05-11  8:27                       ` Graeme Gregory

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.