There is no good reason for uclibc to be machine specific. Remove local assignment to PACKAGE_ARCH so that it gets the default target architecture and bump PR for that change.
See http://lists.linuxtogo.org/pipermail/openembedded-core/2011-May/003064.html Also replace a chunk of anonymous python with a COMPATIBLE_HOST declaration. Signed-off-by: Phil Blundell <ph...@gnu.org> --- .../uclibc/uclibc-git/epoll-asm-fix.patch | 20 ++++++++++++++++++++ meta/recipes-core/uclibc/uclibc.inc | 12 +----------- meta/recipes-core/uclibc/uclibc_git.bb | 5 ++--- 3 files changed, 23 insertions(+), 14 deletions(-) create mode 100644 meta/recipes-core/uclibc/uclibc-git/epoll-asm-fix.patch diff --git a/meta/recipes-core/uclibc/uclibc-git/epoll-asm-fix.patch b/meta/recipes-core/uclibc/uclibc-git/epoll-asm-fix.patch new file mode 100644 index 0000000..6129081 --- /dev/null +++ b/meta/recipes-core/uclibc/uclibc-git/epoll-asm-fix.patch @@ -0,0 +1,20 @@ +diff --git a/libc/sysdeps/linux/common/epoll.c b/libc/sysdeps/linux/common/epoll.c +index 85b0cfd..c034b2c 100644 +--- a/libc/sysdeps/linux/common/epoll.c ++++ b/libc/sysdeps/linux/common/epoll.c +@@ -67,12 +67,13 @@ extern __typeof(epoll_pwait) __libc_epoll_pwait; + int __libc_epoll_pwait(int epfd, struct epoll_event *events, int maxevents, + int timeout, const sigset_t *set) + { ++ int nsig = _NSIG / 8; + if (SINGLE_THREAD_P) +- return INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, _NSIG / 8); ++ return INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, nsig); + # ifdef __UCLIBC_HAS_THREADS_NATIVE__ + else { + int oldtype = LIBC_CANCEL_ASYNC (); +- int result = INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, _NSIG / 8); ++ int result = INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, nsig); + LIBC_CANCEL_RESET (oldtype); + return result; + } diff --git a/meta/recipes-core/uclibc/uclibc.inc b/meta/recipes-core/uclibc/uclibc.inc index c1bc422..a2c6ee5 100644 --- a/meta/recipes-core/uclibc/uclibc.inc +++ b/meta/recipes-core/uclibc/uclibc.inc @@ -36,21 +36,11 @@ cp ${SYSROOT_DESTDIR}${libdir}/libc.so ${WORKDIR}/site_config_libc; \ sed -i -e 's# ${base_libdir}# ${SYSROOT_DESTDIR}${base_libdir}#g' -e 's# ${libdir}# ${SYSROOT_DESTDIR}${libdir}#g' ${WORKDIR}/site_config_libc/libc.so; \ " -# # For now, we will skip building of a gcc package if it is a uclibc one # and our build is not a uclibc one, and we skip a glibc one if our build # is a uclibc build. -# -# See the note in gcc/gcc_3.4.0.oe -# +COMPATIBLE_HOST = ".*-uclibc.*" -python __anonymous () { - import bb, re - uc_os = (re.match('.*uclibc*', bb.data.getVar('TARGET_OS', d, 1)) != None) - if not uc_os: - 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 \ diff --git a/meta/recipes-core/uclibc/uclibc_git.bb b/meta/recipes-core/uclibc/uclibc_git.bb index eded2fb..33c6ec8 100644 --- a/meta/recipes-core/uclibc/uclibc_git.bb +++ b/meta/recipes-core/uclibc/uclibc_git.bb @@ -2,11 +2,9 @@ SRCREV="71d63ed75648da9b0b71afabb9c60aaad792c55c" require uclibc.inc PV = "0.9.31+0.9.32rc3" -PR = "${INC_PR}.2" +PR = "${INC_PR}.3" PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc" -#recent versions uclibc require real kernel headers -PACKAGE_ARCH = "${MACHINE_ARCH}" FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-git' ], d)}" SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \ @@ -29,5 +27,6 @@ SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \ file://remove_attribute_optimize_Os.patch \ file://append_UCLIBC_EXTRA_CFLAGS.patch \ file://compile-arm-fork-with-O2.patch \ + file://epoll-asm-fix.patch \ " S = "${WORKDIR}/git" -- 1.7.2.5 _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core