All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH][v3 0/4] honour {MACHINE, DISTRO}_FEATURES for configuration
@ 2010-07-06 19:32 Bernhard Reutner-Fischer
  2010-07-06 19:32 ` [PATCH][v3 1/4] busybox: configure according to {MACHINE, DISTRO}_FEATURES Bernhard Reutner-Fischer
                   ` (3 more replies)
  0 siblings, 4 replies; 21+ messages in thread
From: Bernhard Reutner-Fischer @ 2010-07-06 19:32 UTC (permalink / raw)
  To: Phil Blundell; +Cc: openembedded-devel

Hi,

These 4 patches configure busybox and uClibc according to
{MACHINE,DISTRO}_FEATURES. The kernel configury needs the same treatment (so
we can ommit e.g. ipv4 or ipv6 or any networking depending on the FEATURES
that are requested).

A follow-up patch could further improve to take combined-features into account
or add more fine-grained setup (mmu/nommu, float handling variants etc, etc).
Another possible follow-up patch would get rid of 0 byte sized dummy files
that were sprinkled all over the place to accomodate suboptimal configury
handling.

This is a first step towards better configuration WRT available MACHINE
features and/or desirable DISTRO features and is ment as a general improvement
with more opportunities to come.

Since i do not have write-access to oe, i'm asking for ACKs and kindly
ask whoever sees fit to apply this small batch.
Many TIA && cheers,
Bernhard


Bernhard Reutner-Fischer (4):
  busybox: configure according to {MACHINE,DISTRO}_FEATURES
  busybox: picking IPv6 per default is not up to the package
  uClibc: redo configuration
  uclibc: add 0.9.31

 conf/distro/include/sane-toolchain-uclibc.inc      |    7 +
 conf/distro/include/sane-toolchain.inc             |    3 +-
 conf/distro/include/uclibc.inc                     |    8 +
 recipes/busybox/busybox-1.15.3/micro/defconfig     |    2 +-
 recipes/busybox/busybox-config.inc                 |   28 +++
 recipes/busybox/busybox.inc                        |   37 +++
 recipes/uclibc/bfin-uclibc_svn.bb                  |    2 +-
 recipes/uclibc/uclibc-0.9.31/a780/uClibc.machine   |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/akita/uClibc.machine  |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/arm/uClibc.machine    |   69 ++++++
 recipes/uclibc/uclibc-0.9.31/armeb/uClibc.machine  |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/armv4t/uClibc.machine |   69 ++++++
 .../uclibc/uclibc-0.9.31/armv5te/uClibc.machine    |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/armv6/uClibc.machine  |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/armv7a/uClibc.machine |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/avr32/uClibc.machine  |   54 +++++
 recipes/uclibc/uclibc-0.9.31/bfin/uClibc.machine   |  192 +++++++++++++++
 recipes/uclibc/uclibc-0.9.31/c7x0/uClibc.machine   |   70 ++++++
 .../uclibc/uclibc-0.9.31/cm-x270/uClibc.machine    |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/collie/uClibc.machine |   70 ++++++
 .../uclibc/uclibc-0.9.31/dht-walnut/uClibc.machine |   54 +++++
 recipes/uclibc/uclibc-0.9.31/efika/uClibc.machine  |   53 +++++
 recipes/uclibc/uclibc-0.9.31/ep93xx/uClibc.machine |   69 ++++++
 .../uclibc-0.9.31/gumstix-connex/uClibc.machine    |   70 ++++++
 .../uclibc-0.9.31/gumstix-verdex/uClibc.machine    |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/h2200/uClibc.machine  |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/h3600/uClibc.machine  |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/h3800/uClibc.machine  |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/h3900/uClibc.machine  |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/h4000/uClibc.machine  |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/h5000/uClibc.machine  |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/hx4700/uClibc.machine |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/iwmmxt/uClibc.machine |   70 ++++++
 .../uclibc/uclibc-0.9.31/ixp4xxbe/uClibc.machine   |   70 ++++++
 .../uclibc/uclibc-0.9.31/kilauea/uClibc.machine    |   55 +++++
 recipes/uclibc/uclibc-0.9.31/mipsel/uClibc.machine |   63 +++++
 .../uclibc-0.9.31/mpc8313e-rdb/uClibc.machine      |   53 +++++
 .../uclibc-0.9.31/mpc8315e-rdb/uClibc.machine      |   53 +++++
 .../uclibc-0.9.31/mpc8323e-rdb/uClibc.machine      |   54 +++++
 recipes/uclibc/uclibc-0.9.31/n1200/uClibc.machine  |   53 +++++
 .../uclibc/uclibc-0.9.31/om-gta01/uClibc.machine   |   69 ++++++
 recipes/uclibc/uclibc-0.9.31/palmld/uClibc.machine |   70 ++++++
 .../uclibc/uclibc-0.9.31/palmz31/uClibc.machine    |   70 ++++++
 .../uclibc/uclibc-0.9.31/palmz72/uClibc.machine    |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/poodle/uClibc.machine |   70 ++++++
 .../uclibc/uclibc-0.9.31/qemumips/uClibc.machine   |   63 +++++
 .../uclibc/uclibc-0.9.31/qemux86/uClibc.machine    |   68 ++++++
 .../uclibc/uclibc-0.9.31/sequoia/uClibc.machine    |   53 +++++
 recipes/uclibc/uclibc-0.9.31/simpad/uClibc.machine |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/spitz/uClibc.machine  |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/titan/uClibc.machine  |   52 ++++
 recipes/uclibc/uclibc-0.9.31/uClibc.distro         |  150 ++++++++++++
 recipes/uclibc/uclibc-0.9.31/uClibc.machine.armv4t |   69 ++++++
 .../uclibc/uclibc-0.9.31/uClibc.machine.armv5te    |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/uClibc.machine.iwmmxt |   70 ++++++
 .../uclibc/uclibc-0.9.31/uClibc.machine.strongarm  |   70 ++++++
 recipes/uclibc/uclibc-0.9.31/wrap/uClibc.machine   |   73 ++++++
 recipes/uclibc/uclibc-0.9.31/x86/uClibc.machine    |   72 ++++++
 recipes/uclibc/uclibc-config.inc                   |  111 +++++++++
 recipes/uclibc/uclibc-initial_0.9.30.2.bb          |   12 +-
 recipes/uclibc/uclibc-initial_0.9.30.bb            |    5 +-
 recipes/uclibc/uclibc-initial_0.9.31.bb            |   26 ++
 recipes/uclibc/uclibc-initial_git.bb               |    6 +-
 recipes/uclibc/uclibc-old.inc                      |  186 +++++++++++++++
 recipes/uclibc/uclibc.inc                          |  247 ++++++++++----------
 recipes/uclibc/uclibc_0.9.28.bb                    |    2 +-
 recipes/uclibc/uclibc_0.9.29.bb                    |    2 +-
 recipes/uclibc/uclibc_0.9.30.1.bb                  |    2 +-
 recipes/uclibc/uclibc_0.9.30.bb                    |    2 +-
 recipes/uclibc/uclibc_0.9.31.bb                    |   30 +++
 recipes/uclibc/uclibc_git.bb                       |    1 -
 71 files changed, 4159 insertions(+), 150 deletions(-)
 create mode 100644 recipes/busybox/busybox-config.inc
 create mode 100644 recipes/uclibc/uclibc-0.9.31/a780/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/akita/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/arm/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/armeb/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/armv4t/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/armv5te/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/armv6/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/armv7a/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/avr32/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/bfin/uClibc.config
 create mode 100644 recipes/uclibc/uclibc-0.9.31/bfin/uClibc.distro
 create mode 100644 recipes/uclibc/uclibc-0.9.31/bfin/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/c7x0/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/cm-x270/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/collie/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/dht-walnut/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/efika/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/ep93xx/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/gumstix-connex/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/gumstix-verdex/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/h2200/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/h3600/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/h3800/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/h3900/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/h4000/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/h5000/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/hx4700/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/iwmmxt/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/ixp4xxbe/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/kilauea/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/mipsel/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/mpc8313e-rdb/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/mpc8315e-rdb/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/mpc8323e-rdb/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/n1200/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/om-gta01/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/palmld/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/palmz31/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/palmz72/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/poodle/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/qemumips/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/qemux86/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/sequoia/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/simpad/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/spitz/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/titan/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/uClibc.config
 create mode 100644 recipes/uclibc/uclibc-0.9.31/uClibc.distro
 create mode 100644 recipes/uclibc/uclibc-0.9.31/uClibc.machine.armv4t
 create mode 100644 recipes/uclibc/uclibc-0.9.31/uClibc.machine.armv5te
 create mode 100644 recipes/uclibc/uclibc-0.9.31/uClibc.machine.iwmmxt
 create mode 100644 recipes/uclibc/uclibc-0.9.31/uClibc.machine.strongarm
 create mode 100644 recipes/uclibc/uclibc-0.9.31/wrap/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/x86/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-config.inc
 create mode 100644 recipes/uclibc/uclibc-initial_0.9.31.bb
 create mode 100644 recipes/uclibc/uclibc-old.inc
 create mode 100644 recipes/uclibc/uclibc_0.9.31.bb




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

* [PATCH][v3 1/4] busybox: configure according to {MACHINE, DISTRO}_FEATURES
  2010-07-06 19:32 [PATCH][v3 0/4] honour {MACHINE, DISTRO}_FEATURES for configuration Bernhard Reutner-Fischer
@ 2010-07-06 19:32 ` Bernhard Reutner-Fischer
  2010-07-06 19:32 ` [PATCH][v3 2/4] busybox: picking IPv6 per default is not up to the package Bernhard Reutner-Fischer
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 21+ messages in thread
From: Bernhard Reutner-Fischer @ 2010-07-06 19:32 UTC (permalink / raw)
  To: Phil Blundell; +Cc: openembedded-devel

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
 recipes/busybox/busybox-config.inc |   28 +++++++++++++++++++++++++++
 recipes/busybox/busybox.inc        |   37 ++++++++++++++++++++++++++++++++++++
 2 files changed, 65 insertions(+), 0 deletions(-)
 create mode 100644 recipes/busybox/busybox-config.inc

diff --git a/recipes/busybox/busybox-config.inc b/recipes/busybox/busybox-config.inc
new file mode 100644
index 0000000..26ccec4
--- /dev/null
+++ b/recipes/busybox/busybox-config.inc
@@ -0,0 +1,28 @@
+# internal helper
+def busybox_cfg(feature, features, tokens, cnf, rem):
+	if type(tokens) == type(""):
+		tokens = [tokens]
+	rem.extend(['/^[# ]*' + token + '[ =]/d' for token in tokens])
+	if type(features) == type([]) and feature in features:
+		cnf.extend([token + '=y' for token in tokens])
+	else:
+		cnf.extend(['# ' + token + ' is not set' for token in tokens])
+# Map distro and machine features to config settings
+def features_to_busybox_settings(d):
+	cnf, rem = ([], [])
+	distro_features = bb.data.getVar('DISTRO_FEATURES', d).split()
+	machine_features = bb.data.getVar('MACHINE_FEATURES', d).split()
+	busybox_cfg('ipv6', distro_features, 'CONFIG_FEATURE_IPV6', cnf, rem)
+	busybox_cfg('largefile', distro_features, 'CONFIG_LFS', cnf, rem)
+	busybox_cfg('nls',  distro_features, 'CONFIG_LOCALE_SUPPORT', cnf, rem)
+	busybox_cfg('ipv4', distro_features, 'CONFIG_FEATURE_IFUPDOWN_IPV4', cnf, rem)
+	busybox_cfg('ipv6', distro_features, 'CONFIG_FEATURE_IFUPDOWN_IPV6', cnf, rem)
+	return "\n".join(cnf), "\n".join(rem)
+# X, Y = ${@features_to_uclibc_settings(d)}
+# unfortunately doesn't seem to work with bitbake, workaround:
+def features_to_busybox_conf(d):
+	cnf, rem = features_to_busybox_settings(d)
+	return cnf
+def features_to_busybox_del(d):
+	cnf, rem = features_to_busybox_settings(d)
+	return rem
diff --git a/recipes/busybox/busybox.inc b/recipes/busybox/busybox.inc
index a5346bd..827e917 100644
--- a/recipes/busybox/busybox.inc
+++ b/recipes/busybox/busybox.inc
@@ -70,10 +70,47 @@ RDEPENDS_${PN}-udhcpd += "${PN}"
 LD = "${CC} -nostdlib"
 
 inherit cml1 update-rc.d
