uclibc: Add thumb-interwork as local distro feature to enable bx
authorKhem Raj <raj.khem@gmail.com>
Thu, 8 Jul 2010 20:24:29 +0000 (13:24 -0700)
committerKhem Raj <raj.khem@gmail.com>
Fri, 9 Jul 2010 00:23:57 +0000 (17:23 -0700)
* 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>
recipes/uclibc/uclibc-config.inc
recipes/uclibc/uclibc.inc
recipes/uclibc/uclibc_git.bb

index 82dfcfe..5a6fbe8 100644 (file)
@@ -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:
index b925386..746bccc 100644 (file)
@@ -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<n> -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 () {
index 281a9b2..30375bb 100644 (file)
@@ -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 \