summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/uclibc/uclibc.inc24
-rw-r--r--packages/uclibc/uclibc_0.9.29.bb2
2 files changed, 18 insertions, 8 deletions
diff --git a/packages/uclibc/uclibc.inc b/packages/uclibc/uclibc.inc
index aa048c9950..bae3f2d042 100644
--- a/packages/uclibc/uclibc.inc
+++ b/packages/uclibc/uclibc.inc
@@ -57,9 +57,7 @@ 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.machine \
- file://uClibc.distro"
+ file://uClibc.config"
UCLIBC_PREFIX = "${CROSS_DIR}/${TARGET_SYS}"
UCLIBC_STAGE_PREFIX = "${STAGING_DIR}/${HOST_SYS}"
@@ -109,15 +107,25 @@ python do_patch () {
do_configure() {
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
+ # 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
perl -i -p -e '${configmangle}' ${S}/.config
-
sed -i -e '/CONFIG_ARM_EABI/d' ${S}/.config
if [ "${TARGET_OS}" == "linux-gnueabi" -o "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
diff --git a/packages/uclibc/uclibc_0.9.29.bb b/packages/uclibc/uclibc_0.9.29.bb
index b4ba7b44ef..b5083ed84d 100644
--- a/packages/uclibc/uclibc_0.9.29.bb
+++ b/packages/uclibc/uclibc_0.9.29.bb
@@ -14,6 +14,8 @@ require uclibc.inc
PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
+SRC_URI += "file://uClibc.machine file://uClibc.distro"
+
#recent versions uclibc require real kernel headers
PACKAGE_ARCH = "${MACHINE_ARCH}"
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-cvs', '${FILE_DIRNAME}/uclibc-${UCLIBC_BASE}', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"