+require busybox-config.inc
+
+configmangle = '/CROSS_COMPILER_PREFIX/d; \
+		/CONFIG_EXTRA_CFLAGS/d; \
+		'
+OE_FEATURES := "${@features_to_busybox_conf(d)}"
+OE_DEL      := "${@features_to_busybox_del(d)}"
+DO_IPv4 := ${@base_contains('DISTRO_FEATURES', 'ipv4', 1, 0, d)}
+DO_IPv6 := ${@base_contains('DISTRO_FEATURES', 'ipv6', 1, 0, d)}
+python () {
+  if "${OE_DEL}":
+    bb.data.setVar('configmangle_append', "${OE_DEL}" + "\n", d)
+  if "${OE_FEATURES}":
+    bb.data.setVar('configmangle_append',
+                   "/^### DISTRO FEATURES$/a\\\n%s\n\n" %
+                   ("\\n".join((bb.data.expand("${OE_FEATURES}", d).split("\n")))),
+                   d)
+  bb.data.setVar('configmangle_append',
+                 "/^### CROSS$/a\\\n%s\n" %
+                  ("\\n".join(["CONFIG_CROSS_COMPILER_PREFIX=\"${TARGET_PREFIX}\"",
+			       "CONFIG_EXTRA_CFLAGS=\"${CFLAGS}\""
+                        ])
+                  ),
+                 d)
+}
 
 do_configure () {
 	sed -e 's#@DATADIR@#${datadir}#g' \
 		< ${WORKDIR}/defconfig > ${S}/.config
+	for i in 'CROSS' 'DISTRO FEATURES'; do echo "### $i"; done >> \
+		${S}/.config
+	sed -i -e '${configmangle}' ${S}/.config
+	if test ${DO_IPv4} -eq 0 && test ${DO_IPv6} -eq 0; then
+	  # disable networking applets
+	  mv ${S}/.config ${S}/.config.oe-tmp
+	  awk 'BEGIN{net=0}
+	  /^# Networking Utilities/{net=1}
+	  /^#$/{if(net){net=net+1}}
+	  {if(net==2&&$0 !~ /^#/&&$1){print("# "$1" is not set")}else{print}}' \
+		  ${S}/.config.oe-tmp > ${S}/.config
+	fi
 	cml1_do_configure
 }
 
-- 
1.7.1




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

* [PATCH][v3 2/4] busybox: picking IPv6 per default is not up to the package
  2010-07-06 19:32 [PATCH][v3 0/4] honour {MACHINE, DISTRO}_FEATURES for configuration Bernhard Reutner-Fischer
  2010-07-06 19:32 ` [PATCH][v3 1/4] busybox: configure according to {MACHINE, DISTRO}_FEATURES Bernhard Reutner-Fischer
@ 2010-07-06 19:32 ` Bernhard Reutner-Fischer
  2010-07-06 19:32 ` [PATCH][v3 3/4] uClibc: redo configuration Bernhard Reutner-Fischer
  2010-07-06 19:32 ` [PATCH][v3 4/4] uclibc: add 0.9.31 Bernhard Reutner-Fischer
  3 siblings, 0 replies; 21+ messages in thread
From: Bernhard Reutner-Fischer @ 2010-07-06 19:32 UTC (permalink / raw)
  To: Phil Blundell; +Cc: openembedded-devel

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
 recipes/busybox/busybox-1.15.3/micro/defconfig |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/recipes/busybox/busybox-1.15.3/micro/defconfig b/recipes/busybox/busybox-1.15.3/micro/defconfig
index 8431d19..f6eaa6d 100644
--- a/recipes/busybox/busybox-1.15.3/micro/defconfig
+++ b/recipes/busybox/busybox-1.15.3/micro/defconfig
@@ -608,7 +608,7 @@ CONFIG_TIME=y
 #
 # Networking Utilities
 #
-CONFIG_FEATURE_IPV6=y
+# CONFIG_FEATURE_IPV6 is not set
 CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
 # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
 # CONFIG_ARP is not set
-- 
1.7.1




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

* [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-06 19:32 [PATCH][v3 0/4] honour {MACHINE, DISTRO}_FEATURES for configuration Bernhard Reutner-Fischer
  2010-07-06 19:32 ` [PATCH][v3 1/4] busybox: configure according to {MACHINE, DISTRO}_FEATURES Bernhard Reutner-Fischer
  2010-07-06 19:32 ` [PATCH][v3 2/4] busybox: picking IPv6 per default is not up to the package Bernhard Reutner-Fischer
@ 2010-07-06 19:32 ` Bernhard Reutner-Fischer
  2010-07-08 19:02   ` Khem Raj
  2010-07-06 19:32 ` [PATCH][v3 4/4] uclibc: add 0.9.31 Bernhard Reutner-Fischer
  3 siblings, 1 reply; 21+ messages in thread
From: Bernhard Reutner-Fischer @ 2010-07-06 19:32 UTC (permalink / raw)
  To: Phil Blundell; +Cc: openembedded-devel

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
 conf/distro/include/sane-toolchain-uclibc.inc |    7 +
 conf/distro/include/sane-toolchain.inc        |    3 +-
 conf/distro/include/uclibc.inc                |    8 +
 recipes/uclibc/bfin-uclibc_svn.bb             |    2 +-
 recipes/uclibc/uclibc-config.inc              |  111 +++++++++++
 recipes/uclibc/uclibc-initial_0.9.30.2.bb     |   12 +-
 recipes/uclibc/uclibc-initial_0.9.30.bb       |    5 +-
 recipes/uclibc/uclibc-initial_git.bb          |    6 +-
 recipes/uclibc/uclibc-old.inc                 |  186 +++++++++++++++++++
 recipes/uclibc/uclibc.inc                     |  247 ++++++++++++-------------
 recipes/uclibc/uclibc_0.9.28.bb               |    2 +-
 recipes/uclibc/uclibc_0.9.29.bb               |    2 +-
 recipes/uclibc/uclibc_0.9.30.1.bb             |    2 +-
 recipes/uclibc/uclibc_0.9.30.bb               |    2 +-
 recipes/uclibc/uclibc_git.bb                  |    1 -
 15 files changed, 447 insertions(+), 149 deletions(-)
 create mode 100644 recipes/uclibc/uclibc-config.inc
 create mode 100644 recipes/uclibc/uclibc-old.inc

diff --git a/conf/distro/include/sane-toolchain-uclibc.inc b/conf/distro/include/sane-toolchain-uclibc.inc
index 314340a..9f515a0 100644
--- a/conf/distro/include/sane-toolchain-uclibc.inc
+++ b/conf/distro/include/sane-toolchain-uclibc.inc
@@ -14,6 +14,13 @@ USE_NLS ?= "no"
 USE_NLS_glib-2.0-native = "yes"
 USE_NLS_gcc-cross = "no"
 
+PREFERRED_VERSION_uclibc                    ?= "${PREFERRED_UCLIBC_VERSION}"
+PREFERRED_VERSION_uclibc-initial            ?= "${PREFERRED_UCLIBC_VERSION}"
+PREFERRED_VERSION_uclibc-cross              ?= "${PREFERRED_UCLIBC_VERSION}"
+PREFERRED_VERSION_uclibc-cross-sdk          ?= "${PREFERRED_UCLIBC_VERSION}"
+PREFERRED_VERSION_uclibc-cross-initial      ?= "${PREFERRED_UCLIBC_VERSION}"
+PREFERRED_VERSION_uclibc-cross-intermediate ?= "${PREFERRED_UCLIBC_VERSION}"
+
 #mess with compiler flags to use -Os instead of -O2
 #Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
diff --git a/conf/distro/include/sane-toolchain.inc b/conf/distro/include/sane-toolchain.inc
index 1b77f75..f7df850 100644
--- a/conf/distro/include/sane-toolchain.inc
+++ b/conf/distro/include/sane-toolchain.inc
@@ -13,8 +13,7 @@ PREFERRED_VERSION_glibc             ?= "2.10.1"
 PREFERRED_VERSION_glibc-initial     ?= "2.10.1"
 PREFERRED_VERSION_eglibc             ?= "2.11"
 PREFERRED_VERSION_eglibc-initial     ?= "2.11"
-PREFERRED_VERSION_uclibc            ?= "0.9.30.1"
-PREFERRED_VERSION_uclibc-initial    ?= "0.9.30.1"
+PREFERRED_UCLIBC_VERSION            ?= "0.9.30.1"
 
 # Some systems need a special gcc version
 PREFERRED_GCC_VERSION_486sx          ?= "4.3.2"
diff --git a/conf/distro/include/uclibc.inc b/conf/distro/include/uclibc.inc
index ee18fc8..b40fbf5 100644
--- a/conf/distro/include/uclibc.inc
+++ b/conf/distro/include/uclibc.inc
@@ -9,3 +9,11 @@ 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"
+
+# libc settings
+DISTRO_FEATURES += "${@['', ' nls'][bb.data.getVar('ENABLE_BINARY_LOCALE_GENERATION', d, 1) == '1']}"
+MACHINE_FEATURES += "${@['', ' bx'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
+# FIXME: We enable IPv4 per default to avoid alot of breakage.
+# FIXME: Figure out an acceptable way to negotiate either
+# FIXME: desired features or hard requirements, either top-down or bottom-up.
+DISTRO_FEATURES += " ipv4"
diff --git a/recipes/uclibc/bfin-uclibc_svn.bb b/recipes/uclibc/bfin-uclibc_svn.bb
index e8cb63e..2757fc2 100644
--- a/recipes/uclibc/bfin-uclibc_svn.bb
+++ b/recipes/uclibc/bfin-uclibc_svn.bb
@@ -9,7 +9,7 @@
 UCLIBC_BASE ?= "0.9.29"
 PV = "${UCLIBC_BASE}+svnr${SRCPV}"
 
-require uclibc.inc
+require uclibc-old.inc
 PR = "${INC_PR}.0"
 SRCREV = "1857"
 PROVIDES_append_bfin = " virtual/${TARGET_PREFIX}libc-for-gcc "
diff --git a/recipes/uclibc/uclibc-config.inc b/recipes/uclibc/uclibc-config.inc
new file mode 100644
index 0000000..82dfcfe
--- /dev/null
+++ b/recipes/uclibc/uclibc-config.inc
@@ -0,0 +1,111 @@
+#
+# Set the ARCH environment variable for uClibc compilation.
+# Return value must match one of the architectures known to uClibc:
+# libc/sysdeps/*/*
+#
+
+valid_archs = "\
+alpha \
+arm \
+avr32 \
+bfin \
+cris \
+e1 \
+frv \
+h8300 \
+hppa \
+i386 \
+i960 \
+ia64 \
+m68k \
+microblaze \
+mips \
+nios \
+nios2 \
+powerpc \
+sh \
+sh64 \
+sparc \
+v850 \
+vax \
+x86_64 \
+xtensa \
+"
+def map_uclibc_arch(a, d):
+	"""Return the uClibc architecture for the given TARGET_ARCH."""
+	import re
+
+	valid_archs = bb.data.getVar('valid_archs', d, 1).split()
+
+	if   re.match('^(arm|sa110).*', a):	return 'arm'
+	elif re.match('^(i.86|athlon)$', a):	return 'i386'
+	elif re.match('^mips.*', a):		return 'mips'
+	elif re.match('^parisc.*', a):		return 'hppa'
+	elif re.match('^ppc.*', a):		return 'powerpc'
+	elif re.match('^s390.*', a):		return 's390'
+	elif re.match('^sh.*', a):		return 'sh'
+	elif re.match('^(sun|sparc).*', a):	return 'sparc'
+	elif re.match('^xtensa.*', a):		return 'xtensa'
+        elif a in valid_archs:			return a
+	else:
+		bb.error("cannot map '%s' to a uClibc architecture" % a)
+
+export UCLIBC_ARCH = "${@map_uclibc_arch(bb.data.getVar('TARGET_ARCH', d, 1), d)}"
+
+def map_uclibc_abi(o, d):
+	"""Return the uClibc ABI for the given TARGET_OS."""
+	import re
+
+	arch = bb.data.getVar('TARGET_ARCH', d, 1)
+	if   map_uclibc_arch(bb.data.getVar('TARGET_ARCH', d, 1), d) == "arm":
+		if re.match('.*eabi$', o): return 'ARM_EABI'
+		else:                    return 'ARM_OABI'
+	# FIXME: This is inaccurate! Handle o32, n32, n64
+	elif re.match('^mips.*64$', arch):  return 'MIPS_N64_ABI'
+	elif re.match('^mips.*', arch):    return 'MIPS_O32_ABI'
+	return ""
+
+export UCLIBC_ABI = "${@map_uclibc_abi(bb.data.getVar('TARGET_OS', d, 1), d)}"
+
+def map_uclibc_endian(a, d):
+	"""Return the uClibc endianess for the given TARGET_ARCH."""
+	import re
+
+	# Always BE
+	if re.match('^(avr32|e1|frv|(parisc|hppa)|m68k|microblaze|powerpc.*|(sparc|sun).*)$', a):
+		return 'BIG'
+	# Possibly BE
+	elif re.match('^((arm|sa110|arm.*eb)|h8300.*eb|(parisc|hppa).*eb|mips|sh.*eb|xtensa.*eb)$', a):
+		return 'BIG'
+	return 'LITTLE'
+
+export UCLIBC_ENDIAN = "${@map_uclibc_endian(bb.data.getVar('TARGET_ARCH', d, 1), d)}"
+
+# internal helper
+def uclibc_cfg(feature, features, tokens, cnf, rem):
+	if type(tokens) == type(""):
+		tokens = [tokens]
+	rem.extend(['/^[# ]*' + token + '[ =]/d' for token in tokens])
+	if type(features) == type([]) and feature in features:
+		cnf.extend([token + '=y' for token in tokens])
+	else:
+		cnf.extend(['# ' + token + ' is not set' for token in tokens])
+# Map distro and machine features to config settings
+def features_to_uclibc_settings(d):
+	cnf, rem = ([], [])
+	distro_features = bb.data.getVar('DISTRO_FEATURES', d).split()
+	machine_features = bb.data.getVar('MACHINE_FEATURES', d).split()
+	uclibc_cfg('ipv4',      distro_features, 'UCLIBC_HAS_IPV4', cnf, rem)
+	uclibc_cfg('ipv6',      distro_features, 'UCLIBC_HAS_IPV6', cnf, rem)
+	uclibc_cfg('largefile', distro_features, 'UCLIBC_HAS_LFS', cnf, rem)
+	uclibc_cfg('nls',       distro_features, 'UCLIBC_HAS_LOCALE', cnf, rem)
+	uclibc_cfg('bx',        machine_features,'USE_BX', cnf, rem)
+	return "\n".join(cnf), "\n".join(rem)
+# X, Y = ${@features_to_uclibc_settings(d)}
+# unfortunately doesn't seem to work with bitbake, workaround:
+def features_to_uclibc_conf(d):
+	cnf, rem = features_to_uclibc_settings(d)
+	return cnf
+def features_to_uclibc_del(d):
+	cnf, rem = features_to_uclibc_settings(d)
+	return rem
diff --git a/recipes/uclibc/uclibc-initial_0.9.30.2.bb b/recipes/uclibc/uclibc-initial_0.9.30.2.bb
index a9fa146..d00cb38 100644
--- a/recipes/uclibc/uclibc-initial_0.9.30.2.bb
+++ b/recipes/uclibc/uclibc-initial_0.9.30.2.bb
@@ -7,19 +7,15 @@ PACKAGES = ""
 
 do_install() {
 	# Install initial headers into the cross dir
-	make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
-		install_headers
+	make PREFIX=${D} install_headers
 	#ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
-	# This conflicts with the c++ version of this header
-	rm -f ${D}${includedir}/bits/atomicity.h
-	install -d ${D}${libdir}/
-	install -m 644 lib/crt[1in].o ${D}${libdir}/
-	install -m 644 lib/libc.so ${D}${libdir}/
+	install -d ${D}${layout_libdir}/
+	install -m 644 lib/crt[1in].o lib/libc.so ${D}${layout_libdir}/
 }
 
 do_compile () {
-	make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
+	make PREFIX=${D} \
 		lib/crt1.o lib/crti.o lib/crtn.o
 	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
 		-o lib/libc.so
diff --git a/recipes/uclibc/uclibc-initial_0.9.30.bb b/recipes/uclibc/uclibc-initial_0.9.30.bb
index 84c35c8..9391a8c 100644
--- a/recipes/uclibc/uclibc-initial_0.9.30.bb
+++ b/recipes/uclibc/uclibc-initial_0.9.30.bb
@@ -12,11 +12,8 @@ do_install() {
 
 	#ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
-	# This conflicts with the c++ version of this header
-	rm -f ${D}${includedir}/bits/atomicity.h
 	install -d ${D}${libdir}/
-	install -m 644 lib/crt[1in].o ${D}${libdir}/
-	install -m 644 lib/libc.so ${D}${libdir}/
+	install -m 644 lib/crt[1in].o lib/libc.so ${D}${libdir}/
 }
 
 do_compile () {
diff --git a/recipes/uclibc/uclibc-initial_git.bb b/recipes/uclibc/uclibc-initial_git.bb
index 8c582e0..dd69dc0 100644
--- a/recipes/uclibc/uclibc-initial_git.bb
+++ b/recipes/uclibc/uclibc-initial_git.bb
@@ -7,19 +7,17 @@ PACKAGES = ""
 
 do_install() {
 	# Install initial headers into the cross dir
-	make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
+	make PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
 		install_headers
 	#ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
-	# This conflicts with the c++ version of this header
-	rm -f ${D}${includedir}/bits/atomicity.h
 	install -d ${D}${libdir}/
 	install -m 644 lib/crt[1in].o ${D}${libdir}/
 	install -m 755 lib/lib[cm].so ${D}${libdir}/
 }
 
 do_compile () {
-	make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
+	make PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
 		lib/crt1.o lib/crti.o lib/crtn.o
 	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
 		-o lib/libc.so
diff --git a/recipes/uclibc/uclibc-old.inc b/recipes/uclibc/uclibc-old.inc
new file mode 100644
index 0000000..7198c44
--- /dev/null
+++ b/recipes/uclibc/uclibc-old.inc
@@ -0,0 +1,186 @@
+DESCRIPTION = "C library for embedded systems"
+LICENSE = "LGPL"
+SECTION = "libs"
+PRIORITY = "required"
+INC_PR = "r35"
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+    import bb, re
+    uc_os = (re.match('.*uclibc*', bb.data.getVar('TARGET_OS', d, 1)) != None)
+    if not uc_os:
+        raise bb.parse.SkipPackage("incompatible with target %s" %
+                                   bb.data.getVar('TARGET_OS', d, 1))
+}
+
+PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
+PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}"
+DEPENDS = "virtual/${TARGET_PREFIX}binutils \
+	   virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers ncurses-native pax-utils-native"
+RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+
+# Blackfin needs a wrapper around ld
+#DEPENDS_append_bfin = " elf2flt "
+
+INHIBIT_DEFAULT_DEPS = "1"
+PARALLEL_MAKE = ""
+
+PACKAGES =+ "ldd uclibc-utils-dbg uclibc-utils uclibc-gconv uclibc-thread-db"
+
+LEAD_SONAME = "libc.so"
+
+# The last line (gdb and lib1) is for uclinux-uclibc builds 
+uclibc_baselibs = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so \
+		   ${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so \
+		   ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so \
+		   ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so \
+                   ${base_libdir}/ld*.so.* ${base_libdir}/ld-*.so \
+		   ${base_libdir}/libc*.so.* ${base_libdir}/libuClibc-*.so \
+                   ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so \
+		   ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so \
+                   ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so \
+		   ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so \
+                   ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so \
+                   ${libdir}/libc.gdb ${libdir}/libc ${base_libdir}/lib1.so \
+                   "
+FILES_${PN} = "${sysconfdir} ${uclibc_baselibs} /sbin/ldconfig \
+	       ${libexecdir} ${datadir}/zoneinfo ${libdir}/locale"
+FILES_ldd = "${bindir}/ldd"
+FILES_uclibc-dev_append = " ${libdir}/*.o ${libdir}/*_nonshared.a"
+FILES_uclibc-utils = "${bindir} ${sbindir}"
+FILES_uclibc-utils-dbg += "${bindir}/.debug ${sbindir}/.debug"
+FILES_uclibc-gconv = "${libdir}/gconv"
+FILES_uclibc-thread-db = "/lib/libthread_db*"
+RPROVIDES_uclibc-dev += "libc-dev virtual-libc-dev"
+
+#
+# This locale file gets copied into uClibc-${PV}/extra/locale/ prior to
+# build, it does not need to be unpacked, but we can't inhibit the unpacking
+# in the current build system.
+#
+UCLIBC_LOCALE_FILE = "uClibc-locale-030818.tgz"
+UCLIBC_LOCALE_FILE_arm = "uClibc-locale-030818.arm.tgz"
+UCLIBC_LOCALE_URI = "http://www.uclibc.org/downloads/${UCLIBC_LOCALE_FILE}"
+UCLIBC_LOCALE_URI_arm = "http://wiki.openembedded.net/dl/uclibc-locale/${UCLIBC_LOCALE_FILE}"
+
+SRC_URI = "${@['${UCLIBC_LOCALE_URI}', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']} \
+	   file://uClibc.config \
+           http://www.uclibc.org/downloads/uClibc-${PV}.tar.bz2;name=uClibc-${PV} \
+          "
+
+# do_stage barfs on a CC with whitepspace, therefore put the 'HOST_CC_ARCH' in
+# the CFLAGS (for when building the utils).
+OEMAKE_NO_CC = "'STRIPTOOL=true' 'LD=${LD}' \
+		'LOCALE_DATA_FILENAME=${UCLIBC_LOCALE_FILE}'"
+EXTRA_OEMAKE = "${OEMAKE_NO_CC} 'CC=${CC}' \
+		'HOSTCFLAGS=-I${STAGING_INCDIR_NATIVE}' \
+		ARCH=`grep TARGET_ARCH ${S}/.config|sed -e 's/TARGET_ARCH=//g'`"
+EXTRA_OEMAKE_task_do_package = "${OEMAKE_NO_CC}"
+
+KERNEL_SOURCE = "${STAGING_INCDIR}"
+KERNEL_HEADERS = "${STAGING_INCDIR}"
+
+# Lets munge this via siteinfo.bbclass as well:
+# ARCH_BIG_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN=y
+# ARCH_WANTS_LITTLE_ENDIAN is not set
+
+# How to enable verbose logs:
+#export VERBOSE="1"
+
+configmangle = 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE="${KERNEL_SOURCE}",g; \
+		s,^KERNEL_HEADERS=.*,KERNEL_HEADERS="${KERNEL_HEADERS}",g; \
+		s,^RUNTIME_PREFIX=.*,RUNTIME_PREFIX="/",g; \
+		s,^DEVEL_PREFIX=.*,DEVEL_PREFIX="/${prefix}",g; \
+		s,^SHARED_LIB_LOADER_PATH=.*,SHARED_LIB_LOADER_PATH="/lib",; \
+		s,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX="/lib",; \
+		s,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g; \
+		${@["","s,.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=y,;"][bb.data.getVar("USE_NLS", d, 1) == "yes"]} \
+		${@["","s,.*LDSO_GNU_HASH_SUPPORT.*,# LDSO_GNU_HASH_SUPPORT is not set,;"][bb.data.getVar("TARGET_ARCH", d, 1) in ['mips', 'mipsel', 'avr32']]} \
+               '
+
+CFLAGS := "${@oe_filter_out('-I\S+', '${CFLAGS}', d)}"
+
+python () {
+	if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
+		bb.data.setVar('configmangle_append', ' s,^HAS_FPU=y,# HAS_FPU is not set,;', d)
+}
+
+uclibcbuild_do_patch() {
+	ln -sf ${STAGING_INCDIR}/linux ${S}/include/linux
+	ln -sf ${STAGING_INCDIR}/asm ${S}/include/asm
+	
+	${@['cp %s/%s extra/locale' % (bb.data.getVar('DL_DIR', d, 1) or '', bb.data.getVar('UCLIBC_LOCALE_FILE', d, 1) or ''), ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}
+}
+
+python do_patch () {
+	bb.build.exec_func('base_do_patch', d)
+	bb.build.exec_func('uclibcbuild_do_patch', d)
+}
+
+do_configure() {
+	rm -f ${S}/.config
+
+	# For uClibc 0.9.29, OpenEmbedded splits the uClibc.config in two parts:
+	# uClibc.machine and uClibc.distro. So, if they exist use them, otherwise
+	# use a uClibc.config
+	if [ -f ${WORKDIR}/uClibc.machine -a -f ${WORKDIR}/uClibc.distro ]; then
+		echo "### uClibc.machine ###" >${S}/merged.config
+		cat ${WORKDIR}/uClibc.machine >>${S}/merged.config
+		echo "### uClibc.distro ###" >>${S}/merged.config
+		cat ${WORKDIR}/uClibc.distro >>${S}/merged.config
+	else
+		echo "### uClibc.config ###" >${S}/merged.config
+		cat ${WORKDIR}/uClibc.config >>${S}/merged.config
+	fi
+	cp ${S}/merged.config ${S}/.config	
+
+	# Mangle the resulting .config depending on OE variables
+	perl -i -p -e 's,^CROSS=.*,TARGET_ARCH=${TARGET_ARCH}\nCROSS=${TARGET_PREFIX},g' ${S}/Rules.mak
+	sed -i -e s:'$(CROSS)strip':true: ${S}/Rules.mak	
+	perl -i -p -e '${configmangle}' ${S}/.config
+
+   	sed -i -e '/CONFIG_ARM_EABI/d' ${S}/.config
+
+	if [ `echo ${TARGET_ARCH} | grep -e '^arm'` ]; then
+		if [ `echo ${TARGET_OS} | grep -e 'eabi$'` ]; then
+       			echo "CONFIG_ARM_EABI=y"                >> ${S}/.config
+		else
+			echo "# CONFIG_ARM_EABI is not set"     >> ${S}/.config
+		fi
+	fi
+	yes '' | oe_runmake oldconfig
+}
+
+do_install() {
+	oe_runmake PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
+		install_dev install_runtime 
+
+	# Need to overwrite the version from -initial
+	#if [ ! -e ${D}${libdir}/libc.so ]; then
+	#	ln -s ../../lib/libc.so.0 ${D}${libdir}/libc.so
+	#fi
+
+	# We don't really need this in ${includedir}
+	rm -f ${D}${prefix}/include/.cvsignore
+
+	# This conflicts with the c++ version of this header
+	rm -f ${D}${prefix}/include/bits/atomicity.h
+
+        oe_runmake "SSP_ALL_CFLAGS=${TARGET_LINK_HASH_STYLE}" utils
+        oe_runmake STRIPTOOL=true PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
+                install_utils
+	
+	# oe_runstrip needs +x on files	
+	chmod +x ${D}/${base_libdir}/*
+}
+
+get_monotonic_srcrev () {
+    	(cd ${S}; eval `git rev-list HEAD|wc -l`)
+}
diff --git a/recipes/uclibc/uclibc.inc b/recipes/uclibc/uclibc.inc
index 4686d34..b925386 100644
--- a/recipes/uclibc/uclibc.inc
+++ b/recipes/uclibc/uclibc.inc
@@ -3,6 +3,7 @@ LICENSE = "LGPL"
 SECTION = "libs"
 PRIORITY = "required"
 INC_PR = "r34"
+require uclibc-config.inc
 #
 # For now, we will skip building of a gcc package if it is a uclibc one
 # and our build is not a uclibc one, and we skip a glibc one if our build
@@ -20,172 +21,168 @@ python __anonymous () {
 }
 
 PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
-PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}"
 DEPENDS = "virtual/${TARGET_PREFIX}binutils \
-	   virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers ncurses-native pax-utils-native"
+           virtual/${TARGET_PREFIX}gcc-intermediate \
+           linux-libc-headers ncurses-native"
 RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
 
-# Blackfin needs a wrapper around ld
-#DEPENDS_append_bfin = " elf2flt "
-
 INHIBIT_DEFAULT_DEPS = "1"
-PARALLEL_MAKE = ""
 
 PACKAGES =+ "ldd uclibc-utils-dbg uclibc-utils uclibc-gconv uclibc-thread-db"
 
 LEAD_SONAME = "libc.so"
 
-# The last line (gdb and lib1) is for uclinux-uclibc builds 
+# The last line (gdb and lib1) is for uclinux-uclibc builds
 uclibc_baselibs = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so \
-		   ${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so \
-		   ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so \
-		   ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so \
+                   ${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so \
+                   ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so \
+                   ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so \
                    ${base_libdir}/ld*.so.* ${base_libdir}/ld-*.so \
-		   ${base_libdir}/libc*.so.* ${base_libdir}/libuClibc-*.so \
+                   ${base_libdir}/libc*.so.* ${base_libdir}/libuClibc-*.so \
                    ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so \
-		   ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so \
+                   ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so \
                    ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so \
-		   ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so \
+                   ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so \
                    ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so \
                    ${libdir}/libc.gdb ${libdir}/libc ${base_libdir}/lib1.so \
-                   "
+                  "
 FILES_${PN} = "${sysconfdir} ${uclibc_baselibs} /sbin/ldconfig \
-	       ${libexecdir} ${datadir}/zoneinfo ${libdir}/locale"
+               ${libexecdir} ${datadir}/zoneinfo ${libdir}/locale"
 FILES_ldd = "${bindir}/ldd"
-FILES_uclibc-dev_append = " ${libdir}/*.o ${libdir}/*_nonshared.a"
+FILES_uclibc-dev_append = "\
+        ${libdir}/lib*.so \
+        ${libdir}/*_nonshared.a \
+        ${libdir}/[S]*crt[1in].o \
+        ${libdir}/lib*.a \
+        ${includedir}/*.h ${includedir}/*/*.h \
+       "
 FILES_uclibc-utils = "${bindir} ${sbindir}"
 FILES_uclibc-utils-dbg += "${bindir}/.debug ${sbindir}/.debug"
 FILES_uclibc-gconv = "${libdir}/gconv"
 FILES_uclibc-thread-db = "/lib/libthread_db*"
 RPROVIDES_uclibc-dev += "libc-dev virtual-libc-dev"
 
-#
-# This locale file gets copied into uClibc-${PV}/extra/locale/ prior to
-# build, it does not need to be unpacked, but we can't inhibit the unpacking
-# in the current build system.
-#
-UCLIBC_LOCALE_FILE = "uClibc-locale-030818.tgz"
-UCLIBC_LOCALE_FILE_arm = "uClibc-locale-030818.arm.tgz"
-UCLIBC_LOCALE_URI = "http://www.uclibc.org/downloads/${UCLIBC_LOCALE_FILE};name=locale"
-UCLIBC_LOCALE_URI_arm = "http://wiki.openembedded.net/dl/uclibc-locale/${UCLIBC_LOCALE_FILE};name=localearm"
-
-SRC_URI[locale.md5sum] = "d75b2239b4e27c3c9cbed1c8f6eabba6"
-SRC_URI[locale.sha256sum] = "c4362be318a38f18d98dccf462d22d95bab92f05548bb93f65298fe9afaebd57"
-SRC_URI[localearm.md5sum] = "fc0b6113f2b333564d3558e241059db8"
-SRC_URI[localearm.sha256sum] = "6765f08499079207ba8c4da999d602ca75c384ff5812aa973f27b6a501b3438e"
-
-SRC_URI = "${@['${UCLIBC_LOCALE_URI}', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']} \
-	   file://uClibc.config \
-           http://www.uclibc.org/downloads/uClibc-${PV}.tar.bz2;name=uClibc-${PV} \
-          "
-
-# do_stage barfs on a CC with whitepspace, therefore put the 'HOST_CC_ARCH' in
-# the CFLAGS (for when building the utils).
-OEMAKE_NO_CC = "'STRIPTOOL=true' 'LD=${LD}' \
-		'LOCALE_DATA_FILENAME=${UCLIBC_LOCALE_FILE}'"
-EXTRA_OEMAKE = "${OEMAKE_NO_CC} 'CC=${CC}' \
-		'HOSTCFLAGS=-I${STAGING_INCDIR_NATIVE}' \
-		ARCH=`grep TARGET_ARCH ${S}/.config|sed -e 's/TARGET_ARCH=//g'`"
+SRC_URI = "\
+        file://uClibc.config \
+        http://www.uclibc.org/downloads/uClibc-${PV}.tar.bz2;name=uClibc-${PV} \
+        "
+
+# do_stage barfs on a CC with whitespace, therefore put the 'HOST_CC_ARCH' in
+# the CFLAGS (when building the utils).
+OEMAKE_NO_CC = "'STRIPTOOL=true' 'LD=${LD}'"
+EXTRA_OEMAKE = "${OEMAKE_NO_CC} \
+                'HOSTCC=${BUILD_CC}' \
+                'HOST_CFLAGS=${BUILD_CFLAGS}' \
+                'CC=${CC}' \
+                ARCH=${UCLIBC_ARCH}"
+
 EXTRA_OEMAKE_task_do_package = "${OEMAKE_NO_CC}"
 
-KERNEL_SOURCE = "${STAGING_INCDIR}"
-KERNEL_HEADERS = "${STAGING_INCDIR}"
-
-# Lets munge this via siteinfo.bbclass as well:
-# ARCH_BIG_ENDIAN=y
-# ARCH_WANTS_BIG_ENDIAN=y
-# ARCH_WANTS_LITTLE_ENDIAN is not set
-
-# How to enable verbose logs:
-#export VERBOSE="1"
-
-configmangle = 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE="${KERNEL_SOURCE}",g; \
-		s,^KERNEL_HEADERS=.*,KERNEL_HEADERS="${KERNEL_HEADERS}",g; \
-		s,^RUNTIME_PREFIX=.*,RUNTIME_PREFIX="/",g; \
-		s,^DEVEL_PREFIX=.*,DEVEL_PREFIX="/${prefix}",g; \
-		s,^SHARED_LIB_LOADER_PATH=.*,SHARED_LIB_LOADER_PATH="/lib",; \
-		s,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX="/lib",; \
-		s,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g; \
-		${@["","s,.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=y,;"][bb.data.getVar("USE_NLS", d, 1) == "yes"]} \
-		${@["","s,.*LDSO_GNU_HASH_SUPPORT.*,# LDSO_GNU_HASH_SUPPORT is not set,;"][bb.data.getVar("TARGET_ARCH", d, 1) in ['mips', 'mipsel', 'avr32']]} \
-               '
+# enable verbose output:
+export V="1"
 
-CFLAGS := "${@oe_filter_out('-I\S+', '${CFLAGS}', d)}"
+UCLIBC_EXTRA_CFLAGS  := "${@oe_filter_out('(-I\S+|-i\S+)', '${CFLAGS}', d)}"
+UCLIBC_EXTRA_LDFLAGS := "${@oe_filter_out('(-L\S+|-l\S+)', '${LDFLAGS}', d)}"
+do_compile_prepend () {
+  unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+}
 
+configmangle = '/^KERNEL_HEADERS/d; \
+                /^RUNTIME_PREFIX/d; \
+                /^DEVEL_PREFIX/d; \
+                /^SHARED_LIB_LOADER_PREFIX/d; \
+                /^UCLIBC_EXTRA_CFLAGS/d; \
+                s,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g; \
+                ${@["","s,.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=y,;"][bb.data.getVar("USE_NLS", d, 1) == "yes"]} \
+                ${@["","s,.*LDSO_GNU_HASH_SUPPORT.*,# LDSO_GNU_HASH_SUPPORT is not set,;"][bb.data.getVar("TARGET_ARCH", d, 1) in ['mips', 'mipsel', 'avr32']]} \
+                /^CROSS/d; \
+                /^TARGET_ARCH=/d; \
+                /^TARGET_/s,^\([^=]*\).*,# \1 is not set,g; \
+                s,^DOSTRIP.*,# DOSTRIP is not set,g; \
+                /_[EO]*ABI/d; \
+                /HAS_FPU/d; \
+               '
+OE_FEATURES := "${@features_to_uclibc_conf(d)}"
+OE_DEL      := "${@features_to_uclibc_del(d)}"
 python () {
-	if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
-		bb.data.setVar('configmangle_append', ' s,^HAS_FPU=y,# HAS_FPU is not set,;', d)
+  if "${OE_DEL}":
+    bb.data.setVar('configmangle_append', "${OE_DEL}" + "\n", d)
+  if "${OE_FEATURES}":
+    bb.data.setVar('configmangle_append',
+                   "/^### DISTRO FEATURES$/a\\\n%s\n\n" %
+                   ("\\n".join((bb.data.expand("${OE_FEATURES}", d).split("\n")))),
+                   d)
+  bb.data.setVar('configmangle_append',
+                 "/^### CROSS$/a\\\n%s\n" %
+                  ("\\n".join(["CROSS_COMPILER_PREFIX=\"${TARGET_PREFIX}\"",
+                        "UCLIBC_EXTRA_CFLAGS=\"${UCLIBC_EXTRA_CFLAGS}\"",
+                         "KERNEL_HEADERS=\"${STAGING_INCDIR}\"",
+                         "RUNTIME_PREFIX=\"/\"",
+                         "DEVEL_PREFIX=\"/${prefix}\"",
+                         "SHARED_LIB_LOADER_PREFIX=\"/lib\"",
+                        ])
+                  ),
+                 d)
+  bb.data.setVar('configmangle_append',
+                 "/^### TGT$/a\\\nTARGET_ARCH=\"%s\"\\nTARGET_%s=y\n" %
+                        ("${UCLIBC_ARCH}", "${UCLIBC_ARCH}"),
+                 d)
+  bb.data.setVar('configmangle_append',
+    "/^### FPU$/a\\\n%s\n\n" % (["UCLIBC_HAS_FPU=y","# UCLIBC_HAS_FPU is not set"][bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]]), d)
+  if "${UCLIBC_ENDIAN}":
+    bb.data.setVar('configmangle_append',
+                   "/^### ABI$/a\\\nARCH_%s_ENDIAN=y\n\n" % ("${UCLIBC_ENDIAN}"),
+                   d)
+  if "${UCLIBC_ABI}":
+    bb.data.setVar('configmangle_append',
+                   "/^### ABI$/a\\\nCONFIG_%s=y\n\n" % ("${UCLIBC_ABI}"),
+                   d)
 }
 
 uclibcbuild_do_patch() {
-	ln -sf ${STAGING_INCDIR}/linux ${S}/include/linux
-	ln -sf ${STAGING_INCDIR}/asm ${S}/include/asm
-	
-	${@['cp %s/%s extra/locale' % (bb.data.getVar('DL_DIR', d, 1) or '', bb.data.getVar('UCLIBC_LOCALE_FILE', d, 1) or ''), ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}
+        ln -sf ${STAGING_INCDIR}/linux ${S}/include/linux
+        ln -sf ${STAGING_INCDIR}/asm ${S}/include/asm
 }
 
 python do_patch () {
-	bb.build.exec_func('base_do_patch', d)
-	bb.build.exec_func('uclibcbuild_do_patch', d)
+        bb.build.exec_func('base_do_patch', d)
+        bb.build.exec_func('uclibcbuild_do_patch', d)
 }
 
 do_configure() {
-	rm -f ${S}/.config
-
-	# For uClibc 0.9.29, OpenEmbedded splits the uClibc.config in two parts:
-	# uClibc.machine and uClibc.distro. So, if they exist use them, otherwise
-	# use a uClibc.config
-	if [ -f ${WORKDIR}/uClibc.machine -a -f ${WORKDIR}/uClibc.distro ]; then
-		echo "### uClibc.machine ###" >${S}/merged.config
-		cat ${WORKDIR}/uClibc.machine >>${S}/merged.config
-		echo "### uClibc.distro ###" >>${S}/merged.config
-		cat ${WORKDIR}/uClibc.distro >>${S}/merged.config
-	else
-		echo "### uClibc.config ###" >${S}/merged.config
-		cat ${WORKDIR}/uClibc.config >>${S}/merged.config
-	fi
-	cp ${S}/merged.config ${S}/.config	
-
-	# Mangle the resulting .config depending on OE variables
-	perl -i -p -e 's,^CROSS=.*,TARGET_ARCH=${TARGET_ARCH}\nCROSS=${TARGET_PREFIX},g' ${S}/Rules.mak
-	sed -i -e s:'$(CROSS)strip':true: ${S}/Rules.mak	
-	perl -i -p -e '${configmangle}' ${S}/.config
-
-   	sed -i -e '/CONFIG_ARM_EABI/d' ${S}/.config
-
-	if [ `echo ${TARGET_ARCH} | grep -e '^arm'` ]; then
-		if [ `echo ${TARGET_OS} | grep -e 'eabi$'` ]; then
-       			echo "CONFIG_ARM_EABI=y"                >> ${S}/.config
-		else
-			echo "# CONFIG_ARM_EABI is not set"     >> ${S}/.config
-		fi
-	fi
-	yes '' | oe_runmake oldconfig
+        rm -f ${S}/.config
+
+        # OpenEmbedded splits the uClibc.config in two parts:
+        # uClibc.machine, uClibc.distro
+        # So, if they exist use them, otherwise use a uClibc.config
+        if [ -f ${WORKDIR}/uClibc.machine -a -f ${WORKDIR}/uClibc.distro ]; then
+                echo "### uClibc.machine ###" >${S}/merged.config
+                cat ${WORKDIR}/uClibc.machine >>${S}/merged.config
+                echo "### uClibc.distro ###" >>${S}/merged.config
+                cat ${WORKDIR}/uClibc.distro >>${S}/merged.config
+        else
+                echo "### uClibc.config ###" >${S}/merged.config
+                cat ${WORKDIR}/uClibc.config >>${S}/merged.config
+        fi
+        echo "### CROSS" >>${S}/merged.config
+        echo "### TGT" >>${S}/merged.config
+        echo "### MMU" >>${S}/merged.config
+        echo "### FPU" >>${S}/merged.config
+        echo "### ABI" >>${S}/merged.config
+        echo "### DISTRO FEATURES" >>${S}/merged.config
+        cp ${S}/merged.config ${S}/.config
+
+        # Mangle the resulting .config depending on OE variables
+        sed -i -e '${configmangle}' ${S}/.config
+
+        oe_runmake oldconfig
 }
 
 do_install() {
-	oe_runmake PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
-		install_dev install_runtime 
-
-	# Need to overwrite the version from -initial
-	#if [ ! -e ${D}${libdir}/libc.so ]; then
-	#	ln -s ../../lib/libc.so.0 ${D}${libdir}/libc.so
-	#fi
-
-	# We don't really need this in ${includedir}
-	rm -f ${D}${prefix}/include/.cvsignore
-
-	# This conflicts with the c++ version of this header
-	rm -f ${D}${prefix}/include/bits/atomicity.h
-
-        oe_runmake "SSP_ALL_CFLAGS=${TARGET_LINK_HASH_STYLE}" utils
-        oe_runmake STRIPTOOL=true PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
-                install_utils
-	
-	# oe_runstrip needs +x on files	
-	chmod +x ${D}/${base_libdir}/*
+        oe_runmake PREFIX=${D} install
+        oe_runmake PREFIX=${D} install_utils
 }
 
 get_monotonic_srcrev () {
-    	(cd ${S}; eval `git rev-list HEAD|wc -l`)
+        (cd ${S}; eval `git rev-list HEAD|wc -l`)
 }
diff --git a/recipes/uclibc/uclibc_0.9.28.bb b/recipes/uclibc/uclibc_0.9.28.bb
index a43d5ed..7da53f9 100644
--- a/recipes/uclibc/uclibc_0.9.28.bb
+++ b/recipes/uclibc/uclibc_0.9.28.bb
@@ -1,4 +1,4 @@
-require uclibc.inc
+require uclibc-old.inc
 PR = "${INC_PR}.0"
 
 # This is the correct KERNEL_SOURCE location, if the uClibc
diff --git a/recipes/uclibc/uclibc_0.9.29.bb b/recipes/uclibc/uclibc_0.9.29.bb
index b83cd2e..829777b 100644
--- a/recipes/uclibc/uclibc_0.9.29.bb
+++ b/recipes/uclibc/uclibc_0.9.29.bb
@@ -8,7 +8,7 @@
 #
 UCLIBC_BASE ?= "0.9.29"
 
-require uclibc.inc
+require uclibc-old.inc
 PR = "${INC_PR}.0"
 
 PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
diff --git a/recipes/uclibc/uclibc_0.9.30.1.bb b/recipes/uclibc/uclibc_0.9.30.1.bb
index ea69249..d3d5c58 100644
--- a/recipes/uclibc/uclibc_0.9.30.1.bb
+++ b/recipes/uclibc/uclibc_0.9.30.1.bb
@@ -8,7 +8,7 @@
 #
 UCLIBC_BASE ?= "0.9.30.1"
 
-require uclibc.inc
+require uclibc-old.inc
 PR = "${INC_PR}.4"
 
 PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
diff --git a/recipes/uclibc/uclibc_0.9.30.bb b/recipes/uclibc/uclibc_0.9.30.bb
index 5d267b5..36e9de3 100644
--- a/recipes/uclibc/uclibc_0.9.30.bb
+++ b/recipes/uclibc/uclibc_0.9.30.bb
@@ -8,7 +8,7 @@
 #
 UCLIBC_BASE ?= "0.9.30"
 
-require uclibc.inc
+require uclibc-old.inc
 PR = "${INC_PR}.1"
 
 PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
diff --git a/recipes/uclibc/uclibc_git.bb b/recipes/uclibc/uclibc_git.bb
index bbff94d..f026ae9 100644
--- a/recipes/uclibc/uclibc_git.bb
+++ b/recipes/uclibc/uclibc_git.bb
@@ -26,7 +26,6 @@ FILESPATHPKG =. "uclibc-git:uclibc-${UCLIBC_BASE}:"
 KERNEL_SOURCE = "${CROSS_DIR}/${TARGET_SYS}"
 
 SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \
-	${@['${UCLIBC_LOCALE_URI}', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']} \
 	file://uClibc.config \
 	file://uClibc.machine \
 	file://uClibc.distro \
-- 
1.7.1




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

* [PATCH][v3 4/4] uclibc: add 0.9.31
  2010-07-06 19:32 [PATCH][v3 0/4] honour {MACHINE, DISTRO}_FEATURES for configuration Bernhard Reutner-Fischer
                   ` (2 preceding siblings ...)
  2010-07-06 19:32 ` [PATCH][v3 3/4] uClibc: redo configuration Bernhard Reutner-Fischer
@ 2010-07-06 19:32 ` Bernhard Reutner-Fischer
  3 siblings, 0 replies; 21+ messages in thread
From: Bernhard Reutner-Fischer @ 2010-07-06 19:32 UTC (permalink / raw)
  To: Phil Blundell; +Cc: openembedded-devel

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
 conf/distro/include/sane-toolchain.inc             |    2 +-
 recipes/uclibc/uclibc-0.9.31/a780/uClibc.machine   |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/akita/uClibc.machine  |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/arm/uClibc.machine    |   69 +++++++
 recipes/uclibc/uclibc-0.9.31/armeb/uClibc.machine  |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/armv4t/uClibc.machine |   69 +++++++
 .../uclibc/uclibc-0.9.31/armv5te/uClibc.machine    |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/armv6/uClibc.machine  |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/armv7a/uClibc.machine |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/avr32/uClibc.machine  |   54 ++++++
 recipes/uclibc/uclibc-0.9.31/bfin/uClibc.machine   |  192 ++++++++++++++++++++
 recipes/uclibc/uclibc-0.9.31/c7x0/uClibc.machine   |   70 +++++++
 .../uclibc/uclibc-0.9.31/cm-x270/uClibc.machine    |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/collie/uClibc.machine |   70 +++++++
 .../uclibc/uclibc-0.9.31/dht-walnut/uClibc.machine |   54 ++++++
 recipes/uclibc/uclibc-0.9.31/efika/uClibc.machine  |   53 ++++++
 recipes/uclibc/uclibc-0.9.31/ep93xx/uClibc.machine |   69 +++++++
 .../uclibc-0.9.31/gumstix-connex/uClibc.machine    |   70 +++++++
 .../uclibc-0.9.31/gumstix-verdex/uClibc.machine    |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/h2200/uClibc.machine  |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/h3600/uClibc.machine  |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/h3800/uClibc.machine  |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/h3900/uClibc.machine  |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/h4000/uClibc.machine  |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/h5000/uClibc.machine  |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/hx4700/uClibc.machine |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/iwmmxt/uClibc.machine |   70 +++++++
 .../uclibc/uclibc-0.9.31/ixp4xxbe/uClibc.machine   |   70 +++++++
 .../uclibc/uclibc-0.9.31/kilauea/uClibc.machine    |   55 ++++++
 recipes/uclibc/uclibc-0.9.31/mipsel/uClibc.machine |   63 +++++++
 .../uclibc-0.9.31/mpc8313e-rdb/uClibc.machine      |   53 ++++++
 .../uclibc-0.9.31/mpc8315e-rdb/uClibc.machine      |   53 ++++++
 .../uclibc-0.9.31/mpc8323e-rdb/uClibc.machine      |   54 ++++++
 recipes/uclibc/uclibc-0.9.31/n1200/uClibc.machine  |   53 ++++++
 .../uclibc/uclibc-0.9.31/om-gta01/uClibc.machine   |   69 +++++++
 recipes/uclibc/uclibc-0.9.31/palmld/uClibc.machine |   70 +++++++
 .../uclibc/uclibc-0.9.31/palmz31/uClibc.machine    |   70 +++++++
 .../uclibc/uclibc-0.9.31/palmz72/uClibc.machine    |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/poodle/uClibc.machine |   70 +++++++
 .../uclibc/uclibc-0.9.31/qemumips/uClibc.machine   |   63 +++++++
 .../uclibc/uclibc-0.9.31/qemux86/uClibc.machine    |   68 +++++++
 .../uclibc/uclibc-0.9.31/sequoia/uClibc.machine    |   53 ++++++
 recipes/uclibc/uclibc-0.9.31/simpad/uClibc.machine |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/spitz/uClibc.machine  |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/titan/uClibc.machine  |   52 ++++++
 recipes/uclibc/uclibc-0.9.31/uClibc.distro         |  150 +++++++++++++++
 recipes/uclibc/uclibc-0.9.31/uClibc.machine.armv4t |   69 +++++++
 .../uclibc/uclibc-0.9.31/uClibc.machine.armv5te    |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/uClibc.machine.iwmmxt |   70 +++++++
 .../uclibc/uclibc-0.9.31/uClibc.machine.strongarm  |   70 +++++++
 recipes/uclibc/uclibc-0.9.31/wrap/uClibc.machine   |   73 ++++++++
 recipes/uclibc/uclibc-0.9.31/x86/uClibc.machine    |   72 ++++++++
 recipes/uclibc/uclibc-initial_0.9.31.bb            |   26 +++
 recipes/uclibc/uclibc_0.9.31.bb                    |   30 +++
 54 files changed, 3647 insertions(+), 1 deletions(-)
 create mode 100644 recipes/uclibc/uclibc-0.9.31/a780/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/akita/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/arm/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/armeb/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/armv4t/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/armv5te/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/armv6/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/armv7a/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/avr32/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/bfin/uClibc.config
 create mode 100644 recipes/uclibc/uclibc-0.9.31/bfin/uClibc.distro
 create mode 100644 recipes/uclibc/uclibc-0.9.31/bfin/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/c7x0/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/cm-x270/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/collie/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/dht-walnut/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/efika/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/ep93xx/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/gumstix-connex/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/gumstix-verdex/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/h2200/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/h3600/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/h3800/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/h3900/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/h4000/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/h5000/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/hx4700/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/iwmmxt/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/ixp4xxbe/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/kilauea/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/mipsel/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/mpc8313e-rdb/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/mpc8315e-rdb/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/mpc8323e-rdb/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/n1200/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/om-gta01/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/palmld/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/palmz31/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/palmz72/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/poodle/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/qemumips/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/qemux86/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/sequoia/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/simpad/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/spitz/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/titan/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/uClibc.config
 create mode 100644 recipes/uclibc/uclibc-0.9.31/uClibc.distro
 create mode 100644 recipes/uclibc/uclibc-0.9.31/uClibc.machine.armv4t
 create mode 100644 recipes/uclibc/uclibc-0.9.31/uClibc.machine.armv5te
 create mode 100644 recipes/uclibc/uclibc-0.9.31/uClibc.machine.iwmmxt
 create mode 100644 recipes/uclibc/uclibc-0.9.31/uClibc.machine.strongarm
 create mode 100644 recipes/uclibc/uclibc-0.9.31/wrap/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-0.9.31/x86/uClibc.machine
 create mode 100644 recipes/uclibc/uclibc-initial_0.9.31.bb
 create mode 100644 recipes/uclibc/uclibc_0.9.31.bb

diff --git a/conf/distro/include/sane-toolchain.inc b/conf/distro/include/sane-toolchain.inc
index f7df850..9784baf 100644
--- a/conf/distro/include/sane-toolchain.inc
+++ b/conf/distro/include/sane-toolchain.inc
@@ -13,7 +13,7 @@ PREFERRED_VERSION_glibc             ?= "2.10.1"
 PREFERRED_VERSION_glibc-initial     ?= "2.10.1"
 PREFERRED_VERSION_eglibc             ?= "2.11"
 PREFERRED_VERSION_eglibc-initial     ?= "2.11"
-PREFERRED_UCLIBC_VERSION            ?= "0.9.30.1"
+PREFERRED_UCLIBC_VERSION            ?= "0.9.31"
 
 # Some systems need a special gcc version
 PREFERRED_GCC_VERSION_486sx          ?= "4.3.2"
diff --git a/recipes/uclibc/uclibc-0.9.31/a780/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/a780/uClibc.machine
new file mode 100644
index 0000000..e27931c
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/a780/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sat May 12 23:18:41 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+CONFIG_ARM_IWMMXT=y
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/akita/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/akita/uClibc.machine
new file mode 100644
index 0000000..e27931c
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/akita/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sat May 12 23:18:41 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+CONFIG_ARM_IWMMXT=y
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/arm/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/arm/uClibc.machine
new file mode 100644
index 0000000..898b73a
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/arm/uClibc.machine
@@ -0,0 +1,69 @@
+#
+# Automatically generated make config: don't edit
+# Mon May 14 10:23:14 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+CONFIG_ARM920T=y
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/armeb/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/armeb/uClibc.machine
new file mode 100644
index 0000000..2d9f63e
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/armeb/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sat May 12 22:07:03 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_BIG_ENDIAN=y
+ARCH_WANTS_BIG_ENDIAN=y
+# ARCH_WANTS_LITTLE_ENDIAN is not set
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/armv4t/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/armv4t/uClibc.machine
new file mode 100644
index 0000000..898b73a
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/armv4t/uClibc.machine
@@ -0,0 +1,69 @@
+#
+# Automatically generated make config: don't edit
+# Mon May 14 10:23:14 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+CONFIG_ARM920T=y
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/armv5te/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/armv5te/uClibc.machine
new file mode 100644
index 0000000..ec0385b
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/armv5te/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:16:02 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/armv6/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/armv6/uClibc.machine
new file mode 100644
index 0000000..85f70f7
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/armv6/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:16:02 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+UCLIBC_HAS_SOFT_FLOAT=n
+DO_C99_MATH=y
+KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/armv7a/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/armv7a/uClibc.machine
new file mode 100644
index 0000000..85f70f7
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/armv7a/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:16:02 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+UCLIBC_HAS_SOFT_FLOAT=n
+DO_C99_MATH=y
+KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/avr32/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/avr32/uClibc.machine
new file mode 100644
index 0000000..ed8b1a4
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/avr32/uClibc.machine
@@ -0,0 +1,54 @@
+#
+# Automatically generated make config: don't edit
+# Thu May  1 16:06:57 2008
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+TARGET_avr32=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="avr32"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_AVR32_AP7=y
+LINKRELAX=y
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_BIG_ENDIAN=y
+
+#
+# Using Big Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/home/stelios/proj/OE/tmp/uclibc/staging/avr32-angstrom-linux-uclibc/usr/include"
+HAVE_DOT_CONFIG=y
diff --git a/recipes/uclibc/uclibc-0.9.31/bfin/uClibc.config b/recipes/uclibc/uclibc-0.9.31/bfin/uClibc.config
new file mode 100644
index 0000000..e69de29
diff --git a/recipes/uclibc/uclibc-0.9.31/bfin/uClibc.distro b/recipes/uclibc/uclibc-0.9.31/bfin/uClibc.distro
new file mode 100644
index 0000000..e69de29
diff --git a/recipes/uclibc/uclibc-0.9.31/bfin/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/bfin/uClibc.machine
new file mode 100644
index 0000000..33a294f
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/bfin/uClibc.machine
@@ -0,0 +1,192 @@
+#
+# Automatically generated make config: don't edit
+# Sat Oct 20 20:22:28 2007
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+TARGET_bfin=y
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="bfin"
+FORCE_OPTIONS_FOR_ARCH=y
+TARGET_SUBARCH=""
+# UCLIBC_FORMAT_ELF is not set
+UCLIBC_FORMAT_FDPIC_ELF=y
+# UCLIBC_FORMAT_FLAT is not set
+# UCLIBC_FORMAT_FLAT_SEP_DATA is not set
+# UCLIBC_FORMAT_SHARED_FLAT is not set
+ARCH_LITTLE_ENDIAN=y
+
+#
+# Using Little Endian
+#
+ARCH_HAS_NO_MMU=y
+
+#
+# Target CPU lacks a memory management unit (MMU)
+#
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+# DO_C99_MATH is not set
+KERNEL_HEADERS="/usr/include"
+# UCLIBC_UCLINUX_BROKEN_MUNMAP is not set
+EXCLUDE_BRK=y
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# HAVE_NO_SHARED is not set
+# ARCH_HAS_NO_LDSO is not set
+HAVE_SHARED=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+UCLIBC_STATIC_LDCONFIG=y
+LDSO_RUNPATH=y
+UCLIBC_CTOR_DTOR=y
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+PTHREADS_DEBUG_SUPPORT=y
+LINUXTHREADS_OLD=y
+UCLIBC_HAS_LFS=y
+MALLOC=y
+# MALLOC_SIMPLE is not set
+# MALLOC_STANDARD is not set
+# MALLOC_GLIBC_COMPAT is not set
+UCLIBC_DYNAMIC_ATEXIT=y
+# COMPAT_ATEXIT is not set
+# UCLIBC_SUSV3_LEGACY is not set
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+UCLIBC_HAS_SHADOW=y
+# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set
+UCLIBC_HAS___PROGNAME=y
+UNIX98PTY_ONLY=y
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Networking Support
+#
+# UCLIBC_HAS_IPV6 is not set
+# UCLIBC_HAS_RPC is not set
+# UCLIBC_USE_NETLINK is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+UCLIBC_HAS_CTYPE_UNSAFE=y
+# UCLIBC_HAS_CTYPE_CHECKED is not set
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+# UCLIBC_HAS_WCHAR is not set
+# UCLIBC_HAS_LOCALE is not set
+# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set
+# USE_OLD_VFPRINTF is not set
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set
+# UCLIBC_HAS_PRINTF_M_SPEC is not set
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_REGEX_OLD=y
+UCLIBC_HAS_FNMATCH=y
+UCLIBC_HAS_FNMATCH_OLD=y
+# UCLIBC_HAS_WORDEXP is not set
+# UCLIBC_HAS_FTW is not set
+UCLIBC_HAS_GLOB=y
+# UCLIBC_HAS_GNU_GLOB is not set
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="$(RUNTIME_PREFIX)lib"
+RUNTIME_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc/"
+DEVEL_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc/usr/"
+MULTILIB=""
+
+#
+# Security options
+#
+# UCLIBC_HAS_ARC4RANDOM is not set
+# HAVE_NO_SSP is not set
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_RELRO=y
+# UCLIBC_BUILD_NOW is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# uClibc development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DODEBUG_PT is not set
+DOSTRIP=y
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
+# DOMULTI is not set
+# UCLIBC_MJN3_ONLY is not set
diff --git a/recipes/uclibc/uclibc-0.9.31/c7x0/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/c7x0/uClibc.machine
new file mode 100644
index 0000000..ec0385b
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/c7x0/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:16:02 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/cm-x270/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/cm-x270/uClibc.machine
new file mode 100644
index 0000000..e27931c
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/cm-x270/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sat May 12 23:18:41 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+CONFIG_ARM_IWMMXT=y
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/collie/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/collie/uClibc.machine
new file mode 100644
index 0000000..6e89444
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/collie/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:29:51 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_ARM_OABI=y
+# CONFIG_ARM_EABI is not set
+# USE_BX is not set
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+CONFIG_ARM_SA1100=y
+# CONFIG_ARM_XSCALE is not set
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/dht-walnut/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/dht-walnut/uClibc.machine
new file mode 100644
index 0000000..2a38cfd
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/dht-walnut/uClibc.machine
@@ -0,0 +1,54 @@
+#
+# Automatically generated make config: don't edit
+# Sun May  4 23:50:48 2008
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+TARGET_powerpc=y
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="powerpc"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_CLASSIC=y
+# CONFIG_E500 is not set
+TARGET_SUBARCH="classic"
+
+#
+# Using ELF file format
+#
+ARCH_BIG_ENDIAN=y
+
+#
+# Using Big Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/home/stelios/proj/OE/tmp/uclibc/staging/powerpc-angstrom-linux-uclibc/usr/include"
+HAVE_DOT_CONFIG=y
diff --git a/recipes/uclibc/uclibc-0.9.31/efika/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/efika/uClibc.machine
new file mode 100644
index 0000000..e059257
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/efika/uClibc.machine
@@ -0,0 +1,53 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:25:50 2007
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+TARGET_powerpc=y
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="powerpc"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_CLASSIC=y
+# CONFIG_E500 is not set
+TARGET_SUBARCH="classic"
+
+#
+# Using ELF file format
+#
+ARCH_BIG_ENDIAN=y
+
+#
+# Using Big Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/powerpc-angstrom-linux-uclibc/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/ep93xx/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/ep93xx/uClibc.machine
new file mode 100644
index 0000000..898b73a
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/ep93xx/uClibc.machine
@@ -0,0 +1,69 @@
+#
+# Automatically generated make config: don't edit
+# Mon May 14 10:23:14 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+CONFIG_ARM920T=y
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/gumstix-connex/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/gumstix-connex/uClibc.machine
new file mode 100644
index 0000000..ec0385b
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/gumstix-connex/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:16:02 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/gumstix-verdex/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/gumstix-verdex/uClibc.machine
new file mode 100644
index 0000000..e27931c
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/gumstix-verdex/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sat May 12 23:18:41 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+CONFIG_ARM_IWMMXT=y
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/h2200/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/h2200/uClibc.machine
new file mode 100644
index 0000000..ec0385b
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/h2200/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:16:02 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/h3600/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/h3600/uClibc.machine
new file mode 100644
index 0000000..6e89444
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/h3600/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:29:51 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_ARM_OABI=y
+# CONFIG_ARM_EABI is not set
+# USE_BX is not set
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+CONFIG_ARM_SA1100=y
+# CONFIG_ARM_XSCALE is not set
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/h3800/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/h3800/uClibc.machine
new file mode 100644
index 0000000..6e89444
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/h3800/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:29:51 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_ARM_OABI=y
+# CONFIG_ARM_EABI is not set
+# USE_BX is not set
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+CONFIG_ARM_SA1100=y
+# CONFIG_ARM_XSCALE is not set
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/h3900/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/h3900/uClibc.machine
new file mode 100644
index 0000000..ec0385b
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/h3900/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:16:02 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/h4000/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/h4000/uClibc.machine
new file mode 100644
index 0000000..ec0385b
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/h4000/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:16:02 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/h5000/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/h5000/uClibc.machine
new file mode 100644
index 0000000..ec0385b
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/h5000/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:16:02 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/hx4700/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/hx4700/uClibc.machine
new file mode 100644
index 0000000..e27931c
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/hx4700/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sat May 12 23:18:41 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+CONFIG_ARM_IWMMXT=y
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/iwmmxt/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/iwmmxt/uClibc.machine
new file mode 100644
index 0000000..e27931c
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/iwmmxt/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sat May 12 23:18:41 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+CONFIG_ARM_IWMMXT=y
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/ixp4xxbe/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/ixp4xxbe/uClibc.machine
new file mode 100644
index 0000000..2d9f63e
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/ixp4xxbe/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sat May 12 22:07:03 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_BIG_ENDIAN=y
+ARCH_WANTS_BIG_ENDIAN=y
+# ARCH_WANTS_LITTLE_ENDIAN is not set
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/kilauea/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/kilauea/uClibc.machine
new file mode 100644
index 0000000..effef11
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/kilauea/uClibc.machine
@@ -0,0 +1,55 @@
+#
+# Automatically generated make config: don't edit
+# Sun May  4 23:50:48 2008
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+TARGET_powerpc=y
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="powerpc"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_CLASSIC=y
+# CONFIG_E500 is not set
+TARGET_SUBARCH="classic"
+
+#
+# Using ELF file format
+#
+ARCH_BIG_ENDIAN=y
+
+#
+# Using Big Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/home/stelios/proj/OE/tmp/uclibc/staging/powerpc-angstrom-linux-uclibc/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/mipsel/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/mipsel/uClibc.machine
new file mode 100644
index 0000000..07c45f7
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/mipsel/uClibc.machine
@@ -0,0 +1,63 @@
+#
+# Automatically generated make config: don't edit
+# Wed Jul  9 13:37:36 2008
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+TARGET_mips=y
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="mips"
+FORCE_OPTIONS_FOR_ARCH=y
+ARCH_CFLAGS="-mno-split-addresses"
+CONFIG_MIPS_O32_ABI=y
+# CONFIG_MIPS_N32_ABI is not set
+# CONFIG_MIPS_N64_ABI is not set
+# CONFIG_MIPS_ISA_1 is not set
+# CONFIG_MIPS_ISA_2 is not set
+# CONFIG_MIPS_ISA_3 is not set
+# CONFIG_MIPS_ISA_4 is not set
+CONFIG_MIPS_ISA_MIPS32=y
+# CONFIG_MIPS_ISA_MIPS64 is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+# ARCH_BIG_ENDIAN is not set
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+# DO_C99_MATH is not set
+# UCLIBC_HAS_FENV is not set
+KERNEL_HEADERS="/home/kraj/work/cross/mips-none-linux-uclibc/sysroot/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/mpc8313e-rdb/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/mpc8313e-rdb/uClibc.machine
new file mode 100644
index 0000000..3ad8ff0
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/mpc8313e-rdb/uClibc.machine
@@ -0,0 +1,53 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:25:50 2007
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+TARGET_powerpc=y
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="powerpc"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_CLASSIC=y
+# CONFIG_E500 is not set
+TARGET_SUBARCH="classic"
+
+#
+# Using ELF file format
+#
+ARCH_BIG_ENDIAN=y
+
+#
+# Using Big Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+KERNEL_HEADERS="will be mangled in bitbake"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/mpc8315e-rdb/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/mpc8315e-rdb/uClibc.machine
new file mode 100644
index 0000000..3ad8ff0
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/mpc8315e-rdb/uClibc.machine
@@ -0,0 +1,53 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:25:50 2007
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+TARGET_powerpc=y
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="powerpc"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_CLASSIC=y
+# CONFIG_E500 is not set
+TARGET_SUBARCH="classic"
+
+#
+# Using ELF file format
+#
+ARCH_BIG_ENDIAN=y
+
+#
+# Using Big Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+KERNEL_HEADERS="will be mangled in bitbake"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/mpc8323e-rdb/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/mpc8323e-rdb/uClibc.machine
new file mode 100644
index 0000000..6206769
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/mpc8323e-rdb/uClibc.machine
@@ -0,0 +1,54 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:25:50 2007
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+TARGET_powerpc=y
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="powerpc"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_CLASSIC=y
+# CONFIG_E500 is not set
+TARGET_SUBARCH="classic"
+
+#
+# Using ELF file format
+#
+ARCH_BIG_ENDIAN=y
+
+#
+# Using Big Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="to be mangled by uclibc bitbake"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/n1200/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/n1200/uClibc.machine
new file mode 100644
index 0000000..23ca904
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/n1200/uClibc.machine
@@ -0,0 +1,53 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:25:50 2007
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+TARGET_powerpc=y
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="powerpc"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_CLASSIC=y
+# CONFIG_E500 is not set
+TARGET_SUBARCH="classic"
+
+#
+# Using ELF file format
+#
+ARCH_BIG_ENDIAN=y
+
+#
+# Using Big Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/stuff/build/tmp/cross/powerpc-angstrom-linux-uclibc/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/om-gta01/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/om-gta01/uClibc.machine
new file mode 100644
index 0000000..898b73a
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/om-gta01/uClibc.machine
@@ -0,0 +1,69 @@
+#
+# Automatically generated make config: don't edit
+# Mon May 14 10:23:14 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+CONFIG_ARM920T=y
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/palmld/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/palmld/uClibc.machine
new file mode 100644
index 0000000..e27931c
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/palmld/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sat May 12 23:18:41 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+CONFIG_ARM_IWMMXT=y
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/palmz31/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/palmz31/uClibc.machine
new file mode 100644
index 0000000..ec0385b
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/palmz31/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:16:02 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/palmz72/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/palmz72/uClibc.machine
new file mode 100644
index 0000000..e27931c
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/palmz72/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sat May 12 23:18:41 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+CONFIG_ARM_IWMMXT=y
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/poodle/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/poodle/uClibc.machine
new file mode 100644
index 0000000..ec0385b
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/poodle/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:16:02 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/qemumips/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/qemumips/uClibc.machine
new file mode 100644
index 0000000..1cf1add
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/qemumips/uClibc.machine
@@ -0,0 +1,63 @@
+#
+# Automatically generated make config: don't edit
+# Wed Jul  9 13:37:36 2008
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+TARGET_mips=y
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="mips"
+FORCE_OPTIONS_FOR_ARCH=y
+ARCH_CFLAGS="-mno-split-addresses"
+CONFIG_MIPS_O32_ABI=y
+# CONFIG_MIPS_N32_ABI is not set
+# CONFIG_MIPS_N64_ABI is not set
+# CONFIG_MIPS_ISA_1 is not set
+# CONFIG_MIPS_ISA_2 is not set
+# CONFIG_MIPS_ISA_3 is not set
+# CONFIG_MIPS_ISA_4 is not set
+CONFIG_MIPS_ISA_MIPS32=y
+# CONFIG_MIPS_ISA_MIPS64 is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+# ARCH_BIG_ENDIAN is not set
+ARCH_WANTS_BIG_ENDIAN=y
+# ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+# DO_C99_MATH is not set
+# UCLIBC_HAS_FENV is not set
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/qemux86/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/qemux86/uClibc.machine
new file mode 100644
index 0000000..44fec16
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/qemux86/uClibc.machine
@@ -0,0 +1,68 @@
+#
+# Automatically generated make config: don't edit
+# Fri Nov 23 15:49:33 2007
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+TARGET_i386=y
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="i386"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_GENERIC_386=y
+# CONFIG_386 is not set
+# CONFIG_486 is not set
+# CONFIG_586 is not set
+# CONFIG_586MMX is not set
+# CONFIG_686 is not set
+# CONFIG_PENTIUMII is not set
+# CONFIG_PENTIUMIII is not set
+# CONFIG_PENTIUM4 is not set
+# CONFIG_K6 is not set
+# CONFIG_K7 is not set
+# CONFIG_ELAN is not set
+# CONFIG_CRUSOE is not set
+# CONFIG_WINCHIPC6 is not set
+# CONFIG_WINCHIP2 is not set
+# CONFIG_CYRIXIII is not set
+# CONFIG_NEHEMIAH is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_LITTLE_ENDIAN=y
+
+#
+# Using Little Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/sequoia/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/sequoia/uClibc.machine
new file mode 100644
index 0000000..e059257
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/sequoia/uClibc.machine
@@ -0,0 +1,53 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:25:50 2007
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+TARGET_powerpc=y
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="powerpc"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_CLASSIC=y
+# CONFIG_E500 is not set
+TARGET_SUBARCH="classic"
+
+#
+# Using ELF file format
+#
+ARCH_BIG_ENDIAN=y
+
+#
+# Using Big Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/powerpc-angstrom-linux-uclibc/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/simpad/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/simpad/uClibc.machine
new file mode 100644
index 0000000..6e89444
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/simpad/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:29:51 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_ARM_OABI=y
+# CONFIG_ARM_EABI is not set
+# USE_BX is not set
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+CONFIG_ARM_SA1100=y
+# CONFIG_ARM_XSCALE is not set
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/spitz/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/spitz/uClibc.machine
new file mode 100644
index 0000000..e27931c
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/spitz/uClibc.machine
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sat May 12 23:18:41 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+CONFIG_ARM_IWMMXT=y
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/titan/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/titan/uClibc.machine
new file mode 100644
index 0000000..75c5328
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/titan/uClibc.machine
@@ -0,0 +1,52 @@
+#
+# Automatically generated make config: don't edit
+# Wed May 16 12:03:09 2007
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+TARGET_sh=y
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="sh"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_SH2A is not set
+# CONFIG_SH2 is not set
+# CONFIG_SH3 is not set
+CONFIG_SH4=y
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
diff --git a/recipes/uclibc/uclibc-0.9.31/uClibc.config b/recipes/uclibc/uclibc-0.9.31/uClibc.config
new file mode 100644
index 0000000..e69de29
diff --git a/recipes/uclibc/uclibc-0.9.31/uClibc.distro b/recipes/uclibc/uclibc-0.9.31/uClibc.distro
new file mode 100644
index 0000000..1f4666c
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/uClibc.distro
@@ -0,0 +1,150 @@
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+# DOPIC is not set
+# HAVE_NO_SHARED is not set
+# ARCH_HAS_NO_LDSO is not set
+HAVE_SHARED=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+# UCLIBC_STATIC_LDCONFIG is not set
+LDSO_RUNPATH=y
+UCLIBC_CTOR_DTOR=y
+LDSO_GNU_HASH_SUPPORT=y
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+PTHREADS_DEBUG_SUPPORT=y
+LINUXTHREADS_OLD=y
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+COMPAT_ATEXIT=y
+UCLIBC_SUSV3_LEGACY=y
+UCLIBC_SUSV3_LEGACY_MACROS=y
+UCLIBC_SUSV4_LEGACY=y
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_GETPT=y
+UCLIBC_HAS_LIBUTIL=y
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Networking Support
+#
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+# UCLIBC_HAS_REENTRANT_RPC is not set
+# UCLIBC_USE_NETLINK is not set
+# UCLIBC_HAS_BSD_RES_CLOSE is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LOCALE is not set
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+UCLIBC_HAS_STDIO_BUFSIZ_256=y
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+# UCLIBC_HAS_STDIO_GETC_MACRO is not set
+# UCLIBC_HAS_STDIO_PUTC_MACRO is not set
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+# UCLIBC_HAS_REGEX_OLD is not set
+UCLIBC_HAS_FNMATCH=y
+# UCLIBC_HAS_FNMATCH_OLD is not set
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_GLOB=y
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="/lib"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="//usr"
+
+#
+# Security options
+#
+# UCLIBC_BUILD_PIE is not set
+# UCLIBC_HAS_ARC4RANDOM is not set
+# HAVE_NO_SSP is not set
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_RELRO=y
+UCLIBC_BUILD_NOW=y
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# uClibc development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DODEBUG_PT is not set
+DOSTRIP=n
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
+# DOMULTI is not set
+# UCLIBC_MJN3_ONLY is not set
+
+# math stuff for perl
+DO_C99_MATH=y
diff --git a/recipes/uclibc/uclibc-0.9.31/uClibc.machine.armv4t b/recipes/uclibc/uclibc-0.9.31/uClibc.machine.armv4t
new file mode 100644
index 0000000..898b73a
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/uClibc.machine.armv4t
@@ -0,0 +1,69 @@
+#
+# Automatically generated make config: don't edit
+# Mon May 14 10:23:14 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+CONFIG_ARM920T=y
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/uClibc.machine.armv5te b/recipes/uclibc/uclibc-0.9.31/uClibc.machine.armv5te
new file mode 100644
index 0000000..ec0385b
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/uClibc.machine.armv5te
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:16:02 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/uClibc.machine.iwmmxt b/recipes/uclibc/uclibc-0.9.31/uClibc.machine.iwmmxt
new file mode 100644
index 0000000..e27931c
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/uClibc.machine.iwmmxt
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sat May 12 23:18:41 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+CONFIG_ARM_IWMMXT=y
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/uClibc.machine.strongarm b/recipes/uclibc/uclibc-0.9.31/uClibc.machine.strongarm
new file mode 100644
index 0000000..6e89444
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/uClibc.machine.strongarm
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:29:51 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_ARM_OABI=y
+# CONFIG_ARM_EABI is not set
+# USE_BX is not set
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+CONFIG_ARM_SA1100=y
+# CONFIG_ARM_XSCALE is not set
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/wrap/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/wrap/uClibc.machine
new file mode 100644
index 0000000..3dcf4b1
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/wrap/uClibc.machine
@@ -0,0 +1,73 @@
+#
+# Automatically generated make config: don't edit
+# Version: 0.9.30
+# Mon Mar 16 21:38:28 2009
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+TARGET_i386=y
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="i386"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_GENERIC_386 is not set
+# CONFIG_386 is not set
+CONFIG_486=y
+# CONFIG_586 is not set
+# CONFIG_586MMX is not set
+# CONFIG_686 is not set
+# CONFIG_PENTIUMII is not set
+# CONFIG_PENTIUMIII is not set
+# CONFIG_PENTIUM4 is not set
+# CONFIG_K6 is not set
+# CONFIG_K7 is not set
+# CONFIG_ELAN is not set
+# CONFIG_CRUSOE is not set
+# CONFIG_WINCHIPC6 is not set
+# CONFIG_WINCHIP2 is not set
+# CONFIG_CYRIXIII is not set
+# CONFIG_NEHEMIAH is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_LITTLE_ENDIAN=y
+
+#
+# Using Little Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+UCLIBC_HAS_FENV=y
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/recipes/uclibc/uclibc-0.9.31/x86/uClibc.machine b/recipes/uclibc/uclibc-0.9.31/x86/uClibc.machine
new file mode 100644
index 0000000..6cd19e8
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.31/x86/uClibc.machine
@@ -0,0 +1,72 @@
+#
+# Automatically generated make config: don't edit
+# Version: 0.9.30.1
+# Wed Jul  1 17:04:32 2009
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+TARGET_i386=y
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="i386"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_GENERIC_386=y
+# CONFIG_386 is not set
+# CONFIG_486 is not set
+# CONFIG_586 is not set
+# CONFIG_586MMX is not set
+# CONFIG_686 is not set
+# CONFIG_PENTIUMII is not set
+# CONFIG_PENTIUMIII is not set
+# CONFIG_PENTIUM4 is not set
+# CONFIG_K6 is not set
+# CONFIG_K7 is not set
+# CONFIG_ELAN is not set
+# CONFIG_CRUSOE is not set
+# CONFIG_WINCHIPC6 is not set
+# CONFIG_WINCHIP2 is not set
+# CONFIG_CYRIXIII is not set
+# CONFIG_NEHEMIAH is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_LITTLE_ENDIAN=y
+
+#
+# Using Little Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+# UCLIBC_HAS_FENV is not set
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
+KERNEL_HEADERS="/bla"
+HAVE_DOT_CONFIG=y
diff --git a/recipes/uclibc/uclibc-initial_0.9.31.bb b/recipes/uclibc/uclibc-initial_0.9.31.bb
new file mode 100644
index 0000000..a9fa146
--- /dev/null
+++ b/recipes/uclibc/uclibc-initial_0.9.31.bb
@@ -0,0 +1,26 @@
+SECTION = "base"
+require uclibc_${PV}.bb
+
+DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
+PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
+PACKAGES = ""
+
+do_install() {
+	# Install initial headers into the cross dir
+	make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
+		install_headers
+	#ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
+
+	# This conflicts with the c++ version of this header
+	rm -f ${D}${includedir}/bits/atomicity.h
+	install -d ${D}${libdir}/
+	install -m 644 lib/crt[1in].o ${D}${libdir}/
+	install -m 644 lib/libc.so ${D}${libdir}/
+}
+
+do_compile () {
+	make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o lib/libc.so
+}
diff --git a/recipes/uclibc/uclibc_0.9.31.bb b/recipes/uclibc/uclibc_0.9.31.bb
new file mode 100644
index 0000000..751b74b
--- /dev/null
+++ b/recipes/uclibc/uclibc_0.9.31.bb
@@ -0,0 +1,30 @@
+# UCLIBC_BASE should be the latest released revision of uclibc (that way
+# the config files will typically be correct!)  uclibc-cvs takes precedence
+# over uclibc-${UCLIBC_BASE}, if a config file in uclibc-cvs is out of date
+# try removing it
+#
+# UCLIBC_BASE can be set in a distro file, but whether this works depends
+# on whether the base patches apply to the selected (SRCDATE) svn release.
+#
+UCLIBC_BASE ?= "0.9.31"
+
+require uclibc.inc
+PR = "${INC_PR}.0"
+
+PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
+
+SRC_URI += "file://uClibc.machine file://uClibc.distro \
+	    file://ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch \
+	   "
+
+#recent versions uclibc require real kernel headers
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+#as stated above, uclibc needs real kernel-headers
+#however: we can't depend on virtual/kernel when nptl hits due to depends deadlocking ....
+KERNEL_SOURCE = "${STAGING_DIR_HOST}/${exec_prefix}"
+
+S = "${WORKDIR}/uClibc-${UCLIBC_BASE}"
+
+SRC_URI[uClibc-0.9.31.md5sum] = "52fb8a494758630c8d3ddd7f1e0daafd"
+SRC_URI[uClibc-0.9.31.sha256sum] = "80d33549d2a5d7ddc95b10dd964fead34d568c47268bba057c4b816f1d1263fa"
-- 
1.7.1




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

* Re: [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-06 19:32 ` [PATCH][v3 3/4] uClibc: redo configuration Bernhard Reutner-Fischer
@ 2010-07-08 19:02   ` Khem Raj
  2010-07-08 20:28     ` Bernhard Reutner-Fischer
  2010-07-08 20:47     ` Phil Blundell
  0 siblings, 2 replies; 21+ messages in thread
From: Khem Raj @ 2010-07-08 19:02 UTC (permalink / raw)
  To: Bernhard Reutner-Fischer; +Cc: openembedded-devel

On Tue, Jul 6, 2010 at 12:32 PM, Bernhard Reutner-Fischer
<rep.dot.nop@gmail.com> wrote:
> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
> ---
>  conf/distro/include/sane-toolchain-uclibc.inc |    7 +
>  conf/distro/include/sane-toolchain.inc        |    3 +-
>  conf/distro/include/uclibc.inc                |    8 +
>  recipes/uclibc/bfin-uclibc_svn.bb             |    2 +-
>  recipes/uclibc/uclibc-config.inc              |  111 +++++++++++
>  recipes/uclibc/uclibc-initial_0.9.30.2.bb     |   12 +-
>  recipes/uclibc/uclibc-initial_0.9.30.bb       |    5 +-
>  recipes/uclibc/uclibc-initial_git.bb          |    6 +-
>  recipes/uclibc/uclibc-old.inc                 |  186 +++++++++++++++++++
>  recipes/uclibc/uclibc.inc                     |  247 ++++++++++++-------------
>  recipes/uclibc/uclibc_0.9.28.bb               |    2 +-
>  recipes/uclibc/uclibc_0.9.29.bb               |    2 +-
>  recipes/uclibc/uclibc_0.9.30.1.bb             |    2 +-
>  recipes/uclibc/uclibc_0.9.30.bb               |    2 +-
>  recipes/uclibc/uclibc_git.bb                  |    1 -
>  15 files changed, 447 insertions(+), 149 deletions(-)
>  create mode 100644 recipes/uclibc/uclibc-config.inc
>  create mode 100644 recipes/uclibc/uclibc-old.inc
>
> diff --git a/conf/distro/include/sane-toolchain-uclibc.inc b/conf/distro/include/sane-toolchain-uclibc.inc
> index 314340a..9f515a0 100644
> --- a/conf/distro/include/sane-toolchain-uclibc.inc
> +++ b/conf/distro/include/sane-toolchain-uclibc.inc
> @@ -14,6 +14,13 @@ USE_NLS ?= "no"
>  USE_NLS_glib-2.0-native = "yes"
>  USE_NLS_gcc-cross = "no"
>
> +PREFERRED_VERSION_uclibc                    ?= "${PREFERRED_UCLIBC_VERSION}"
> +PREFERRED_VERSION_uclibc-initial            ?= "${PREFERRED_UCLIBC_VERSION}"
> +PREFERRED_VERSION_uclibc-cross              ?= "${PREFERRED_UCLIBC_VERSION}"
> +PREFERRED_VERSION_uclibc-cross-sdk          ?= "${PREFERRED_UCLIBC_VERSION}"
> +PREFERRED_VERSION_uclibc-cross-initial      ?= "${PREFERRED_UCLIBC_VERSION}"
> +PREFERRED_VERSION_uclibc-cross-intermediate ?= "${PREFERRED_UCLIBC_VERSION}"
> +
>  #mess with compiler flags to use -Os instead of -O2
>  #Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
>  FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
> diff --git a/conf/distro/include/sane-toolchain.inc b/conf/distro/include/sane-toolchain.inc
> index 1b77f75..f7df850 100644
> --- a/conf/distro/include/sane-toolchain.inc
> +++ b/conf/distro/include/sane-toolchain.inc
> @@ -13,8 +13,7 @@ PREFERRED_VERSION_glibc             ?= "2.10.1"
>  PREFERRED_VERSION_glibc-initial     ?= "2.10.1"
>  PREFERRED_VERSION_eglibc             ?= "2.11"
>  PREFERRED_VERSION_eglibc-initial     ?= "2.11"
> -PREFERRED_VERSION_uclibc            ?= "0.9.30.1"
> -PREFERRED_VERSION_uclibc-initial    ?= "0.9.30.1"
> +PREFERRED_UCLIBC_VERSION            ?= "0.9.30.1"
>
>  # Some systems need a special gcc version
>  PREFERRED_GCC_VERSION_486sx          ?= "4.3.2"
> diff --git a/conf/distro/include/uclibc.inc b/conf/distro/include/uclibc.inc
> index ee18fc8..b40fbf5 100644
> --- a/conf/distro/include/uclibc.inc
> +++ b/conf/distro/include/uclibc.inc
> @@ -9,3 +9,11 @@ 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"
> +
> +# libc settings
> +DISTRO_FEATURES += "${@['', ' nls'][bb.data.getVar('ENABLE_BINARY_LOCALE_GENERATION', d, 1) == '1']}"
> +MACHINE_FEATURES += "${@['', ' bx'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
> +# FIXME: We enable IPv4 per default to avoid alot of breakage.
> +# FIXME: Figure out an acceptable way to negotiate either
> +# FIXME: desired features or hard requirements, either top-down or bottom-up.
> +DISTRO_FEATURES += " ipv4"
> diff --git a/recipes/uclibc/bfin-uclibc_svn.bb b/recipes/uclibc/bfin-uclibc_svn.bb
> index e8cb63e..2757fc2 100644
> --- a/recipes/uclibc/bfin-uclibc_svn.bb
> +++ b/recipes/uclibc/bfin-uclibc_svn.bb
> @@ -9,7 +9,7 @@
>  UCLIBC_BASE ?= "0.9.29"
>  PV = "${UCLIBC_BASE}+svnr${SRCPV}"
>
> -require uclibc.inc
> +require uclibc-old.inc
>  PR = "${INC_PR}.0"
>  SRCREV = "1857"
>  PROVIDES_append_bfin = " virtual/${TARGET_PREFIX}libc-for-gcc "
> diff --git a/recipes/uclibc/uclibc-config.inc b/recipes/uclibc/uclibc-config.inc
> new file mode 100644
> index 0000000..82dfcfe
> --- /dev/null
> +++ b/recipes/uclibc/uclibc-config.inc
> @@ -0,0 +1,111 @@
> +#
> +# Set the ARCH environment variable for uClibc compilation.
> +# Return value must match one of the architectures known to uClibc:
> +# libc/sysdeps/*/*
> +#
> +
> +valid_archs = "\
> +alpha \
> +arm \
> +avr32 \
> +bfin \
> +cris \
> +e1 \
> +frv \
> +h8300 \
> +hppa \
> +i386 \
> +i960 \
> +ia64 \
> +m68k \
> +microblaze \
> +mips \
> +nios \
> +nios2 \
> +powerpc \
> +sh \
> +sh64 \
> +sparc \
> +v850 \
> +vax \
> +x86_64 \
> +xtensa \
> +"
> +def map_uclibc_arch(a, d):
> +       """Return the uClibc architecture for the given TARGET_ARCH."""
> +       import re
> +
> +       valid_archs = bb.data.getVar('valid_archs', d, 1).split()
> +
> +       if   re.match('^(arm|sa110).*', a):     return 'arm'
> +       elif re.match('^(i.86|athlon)$', a):    return 'i386'
> +       elif re.match('^mips.*', a):            return 'mips'
> +       elif re.match('^parisc.*', a):          return 'hppa'
> +       elif re.match('^ppc.*', a):             return 'powerpc'
> +       elif re.match('^s390.*', a):            return 's390'
> +       elif re.match('^sh.*', a):              return 'sh'
> +       elif re.match('^(sun|sparc).*', a):     return 'sparc'
> +       elif re.match('^xtensa.*', a):          return 'xtensa'
> +        elif a in valid_archs:                 return a
> +       else:
> +               bb.error("cannot map '%s' to a uClibc architecture" % a)
> +
> +export UCLIBC_ARCH = "${@map_uclibc_arch(bb.data.getVar('TARGET_ARCH', d, 1), d)}"
> +
> +def map_uclibc_abi(o, d):
> +       """Return the uClibc ABI for the given TARGET_OS."""
> +       import re
> +
> +       arch = bb.data.getVar('TARGET_ARCH', d, 1)
> +       if   map_uclibc_arch(bb.data.getVar('TARGET_ARCH', d, 1), d) == "arm":
> +               if re.match('.*eabi$', o): return 'ARM_EABI'
> +               else:                    return 'ARM_OABI'
> +       # FIXME: This is inaccurate! Handle o32, n32, n64
> +       elif re.match('^mips.*64$', arch):  return 'MIPS_N64_ABI'
> +       elif re.match('^mips.*', arch):    return 'MIPS_O32_ABI'
> +       return ""
> +
> +export UCLIBC_ABI = "${@map_uclibc_abi(bb.data.getVar('TARGET_OS', d, 1), d)}"
> +
> +def map_uclibc_endian(a, d):
> +       """Return the uClibc endianess for the given TARGET_ARCH."""
> +       import re
> +
> +       # Always BE
> +       if re.match('^(avr32|e1|frv|(parisc|hppa)|m68k|microblaze|powerpc.*|(sparc|sun).*)$', a):
> +               return 'BIG'
> +       # Possibly BE
> +       elif re.match('^((arm|sa110|arm.*eb)|h8300.*eb|(parisc|hppa).*eb|mips|sh.*eb|xtensa.*eb)$', a):
> +               return 'BIG'
> +       return 'LITTLE'
> +
> +export UCLIBC_ENDIAN = "${@map_uclibc_endian(bb.data.getVar('TARGET_ARCH', d, 1), d)}"
> +
> +# internal helper
> +def uclibc_cfg(feature, features, tokens, cnf, rem):
> +       if type(tokens) == type(""):
> +               tokens = [tokens]
> +       rem.extend(['/^[# ]*' + token + '[ =]/d' for token in tokens])
> +       if type(features) == type([]) and feature in features:
> +               cnf.extend([token + '=y' for token in tokens])
> +       else:
> +               cnf.extend(['# ' + token + ' is not set' for token in tokens])
> +# Map distro and machine features to config settings
> +def features_to_uclibc_settings(d):
> +       cnf, rem = ([], [])
> +       distro_features = bb.data.getVar('DISTRO_FEATURES', d).split()
> +       machine_features = bb.data.getVar('MACHINE_FEATURES', d).split()
> +       uclibc_cfg('ipv4',      distro_features, 'UCLIBC_HAS_IPV4', cnf, rem)
> +       uclibc_cfg('ipv6',      distro_features, 'UCLIBC_HAS_IPV6', cnf, rem)
> +       uclibc_cfg('largefile', distro_features, 'UCLIBC_HAS_LFS', cnf, rem)
> +       uclibc_cfg('nls',       distro_features, 'UCLIBC_HAS_LOCALE', cnf, rem)
> +       uclibc_cfg('bx',        machine_features,'USE_BX', cnf, rem)



I would have a feature called 'nobx' because most of the machines
we support actively in OE has BX. With current state this needs to
be added to MACHINE features for almost all arm machines. We can instead
have nobx and keep USE_BX enabled and only disable it if nobx appears
in machine_features. Otherwise I have tested the patches myself
and they seems to work well.

I will push them once we have the bx turned into nobx

I think you do not have a function to disable already enabled feature.

> +       return "\n".join(cnf), "\n".join(rem)
> +# X, Y = ${@features_to_uclibc_settings(d)}
> +# unfortunately doesn't seem to work with bitbake, workaround:
> +def features_to_uclibc_conf(d):
> +       cnf, rem = features_to_uclibc_settings(d)
> +       return cnf
> +def features_to_uclibc_del(d):
> +       cnf, rem = features_to_uclibc_settings(d)
> +       return rem
> diff --git a/recipes/uclibc/uclibc-initial_0.9.30.2.bb b/recipes/uclibc/uclibc-initial_0.9.30.2.bb
> index a9fa146..d00cb38 100644
> --- a/recipes/uclibc/uclibc-initial_0.9.30.2.bb
> +++ b/recipes/uclibc/uclibc-initial_0.9.30.2.bb
> @@ -7,19 +7,15 @@ PACKAGES = ""
>
>  do_install() {
>        # Install initial headers into the cross dir
> -       make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
> -               install_headers
> +       make PREFIX=${D} install_headers
>        #ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
>
> -       # This conflicts with the c++ version of this header
> -       rm -f ${D}${includedir}/bits/atomicity.h
> -       install -d ${D}${libdir}/
> -       install -m 644 lib/crt[1in].o ${D}${libdir}/
> -       install -m 644 lib/libc.so ${D}${libdir}/
> +       install -d ${D}${layout_libdir}/
> +       install -m 644 lib/crt[1in].o lib/libc.so ${D}${layout_libdir}/
>  }
>
>  do_compile () {
> -       make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
> +       make PREFIX=${D} \
>                lib/crt1.o lib/crti.o lib/crtn.o
>        ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
>                -o lib/libc.so
> diff --git a/recipes/uclibc/uclibc-initial_0.9.30.bb b/recipes/uclibc/uclibc-initial_0.9.30.bb
> index 84c35c8..9391a8c 100644
> --- a/recipes/uclibc/uclibc-initial_0.9.30.bb
> +++ b/recipes/uclibc/uclibc-initial_0.9.30.bb
> @@ -12,11 +12,8 @@ do_install() {
>
>        #ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
>
> -       # This conflicts with the c++ version of this header
> -       rm -f ${D}${includedir}/bits/atomicity.h
>        install -d ${D}${libdir}/
> -       install -m 644 lib/crt[1in].o ${D}${libdir}/
> -       install -m 644 lib/libc.so ${D}${libdir}/
> +       install -m 644 lib/crt[1in].o lib/libc.so ${D}${libdir}/
>  }
>
>  do_compile () {
> diff --git a/recipes/uclibc/uclibc-initial_git.bb b/recipes/uclibc/uclibc-initial_git.bb
> index 8c582e0..dd69dc0 100644
> --- a/recipes/uclibc/uclibc-initial_git.bb
> +++ b/recipes/uclibc/uclibc-initial_git.bb
> @@ -7,19 +7,17 @@ PACKAGES = ""
>
>  do_install() {
>        # Install initial headers into the cross dir
> -       make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
> +       make PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
>                install_headers
>        #ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
>
> -       # This conflicts with the c++ version of this header
> -       rm -f ${D}${includedir}/bits/atomicity.h
>        install -d ${D}${libdir}/
>        install -m 644 lib/crt[1in].o ${D}${libdir}/
>        install -m 755 lib/lib[cm].so ${D}${libdir}/
>  }
>
>  do_compile () {
> -       make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
> +       make PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
>                lib/crt1.o lib/crti.o lib/crtn.o
>        ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
>                -o lib/libc.so
> diff --git a/recipes/uclibc/uclibc-old.inc b/recipes/uclibc/uclibc-old.inc
> new file mode 100644
> index 0000000..7198c44
> --- /dev/null
> +++ b/recipes/uclibc/uclibc-old.inc
> @@ -0,0 +1,186 @@
> +DESCRIPTION = "C library for embedded systems"
> +LICENSE = "LGPL"
> +SECTION = "libs"
> +PRIORITY = "required"
> +INC_PR = "r35"
> +#
> +# For now, we will skip building of a gcc package if it is a uclibc one
> +# and our build is not a uclibc one, and we skip a glibc one if our build
> +# is a uclibc build.
> +#
> +# See the note in gcc/gcc_3.4.0.oe
> +#
> +
> +python __anonymous () {
> +    import bb, re
> +    uc_os = (re.match('.*uclibc*', bb.data.getVar('TARGET_OS', d, 1)) != None)
> +    if not uc_os:
> +        raise bb.parse.SkipPackage("incompatible with target %s" %
> +                                   bb.data.getVar('TARGET_OS', d, 1))
> +}
> +
> +PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
> +PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}"
> +DEPENDS = "virtual/${TARGET_PREFIX}binutils \
> +          virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers ncurses-native pax-utils-native"
> +RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
> +
> +# Blackfin needs a wrapper around ld
> +#DEPENDS_append_bfin = " elf2flt "
> +
> +INHIBIT_DEFAULT_DEPS = "1"
> +PARALLEL_MAKE = ""
> +
> +PACKAGES =+ "ldd uclibc-utils-dbg uclibc-utils uclibc-gconv uclibc-thread-db"
> +
> +LEAD_SONAME = "libc.so"
> +
> +# The last line (gdb and lib1) is for uclinux-uclibc builds
> +uclibc_baselibs = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so \
> +                  ${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so \
> +                  ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so \
> +                  ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so \
> +                   ${base_libdir}/ld*.so.* ${base_libdir}/ld-*.so \
> +                  ${base_libdir}/libc*.so.* ${base_libdir}/libuClibc-*.so \
> +                   ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so \
> +                  ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so \
> +                   ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so \
> +                  ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so \
> +                   ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so \
> +                   ${libdir}/libc.gdb ${libdir}/libc ${base_libdir}/lib1.so \
> +                   "
> +FILES_${PN} = "${sysconfdir} ${uclibc_baselibs} /sbin/ldconfig \
> +              ${libexecdir} ${datadir}/zoneinfo ${libdir}/locale"
> +FILES_ldd = "${bindir}/ldd"
> +FILES_uclibc-dev_append = " ${libdir}/*.o ${libdir}/*_nonshared.a"
> +FILES_uclibc-utils = "${bindir} ${sbindir}"
> +FILES_uclibc-utils-dbg += "${bindir}/.debug ${sbindir}/.debug"
> +FILES_uclibc-gconv = "${libdir}/gconv"
> +FILES_uclibc-thread-db = "/lib/libthread_db*"
> +RPROVIDES_uclibc-dev += "libc-dev virtual-libc-dev"
> +
> +#
> +# This locale file gets copied into uClibc-${PV}/extra/locale/ prior to
> +# build, it does not need to be unpacked, but we can't inhibit the unpacking
> +# in the current build system.
> +#
> +UCLIBC_LOCALE_FILE = "uClibc-locale-030818.tgz"
> +UCLIBC_LOCALE_FILE_arm = "uClibc-locale-030818.arm.tgz"
> +UCLIBC_LOCALE_URI = "http://www.uclibc.org/downloads/${UCLIBC_LOCALE_FILE}"
> +UCLIBC_LOCALE_URI_arm = "http://wiki.openembedded.net/dl/uclibc-locale/${UCLIBC_LOCALE_FILE}"
> +
> +SRC_URI = "${@['${UCLIBC_LOCALE_URI}', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']} \
> +          file://uClibc.config \
> +           http://www.uclibc.org/downloads/uClibc-${PV}.tar.bz2;name=uClibc-${PV} \
> +          "
> +
> +# do_stage barfs on a CC with whitepspace, therefore put the 'HOST_CC_ARCH' in
> +# the CFLAGS (for when building the utils).
> +OEMAKE_NO_CC = "'STRIPTOOL=true' 'LD=${LD}' \
> +               'LOCALE_DATA_FILENAME=${UCLIBC_LOCALE_FILE}'"
> +EXTRA_OEMAKE = "${OEMAKE_NO_CC} 'CC=${CC}' \
> +               'HOSTCFLAGS=-I${STAGING_INCDIR_NATIVE}' \
> +               ARCH=`grep TARGET_ARCH ${S}/.config|sed -e 's/TARGET_ARCH=//g'`"
> +EXTRA_OEMAKE_task_do_package = "${OEMAKE_NO_CC}"
> +
> +KERNEL_SOURCE = "${STAGING_INCDIR}"
> +KERNEL_HEADERS = "${STAGING_INCDIR}"
> +
> +# Lets munge this via siteinfo.bbclass as well:
> +# ARCH_BIG_ENDIAN=y
> +# ARCH_WANTS_BIG_ENDIAN=y
> +# ARCH_WANTS_LITTLE_ENDIAN is not set
> +
> +# How to enable verbose logs:
> +#export VERBOSE="1"
> +
> +configmangle = 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE="${KERNEL_SOURCE}",g; \
> +               s,^KERNEL_HEADERS=.*,KERNEL_HEADERS="${KERNEL_HEADERS}",g; \
> +               s,^RUNTIME_PREFIX=.*,RUNTIME_PREFIX="/",g; \
> +               s,^DEVEL_PREFIX=.*,DEVEL_PREFIX="/${prefix}",g; \
> +               s,^SHARED_LIB_LOADER_PATH=.*,SHARED_LIB_LOADER_PATH="/lib",; \
> +               s,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX="/lib",; \
> +               s,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g; \
> +               ${@["","s,.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=y,;"][bb.data.getVar("USE_NLS", d, 1) == "yes"]} \
> +               ${@["","s,.*LDSO_GNU_HASH_SUPPORT.*,# LDSO_GNU_HASH_SUPPORT is not set,;"][bb.data.getVar("TARGET_ARCH", d, 1) in ['mips', 'mipsel', 'avr32']]} \
> +               '
> +
> +CFLAGS := "${@oe_filter_out('-I\S+', '${CFLAGS}', d)}"
> +
> +python () {
> +       if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
> +               bb.data.setVar('configmangle_append', ' s,^HAS_FPU=y,# HAS_FPU is not set,;', d)
> +}
> +
> +uclibcbuild_do_patch() {
> +       ln -sf ${STAGING_INCDIR}/linux ${S}/include/linux
> +       ln -sf ${STAGING_INCDIR}/asm ${S}/include/asm
> +
> +       ${@['cp %s/%s extra/locale' % (bb.data.getVar('DL_DIR', d, 1) or '', bb.data.getVar('UCLIBC_LOCALE_FILE', d, 1) or ''), ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}
> +}
> +
> +python do_patch () {
> +       bb.build.exec_func('base_do_patch', d)
> +       bb.build.exec_func('uclibcbuild_do_patch', d)
> +}
> +
> +do_configure() {
> +       rm -f ${S}/.config
> +
> +       # For uClibc 0.9.29, OpenEmbedded splits the uClibc.config in two parts:
> +       # uClibc.machine and uClibc.distro. So, if they exist use them, otherwise
> +       # use a uClibc.config
> +       if [ -f ${WORKDIR}/uClibc.machine -a -f ${WORKDIR}/uClibc.distro ]; then
> +               echo "### uClibc.machine ###" >${S}/merged.config
> +               cat ${WORKDIR}/uClibc.machine >>${S}/merged.config
> +               echo "### uClibc.distro ###" >>${S}/merged.config
> +               cat ${WORKDIR}/uClibc.distro >>${S}/merged.config
> +       else
> +               echo "### uClibc.config ###" >${S}/merged.config
> +               cat ${WORKDIR}/uClibc.config >>${S}/merged.config
> +       fi
> +       cp ${S}/merged.config ${S}/.config
> +
> +       # Mangle the resulting .config depending on OE variables
> +       perl -i -p -e 's,^CROSS=.*,TARGET_ARCH=${TARGET_ARCH}\nCROSS=${TARGET_PREFIX},g' ${S}/Rules.mak
> +       sed -i -e s:'$(CROSS)strip':true: ${S}/Rules.mak
> +       perl -i -p -e '${configmangle}' ${S}/.config
> +
> +       sed -i -e '/CONFIG_ARM_EABI/d' ${S}/.config
> +
> +       if [ `echo ${TARGET_ARCH} | grep -e '^arm'` ]; then
> +               if [ `echo ${TARGET_OS} | grep -e 'eabi$'` ]; then
> +                               echo "CONFIG_ARM_EABI=y"                >> ${S}/.config
> +               else
> +                       echo "# CONFIG_ARM_EABI is not set"     >> ${S}/.config
> +               fi
> +       fi
> +       yes '' | oe_runmake oldconfig
> +}
> +
> +do_install() {
> +       oe_runmake PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
> +               install_dev install_runtime
> +
> +       # Need to overwrite the version from -initial
> +       #if [ ! -e ${D}${libdir}/libc.so ]; then
> +       #       ln -s ../../lib/libc.so.0 ${D}${libdir}/libc.so
> +       #fi
> +
> +       # We don't really need this in ${includedir}
> +       rm -f ${D}${prefix}/include/.cvsignore
> +
> +       # This conflicts with the c++ version of this header
> +       rm -f ${D}${prefix}/include/bits/atomicity.h
> +
> +        oe_runmake "SSP_ALL_CFLAGS=${TARGET_LINK_HASH_STYLE}" utils
> +        oe_runmake STRIPTOOL=true PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
> +                install_utils
> +
> +       # oe_runstrip needs +x on files
> +       chmod +x ${D}/${base_libdir}/*
> +}
> +
> +get_monotonic_srcrev () {
> +       (cd ${S}; eval `git rev-list HEAD|wc -l`)
> +}
> diff --git a/recipes/uclibc/uclibc.inc b/recipes/uclibc/uclibc.inc
> index 4686d34..b925386 100644
> --- a/recipes/uclibc/uclibc.inc
> +++ b/recipes/uclibc/uclibc.inc
> @@ -3,6 +3,7 @@ LICENSE = "LGPL"
>  SECTION = "libs"
>  PRIORITY = "required"
>  INC_PR = "r34"
> +require uclibc-config.inc
>  #
>  # For now, we will skip building of a gcc package if it is a uclibc one
>  # and our build is not a uclibc one, and we skip a glibc one if our build
> @@ -20,172 +21,168 @@ python __anonymous () {
>  }
>
>  PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
> -PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}"
>  DEPENDS = "virtual/${TARGET_PREFIX}binutils \
> -          virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers ncurses-native pax-utils-native"
> +           virtual/${TARGET_PREFIX}gcc-intermediate \
> +           linux-libc-headers ncurses-native"
>  RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
>
> -# Blackfin needs a wrapper around ld
> -#DEPENDS_append_bfin = " elf2flt "
> -
>  INHIBIT_DEFAULT_DEPS = "1"
> -PARALLEL_MAKE = ""
>
>  PACKAGES =+ "ldd uclibc-utils-dbg uclibc-utils uclibc-gconv uclibc-thread-db"
>
>  LEAD_SONAME = "libc.so"
>
> -# The last line (gdb and lib1) is for uclinux-uclibc builds
> +# The last line (gdb and lib1) is for uclinux-uclibc builds
>  uclibc_baselibs = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so \
> -                  ${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so \
> -                  ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so \
> -                  ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so \
> +                   ${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so \
> +                   ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so \
> +                   ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so \
>                    ${base_libdir}/ld*.so.* ${base_libdir}/ld-*.so \
> -                  ${base_libdir}/libc*.so.* ${base_libdir}/libuClibc-*.so \
> +                   ${base_libdir}/libc*.so.* ${base_libdir}/libuClibc-*.so \
>                    ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so \
> -                  ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so \
> +                   ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so \
>                    ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so \
> -                  ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so \
> +                   ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so \
>                    ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so \
>                    ${libdir}/libc.gdb ${libdir}/libc ${base_libdir}/lib1.so \
> -                   "
> +                  "
>  FILES_${PN} = "${sysconfdir} ${uclibc_baselibs} /sbin/ldconfig \
> -              ${libexecdir} ${datadir}/zoneinfo ${libdir}/locale"
> +               ${libexecdir} ${datadir}/zoneinfo ${libdir}/locale"
>  FILES_ldd = "${bindir}/ldd"
> -FILES_uclibc-dev_append = " ${libdir}/*.o ${libdir}/*_nonshared.a"
> +FILES_uclibc-dev_append = "\
> +        ${libdir}/lib*.so \
> +        ${libdir}/*_nonshared.a \
> +        ${libdir}/[S]*crt[1in].o \
> +        ${libdir}/lib*.a \
> +        ${includedir}/*.h ${includedir}/*/*.h \
> +       "
>  FILES_uclibc-utils = "${bindir} ${sbindir}"
>  FILES_uclibc-utils-dbg += "${bindir}/.debug ${sbindir}/.debug"
>  FILES_uclibc-gconv = "${libdir}/gconv"
>  FILES_uclibc-thread-db = "/lib/libthread_db*"
>  RPROVIDES_uclibc-dev += "libc-dev virtual-libc-dev"
>
> -#
> -# This locale file gets copied into uClibc-${PV}/extra/locale/ prior to
> -# build, it does not need to be unpacked, but we can't inhibit the unpacking
> -# in the current build system.
> -#
> -UCLIBC_LOCALE_FILE = "uClibc-locale-030818.tgz"
> -UCLIBC_LOCALE_FILE_arm = "uClibc-locale-030818.arm.tgz"
> -UCLIBC_LOCALE_URI = "http://www.uclibc.org/downloads/${UCLIBC_LOCALE_FILE};name=locale"
> -UCLIBC_LOCALE_URI_arm = "http://wiki.openembedded.net/dl/uclibc-locale/${UCLIBC_LOCALE_FILE};name=localearm"
> -
> -SRC_URI[locale.md5sum] = "d75b2239b4e27c3c9cbed1c8f6eabba6"
> -SRC_URI[locale.sha256sum] = "c4362be318a38f18d98dccf462d22d95bab92f05548bb93f65298fe9afaebd57"
> -SRC_URI[localearm.md5sum] = "fc0b6113f2b333564d3558e241059db8"
> -SRC_URI[localearm.sha256sum] = "6765f08499079207ba8c4da999d602ca75c384ff5812aa973f27b6a501b3438e"
> -
> -SRC_URI = "${@['${UCLIBC_LOCALE_URI}', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']} \
> -          file://uClibc.config \
> -           http://www.uclibc.org/downloads/uClibc-${PV}.tar.bz2;name=uClibc-${PV} \
> -          "
> -
> -# do_stage barfs on a CC with whitepspace, therefore put the 'HOST_CC_ARCH' in
> -# the CFLAGS (for when building the utils).
> -OEMAKE_NO_CC = "'STRIPTOOL=true' 'LD=${LD}' \
> -               'LOCALE_DATA_FILENAME=${UCLIBC_LOCALE_FILE}'"
> -EXTRA_OEMAKE = "${OEMAKE_NO_CC} 'CC=${CC}' \
> -               'HOSTCFLAGS=-I${STAGING_INCDIR_NATIVE}' \
> -               ARCH=`grep TARGET_ARCH ${S}/.config|sed -e 's/TARGET_ARCH=//g'`"
> +SRC_URI = "\
> +        file://uClibc.config \
> +        http://www.uclibc.org/downloads/uClibc-${PV}.tar.bz2;name=uClibc-${PV} \
> +        "
> +
> +# do_stage barfs on a CC with whitespace, therefore put the 'HOST_CC_ARCH' in
> +# the CFLAGS (when building the utils).
> +OEMAKE_NO_CC = "'STRIPTOOL=true' 'LD=${LD}'"
> +EXTRA_OEMAKE = "${OEMAKE_NO_CC} \
> +                'HOSTCC=${BUILD_CC}' \
> +                'HOST_CFLAGS=${BUILD_CFLAGS}' \
> +                'CC=${CC}' \
> +                ARCH=${UCLIBC_ARCH}"
> +
>  EXTRA_OEMAKE_task_do_package = "${OEMAKE_NO_CC}"
>
> -KERNEL_SOURCE = "${STAGING_INCDIR}"
> -KERNEL_HEADERS = "${STAGING_INCDIR}"
> -
> -# Lets munge this via siteinfo.bbclass as well:
> -# ARCH_BIG_ENDIAN=y
> -# ARCH_WANTS_BIG_ENDIAN=y
> -# ARCH_WANTS_LITTLE_ENDIAN is not set
> -
> -# How to enable verbose logs:
> -#export VERBOSE="1"
> -
> -configmangle = 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE="${KERNEL_SOURCE}",g; \
> -               s,^KERNEL_HEADERS=.*,KERNEL_HEADERS="${KERNEL_HEADERS}",g; \
> -               s,^RUNTIME_PREFIX=.*,RUNTIME_PREFIX="/",g; \
> -               s,^DEVEL_PREFIX=.*,DEVEL_PREFIX="/${prefix}",g; \
> -               s,^SHARED_LIB_LOADER_PATH=.*,SHARED_LIB_LOADER_PATH="/lib",; \
> -               s,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX="/lib",; \
> -               s,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g; \
> -               ${@["","s,.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=y,;"][bb.data.getVar("USE_NLS", d, 1) == "yes"]} \
> -               ${@["","s,.*LDSO_GNU_HASH_SUPPORT.*,# LDSO_GNU_HASH_SUPPORT is not set,;"][bb.data.getVar("TARGET_ARCH", d, 1) in ['mips', 'mipsel', 'avr32']]} \
> -               '
> +# enable verbose output:
> +export V="1"
>
> -CFLAGS := "${@oe_filter_out('-I\S+', '${CFLAGS}', d)}"
> +UCLIBC_EXTRA_CFLAGS  := "${@oe_filter_out('(-I\S+|-i\S+)', '${CFLAGS}', d)}"
> +UCLIBC_EXTRA_LDFLAGS := "${@oe_filter_out('(-L\S+|-l\S+)', '${LDFLAGS}', d)}"
> +do_compile_prepend () {
> +  unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
> +}
>
> +configmangle = '/^KERNEL_HEADERS/d; \
> +                /^RUNTIME_PREFIX/d; \
> +                /^DEVEL_PREFIX/d; \
> +                /^SHARED_LIB_LOADER_PREFIX/d; \
> +                /^UCLIBC_EXTRA_CFLAGS/d; \
> +                s,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g; \
> +                ${@["","s,.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=y,;"][bb.data.getVar("USE_NLS", d, 1) == "yes"]} \
> +                ${@["","s,.*LDSO_GNU_HASH_SUPPORT.*,# LDSO_GNU_HASH_SUPPORT is not set,;"][bb.data.getVar("TARGET_ARCH", d, 1) in ['mips', 'mipsel', 'avr32']]} \
> +                /^CROSS/d; \
> +                /^TARGET_ARCH=/d; \
> +                /^TARGET_/s,^\([^=]*\).*,# \1 is not set,g; \
> +                s,^DOSTRIP.*,# DOSTRIP is not set,g; \
> +                /_[EO]*ABI/d; \
> +                /HAS_FPU/d; \
> +               '
> +OE_FEATURES := "${@features_to_uclibc_conf(d)}"
> +OE_DEL      := "${@features_to_uclibc_del(d)}"
>  python () {
> -       if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
> -               bb.data.setVar('configmangle_append', ' s,^HAS_FPU=y,# HAS_FPU is not set,;', d)
> +  if "${OE_DEL}":
> +    bb.data.setVar('configmangle_append', "${OE_DEL}" + "\n", d)
> +  if "${OE_FEATURES}":
> +    bb.data.setVar('configmangle_append',
> +                   "/^### DISTRO FEATURES$/a\\\n%s\n\n" %
> +                   ("\\n".join((bb.data.expand("${OE_FEATURES}", d).split("\n")))),
> +                   d)
> +  bb.data.setVar('configmangle_append',
> +                 "/^### CROSS$/a\\\n%s\n" %
> +                  ("\\n".join(["CROSS_COMPILER_PREFIX=\"${TARGET_PREFIX}\"",
> +                        "UCLIBC_EXTRA_CFLAGS=\"${UCLIBC_EXTRA_CFLAGS}\"",
> +                         "KERNEL_HEADERS=\"${STAGING_INCDIR}\"",
> +                         "RUNTIME_PREFIX=\"/\"",
> +                         "DEVEL_PREFIX=\"/${prefix}\"",
> +                         "SHARED_LIB_LOADER_PREFIX=\"/lib\"",
> +                        ])
> +                  ),
> +                 d)
> +  bb.data.setVar('configmangle_append',
> +                 "/^### TGT$/a\\\nTARGET_ARCH=\"%s\"\\nTARGET_%s=y\n" %
> +                        ("${UCLIBC_ARCH}", "${UCLIBC_ARCH}"),
> +                 d)
> +  bb.data.setVar('configmangle_append',
> +    "/^### FPU$/a\\\n%s\n\n" % (["UCLIBC_HAS_FPU=y","# UCLIBC_HAS_FPU is not set"][bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]]), d)
> +  if "${UCLIBC_ENDIAN}":
> +    bb.data.setVar('configmangle_append',
> +                   "/^### ABI$/a\\\nARCH_%s_ENDIAN=y\n\n" % ("${UCLIBC_ENDIAN}"),
> +                   d)
> +  if "${UCLIBC_ABI}":
> +    bb.data.setVar('configmangle_append',
> +                   "/^### ABI$/a\\\nCONFIG_%s=y\n\n" % ("${UCLIBC_ABI}"),
> +                   d)
>  }
>
>  uclibcbuild_do_patch() {
> -       ln -sf ${STAGING_INCDIR}/linux ${S}/include/linux
> -       ln -sf ${STAGING_INCDIR}/asm ${S}/include/asm
> -
> -       ${@['cp %s/%s extra/locale' % (bb.data.getVar('DL_DIR', d, 1) or '', bb.data.getVar('UCLIBC_LOCALE_FILE', d, 1) or ''), ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}
> +        ln -sf ${STAGING_INCDIR}/linux ${S}/include/linux
> +        ln -sf ${STAGING_INCDIR}/asm ${S}/include/asm
>  }
>
>  python do_patch () {
> -       bb.build.exec_func('base_do_patch', d)
> -       bb.build.exec_func('uclibcbuild_do_patch', d)
> +        bb.build.exec_func('base_do_patch', d)
> +        bb.build.exec_func('uclibcbuild_do_patch', d)
>  }
>
>  do_configure() {
> -       rm -f ${S}/.config
> -
> -       # For uClibc 0.9.29, OpenEmbedded splits the uClibc.config in two parts:
> -       # uClibc.machine and uClibc.distro. So, if they exist use them, otherwise
> -       # use a uClibc.config
> -       if [ -f ${WORKDIR}/uClibc.machine -a -f ${WORKDIR}/uClibc.distro ]; then
> -               echo "### uClibc.machine ###" >${S}/merged.config
> -               cat ${WORKDIR}/uClibc.machine >>${S}/merged.config
> -               echo "### uClibc.distro ###" >>${S}/merged.config
> -               cat ${WORKDIR}/uClibc.distro >>${S}/merged.config
> -       else
> -               echo "### uClibc.config ###" >${S}/merged.config
> -               cat ${WORKDIR}/uClibc.config >>${S}/merged.config
> -       fi
> -       cp ${S}/merged.config ${S}/.config
> -
> -       # Mangle the resulting .config depending on OE variables
> -       perl -i -p -e 's,^CROSS=.*,TARGET_ARCH=${TARGET_ARCH}\nCROSS=${TARGET_PREFIX},g' ${S}/Rules.mak
> -       sed -i -e s:'$(CROSS)strip':true: ${S}/Rules.mak
> -       perl -i -p -e '${configmangle}' ${S}/.config
> -
> -       sed -i -e '/CONFIG_ARM_EABI/d' ${S}/.config
> -
> -       if [ `echo ${TARGET_ARCH} | grep -e '^arm'` ]; then
> -               if [ `echo ${TARGET_OS} | grep -e 'eabi$'` ]; then
> -                               echo "CONFIG_ARM_EABI=y"                >> ${S}/.config
> -               else
> -                       echo "# CONFIG_ARM_EABI is not set"     >> ${S}/.config
> -               fi
> -       fi
> -       yes '' | oe_runmake oldconfig
> +        rm -f ${S}/.config
> +
> +        # OpenEmbedded splits the uClibc.config in two parts:
> +        # uClibc.machine, uClibc.distro
> +        # So, if they exist use them, otherwise use a uClibc.config
> +        if [ -f ${WORKDIR}/uClibc.machine -a -f ${WORKDIR}/uClibc.distro ]; then
> +                echo "### uClibc.machine ###" >${S}/merged.config
> +                cat ${WORKDIR}/uClibc.machine >>${S}/merged.config
> +                echo "### uClibc.distro ###" >>${S}/merged.config
> +                cat ${WORKDIR}/uClibc.distro >>${S}/merged.config
> +        else
> +                echo "### uClibc.config ###" >${S}/merged.config
> +                cat ${WORKDIR}/uClibc.config >>${S}/merged.config
> +        fi
> +        echo "### CROSS" >>${S}/merged.config
> +        echo "### TGT" >>${S}/merged.config
> +        echo "### MMU" >>${S}/merged.config
> +        echo "### FPU" >>${S}/merged.config
> +        echo "### ABI" >>${S}/merged.config
> +        echo "### DISTRO FEATURES" >>${S}/merged.config
> +        cp ${S}/merged.config ${S}/.config
> +
> +        # Mangle the resulting .config depending on OE variables
> +        sed -i -e '${configmangle}' ${S}/.config
> +
> +        oe_runmake oldconfig
>  }
>
>  do_install() {
> -       oe_runmake PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
> -               install_dev install_runtime
> -
> -       # Need to overwrite the version from -initial
> -       #if [ ! -e ${D}${libdir}/libc.so ]; then
> -       #       ln -s ../../lib/libc.so.0 ${D}${libdir}/libc.so
> -       #fi
> -
> -       # We don't really need this in ${includedir}
> -       rm -f ${D}${prefix}/include/.cvsignore
> -
> -       # This conflicts with the c++ version of this header
> -       rm -f ${D}${prefix}/include/bits/atomicity.h
> -
> -        oe_runmake "SSP_ALL_CFLAGS=${TARGET_LINK_HASH_STYLE}" utils
> -        oe_runmake STRIPTOOL=true PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
> -                install_utils
> -
> -       # oe_runstrip needs +x on files
> -       chmod +x ${D}/${base_libdir}/*
> +        oe_runmake PREFIX=${D} install
> +        oe_runmake PREFIX=${D} install_utils
>  }
>
>  get_monotonic_srcrev () {
> -       (cd ${S}; eval `git rev-list HEAD|wc -l`)
> +        (cd ${S}; eval `git rev-list HEAD|wc -l`)
>  }
> diff --git a/recipes/uclibc/uclibc_0.9.28.bb b/recipes/uclibc/uclibc_0.9.28.bb
> index a43d5ed..7da53f9 100644
> --- a/recipes/uclibc/uclibc_0.9.28.bb
> +++ b/recipes/uclibc/uclibc_0.9.28.bb
> @@ -1,4 +1,4 @@
> -require uclibc.inc
> +require uclibc-old.inc
>  PR = "${INC_PR}.0"
>
>  # This is the correct KERNEL_SOURCE location, if the uClibc
> diff --git a/recipes/uclibc/uclibc_0.9.29.bb b/recipes/uclibc/uclibc_0.9.29.bb
> index b83cd2e..829777b 100644
> --- a/recipes/uclibc/uclibc_0.9.29.bb
> +++ b/recipes/uclibc/uclibc_0.9.29.bb
> @@ -8,7 +8,7 @@
>  #
>  UCLIBC_BASE ?= "0.9.29"
>
> -require uclibc.inc
> +require uclibc-old.inc
>  PR = "${INC_PR}.0"
>
>  PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
> diff --git a/recipes/uclibc/uclibc_0.9.30.1.bb b/recipes/uclibc/uclibc_0.9.30.1.bb
> index ea69249..d3d5c58 100644
> --- a/recipes/uclibc/uclibc_0.9.30.1.bb
> +++ b/recipes/uclibc/uclibc_0.9.30.1.bb
> @@ -8,7 +8,7 @@
>  #
>  UCLIBC_BASE ?= "0.9.30.1"
>
> -require uclibc.inc
> +require uclibc-old.inc
>  PR = "${INC_PR}.4"
>
>  PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
> diff --git a/recipes/uclibc/uclibc_0.9.30.bb b/recipes/uclibc/uclibc_0.9.30.bb
> index 5d267b5..36e9de3 100644
> --- a/recipes/uclibc/uclibc_0.9.30.bb
> +++ b/recipes/uclibc/uclibc_0.9.30.bb
> @@ -8,7 +8,7 @@
>  #
>  UCLIBC_BASE ?= "0.9.30"
>
> -require uclibc.inc
> +require uclibc-old.inc
>  PR = "${INC_PR}.1"
>
>  PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
> diff --git a/recipes/uclibc/uclibc_git.bb b/recipes/uclibc/uclibc_git.bb
> index bbff94d..f026ae9 100644
> --- a/recipes/uclibc/uclibc_git.bb
> +++ b/recipes/uclibc/uclibc_git.bb
> @@ -26,7 +26,6 @@ FILESPATHPKG =. "uclibc-git:uclibc-${UCLIBC_BASE}:"
>  KERNEL_SOURCE = "${CROSS_DIR}/${TARGET_SYS}"
>
>  SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \
> -       ${@['${UCLIBC_LOCALE_URI}', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']} \
>        file://uClibc.config \
>        file://uClibc.machine \
>        file://uClibc.distro \
> --
> 1.7.1
>
>



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

* Re: [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-08 19:02   ` Khem Raj
@ 2010-07-08 20:28     ` Bernhard Reutner-Fischer
  2010-07-08 20:31       ` Khem Raj
  2010-07-08 20:41       ` Khem Raj
  2010-07-08 20:47     ` Phil Blundell
  1 sibling, 2 replies; 21+ messages in thread
From: Bernhard Reutner-Fischer @ 2010-07-08 20:28 UTC (permalink / raw)
  To: Khem Raj; +Cc: openembedded-devel

On Thu, Jul 08, 2010 at 12:02:51PM -0700, Khem Raj wrote:
>On Tue, Jul 6, 2010 at 12:32 PM, Bernhard Reutner-Fischer
><rep.dot.nop@gmail.com> wrote:

>> +       uclibc_cfg('bx',        machine_features,'USE_BX', cnf, rem)
>
>
>
>I would have a feature called 'nobx' because most of the machines
>we support actively in OE has BX. With current state this needs to
>be added to MACHINE features for almost all arm machines. We can instead
>have nobx and keep USE_BX enabled and only disable it if nobx appears
>in machine_features.

I'd much prefer to stick bx into some generic arm include instead.
What do you think?

>                     Otherwise I have tested the patches myself
>and they seems to work well.
>
>I will push them once we have the bx turned into nobx
>
>I think you do not have a function to disable already enabled feature.

the 'rem' below translates into sed /SOMETHING/d
Can you elaborate?
Except you mean DISTRO_FEATURES="ipv4"
and one of the gazillion distro-specific config snippets contain
CONFIG_IPV6=y
and that is not disabled.. About all those distro hunks have to go
anyway for they are redundant.

>> +       return "\n".join(cnf), "\n".join(rem)
>> +# X, Y = ${@features_to_uclibc_settings(d)}
>> +# unfortunately doesn't seem to work with bitbake, workaround:

you said you saw an ICE with current uclibc master. Which arch and which
versions of the toolchain did you use?
FYI, i tested qemuarm, qemumips, qemuppc, qemux86 and (my local)
qemux86_64 with
PREFERRED_BINUTILS = "2.20.1" ¹)
PREFERRED_GCC_VERSION = "4.5" ²) ³)

and all of built fine for me.

¹) micro.conf incorrectly picks 2.19.51 per default, should be bumped
²) micro.conf should also default to 4.5
³) It would be great if we could settle on one scheme for
   binutils/gcc/libc version shorthands:
   PREFERRED_BINUTILS_VERSION _or_ PREFERRED_GCC, i'd go for
   PREFERRED_foo_VERSION, uniformly.



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

* Re: [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-08 20:28     ` Bernhard Reutner-Fischer
@ 2010-07-08 20:31       ` Khem Raj
  2010-07-08 20:44         ` Bernhard Reutner-Fischer
  2010-07-08 20:41       ` Khem Raj
  1 sibling, 1 reply; 21+ messages in thread
From: Khem Raj @ 2010-07-08 20:31 UTC (permalink / raw)
  To: Bernhard Reutner-Fischer; +Cc: openembedded-devel

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

On Thu, Jul 8, 2010 at 1:28 PM, Bernhard Reutner-Fischer
<rep.dot.nop@gmail.com> wrote:
> On Thu, Jul 08, 2010 at 12:02:51PM -0700, Khem Raj wrote:
>>On Tue, Jul 6, 2010 at 12:32 PM, Bernhard Reutner-Fischer
>><rep.dot.nop@gmail.com> wrote:
>
>>> +       uclibc_cfg('bx',        machine_features,'USE_BX', cnf, rem)
>>
>>
>>
>>I would have a feature called 'nobx' because most of the machines
>>we support actively in OE has BX. With current state this needs to
>>be added to MACHINE features for almost all arm machines. We can instead
>>have nobx and keep USE_BX enabled and only disable it if nobx appears
>>in machine_features.
>
> I'd much prefer to stick bx into some generic arm include instead.
> What do you think?

I have added attached patch and turned bx into nobx and now all seems to be
ok


>
>>                     Otherwise I have tested the patches myself
>>and they seems to work well.
>>
>>I will push them once we have the bx turned into nobx
>>
>>I think you do not have a function to disable already enabled feature.
>
> the 'rem' below translates into sed /SOMETHING/d
> Can you elaborate?
> Except you mean DISTRO_FEATURES="ipv4"
> and one of the gazillion distro-specific config snippets contain
> CONFIG_IPV6=y
> and that is not disabled.. About all those distro hunks have to go
> anyway for they are redundant.
>
>>> +       return "\n".join(cnf), "\n".join(rem)
>>> +# X, Y = ${@features_to_uclibc_settings(d)}
>>> +# unfortunately doesn't seem to work with bitbake, workaround:
>
> you said you saw an ICE with current uclibc master. Which arch and which
> versions of the toolchain did you use?
> FYI, i tested qemuarm, qemumips, qemuppc, qemux86 and (my local)
> qemux86_64 with
> PREFERRED_BINUTILS = "2.20.1" ¹)
> PREFERRED_GCC_VERSION = "4.5" ²) ³)
>
> and all of built fine for me.
>
> ¹) micro.conf incorrectly picks 2.19.51 per default, should be bumped
> ²) micro.conf should also default to 4.5
> ³) It would be great if we could settle on one scheme for
>   binutils/gcc/libc version shorthands:
>   PREFERRED_BINUTILS_VERSION _or_ PREFERRED_GCC, i'd go for
>   PREFERRED_foo_VERSION, uniformly.
>

[-- Attachment #2: diff --]
[-- Type: application/octet-stream, Size: 2772 bytes --]

commit dc1f7d7ab9addee0e4fbeb11d7b69d74e9490d16
Author: Khem Raj <raj.khem@gmail.com>
Date:   Thu Jul 8 13:24:29 2010 -0700

    uclibc: Replace bx with nobx feature.
    
    * Add new function uclibc_cfg_disable to disable a feature in .config
    * Rename uclibc_cfg to uclibc_cfg_enable
    * Bump SRC_REV for uclibc_git
    * Pass SSP_ALL_CFLAGS=${TARGET_LINK_HASH_STYLE} otherwise
      utils dont get the hash_style right and QA complains.
    
    Signed-off-by: Khem Raj <raj.khem@gmail.com>

diff --git a/recipes/uclibc/uclibc-config.inc b/recipes/uclibc/uclibc-config.inc
index 82dfcfe..824d794 100644
--- a/recipes/uclibc/uclibc-config.inc
+++ b/recipes/uclibc/uclibc-config.inc
@@ -82,7 +82,7 @@ def map_uclibc_endian(a, d):
 export UCLIBC_ENDIAN = "${@map_uclibc_endian(bb.data.getVar('TARGET_ARCH', d, 1), d)}"
 
 # internal helper
-def uclibc_cfg(feature, features, tokens, cnf, rem):
+def uclibc_cfg_enable(feature, features, tokens, cnf, rem):
 	if type(tokens) == type(""):
 		tokens = [tokens]
 	rem.extend(['/^[# ]*' + token + '[ =]/d' for token in tokens])
@@ -90,16 +90,25 @@ def uclibc_cfg(feature, features, tokens, cnf, rem):
 		cnf.extend([token + '=y' for token in tokens])
 	else:
 		cnf.extend(['# ' + token + ' is not set' for token in tokens])
+
+def uclibc_cfg_disable(feature, features, tokens, cnf, rem):
+	if type(tokens) == type(""):
+		tokens = [tokens]
+	rem.extend(['/^[# ]*' + token + '[ =]/d' for token in tokens])
+	if type(features) == type([]) and feature in features:
+		cnf.extend(['# ' + token + ' is not set' for token in tokens])
+	else:
+		cnf.extend([token + '=y' for token in tokens])
 # Map distro and machine features to config settings
 def features_to_uclibc_settings(d):
 	cnf, rem = ([], [])
 	distro_features = bb.data.getVar('DISTRO_FEATURES', d).split()
 	machine_features = bb.data.getVar('MACHINE_FEATURES', d).split()
-	uclibc_cfg('ipv4',      distro_features, 'UCLIBC_HAS_IPV4', cnf, rem)
-	uclibc_cfg('ipv6',      distro_features, 'UCLIBC_HAS_IPV6', cnf, rem)
-	uclibc_cfg('largefile', distro_features, 'UCLIBC_HAS_LFS', cnf, rem)
-	uclibc_cfg('nls',       distro_features, 'UCLIBC_HAS_LOCALE', cnf, rem)
-	uclibc_cfg('bx',        machine_features,'USE_BX', cnf, rem)
+	uclibc_cfg_enable('ipv4',      distro_features, 'UCLIBC_HAS_IPV4', cnf, rem)
+	uclibc_cfg_enable('ipv6',      distro_features, 'UCLIBC_HAS_IPV6', cnf, rem)
+	uclibc_cfg_enable('largefile', distro_features, 'UCLIBC_HAS_LFS', cnf, rem)
+	uclibc_cfg_enable('nls',       distro_features, 'UCLIBC_HAS_LOCALE', cnf, rem)
+	uclibc_cfg_disable('nobx',      machine_features,'USE_BX', cnf, rem)
 	return "\n".join(cnf), "\n".join(rem)
 # X, Y = ${@features_to_uclibc_settings(d)}
 # unfortunately doesn't seem to work with bitbake, workaround:

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

* Re: [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-08 20:28     ` Bernhard Reutner-Fischer
  2010-07-08 20:31       ` Khem Raj
@ 2010-07-08 20:41       ` Khem Raj
  1 sibling, 0 replies; 21+ messages in thread
From: Khem Raj @ 2010-07-08 20:41 UTC (permalink / raw)
  To: Bernhard Reutner-Fischer; +Cc: openembedded-devel

On Thu, Jul 8, 2010 at 1:28 PM, Bernhard Reutner-Fischer
<rep.dot.nop@gmail.com> wrote:
>
> you said you saw an ICE with current uclibc master. Which arch and which
> versions of the toolchain did you use?

The ICE is because of -Os -mthumb -fno-omit-frame-pointer because now we pass
CFLAGS into UCLIBC_EXTRA_CFLAGS which is right thing but it unveils this
issue. I have opened a gcc bug for the same
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44860

and deviced a local work around
to not pass -fno-omit-frame-pointer on arm. I wanted to use thumb override
to localize the workaround even more but thumb is added to OVERRIDES in machine
confs and bitbake does not pick it up when I apply it on
var_thumb := <....>
var_thumb = <....> seems to work ok.

Probably you did not use thumb instruction set when compiling for qemuarm
thats where the ICE happens.

I have to cobble up few recipes but now with your patches I can build bootable
x11-image and native-sdk-images on minimal. I am quite happy with what we have
thus far.

> FYI, i tested qemuarm, qemumips, qemuppc, qemux86 and (my local)
> qemux86_64 with
> PREFERRED_BINUTILS = "2.20.1" ¹)
> PREFERRED_GCC_VERSION = "4.5" ²) ³)

thats similar to what I have.

>
> and all of built fine for me.
>
> ¹) micro.conf incorrectly picks 2.19.51 per default, should be bumped
> ²) micro.conf should also default to 4.5
> ³) It would be great if we could settle on one scheme for
>   binutils/gcc/libc version shorthands:
>   PREFERRED_BINUTILS_VERSION _or_ PREFERRED_GCC, i'd go for
>   PREFERRED_foo_VERSION, uniformly.



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

* Re: [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-08 20:31       ` Khem Raj
@ 2010-07-08 20:44         ` Bernhard Reutner-Fischer
  0 siblings, 0 replies; 21+ messages in thread
From: Bernhard Reutner-Fischer @ 2010-07-08 20:44 UTC (permalink / raw)
  To: Khem Raj; +Cc: openembedded-devel

On Thu, Jul 08, 2010 at 01:31:51PM -0700, Khem Raj wrote:
>On Thu, Jul 8, 2010 at 1:28 PM, Bernhard Reutner-Fischer
><rep.dot.nop@gmail.com> wrote:
>> On Thu, Jul 08, 2010 at 12:02:51PM -0700, Khem Raj wrote:
>>>On Tue, Jul 6, 2010 at 12:32 PM, Bernhard Reutner-Fischer
>>><rep.dot.nop@gmail.com> wrote:
>>
>>>> +       uclibc_cfg('bx',        machine_features,'USE_BX', cnf, rem)
>>>
>>>
>>>
>>>I would have a feature called 'nobx' because most of the machines
>>>we support actively in OE has BX. With current state this needs to
>>>be added to MACHINE features for almost all arm machines. We can instead
>>>have nobx and keep USE_BX enabled and only disable it if nobx appears
>>>in machine_features.
>>
>> I'd much prefer to stick bx into some generic arm include instead.
>> What do you think?
>
>I have added attached patch and turned bx into nobx and now all seems to be
>ok

This is conceptionally backwards but i won't complain if this helps in
finally getting the improved infrastructure in.

Separate issues, but what about the other parts below?
thanks,
>>
>>>                     Otherwise I have tested the patches myself
>>>and they seems to work well.
>>>
>>>I will push them once we have the bx turned into nobx
>>>
>>>I think you do not have a function to disable already enabled feature.
>>
>> the 'rem' below translates into sed /SOMETHING/d
>> Can you elaborate?
>> Except you mean DISTRO_FEATURES="ipv4"
>> and one of the gazillion distro-specific config snippets contain
>> CONFIG_IPV6=y
>> and that is not disabled.. About all those distro hunks have to go
>> anyway for they are redundant.
>>
>>>> +       return "\n".join(cnf), "\n".join(rem)
>>>> +# X, Y = ${@features_to_uclibc_settings(d)}
>>>> +# unfortunately doesn't seem to work with bitbake, workaround:
>>
>> you said you saw an ICE with current uclibc master. Which arch and which
>> versions of the toolchain did you use?
>> FYI, i tested qemuarm, qemumips, qemuppc, qemux86 and (my local)
>> qemux86_64 with
>> PREFERRED_BINUTILS = "2.20.1" ¹)
>> PREFERRED_GCC_VERSION = "4.5" ²) ³)
>>
>> and all of built fine for me.
>>
>> ¹) micro.conf incorrectly picks 2.19.51 per default, should be bumped
>> ²) micro.conf should also default to 4.5
>> ³) It would be great if we could settle on one scheme for
>>   binutils/gcc/libc version shorthands:
>>   PREFERRED_BINUTILS_VERSION _or_ PREFERRED_GCC, i'd go for
>>   PREFERRED_foo_VERSION, uniformly.
>>





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

* Re: [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-08 19:02   ` Khem Raj
  2010-07-08 20:28     ` Bernhard Reutner-Fischer
@ 2010-07-08 20:47     ` Phil Blundell
  2010-07-08 21:03       ` Khem Raj
  2010-07-08 21:12       ` Khem Raj
  1 sibling, 2 replies; 21+ messages in thread
From: Phil Blundell @ 2010-07-08 20:47 UTC (permalink / raw)
  To: Khem Raj; +Cc: openembedded-devel

On Thu, 2010-07-08 at 12:02 -0700, Khem Raj wrote:
> I would have a feature called 'nobx' because most of the machines
> we support actively in OE has BX. With current state this needs to
> be added to MACHINE features for almost all arm machines. We can instead
> have nobx and keep USE_BX enabled and only disable it if nobx appears
> in machine_features. Otherwise I have tested the patches myself
> and they seems to work well.

I'm not sure that putting bx (or nobx) in MACHINE_FEATURES really
conveys any information that you can't already get from TARGET_ARCH plus
THUMB_INTERWORK.  It's also worth noting that the latter is a DISTRO
variable so, if you did add a competing bx flag to MACHINE_FEATURES, it
would be difficult to ensure that the two were consistent.

p.





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

* Re: [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-08 20:47     ` Phil Blundell
@ 2010-07-08 21:03       ` Khem Raj
  2010-07-08 21:29         ` Phil Blundell
  2010-07-08 21:12       ` Khem Raj
  1 sibling, 1 reply; 21+ messages in thread
From: Khem Raj @ 2010-07-08 21:03 UTC (permalink / raw)
  To: Phil Blundell; +Cc: openembedded-devel

On Thu, Jul 8, 2010 at 1:47 PM, Phil Blundell <philb@gnu.org> wrote:
> On Thu, 2010-07-08 at 12:02 -0700, Khem Raj wrote:
>> I would have a feature called 'nobx' because most of the machines
>> we support actively in OE has BX. With current state this needs to
>> be added to MACHINE features for almost all arm machines. We can instead
>> have nobx and keep USE_BX enabled and only disable it if nobx appears
>> in machine_features. Otherwise I have tested the patches myself
>> and they seems to work well.
>
> I'm not sure that putting bx (or nobx) in MACHINE_FEATURES really
> conveys any information that you can't already get from TARGET_ARCH plus
> THUMB_INTERWORK.  It's also worth noting that the latter is a DISTRO
> variable so, if you did add a competing bx flag to MACHINE_FEATURES, it
> would be difficult to ensure that the two were consistent.

If I am not wrong you can still do interworking and not have bx (using
mov pc,lr)

>
> p.
>
>
>



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

* Re: [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-08 20:47     ` Phil Blundell
  2010-07-08 21:03       ` Khem Raj
@ 2010-07-08 21:12       ` Khem Raj
  2010-07-08 21:32         ` Phil Blundell
  1 sibling, 1 reply; 21+ messages in thread
From: Khem Raj @ 2010-07-08 21:12 UTC (permalink / raw)
  To: Phil Blundell; +Cc: openembedded-devel

On Thu, Jul 8, 2010 at 1:47 PM, Phil Blundell <philb@gnu.org> wrote:
> On Thu, 2010-07-08 at 12:02 -0700, Khem Raj wrote:
>> I would have a feature called 'nobx' because most of the machines
>> we support actively in OE has BX. With current state this needs to
>> be added to MACHINE features for almost all arm machines. We can instead
>> have nobx and keep USE_BX enabled and only disable it if nobx appears
>> in machine_features. Otherwise I have tested the patches myself
>> and they seems to work well.
>
> I'm not sure that putting bx (or nobx) in MACHINE_FEATURES really
> conveys any information that you can't already get from TARGET_ARCH plus
> THUMB_INTERWORK.  It's also worth noting that the latter is a DISTRO
> variable so, if you did add a competing bx flag to MACHINE_FEATURES, it
> would be difficult to ensure that the two were consistent.

hmm TARGET_ARCH wouldnt be the one but BASE_PACKAGE_ARCH does have sub-arch
info. Although I would agree with you that we can build this information from
BASE_PACKAGE_ARCH but its not as bad to have it as a machine feature either.

>
> p.
>
>
>



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

* Re: [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-08 21:03       ` Khem Raj
@ 2010-07-08 21:29         ` Phil Blundell
  2010-07-08 21:31           ` Khem Raj
  0 siblings, 1 reply; 21+ messages in thread
From: Phil Blundell @ 2010-07-08 21:29 UTC (permalink / raw)
  To: Khem Raj; +Cc: openembedded-devel

On Thu, 2010-07-08 at 14:03 -0700, Khem Raj wrote:
> If I am not wrong you can still do interworking and not have bx (using
> mov pc,lr)

That's not an interworking instruction in ARMv4T, and I don't think it
is in ARMv5TE either.  You might be thinking of pop {pc}, which is
interworking in ARMv5TE, but even this is not interworking in v4t.

p.





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

* Re: [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-08 21:29         ` Phil Blundell
@ 2010-07-08 21:31           ` Khem Raj
  2010-07-08 21:34             ` Phil Blundell
  0 siblings, 1 reply; 21+ messages in thread
From: Khem Raj @ 2010-07-08 21:31 UTC (permalink / raw)
  To: Phil Blundell; +Cc: openembedded-devel

On Thu, Jul 8, 2010 at 2:29 PM, Phil Blundell <philb@gnu.org> wrote:
> On Thu, 2010-07-08 at 14:03 -0700, Khem Raj wrote:
>> If I am not wrong you can still do interworking and not have bx (using
>> mov pc,lr)
>
> That's not an interworking instruction in ARMv4T, and I don't think it
> is in ARMv5TE either.  You might be thinking of pop {pc}, which is
> interworking in ARMv5TE, but even this is not interworking in v4t.

tst lr, #1
moveq pc, lr
bx lr

Thats how its done on armv4 for EABI

>
> p.
>
>
>



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

* Re: [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-08 21:12       ` Khem Raj
@ 2010-07-08 21:32         ` Phil Blundell
  2010-07-08 22:01           ` Khem Raj
  0 siblings, 1 reply; 21+ messages in thread
From: Phil Blundell @ 2010-07-08 21:32 UTC (permalink / raw)
  To: Khem Raj; +Cc: openembedded-devel

On Thu, 2010-07-08 at 14:12 -0700, Khem Raj wrote:
> hmm TARGET_ARCH wouldnt be the one but BASE_PACKAGE_ARCH does have sub-arch
> info. Although I would agree with you that we can build this information from
> BASE_PACKAGE_ARCH but its not as bad to have it as a machine feature either.

I do think it is fairly undesirable to have the same thing configured in
two places.  If a DISTRO sets THUMB_INTERWORK to off on a v4t platform
then I think they would have a reasonable expectation that this would
cause bx to not be used.  If uclibc is looking at some other place to
decide then it will not behave in the expected fashion.

p.






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

* Re: [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-08 21:31           ` Khem Raj
@ 2010-07-08 21:34             ` Phil Blundell
  2010-07-08 22:03               ` Khem Raj
  0 siblings, 1 reply; 21+ messages in thread
From: Phil Blundell @ 2010-07-08 21:34 UTC (permalink / raw)
  To: Khem Raj; +Cc: openembedded-devel

On Thu, 2010-07-08 at 14:31 -0700, Khem Raj wrote:
> On Thu, Jul 8, 2010 at 2:29 PM, Phil Blundell <philb@gnu.org> wrote:
> > On Thu, 2010-07-08 at 14:03 -0700, Khem Raj wrote:
> >> If I am not wrong you can still do interworking and not have bx (using
> >> mov pc,lr)
> >
> > That's not an interworking instruction in ARMv4T, and I don't think it
> > is in ARMv5TE either.  You might be thinking of pop {pc}, which is
> > interworking in ARMv5TE, but even this is not interworking in v4t.
> 
> tst lr, #1
> moveq pc, lr
> bx lr
> 
> Thats how its done on armv4 for EABI

Right, but the MOV in that case is not an interworking instruction; it's
just a way to avoid executing BX when you don't actually need to switch
mode, so that you can create a library which still works in an ARM-only
environment.

The final BX in that sequence is mandatory in order for it to actually
function as an interworking return.

p.





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

* Re: [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-08 21:32         ` Phil Blundell
@ 2010-07-08 22:01           ` Khem Raj
  0 siblings, 0 replies; 21+ messages in thread
From: Khem Raj @ 2010-07-08 22:01 UTC (permalink / raw)
  To: Phil Blundell; +Cc: openembedded-devel

On Thu, Jul 8, 2010 at 2:32 PM, Phil Blundell <philb@gnu.org> wrote:
> On Thu, 2010-07-08 at 14:12 -0700, Khem Raj wrote:
>> hmm TARGET_ARCH wouldnt be the one but BASE_PACKAGE_ARCH does have sub-arch
>> info. Although I would agree with you that we can build this information from
>> BASE_PACKAGE_ARCH but its not as bad to have it as a machine feature either.
>
> I do think it is fairly undesirable to have the same thing configured in
> two places.  If a DISTRO sets THUMB_INTERWORK to off on a v4t platform
> then I think they would have a reasonable expectation that this would
> cause bx to not be used.  If uclibc is looking at some other place to
> decide then it will not behave in the expected fashion.

should we make THUMB_INTERWORK a distro feature ? currently its an independent
variable. This should be set in consent with chosen machine so if a machine
does not support interworking then distro should remove it from a possible
set of distro features. Then uclibc can rely on this distro feature to turn
bx support on|off.

>
> p.
>
>
>
>



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

* Re: [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-08 21:34             ` Phil Blundell
@ 2010-07-08 22:03               ` Khem Raj
  2010-07-08 22:16                 ` Bernhard Reutner-Fischer
  0 siblings, 1 reply; 21+ messages in thread
From: Khem Raj @ 2010-07-08 22:03 UTC (permalink / raw)
  To: Phil Blundell; +Cc: openembedded-devel

On Thu, Jul 8, 2010 at 2:34 PM, Phil Blundell <philb@gnu.org> wrote:
> On Thu, 2010-07-08 at 14:31 -0700, Khem Raj wrote:
>> On Thu, Jul 8, 2010 at 2:29 PM, Phil Blundell <philb@gnu.org> wrote:
>> > On Thu, 2010-07-08 at 14:03 -0700, Khem Raj wrote:
>> >> If I am not wrong you can still do interworking and not have bx (using
>> >> mov pc,lr)
>> >
>> > That's not an interworking instruction in ARMv4T, and I don't think it
>> > is in ARMv5TE either.  You might be thinking of pop {pc}, which is
>> > interworking in ARMv5TE, but even this is not interworking in v4t.
>>
>> tst lr, #1
>> moveq pc, lr
>> bx lr
>>
>> Thats how its done on armv4 for EABI
>
> Right, but the MOV in that case is not an interworking instruction; it's
> just a way to avoid executing BX when you don't actually need to switch
> mode, so that you can create a library which still works in an ARM-only
> environment.
>
> The final BX in that sequence is mandatory in order for it to actually
> function as an interworking return.

right you are. yes bx is always needed for thumb interworking. So I guess
for uclibc we can rely on THUMB_INTERWORK distro feature if set correctly.
>
> p.
>
>
>



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

* Re: [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-08 22:03               ` Khem Raj
@ 2010-07-08 22:16                 ` Bernhard Reutner-Fischer
  2010-07-08 22:55                   ` Khem Raj
  0 siblings, 1 reply; 21+ messages in thread
From: Bernhard Reutner-Fischer @ 2010-07-08 22:16 UTC (permalink / raw)
  To: Khem Raj; +Cc: openembedded-devel

On Thu, Jul 08, 2010 at 03:03:04PM -0700, Khem Raj wrote:
>On Thu, Jul 8, 2010 at 2:34 PM, Phil Blundell <philb@gnu.org> wrote:
>> On Thu, 2010-07-08 at 14:31 -0700, Khem Raj wrote:
>>> On Thu, Jul 8, 2010 at 2:29 PM, Phil Blundell <philb@gnu.org> wrote:
>>> > On Thu, 2010-07-08 at 14:03 -0700, Khem Raj wrote:
>>> >> If I am not wrong you can still do interworking and not have bx (using
>>> >> mov pc,lr)
>>> >
>>> > That's not an interworking instruction in ARMv4T, and I don't think it
>>> > is in ARMv5TE either.  You might be thinking of pop {pc}, which is
>>> > interworking in ARMv5TE, but even this is not interworking in v4t.
>>>
>>> tst lr, #1
>>> moveq pc, lr
>>> bx lr
>>>
>>> Thats how its done on armv4 for EABI
>>
>> Right, but the MOV in that case is not an interworking instruction; it's
>> just a way to avoid executing BX when you don't actually need to switch
>> mode, so that you can create a library which still works in an ARM-only
>> environment.
>>
>> The final BX in that sequence is mandatory in order for it to actually
>> function as an interworking return.
>
>right you are. yes bx is always needed for thumb interworking. So I guess
>for uclibc we can rely on THUMB_INTERWORK distro feature if set correctly.

AFAIR eabi implies thumb, thumb makes interwork possible, interwork
imples bx but my memory could fail me on this.

Can you, khem, think of a set of "thumb" and "interwork" (and
potentially "bx" for HW that supports it, like IIRC all e.g. cortex
onward based designs) in DISTRO_FEATURES and MACHINE_FEATURES that can
be used generically?

A first step would be to just resuse the infrastructure in this thread,
later on we could think about some sort of combined_feature mechanism to
properly setup arm ontop of this proposed infrastructure.

cheers,



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

* Re: [PATCH][v3 3/4] uClibc: redo configuration
  2010-07-08 22:16                 ` Bernhard Reutner-Fischer
@ 2010-07-08 22:55                   ` Khem Raj
  0 siblings, 0 replies; 21+ messages in thread
From: Khem Raj @ 2010-07-08 22:55 UTC (permalink / raw)
  To: Bernhard Reutner-Fischer; +Cc: openembedded-devel

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

On Thu, Jul 8, 2010 at 3:16 PM, Bernhard Reutner-Fischer
<rep.dot.nop@gmail.com> wrote:
> On Thu, Jul 08, 2010 at 03:03:04PM -0700, Khem Raj wrote:
>>On Thu, Jul 8, 2010 at 2:34 PM, Phil Blundell <philb@gnu.org> wrote:
>>> On Thu, 2010-07-08 at 14:31 -0700, Khem Raj wrote:
>>>> On Thu, Jul 8, 2010 at 2:29 PM, Phil Blundell <philb@gnu.org> wrote:
>>>> > On Thu, 2010-07-08 at 14:03 -0700, Khem Raj wrote:
>>>> >> If I am not wrong you can still do interworking and not have bx (using
>>>> >> mov pc,lr)
>>>> >
>>>> > That's not an interworking instruction in ARMv4T, and I don't think it
>>>> > is in ARMv5TE either.  You might be thinking of pop {pc}, which is
>>>> > interworking in ARMv5TE, but even this is not interworking in v4t.
>>>>
>>>> tst lr, #1
>>>> moveq pc, lr
>>>> bx lr
>>>>
>>>> Thats how its done on armv4 for EABI
>>>
>>> Right, but the MOV in that case is not an interworking instruction; it's
>>> just a way to avoid executing BX when you don't actually need to switch
>>> mode, so that you can create a library which still works in an ARM-only
>>> environment.
>>>
>>> The final BX in that sequence is mandatory in order for it to actually
>>> function as an interworking return.
>>
>>right you are. yes bx is always needed for thumb interworking. So I guess
>>for uclibc we can rely on THUMB_INTERWORK distro feature if set correctly.
>
> AFAIR eabi implies thumb, thumb makes interwork possible, interwork
> imples bx but my memory could fail me on this.

eabi does not imply thumb. EABI is supported on armv4 which does not have
thumb.

>
> Can you, khem, think of a set of "thumb" and "interwork" (and
> potentially "bx" for HW that supports it, like IIRC all e.g. cortex
> onward based designs) in DISTRO_FEATURES and MACHINE_FEATURES that can
> be used generically?
>
> A first step would be to just resuse the infrastructure in this thread,
> later on we could think about some sort of combined_feature mechanism to
> properly setup arm ontop of this proposed infrastructure.

I think we need thumb_interwork distro_feature which we could use here
here is a patch that distros would need.




>
> cheers,
>

[-- Attachment #2: diff --]
[-- Type: application/octet-stream, Size: 2280 bytes --]

diff --git a/conf/distro/include/sane-toolchain.inc b/conf/distro/include/sane-toolchain.inc
index 6b6b170..78591e2 100644
--- a/conf/distro/include/sane-toolchain.inc
+++ b/conf/distro/include/sane-toolchain.inc
@@ -86,7 +86,13 @@ ARM_INSTRUCTION_SET = "${PREFERRED_ARM_INSTRUCTION_SET}"
 #    but requires more instructions (140% for 70% smaller code) so may be
 #    slower.
 
-THUMB_INTERWORK = "yes"
+# armv4 does not have thumb instruction set therefore no interworking instructions
+# so if machine is based on armv4 we dont have choice.
+
+THUMB_INTERWORK_armv4 = "no"
+
+THUMB_INTERWORK ?= "yes"
+
 # "yes" "no"
 #    Whether to compile with code to allow interworking between the two
 #    instruction sets.  This allows thumb code to be executed on a primarily
diff --git a/conf/distro/minimal-uclibc.conf b/conf/distro/minimal-uclibc.conf
index 44805cf..35c77c8 100644
--- a/conf/distro/minimal-uclibc.conf
+++ b/conf/distro/minimal-uclibc.conf
@@ -44,3 +44,4 @@ DISTRO_FEATURES += "pam"
 DISTRO_FEATURES += "largefile"
 # glib-2.0 nneds ipv6 and there is no knob to control it
 DISTRO_FEATURES += "ipv4 ipv6"
+DISTRO_FEATURES_append_arm = ' ${@["thumb-interworking",""][bb.data.getVar('THUMB_INTERWORKING', d, 1) == "yes"]}'
diff --git a/conf/distro/minimal.conf b/conf/distro/minimal.conf
index e400c14..ea9f467 100644
--- a/conf/distro/minimal.conf
+++ b/conf/distro/minimal.conf
@@ -16,7 +16,7 @@ DISTRO_VERSION = "dev-snapshot-${SRCDATE}"
 DISTRO_TYPE ?= "debug"
 
 # Ensure some form of release config, so error out if someone thinks he knows better
-DISTRO_CHECK := "${@bb.data.getVar('DISTRO_VERSION',d,1) or bb.fatal('Remove this line or set a dummy DISTRO_VERSION")
+DISTRO_CHECK := "${@bb.data.getVar('DISTRO_VERSION',d,1) or bb.fatal('Remove this line or set a dummy DISTRO_VERSION')}"
 
 #############################################################################
 # FEATURE SELECTION
@@ -34,6 +34,8 @@ DISTRO_FEATURES += "eabi"
 
 DISTRO_FEATURES += "mplt"
 
+DISTRO_FEATURES_append_arm = ' ${@["thumb-interworking",""][bb.data.getVar('THUMB_INTERWORKING', d, 1) == "yes"]}'
+
 #############################################################################
 # LIBRARY NAMES
 #############################################################################

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

end of thread, other threads:[~2010-07-09 11:08 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-07-06 19:32 [PATCH][v3 0/4] honour {MACHINE, DISTRO}_FEATURES for configuration Bernhard Reutner-Fischer
2010-07-06 19:32 ` [PATCH][v3 1/4] busybox: configure according to {MACHINE, DISTRO}_FEATURES Bernhard Reutner-Fischer
2010-07-06 19:32 ` [PATCH][v3 2/4] busybox: picking IPv6 per default is not up to the package Bernhard Reutner-Fischer
2010-07-06 19:32 ` [PATCH][v3 3/4] uClibc: redo configuration Bernhard Reutner-Fischer
2010-07-08 19:02   ` Khem Raj
2010-07-08 20:28     ` Bernhard Reutner-Fischer
2010-07-08 20:31       ` Khem Raj
2010-07-08 20:44         ` Bernhard Reutner-Fischer
2010-07-08 20:41       ` Khem Raj
2010-07-08 20:47     ` Phil Blundell
2010-07-08 21:03       ` Khem Raj
2010-07-08 21:29         ` Phil Blundell
2010-07-08 21:31           ` Khem Raj
2010-07-08 21:34             ` Phil Blundell
2010-07-08 22:03               ` Khem Raj
2010-07-08 22:16                 ` Bernhard Reutner-Fischer
2010-07-08 22:55                   ` Khem Raj
2010-07-08 21:12       ` Khem Raj
2010-07-08 21:32         ` Phil Blundell
2010-07-08 22:01           ` Khem Raj
2010-07-06 19:32 ` [PATCH][v3 4/4] uclibc: add 0.9.31 Bernhard Reutner-Fischer

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.