summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/uclibc/files/uClibc.distro3
-rw-r--r--packages/uclibc/files/uClibc.machine8
-rw-r--r--packages/uclibc/uclibc-0.9.28/nslu2/.mtn2git_empty0
-rw-r--r--packages/uclibc/uclibc-0.9.28/nslu2/uClibc.machine8
-rw-r--r--packages/uclibc/uclibc-0.9.28/ucslugc/uClibc.distro (renamed from packages/uclibc/uclibc-0.9.28/ucslugc/uClibc.config)58
-rw-r--r--packages/uclibc/uclibc.inc10
6 files changed, 31 insertions, 56 deletions
diff --git a/packages/uclibc/files/uClibc.distro b/packages/uclibc/files/uClibc.distro
new file mode 100644
index 0000000000..d87b891b41
--- /dev/null
+++ b/packages/uclibc/files/uClibc.distro
@@ -0,0 +1,3 @@
+# Default per-distro config
+# DO NOT CHANGE THIS
+# Create a new file ${DISTRO}/uClibc.distro
diff --git a/packages/uclibc/files/uClibc.machine b/packages/uclibc/files/uClibc.machine
new file mode 100644
index 0000000000..66346b90f3
--- /dev/null
+++ b/packages/uclibc/files/uClibc.machine
@@ -0,0 +1,8 @@
+# Default per-machine config
+# DO NOT CHANGE THIS
+# Create a new file ${MACHINE}/uClibc.distro
+# Use this file for information which is specific to the machine,
+# as opposed to the architecture (e.g. nslu2 as opposed to armeb or arm)
+# KISS: this file gets includes last, nothing in here can be
+# overridden. Restrict things in here to things which are absolutely
+# and certainly true for this machine.
diff --git a/packages/uclibc/uclibc-0.9.28/nslu2/.mtn2git_empty b/packages/uclibc/uclibc-0.9.28/nslu2/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/uclibc/uclibc-0.9.28/nslu2/.mtn2git_empty
diff --git a/packages/uclibc/uclibc-0.9.28/nslu2/uClibc.machine b/packages/uclibc/uclibc-0.9.28/nslu2/uClibc.machine
new file mode 100644
index 0000000000..a3dde947cf
--- /dev/null
+++ b/packages/uclibc/uclibc-0.9.28/nslu2/uClibc.machine
@@ -0,0 +1,8 @@
+# NSLU2 specific machine overrides.
+#
+# NSLU2 can be arm or armeb - the ARCH (arm,armeb) decides
+# this, NSLU2 is always XScale - this file enfoces this.
+#
+CONFIG_ARM_XSCALE=y
+ARCH_HAS_MMU=y
+HAS_FPU=n
diff --git a/packages/uclibc/uclibc-0.9.28/ucslugc/uClibc.config b/packages/uclibc/uclibc-0.9.28/ucslugc/uClibc.distro
index f6810dc56e..7019e97369 100644
--- a/packages/uclibc/uclibc-0.9.28/ucslugc/uClibc.config
+++ b/packages/uclibc/uclibc-0.9.28/ucslugc/uClibc.distro
@@ -1,57 +1,7 @@
-#
-# Automatically generated make config: don't edit
-#
-# 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_i386 is not set
-# TARGET_i960 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_x86_64 is not set
-
-#
-# Target Architecture Features and Options
-#
-HAVE_ELF=y
-ARCH_SUPPORTS_LITTLE_ENDIAN=y
-TARGET_ARCH="arm"
-ARCH_SUPPORTS_BIG_ENDIAN=y
-# CONFIG_GENERIC_ARM is not set
-# CONFIG_ARM610 is not set
-# CONFIG_ARM710 is not set
-# CONFIG_ARM720T is not set
-# CONFIG_ARM920T is not set
-# CONFIG_ARM922T is not set
-# CONFIG_ARM926T is not set
-# CONFIG_ARM1136JF_S is not set
-# CONFIG_ARM_SA110 is not set
-# CONFIG_ARM_SA1100 is not set
-CONFIG_ARM_XSCALE=y
-# ARCH_LITTLE_ENDIAN is not set
-ARCH_BIG_ENDIAN=y
-# ARCH_HAS_NO_MMU is not set
-ARCH_HAS_MMU=y
-UCLIBC_HAS_FLOATS=y
-# HAS_FPU is not set
-UCLIBC_HAS_SOFT_FLOAT=y
-DO_C99_MATH=y
-KERNEL_SOURCE="/path/to/kernel/files"
-C_SYMBOL_PREFIX=""
-HAVE_DOT_CONFIG=y
-
+# Contains only the distro specific parts of the uClibc.config -
+# these are appended to the machine config to override the settings.
+# Just copy everything from General Library Settings on into this
+# file...
#
# General Library Settings
#
diff --git a/packages/uclibc/uclibc.inc b/packages/uclibc/uclibc.inc
index 40c08d97ba..910e633ccc 100644
--- a/packages/uclibc/uclibc.inc
+++ b/packages/uclibc/uclibc.inc
@@ -57,7 +57,9 @@ UCLIBC_LOCALE_URI = "http://www.uclibc.org/downloads/${UCLIBC_LOCALE_FILE}"
UCLIBC_LOCALE_URI_arm = "http://openembedded.org/dl/uclibc-locale/${UCLIBC_LOCALE_FILE}"
SRC_URI = "${@['${UCLIBC_LOCALE_URI}', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']} \
- file://uClibc.config"
+ file://uClibc.config \
+ file://uClibc.machine \
+ file://uClibc.distro"
UCLIBC_PREFIX = "${CROSS_DIR}/${TARGET_SYS}"
UCLIBC_STAGE_PREFIX = "${STAGING_DIR}/${HOST_SYS}"
@@ -98,7 +100,11 @@ python do_patch () {
}
do_configure() {
- cp ${WORKDIR}/uClibc.config ${S}/.config
+ rm -f ${S}/.config
+ # This stuff works like the standard OE OVERRIDES - keep the files
+ # in the same order as the default OVERRIDES (well, reverse order,
+ # because unlike overrides the last takes precedence)
+ cat ${WORKDIR}/uClibc.config ${WORKDIR}/uClibc.distro ${WORKDIR}/uClibc.machine >${S}/.config
perl -i -p -e 's,^CROSS=.*,TARGET_ARCH=${TARGET_ARCH}\nCROSS=${TARGET_PREFIX},g' ${S}/Rules.mak
perl -i -p -e '${configmangle}' ${S}/.config