summaryrefslogtreecommitdiff
path: root/packages/uclibc/uclibc.inc
diff options
context:
space:
mode:
authorJohn Bowler <jbowler@nslu2-linux.org>2005-08-11 20:03:56 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2005-08-11 20:03:56 +0000
commit122c43cb0589c423749b9f046ceed1ab53bee9f6 (patch)
treef4381920fc7e84bf5eabd3cd37bf6adeee33fbec /packages/uclibc/uclibc.inc
parent5f016dabf20ee6196f7e141e7f499a09b7342f91 (diff)
This set of changes ensures that TARGET_CC_ARCH is passed reliably to all
packages in a build. The change fixes problems in the following packages: binutils{,-cross}_2.15.94.0.1 HOST_CC_ARCH was not being passed to HOST_CC. The problem does not seem to be present in binutils* 2.16, however this version is still used for uClibc builds. gcc{,-cross,-cross-initial}_3.4.4 HOST/TARGET_CC_ARCH was not used in the appropriate places, plus this was not sufficient - FLAGS_FOR_TARGET (a gcc make variable) is now preloaded with the target CC_ARCH values, which causes all the builds (gcc, g++, gcj, fortran) to get the correct values. gcc OTHER *NOT* fixed - other versions of gcc will still need the _CC_ARCH fix in the same lines (CC_FOR_TARGET, GCC_FOR_TARGET, CXX_FOR_TARGET), however so long as these builds use gcc3-*.inc the FLAGS_FOR_TARGET fixx will be there. uclibc{,-initial}_0.9.27 TARGET_CC_ARCH added to the do_compile. For the do_stage step the build actually compiles target code (make utils), but this will not accept a CC with whitespace. The TARGET_CC_ARCH flags have therefore been added to CFLAGS (a bit ugly, but it works). These changes have been tested for both cross and target builds, the changes should be fine on self-hosted (i.e. target-hosted) builds, if anyone actually does these, but note that the gcc build specifically tests for build==host and does *not* do certain _FOR_TARGET settings in this case (this was the case before this change too) - if you are seeing strange settings on self-hosted gcc builds (before and after this change) check the do_compile environment variable settings.
Diffstat (limited to 'packages/uclibc/uclibc.inc')
-rw-r--r--packages/uclibc/uclibc.inc8
1 files changed, 7 insertions, 1 deletions
diff --git a/packages/uclibc/uclibc.inc b/packages/uclibc/uclibc.inc
index b86ffb1b9b..aa4d165dcc 100644
--- a/packages/uclibc/uclibc.inc
+++ b/packages/uclibc/uclibc.inc
@@ -62,8 +62,14 @@ SRC_URI = "${@['${UCLIBC_LOCALE_URI}', ''][bb.data.getVar('USE_NLS', d, 1) != 'y
UCLIBC_PREFIX = "${CROSS_DIR}/${TARGET_SYS}"
UCLIBC_STAGE_PREFIX = "${STAGING_DIR}/${HOST_SYS}"
-EXTRA_OEMAKE = "'OPTIMIZATION=' 'CPU_CFLAGS=${CFLAGS}' 'STRIPTOOL=true' 'LD=${LD}' \
+# 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 = "'OPTIMIZATION=' 'CPU_CFLAGS=${CFLAGS}' 'STRIPTOOL=true' 'LD=${LD}' \
'LOCALE_DATA_FILENAME=${UCLIBC_LOCALE_FILE}'"
+EXTRA_OEMAKE = "${OEMAKE_NO_CC} 'CC=${CC}'"
+EXTRA_OEMAKE_task_do_populate_staging = "${OEMAKE_NO_CC}"
+EXTRA_OEMAKE_task_do_package = "${OEMAKE_NO_CC}"
+
configmangle = 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE="${CROSS_DIR}/${TARGET_SYS}/include",g; \
s,^RUNTIME_PREFIX=.*,RUNTIME_PREFIX="/",g; \
s,^DEVEL_PREFIX=.*,DEVEL_PREFIX="/${prefix}",g; \