From b568cfe4aed343dbe1423d88d1bfed7c39698739 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 8 Jul 2010 13:24:29 -0700 Subject: uclibc: Add thumb-interwork as local distro feature to enable bx * 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 --- recipes/uclibc/uclibc-config.inc | 7 +++++-- recipes/uclibc/uclibc.inc | 9 ++++++--- recipes/uclibc/uclibc_git.bb | 5 ++--- 3 files changed, 13 insertions(+), 8 deletions(-) (limited to 'recipes') diff --git a/recipes/uclibc/uclibc-config.inc b/recipes/uclibc/uclibc-config.inc index 82dfcfe123..5a6fbe82e9 100644 --- a/recipes/uclibc/uclibc-config.inc +++ b/recipes/uclibc/uclibc-config.inc @@ -90,16 +90,19 @@ 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]) + # 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() + if bb.data.getVar('THUMB_INTERWORKING', d, 1) == "yes": + distro_features += "thumb-interworking" + #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('thumb-interwork', distro_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: diff --git a/recipes/uclibc/uclibc.inc b/recipes/uclibc/uclibc.inc index b925386c95..746bccc924 100644 --- a/recipes/uclibc/uclibc.inc +++ b/recipes/uclibc/uclibc.inc @@ -19,7 +19,6 @@ python __anonymous () { raise bb.parse.SkipPackage("incompatible with target %s" % bb.data.getVar('TARGET_OS', d, 1)) } - PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc" DEPENDS = "virtual/${TARGET_PREFIX}binutils \ virtual/${TARGET_PREFIX}gcc-intermediate \ @@ -79,8 +78,12 @@ EXTRA_OEMAKE = "${OEMAKE_NO_CC} \ EXTRA_OEMAKE_task_do_package = "${OEMAKE_NO_CC}" # enable verbose output: -export V="1" +export V="2" +# -O -fno-omit-frame-pointer ends up with GCC ICE on thumb as reported +# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44860 +# +CFLAGS_arm := "${@oe_filter_out('-fno-omit-frame-pointer', '${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 () { @@ -180,7 +183,7 @@ do_configure() { do_install() { oe_runmake PREFIX=${D} install - oe_runmake PREFIX=${D} install_utils + oe_runmake PREFIX=${D} "SSP_ALL_CFLAGS=${TARGET_LINK_HASH_STYLE}" install_utils } get_monotonic_srcrev () { diff --git a/recipes/uclibc/uclibc_git.bb b/recipes/uclibc/uclibc_git.bb index 281a9b2d26..30375bb95f 100644 --- a/recipes/uclibc/uclibc_git.bb +++ b/recipes/uclibc/uclibc_git.bb @@ -7,7 +7,7 @@ # on whether the base patches apply to the selected (SRCDATE) svn release. # UCLIBC_BASE ?= "0.9.31" -SRCREV="13f9f3229bd7623352927f3b0de17e2b3f7a3ecc" +SRCREV="42fb51e0d4e7ab9fe8ff2be3a7405acb8d44e9b2" PR_append = "+gitr${SRCPV}" DEFAULT_PREFERENCE = "-1" #DEFAULT_PREFERENCE is 0 (empty), releases have a preference of 1 so take @@ -23,8 +23,7 @@ FILESPATHPKG =. "uclibc-git:uclibc-${UCLIBC_BASE}:" #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 = "${CROSS_DIR}/${TARGET_SYS}" - +KERNEL_SOURCE = "${STAGING_DIR_HOST}/${exec_prefix}" SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \ file://uClibc.config \ file://uClibc.machine \ -- cgit 1.2.3-korg