All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune
@ 2012-02-06  6:40 Khem Raj
  2012-02-06  6:40 ` [PATCH 01/20] task-core-tools: Divide it into 3 recipes Khem Raj
                   ` (20 more replies)
  0 siblings, 21 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

I have added few more patches on top

Renaming POKY to CORE-IMAGE
Adding yp.org as fallback mirror for oe-core 
build fixes needed to get going on ubuntu 12.04

All qemu core-image-sato builds (from scratch) and boots on both eglibc/uclibc
with this set

The following changes since commit 18d9fcfc4bc4b01f73e89f3b988c9d3d543c7705:

  libzypp: add missing runtime dependences on gzip and gnupg (2012-02-03 17:23:28 +0000)

are available in the git repository at:
  git://git.openembedded.org/openembedded-core-contrib kraj/misc
  http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/misc

Khem Raj (20):
  task-core-tools: Divide it into 3 recipes
  Enable options needed for ltp to compile
  arm/tune: Correct the logic which added thumb-interwork to OVERRIDES
  tunearch/arm: Differentiate between thumb code generation and thumb
    capability
  tune-thumb.inc: Delete
  uclibc: Get the thumb features from tune flags
  kmod: Add recipes
  module-init-tools: Delete
  image.bbclass,kernel.bbclass: Use kmod-native instead of
    module-init-tools-cross
  pseudo: Wrap renameat and opendir
  uclibc: Upgrade recipes from 0.9.32 -> 0.9.33
  zlib: Upgrade 1.2.5 -> 1.2.6
  runqemu-internal: qemuarm can handle 256M
  gconf,consolekit: Avoid polkit when compiling with uclibc
  python: Fix build failure of python-elementtree on x86_64
  libdrm: Fix build failure unearthed by uclibc
  classes,recipes: Replace POKY_* with CORE_IMAGE_*
  libx11: Backport _XGetRequest API
  gcc-cross-testing: Fix evaluation of user and target name
  mirrors.bbclass: Add yp.org and oe.org to fallback mirrors

 meta/classes/core-image.bbclass                    |    8 +-
 meta/classes/image.bbclass                         |    2 +-
 meta/classes/kernel.bbclass                        |    9 +-
 meta/classes/mirrors.bbclass                       |   21 +-
 .../conf/distro/include/distro_tracking_fields.inc |   26 +-
 meta/conf/distro/include/tcmode-default.inc        |    2 +-
 .../conf/machine/include/arm/feature-arm-thumb.inc |   20 +-
 meta/conf/machine/include/tune-strongarm1100.inc   |    4 +-
 meta/conf/machine/include/tune-thumb.inc           |   32 --
 meta/conf/multilib.conf                            |    4 +-
 meta/recipes-core/images/core-image-minimal.bb     |    2 +-
 meta/recipes-core/images/self-hosted-image.bb      |    2 +-
 meta/recipes-core/tasks/task-core-tools-debug.bb   |   26 ++
 ...sk-core-tools.bb => task-core-tools-profile.bb} |   81 +---
 .../recipes-core/tasks/task-core-tools-testapps.bb |   46 ++
 ...rch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch |   29 --
 ...fd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch |   33 --
 .../uclibc-0.9.32/detect-bx-availibility.patch     |   75 ----
 .../uclibc/uclibc-0.9.32/epoll-asm-fix.patch       |   25 --
 .../uclibc/uclibc-0.9.32/include-arm-asm.h.patch   |   65 ---
 .../uclibc/uclibc-0.9.32/mount.h-update.patch      |   85 ----
 .../uclibc-0.9.32/remove-eabi-oabi-selection.patch |   91 ----
 .../uclibc-0.9.32/remove-sub-arch-variants.patch   |  215 ---------
 .../uclibc/uclibc-0.9.32/rtld_no.patch             |  215 ---------
 .../uclibc/uclibc-0.9.32/select-force-thumb.patch  |  172 --------
 .../uclibc/uclibc-0.9.32/sync_file_range2.patch    |   47 --
 .../uclibc-0.9.32/transform-eabi-oabi-choice.patch |   71 ---
 .../uclibc-0.9.32/uclibc-arm-ftruncate64.patch     |   13 -
 .../uclibc-0.9.32/uclibc_scheduler_update.patch    |  455 --------------------
 ...rr-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch |   32 ++
 ...fstat-Use-64bit-version-of-syscall-if-ava.patch |  177 ++++++++
 .../argp-headers.patch                             |    2 +
 .../argp-support.patch                             |    3 +
 .../compile-arm-fork-with-O2.patch                 |    2 +-
 .../uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch    |   25 ++
 meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch  |   37 ++
 ...so_use_arm_dl_linux_resolve_in_thumb_mode.patch |    6 +
 .../libc_symbols_include_bits_uclibc_config.patch  |   19 +
 .../mips/uClibc.machine                            |    0
 .../orign_path.patch                               |   94 ++--
 .../powerpc_copysignl.patch                        |    6 +
 .../remove_attribute_optimize_Os.patch             |   17 +-
 .../{uclibc-0.9.32 => uclibc-0.9.33}/uClibc.distro |    8 +-
 .../uClibc.machine                                 |    0
 .../uclibc-execvpe.patch                           |    3 +
 .../uclibc_enable_log2_test.patch                  |    5 +
 meta/recipes-core/uclibc/uclibc-config.inc         |    4 +-
 meta/recipes-core/uclibc/uclibc-git/uClibc.distro  |    5 +
 ...-initial_0.9.32.bb => uclibc-initial_0.9.33.bb} |    0
 meta/recipes-core/uclibc/uclibc.inc                |    1 -
 .../uclibc/{uclibc_0.9.32.bb => uclibc_0.9.33.bb}  |   26 +-
 meta/recipes-core/zlib/files/Makefile.am           |    9 -
 meta/recipes-core/zlib/files/configure.ac          |   48 --
 .../zlib/zlib-1.2.5/fix.inverted.LFS.logic.patch   |   20 -
 meta/recipes-core/zlib/zlib_1.2.5.bb               |   41 --
 meta/recipes-core/zlib/zlib_1.2.6.bb               |   26 ++
 meta/recipes-devtools/gcc/gcc-cross.inc            |    6 +-
 meta/recipes-devtools/pseudo/pseudo/opendir.patch  |   92 ++++
 meta/recipes-devtools/pseudo/pseudo/renameat.patch |  227 ++++++++++
 meta/recipes-devtools/pseudo/pseudo_1.2.bb         |    6 +-
 .../python/python/host_include_contamination.patch |   27 ++
 meta/recipes-devtools/python/python_2.7.2.bb       |    3 +-
 meta/recipes-extended/images/core-image-basic.bb   |    2 +-
 meta/recipes-extended/images/core-image-lsb-dev.bb |    2 +-
 meta/recipes-extended/images/core-image-lsb-sdk.bb |    2 +-
 meta/recipes-extended/images/core-image-lsb.bb     |    2 +-
 meta/recipes-gnome/gnome/gconf_3.2.3.bb            |    9 +-
 .../drm/libdrm/GNU_SOURCE_definition.patch         |   30 ++
 meta/recipes-graphics/drm/libdrm_2.4.30.bb         |    6 +-
 meta/recipes-graphics/images/core-image-clutter.bb |    2 +-
 .../images/core-image-gtk-directfb.bb              |    2 +-
 ...quest-as-substitute-for-GetReq-GetReqExtr.patch |  137 ++++++
 meta/recipes-graphics/xorg-lib/libx11_1.4.4.bb     |    3 +
 meta/recipes-kernel/kmod/kmod-native_git.bb        |   14 +
 meta/recipes-kernel/kmod/kmod.inc                  |   31 ++
 meta/recipes-kernel/kmod/kmod/depmod-search.conf   |    6 +
 meta/recipes-kernel/kmod/kmod_git.bb               |   62 +++
 .../module-init-tools/files/disable_man.patch      |   25 --
 .../files/grab_module_memset.patch                 |   21 -
 .../files/modutils_extension.patch                 |   25 --
 .../module-init-tools-cross_3.16.bb                |   10 -
 .../module-init-tools/module-init-tools.inc        |   24 -
 .../module-init-tools/module-init-tools_3.16.bb    |   42 --
 .../files/PD.patch                                 |    0
 .../files/modutils.sh                              |    0
 .../modutils-initscripts.bb                        |    0
 meta/recipes-qt/images/qt4e-demo-image.bb          |    2 +-
 .../recipes-support/consolekit/consolekit_0.4.5.bb |   11 +-
 scripts/runqemu-internal                           |   13 +-
 89 files changed, 1257 insertions(+), 2079 deletions(-)
 delete mode 100644 meta/conf/machine/include/tune-thumb.inc
 create mode 100644 meta/recipes-core/tasks/task-core-tools-debug.bb
 rename meta/recipes-core/tasks/{task-core-tools.bb => task-core-tools-profile.bb} (48%)
 create mode 100644 meta/recipes-core/tasks/task-core-tools-testapps.bb
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/detect-bx-availibility.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/epoll-asm-fix.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/include-arm-asm.h.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/mount.h-update.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/remove-eabi-oabi-selection.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/rtld_no.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/select-force-thumb.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/sync_file_range2.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/transform-eabi-oabi-choice.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-arm-ftruncate64.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_scheduler_update.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/argp-headers.patch (99%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/argp-support.patch (99%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/compile-arm-fork-with-O2.patch (97%)
 create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch (86%)
 create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/libc_symbols_include_bits_uclibc_config.patch
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/mips/uClibc.machine (100%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/orign_path.patch (64%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/powerpc_copysignl.patch (96%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/remove_attribute_optimize_Os.patch (93%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/uClibc.distro (96%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/uClibc.machine (100%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/uclibc-execvpe.patch (99%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/uclibc_enable_log2_test.patch (81%)
 rename meta/recipes-core/uclibc/{uclibc-initial_0.9.32.bb => uclibc-initial_0.9.33.bb} (100%)
 rename meta/recipes-core/uclibc/{uclibc_0.9.32.bb => uclibc_0.9.33.bb} (45%)
 delete mode 100644 meta/recipes-core/zlib/files/Makefile.am
 delete mode 100644 meta/recipes-core/zlib/files/configure.ac
 delete mode 100644 meta/recipes-core/zlib/zlib-1.2.5/fix.inverted.LFS.logic.patch
 delete mode 100644 meta/recipes-core/zlib/zlib_1.2.5.bb
 create mode 100644 meta/recipes-core/zlib/zlib_1.2.6.bb
 create mode 100644 meta/recipes-devtools/pseudo/pseudo/opendir.patch
 create mode 100644 meta/recipes-devtools/pseudo/pseudo/renameat.patch
 create mode 100644 meta/recipes-devtools/python/python/host_include_contamination.patch
 create mode 100644 meta/recipes-graphics/drm/libdrm/GNU_SOURCE_definition.patch
 create mode 100644 meta/recipes-graphics/xorg-lib/libx11-1.4.4/0001-Add-_XGetRequest-as-substitute-for-GetReq-GetReqExtr.patch
 create mode 100644 meta/recipes-kernel/kmod/kmod-native_git.bb
 create mode 100644 meta/recipes-kernel/kmod/kmod.inc
 create mode 100644 meta/recipes-kernel/kmod/kmod/depmod-search.conf
 create mode 100644 meta/recipes-kernel/kmod/kmod_git.bb
 delete mode 100644 meta/recipes-kernel/module-init-tools/files/disable_man.patch
 delete mode 100644 meta/recipes-kernel/module-init-tools/files/grab_module_memset.patch
 delete mode 100644 meta/recipes-kernel/module-init-tools/files/modutils_extension.patch
 delete mode 100644 meta/recipes-kernel/module-init-tools/module-init-tools-cross_3.16.bb
 delete mode 100644 meta/recipes-kernel/module-init-tools/module-init-tools.inc
 delete mode 100644 meta/recipes-kernel/module-init-tools/module-init-tools_3.16.bb
 rename meta/recipes-kernel/{module-init-tools => modutils-initscripts}/files/PD.patch (100%)
 rename meta/recipes-kernel/{module-init-tools => modutils-initscripts}/files/modutils.sh (100%)
 rename meta/recipes-kernel/{module-init-tools => modutils-initscripts}/modutils-initscripts.bb (100%)

-- 
1.7.5.4




^ permalink raw reply	[flat|nested] 70+ messages in thread

* [PATCH 01/20] task-core-tools: Divide it into 3 recipes
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-06  6:40 ` [PATCH 02/20] Enable options needed for ltp to compile Khem Raj
                   ` (19 subsequent siblings)
  20 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

task-core-tools-debug, task-core-tools-profile, task-core-tools-testapps
otherwise if we choose one through PACKAGE_GROUPS all packages
are built since they are in same recipe.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../conf/distro/include/distro_tracking_fields.inc |   26 +++++--
 meta/conf/multilib.conf                            |    4 +-
 meta/recipes-core/tasks/task-core-tools-debug.bb   |   26 ++++++
 ...sk-core-tools.bb => task-core-tools-profile.bb} |   81 ++++++--------------
 .../recipes-core/tasks/task-core-tools-testapps.bb |   46 +++++++++++
 5 files changed, 119 insertions(+), 64 deletions(-)
 create mode 100644 meta/recipes-core/tasks/task-core-tools-debug.bb
 rename meta/recipes-core/tasks/{task-core-tools.bb => task-core-tools-profile.bb} (48%)
 create mode 100644 meta/recipes-core/tasks/task-core-tools-testapps.bb

diff --git a/meta/conf/distro/include/distro_tracking_fields.inc b/meta/conf/distro/include/distro_tracking_fields.inc
index 42f7e65..09b5bfc 100644
--- a/meta/conf/distro/include/distro_tracking_fields.inc
+++ b/meta/conf/distro/include/distro_tracking_fields.inc
@@ -2467,12 +2467,26 @@ RECIPE_LATEST_RELEASE_DATE_pn-task-core-nfs="n/a"
 RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-task-core-nfs="n/a"
 RECIPE_MAINTAINER_pn-task-core-nfs = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
-RECIPE_STATUS_pn-task-core-tools="green"
-RECIPE_LATEST_VERSION_pn-task-core-tools="1.0"
-RECIPE_NO_OF_PATCHES_pn-task-core-tools="0"
-RECIPE_LATEST_RELEASE_DATE_pn-task-core-tools="n/a"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-task-core-tools="n/a"
-RECIPE_MAINTAINER_pn-task-core-tools = "Dongxiao Xu <dongxiao.xu@intel.com>"
+RECIPE_STATUS_pn-task-core-tools-debug="green"
+RECIPE_LATEST_VERSION_pn-task-core-tools-debug="1.0"
+RECIPE_NO_OF_PATCHES_pn-task-core-tools-debug="0"
+RECIPE_LATEST_RELEASE_DATE_pn-task-core-tools-debug="n/a"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-task-core-tools-debug="n/a"
+RECIPE_MAINTAINER_pn-task-core-tools-profile = "Dongxiao Xu <dongxiao.xu@intel.com>"
+
+RECIPE_STATUS_pn-task-core-tools-profile="green"
+RECIPE_LATEST_VERSION_pn-task-core-tools-profile="1.0"
+RECIPE_NO_OF_PATCHES_pn-task-core-tools-profile="0"
+RECIPE_LATEST_RELEASE_DATE_pn-task-core-tools-profile="n/a"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-task-core-tools-profile="n/a"
+RECIPE_MAINTAINER_pn-task-core-tools-profile = "Dongxiao Xu <dongxiao.xu@intel.com>"
+
+RECIPE_STATUS_pn-task-core-tools-testapps="green"
+RECIPE_LATEST_VERSION_pn-task-core-tools-testapps="1.0"
+RECIPE_NO_OF_PATCHES_pn-task-core-tools-testapps="0"
+RECIPE_LATEST_RELEASE_DATE_pn-task-core-tools-testapps="n/a"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-task-core-tools-testapps="n/a"
+RECIPE_MAINTAINER_pn-task-core-tools-testapps = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-gst-meta-base="green"
 DISTRO_PN_ALIAS_pn-gst-meta-base = "Meego=gstreamer Fedora=gstreamer OpenSuSE=gstreamer Ubuntu=gstreamer0.10 Mandriva=gstreamer0.10 Debian=gstreamer0.10"
diff --git a/meta/conf/multilib.conf b/meta/conf/multilib.conf
index 9554519..d366fd3 100644
--- a/meta/conf/multilib.conf
+++ b/meta/conf/multilib.conf
@@ -393,7 +393,9 @@ BBCLASSEXTEND_append_pn-task-core-lsb = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-task-core-nfs = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-task-core-ssh-dropbear = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-task-core-ssh-openssh = " ${MULTILIBS}"
-BBCLASSEXTEND_append_pn-task-core-tools = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-task-core-tools-debug = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-task-core-tools-profile = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-task-core-tools-testapps = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-task-core-x11 = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-task-core-x11-sato = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-tasks = " ${MULTILIBS}"
diff --git a/meta/recipes-core/tasks/task-core-tools-debug.bb b/meta/recipes-core/tasks/task-core-tools-debug.bb
new file mode 100644
index 0000000..3c92f3f
--- /dev/null
+++ b/meta/recipes-core/tasks/task-core-tools-debug.bb
@@ -0,0 +1,26 @@
+#
+# Copyright (C) 2008 OpenedHand Ltd.
+#
+
+DESCRIPTION = "Debug tools tasks for OE-Core"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
+                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+PACKAGES = "\
+    ${PN} \
+    ${PN}-dbg \
+    ${PN}-dev \
+    "
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+ALLOW_EMPTY = "1"
+
+RDEPENDS_${PN} = "\
+    gdb \
+    gdbserver \
+    tcf-agent \
+    rsync \
+    strace \
+    "
diff --git a/meta/recipes-core/tasks/task-core-tools.bb b/meta/recipes-core/tasks/task-core-tools-profile.bb
similarity index 48%
rename from meta/recipes-core/tasks/task-core-tools.bb
rename to meta/recipes-core/tasks/task-core-tools-profile.bb
index 1a42f15..254d3f5 100644
--- a/meta/recipes-core/tasks/task-core-tools.bb
+++ b/meta/recipes-core/tasks/task-core-tools-profile.bb
@@ -2,42 +2,30 @@
 # Copyright (C) 2008 OpenedHand Ltd.
 #
 
-DESCRIPTION = "Tools tasks for OE-Core"
+DESCRIPTION = "Profile tools tasks for OE-Core"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
                     file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-PR = "r15"
 
 PACKAGES = "\
-    task-core-tools-debug \
-    task-core-tools-debug-dbg \
-    task-core-tools-debug-dev \
-    task-core-tools-profile \
-    task-core-tools-profile-dbg \
-    task-core-tools-profile-dev \
-    task-core-tools-testapps \
-    task-core-tools-testapps-dbg \
-    task-core-tools-testapps-dev \
+    ${PN} \
+    ${PN}-dbg \
+    ${PN}-dev \
     "
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 ALLOW_EMPTY = "1"
 
-# kexec-tools doesn't work on Mips
-KEXECTOOLS ?= "kexec"
-KEXECTOOLS_mips ?= ""
-KEXECTOOLS_mipsel ?= ""
-KEXECTOOLS_powerpc ?= ""
-
-RDEPENDS_task-core-tools-debug = "\
-    gdb \
-    gdbserver \
-    tcf-agent \
-    rsync \
-    strace"
+RRECOMMENDS_${PN} = "\
+    perf \
+    trace-cmd \
+    kernel-module-oprofile \
+    blktrace \
+    sysprof \
+    "
 
-RDEPENDS_task-core-tools-profile = "\
+PROFILETOOLS = "\
     oprofile \
     oprofileui-server \
     powertop \
@@ -45,14 +33,6 @@ RDEPENDS_task-core-tools-profile = "\
     lttng-control \
     lttng-viewer"
 
-RRECOMMENDS_task-core-tools-profile = "\
-    perf \
-    trace-cmd \
-    kernel-module-oprofile \
-    blktrace \
-    sysprof \
-    "
-
 # systemtap needs elfutils which is not fully buildable on uclibc
 # hence we exclude it from uclibc based builds
 SYSTEMTAP = "systemtap"
@@ -66,6 +46,13 @@ SYSTEMTAP_libc-uclibc = ""
 
 LTTNGUST = "lttng-ust"
 LTTNGUST_libc-uclibc = ""
+LTTNGUST_mips = ""
+
+# valgrind does not work on mips
+
+VALGRIND = "valgrind"
+VALGRIND_libc-uclibc = ""
+VALGRIND_mips = ""
 
 #    exmap-console
 #    exmap-server
@@ -74,29 +61,9 @@ LTTNGUST_libc-uclibc = ""
 # qemux86/qemux86-64/qemuppc/qemuarm/emenlow/atom-pc since upstream liburcu
 # (which is required by lttng-ust) may not build on other platforms, like
 # MIPS.
-RDEPENDS_task-core-tools-profile_append_qemux86 = " valgrind lttng-ust ${SYSTEMTAP}"
-RDEPENDS_task-core-tools-profile_append_qemux86-64 = " ${LTTNGUST} ${SYSTEMTAP}"
-RDEPENDS_task-core-tools-profile_append_qemuppc = " ${LTTNGUST} ${SYSTEMTAP}"
-RDEPENDS_task-core-tools-profile_append_qemuarm = " ${LTTNGUST} ${SYSTEMTAP}"
-
-RDEPENDS_task-core-tools-testapps = "\
-    blktool \
-    fstests \
-    tslib-calibrate \
-    tslib-tests \
-    lrzsz \
-    ${KEXECTOOLS} \
-    alsa-utils-amixer \
-    alsa-utils-aplay \
-    owl-video \
-    gst-meta-video \
-    gst-meta-audio \
-    mesa-demos \
-    x11perf \
-    xrestop \
-    xwininfo \
-    xprop \
-    xvideo-tests \
-    clutter-box2d \
-    ltp \
+RDEPENDS_${PN} = "\
+    ${PROFILETOOLS} \
+    ${LTTNGUST} \
+    ${SYSTEMTAP} \
+    ${VALGRIND} \
     "
diff --git a/meta/recipes-core/tasks/task-core-tools-testapps.bb b/meta/recipes-core/tasks/task-core-tools-testapps.bb
new file mode 100644
index 0000000..b5847f8
--- /dev/null
+++ b/meta/recipes-core/tasks/task-core-tools-testapps.bb
@@ -0,0 +1,46 @@
+#
+# Copyright (C) 2008 OpenedHand Ltd.
+#
+
+DESCRIPTION = "Test apps task for OE-Core"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
+                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+PACKAGES = "\
+    ${PN} \
+    ${PN}-dbg \
+    ${PN}-dev \
+    "
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+ALLOW_EMPTY = "1"
+
+# kexec-tools doesn't work on Mips
+KEXECTOOLS ?= "kexec"
+KEXECTOOLS_mips ?= ""
+KEXECTOOLS_mipsel ?= ""
+KEXECTOOLS_powerpc ?= ""
+
+RDEPENDS_${PN} = "\
+    blktool \
+    fstests \
+    tslib-calibrate \
+    tslib-tests \
+    lrzsz \
+    ${KEXECTOOLS} \
+    alsa-utils-amixer \
+    alsa-utils-aplay \
+    owl-video \
+    gst-meta-video \
+    gst-meta-audio \
+    mesa-demos \
+    x11perf \
+    xrestop \
+    xwininfo \
+    xprop \
+    xvideo-tests \
+    clutter-box2d \
+    ltp \
+    "
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 02/20] Enable options needed for ltp to compile
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
  2012-02-06  6:40 ` [PATCH 01/20] task-core-tools: Divide it into 3 recipes Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-06  6:40 ` [PATCH 03/20] arm/tune: Correct the logic which added thumb-interwork to OVERRIDES Khem Raj
                   ` (18 subsequent siblings)
  20 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-core/uclibc/uclibc-git/uClibc.distro |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/meta/recipes-core/uclibc/uclibc-git/uClibc.distro b/meta/recipes-core/uclibc/uclibc-git/uClibc.distro
index 3948d1a..c33bf8e 100644
--- a/meta/recipes-core/uclibc/uclibc-git/uClibc.distro
+++ b/meta/recipes-core/uclibc/uclibc-git/uClibc.distro
@@ -183,3 +183,8 @@ UCLIBC_HAS_FLOATS=y
 UCLIBC_HAS_UTMPX=y
 UCLIBC_LINUX_MODULE_26=y
 UCLIBC_HAS_RESOLVER_SUPPORT=y
+# needed for LTP
+UCLIBC_SUSV4_LEGACY=y
+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+DO_XSI_MATH=y
+UCLIBC_SV4_DEPRECATED=y
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 03/20] arm/tune: Correct the logic which added thumb-interwork to OVERRIDES
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
  2012-02-06  6:40 ` [PATCH 01/20] task-core-tools: Divide it into 3 recipes Khem Raj
  2012-02-06  6:40 ` [PATCH 02/20] Enable options needed for ltp to compile Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-06  6:40 ` [PATCH 04/20] tunearch/arm: Differentiate between thumb code generation and thumb capability Khem Raj
                   ` (17 subsequent siblings)
  20 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

Add no-thumb-interwork to TUNE_FEATURES for angstrom

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../conf/machine/include/arm/feature-arm-thumb.inc |    2 +-
 meta/conf/machine/include/tune-strongarm1100.inc   |    4 +---
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc b/meta/conf/machine/include/arm/feature-arm-thumb.inc
index b7d6061..da29102 100644
--- a/meta/conf/machine/include/arm/feature-arm-thumb.inc
+++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
@@ -21,6 +21,6 @@ ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv7", "thumb" ],
 # turn this off - the actual cost is very small.
 TUNEVALID[no-thumb-interwork] = "Disable mixing of thumb and ARM functions"
 TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "no-thumb-interwork", "-mno-thumb-interwork", "-mthumb-interwork", d)}"
-OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "no-thumb-interwork", ":thumb-interwork", "", d)}"
+OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "no-thumb-interwork", "", ":thumb-interwork", d)}"
 
 TARGET_CC_KERNEL_ARCH += "-mno-thumb-interwork -marm"
diff --git a/meta/conf/machine/include/tune-strongarm1100.inc b/meta/conf/machine/include/tune-strongarm1100.inc
index 66bab8e..8bd5be7 100644
--- a/meta/conf/machine/include/tune-strongarm1100.inc
+++ b/meta/conf/machine/include/tune-strongarm1100.inc
@@ -6,7 +6,5 @@ TUNEVALID[strongarm] = "Enable Strongarm 1100 series processor optimizations"
 TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "strongarm", "-mtune=strongarm1100", "", d)}"
 
 AVAILTUNES += "strongarm"
-TUNE_FEATURES_tune-strongarm = "${TUNE_FEATURES_tune-armv4} strongarm"
+TUNE_FEATURES_tune-strongarm = "${TUNE_FEATURES_tune-armv4} strongarm no-thumb-interwork"
 PACKAGE_EXTRA_ARCHS_tune-strongarm = "${PACKAGE_EXTRA_ARCHS_tune-armv4}"
-
-
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 04/20] tunearch/arm: Differentiate between thumb code generation and thumb capability
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (2 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 03/20] arm/tune: Correct the logic which added thumb-interwork to OVERRIDES Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-06  6:40 ` [PATCH 05/20] tune-thumb.inc: Delete Khem Raj
                   ` (16 subsequent siblings)
  20 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

We have diverged a bit from oe.dev where thumb in OVERRIDES meant
the code was being compiled in thumb mode. With tunearch this got
a different meaning where it meant that if a core is capable of
generating thumb code them we will have this in overrides. With this
patch I am trying to address the problem where 'thumbmode' in TUNE_FEATURES
means that code will be compiled in thumb mode by default and
'thumb' is to denote that core is capable of thumb instruction set.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../conf/machine/include/arm/feature-arm-thumb.inc |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc b/meta/conf/machine/include/arm/feature-arm-thumb.inc
index da29102..68a8e73 100644
--- a/meta/conf/machine/include/arm/feature-arm-thumb.inc
+++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
@@ -4,10 +4,19 @@
 # encoded RISC sub-set. Thumb code is smaller (maybe 70% of the ARM size)
 # but requires more instructions (140% for 70% smaller code) so may be
 # slower.
-TUNEVALID[thumb] = "Use thumb instructions instead of ARM"
-ARM_THUMB_M_OPT = "${@['-marm', '-mthumb'][d.getVar('ARM_INSTRUCTION_SET', 1) == 'thumb']}"
-TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb", "${ARM_THUMB_M_OPT}", "", d)}"
-OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", ":thumb", "", d)}"
+
+# 'thumbmode' in TUNE_FEATURES means default ISA for code generation is thumb
+# 'thumb' in TUNE_FEATURES means the core supports thumb ISA but code
+# generation can happen in arm or thumb
+# having 'thumbmode' would imply 'thumb' naturally
+
+TUNEVALID[thumbmode] = "Use THUMB instruction set instead of ARM"
+ARM_INSTRUCTION_SET ?= "arm"
+AVAILTUNES += "${@bb.utils.contains("ARM_INSTRUCTION_SET", "thumb", "thumbmode", "", d)}"
+TUNE_CCARGS += "${@bb.utils.contains("ARM_INSTRUCTION_SET", "thumb", "-mthumb", "-marm", d)}"
+OVERRIDES .= "${@bb.utils.contains("ARM_INSTRUCTION_SET", "thumb", ":thumb", "", d)}"
+
+TUNEVALID[thumb] = "THUMB instruction set capable ARM core"
 
 # Note armv7 will hit on armv7a as well
 ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv4", "thumb" ], "t", "", d)}"
@@ -20,6 +29,7 @@ ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv7", "thumb" ],
 # arm system and vice versa. It is strongly recommended that DISTROs not
 # turn this off - the actual cost is very small.
 TUNEVALID[no-thumb-interwork] = "Disable mixing of thumb and ARM functions"
+AVAILTUNES += "${@bb.utils.contains("TUNE_FEATURES", "no-thumb-interwork", "no-thumb-interwork", "thumb-interwork", d)}"
 TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "no-thumb-interwork", "-mno-thumb-interwork", "-mthumb-interwork", d)}"
 OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "no-thumb-interwork", "", ":thumb-interwork", d)}"
 
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 05/20] tune-thumb.inc: Delete
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (3 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 04/20] tunearch/arm: Differentiate between thumb code generation and thumb capability Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-06  6:40 ` [PATCH 06/20] uclibc: Get the thumb features from tune flags Khem Raj
                   ` (15 subsequent siblings)
  20 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

The same functionality is provided by
machine/include/arm/feature-arm-thumb.inc
Setting ARM_INSTRUCTION_SET = "thumb"
in distro configs should be enough

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/conf/machine/include/tune-thumb.inc |   32 ------------------------------
 1 files changed, 0 insertions(+), 32 deletions(-)
 delete mode 100644 meta/conf/machine/include/tune-thumb.inc

diff --git a/meta/conf/machine/include/tune-thumb.inc b/meta/conf/machine/include/tune-thumb.inc
deleted file mode 100644
index 214e3b6..0000000
--- a/meta/conf/machine/include/tune-thumb.inc
+++ /dev/null
@@ -1,32 +0,0 @@
-#tune file for thumb instructions
-
-ARM_INSTRUCTION_SET ?= "arm"
-# "arm" "thumb"
-#    The instruction set the compiler should use when generating application
-#    code.  The kernel is always compiled with arm code at present.  arm code
-#    is the original 32 bit ARM instruction set, thumb code is the 16 bit
-#    encoded RISC sub-set.  Thumb code is smaller (maybe 70% of the ARM size)
-#    but requires more instructions (140% for 70% smaller code) so may be
-#    slower.
-
-THUMB_INTERWORK ?= "yes"
-# "yes" "no"
-#    Whether to compile with code to allow interworking between the two
-#    instruction sets.  This allows thumb code to be executed on a primarily
-#    arm system and vice versa.  It is strongly recommended that DISTROs not
-#    turn this off - the actual cost is very small.
-
-OVERRIDE_THUMB = "${@['', ':thumb'][d.getVar('ARM_INSTRUCTION_SET', 1) == 'thumb']}"
-OVERRIDE_INTERWORK = "${@['', ':thumb-interwork'][d.getVar('THUMB_INTERWORK', 1) == 'yes']}"
-OVERRIDES .= "${OVERRIDE_THUMB}${OVERRIDE_INTERWORK}"
-
-#    Compiler and linker options for application code and kernel code.  These
-#    options ensure that the compiler has the correct settings for the selected
-#    instruction set and interworking.
-ARM_INTERWORK_M_OPT = "${@['-mno-thumb-interwork', '-mthumb-interwork'][d.getVar('THUMB_INTERWORK', 1) == 'yes']}"
-ARM_THUMB_M_OPT = "${@['-marm', '-mthumb'][d.getVar('ARM_INSTRUCTION_SET', 1) == 'thumb']}"
-
-#
-TUNE_CCARGS +=  "${ARM_INTERWORK_M_OPT} ${ARM_THUMB_M_OPT}"
-TARGET_CC_KERNEL_ARCH  += "-mno-thumb-interwork -marm"
-
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 06/20] uclibc: Get the thumb features from tune flags
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (4 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 05/20] tune-thumb.inc: Delete Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-06  6:40 ` [PATCH 07/20] kmod: Add recipes Khem Raj
                   ` (14 subsequent siblings)
  20 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-core/uclibc/uclibc-config.inc |    4 +++-
 meta/recipes-core/uclibc/uclibc.inc        |    1 -
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-core/uclibc/uclibc-config.inc b/meta/recipes-core/uclibc/uclibc-config.inc
index 8bb0948..f32e6ee 100644
--- a/meta/recipes-core/uclibc/uclibc-config.inc
+++ b/meta/recipes-core/uclibc/uclibc-config.inc
@@ -95,15 +95,17 @@ def uclibc_cfg(feature, features, tokens, cnf, rem):
 def features_to_uclibc_settings(d):
 	cnf, rem = ([], [])
 	distro_features = d.getVar('DISTRO_FEATURES', True).split()
+	tune_features = d.getVar('AVAILTUNES', True).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('thumb-interwork', distro_features,'USE_BX', cnf, rem)
 	uclibc_cfg('xattr',     distro_features, 'UCLIBC_HAS_XATTR', cnf, rem)
 	uclibc_cfg('ssp',       distro_features, 'UCLIBC_HAS_SSP', cnf, rem)
 	uclibc_cfg('argp',       distro_features, 'UCLIBC_HAS_ARGP', cnf, rem)
 	uclibc_cfg('libc-posix-clang-wchar',  distro_features,'UCLIBC_HAS_WCHAR', cnf, rem)
+	uclibc_cfg('thumbmode', tune_features,'COMPILE_IN_THUMB_MODE', cnf, rem)
+	uclibc_cfg('thumb-interwork', tune_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/meta/recipes-core/uclibc/uclibc.inc b/meta/recipes-core/uclibc/uclibc.inc
index 5e9e2e9..b797d3f 100644
--- a/meta/recipes-core/uclibc/uclibc.inc
+++ b/meta/recipes-core/uclibc/uclibc.inc
@@ -124,7 +124,6 @@ configmangle = '/^KERNEL_HEADERS/d; \
                 /^SHARED_LIB_LOADER_PREFIX/d; \
                 /^UCLIBC_EXTRA_CFLAGS/d; \
                 s,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g; \
-                ${@["","s,.*COMPILE_IN_THUMB_MODE.*,COMPILE_IN_THUMB_MODE=y,;"][d.getVar("ARM_INSTRUCTION_SET", 1) != "arm"]} \
                 ${@["","s,.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=y,;"][d.getVar("USE_NLS", 1) == "yes"]} \
                 ${@["","s,.*LDSO_GNU_HASH_SUPPORT.*,# LDSO_GNU_HASH_SUPPORT is not set,;"][d.getVar("TARGET_ARCH", 1) in ['mips', 'mipsel', 'mips64', 'mips64el', 'avr32']]} \
                 /^CROSS/d; \
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 07/20] kmod: Add recipes
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (5 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 06/20] uclibc: Get the thumb features from tune flags Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-05-03 21:05   ` Darren Hart
  2012-02-06  6:40 ` [PATCH 08/20] module-init-tools: Delete Khem Raj
                   ` (13 subsequent siblings)
  20 siblings, 1 reply; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

kmod is replacement for module-init-tools

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-kernel/kmod/kmod-native_git.bb      |   14 +++++
 meta/recipes-kernel/kmod/kmod.inc                |   31 +++++++++++
 meta/recipes-kernel/kmod/kmod/depmod-search.conf |    6 ++
 meta/recipes-kernel/kmod/kmod_git.bb             |   62 ++++++++++++++++++++++
 4 files changed, 113 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-kernel/kmod/kmod-native_git.bb
 create mode 100644 meta/recipes-kernel/kmod/kmod.inc
 create mode 100644 meta/recipes-kernel/kmod/kmod/depmod-search.conf
 create mode 100644 meta/recipes-kernel/kmod/kmod_git.bb

diff --git a/meta/recipes-kernel/kmod/kmod-native_git.bb b/meta/recipes-kernel/kmod/kmod-native_git.bb
new file mode 100644
index 0000000..96de8b8
--- /dev/null
+++ b/meta/recipes-kernel/kmod/kmod-native_git.bb
@@ -0,0 +1,14 @@
+# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+require kmod.inc
+inherit native
+
+PR = "${INC_PR}.0"
+
+do_install_append (){
+	for tool in depmod insmod lsmod modinfo modprobe rmmod
+	do
+		ln -s kmod ${D}${bindir}/$tool
+	done
+}
diff --git a/meta/recipes-kernel/kmod/kmod.inc b/meta/recipes-kernel/kmod/kmod.inc
new file mode 100644
index 0000000..ea0247e
--- /dev/null
+++ b/meta/recipes-kernel/kmod/kmod.inc
@@ -0,0 +1,31 @@
+# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "kmod is a set of tools to handle common tasks with Linux kernel modules like \
+insert, remove, list, check properties, resolve dependencies and aliases."
+HOMEPAGE = "http://packages.profusion.mobi/kmod/"
+LICENSE = "GPL-2.0+ & LGPL-2.1+"
+LICENSE_libkmod = "LGPL-2.1+"
+SECTION = "base"
+PV = "4+gitr${SRCREV}"
+INC_PR = "r0"
+DEPENDS += "gnome-doc-utils-native"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+                    file://libkmod/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+                   "
+inherit autotools
+
+SRC_URI = "git://git.profusion.mobi/kmod.git;protocol=git;branch=master \
+           file://depmod-search.conf \
+          "
+
+SRCREV = "a2c7d3e8b058a2013aa8da5986d1d11fa13d6fd7"
+
+S = "${WORKDIR}/git"
+
+EXTRA_AUTORECONF += "--install --symlink"
+EXTRA_OECONF +="--enable-debug --enable-logging --enable-tools"
+
+do_configure_prepend () {
+        gtkdocize --docdir ${S}/libkmod/docs || touch ${S}/libkmod/docs/gtk-doc.make
+}
diff --git a/meta/recipes-kernel/kmod/kmod/depmod-search.conf b/meta/recipes-kernel/kmod/kmod/depmod-search.conf
new file mode 100644
index 0000000..527c0bb
--- /dev/null
+++ b/meta/recipes-kernel/kmod/kmod/depmod-search.conf
@@ -0,0 +1,6 @@
+#
+# /etc/depmod.d/depmod.conf
+#
+
+search updates extramodules built-in
+
diff --git a/meta/recipes-kernel/kmod/kmod_git.bb b/meta/recipes-kernel/kmod/kmod_git.bb
new file mode 100644
index 0000000..eaab47b
--- /dev/null
+++ b/meta/recipes-kernel/kmod/kmod_git.bb
@@ -0,0 +1,62 @@
+# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+require kmod.inc
+
+PR = "${INC_PR}.0"
+
+PROVIDES_${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
+RPROVIDES_${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
+CONFLICTS_${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
+
+# autotools set prefix to /usr, however we want them in /bin and /sbin
+bindir = "${base_bindir}"
+sbindir = "${base_sbindir}"
+libdir = "${base_libdir}"
+
+SRC_URI += " \
+            file://depmod-search.conf \
+           "
+
+do_install_append () {
+        install -dm755 ${D}${base_bindir}
+        install -dm755 ${D}${base_sbindir}
+        # add symlinks to kmod
+        ln -s ..${base_bindir}/kmod ${D}${base_bindir}/lsmod.kmod
+        for tool in {ins,rm,dep}mod mod{info,probe}; do
+                ln -s ..${base_bindir}/kmod ${D}${base_sbindir}/${tool}.kmod
+        done
+        # configuration directories
+        install -dm755 ${D}${base_libdir}/depmod.d
+        install -dm755 ${D}${base_libdir}/modprobe.d
+        install -dm755 ${D}${sysconfdir}/depmod.d
+        install -dm755 ${D}${sysconfdir}/modprobe.d
+
+        # install depmod.d file for search/ dir
+        install -Dm644 "${WORKDIR}/depmod-search.conf" "${D}${base_libdir}/depmod.d/search.conf"
+}
+
+pkg_postinst_kmod() {
+        for f in sbin/insmod sbin/modprobe sbin/rmmod sbin/modinfo; do
+                bn=`basename $f`
+                update-alternatives --install /$f $bn /$f.kmod 60
+        done
+        update-alternatives --install /bin/lsmod bin-lsmod /bin/lsmod.kmod 60
+        update-alternatives --install /sbin/lsmod lsmod /bin/lsmod.kmod 60
+        update-alternatives --install /sbin/depmod depmod /sbin/depmod.kmod 60
+}
+
+pkg_prerm_kmod() {
+        for f in sbin/insmod sbin/modprobe sbin/rmmod sbin/modinfo; do
+                bn=`basename $f`
+                update-alternatives --remove $bn /$f.kmod
+        done
+        update-alternatives --remove bin-lsmod /bin/lsmod.kmod
+        update-alternatives --remove lsmod /bin/lsmod.kmod
+        update-alternatives --remove depmod /sbin/depmod.kmod
+}
+
+PACKAGES =+ "libkmod"
+
+FILES_libkmod = "${base_libdir}/libkmod*${SOLIBS}"
+FILES_${PN} += "${base_libdir}/depmod.d ${base_libdir}/modprobe.d"
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 08/20] module-init-tools: Delete
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (6 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 07/20] kmod: Add recipes Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-05-03 21:07   ` Darren Hart
  2012-02-06  6:40 ` [PATCH 09/20] image.bbclass, kernel.bbclass: Use kmod-native instead of module-init-tools-cross Khem Raj
                   ` (12 subsequent siblings)
  20 siblings, 1 reply; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

Since its provided by kmod

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../module-init-tools/files/disable_man.patch      |   25 ------------
 .../files/grab_module_memset.patch                 |   21 ----------
 .../files/modutils_extension.patch                 |   25 ------------
 .../module-init-tools-cross_3.16.bb                |   10 -----
 .../module-init-tools/module-init-tools.inc        |   24 -----------
 .../module-init-tools/module-init-tools_3.16.bb    |   42 --------------------
 .../files/PD.patch                                 |    0
 .../files/modutils.sh                              |    0
 .../modutils-initscripts.bb                        |    0
 9 files changed, 0 insertions(+), 147 deletions(-)
 delete mode 100644 meta/recipes-kernel/module-init-tools/files/disable_man.patch
 delete mode 100644 meta/recipes-kernel/module-init-tools/files/grab_module_memset.patch
 delete mode 100644 meta/recipes-kernel/module-init-tools/files/modutils_extension.patch
 delete mode 100644 meta/recipes-kernel/module-init-tools/module-init-tools-cross_3.16.bb
 delete mode 100644 meta/recipes-kernel/module-init-tools/module-init-tools.inc
 delete mode 100644 meta/recipes-kernel/module-init-tools/module-init-tools_3.16.bb
 rename meta/recipes-kernel/{module-init-tools => modutils-initscripts}/files/PD.patch (100%)
 rename meta/recipes-kernel/{module-init-tools => modutils-initscripts}/files/modutils.sh (100%)
 rename meta/recipes-kernel/{module-init-tools => modutils-initscripts}/modutils-initscripts.bb (100%)

diff --git a/meta/recipes-kernel/module-init-tools/files/disable_man.patch b/meta/recipes-kernel/module-init-tools/files/disable_man.patch
deleted file mode 100644
index 95ad9cf..0000000
--- a/meta/recipes-kernel/module-init-tools/files/disable_man.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-# disable man page build
-#
-# by Kevin Tian <kevin.tian@intel.com>, 2010-07-21
-
-Upstream-Status: Inappropriate [disable feature]
-
-diff --git a/Makefile.am b/Makefile.am
-index 6f83c12..32972a8 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -39,13 +39,12 @@ modindex_LDADD = $(LDADD) libmodtools.a
- MAN5 = modprobe.conf.5 modules.dep.5 depmod.conf.5 modprobe.d.5
- MAN8 = depmod.8 insmod.8 lsmod.8 rmmod.8 modprobe.8 modinfo.8
- SGML = $(addprefix doc/,  $(MAN5:%.5=%.sgml) $(MAN8:%.8=%.sgml))
--dist_man_MANS = $(MAN5) $(MAN8)
- # If they haven't overridden mandir, fix it (never /man!)
- mandir =$(shell if [ @mandir@ = $(prefix)/man ]; then if [ $(prefix) = / ]; then echo /usr/share/man; else echo $(prefix)/share/man; fi; else echo @mandir@; fi)
- 
- TESTSUITE := $(shell test -e @srcdir@/tests && find @srcdir@/tests -type f ! -name '*~')
- 
--EXTRA_DIST = generate-modprobe.conf FAQ CODING stress_modules.sh install-with-care $(SGML) $(man_MANS) $(TESTSUITE)
-+EXTRA_DIST = generate-modprobe.conf FAQ CODING stress_modules.sh install-with-care
- 
- sbin_PROGRAMS = insmod modprobe rmmod depmod modinfo
- if BUILD_STATIC_UTILS
diff --git a/meta/recipes-kernel/module-init-tools/files/grab_module_memset.patch b/meta/recipes-kernel/module-init-tools/files/grab_module_memset.patch
deleted file mode 100644
index 31dc0e9..0000000
--- a/meta/recipes-kernel/module-init-tools/files/grab_module_memset.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-# this patch is from Mark Hatle <mark.hatle@windriver.com>, who  ran into 
-# a random segfault using the latest module-init-tools (3.12) and finally
-# trace back to depmod.c:grab_module, which appears that the new malloc(...) 
-# setups up things, but never clears the memory that was just allocated.
-#
-# Kevin Tian <kevin.tian@intel.com>, 2010-08-06
-
-Upstream-Status: Pending
-
-diff --git a/depmod.c b/depmod.c
-index 647e5e6..46e03e0 100644
---- a/depmod.c
-+++ b/depmod.c
-@@ -313,6 +313,7 @@ static struct module *grab_module(const char *dirname, const char *filename)
- 
- 	new = NOFAIL(malloc(sizeof(*new)
- 			    + strlen(dirname?:"") + 1 + strlen(filename) + 1));
-+	memset(new, 0x00, sizeof(*new) + strlen(dirname?:"") + 1 + strlen(filename) + 1);
- 	if (dirname)
- 		sprintf(new->pathname, "%s/%s", dirname, filename);
- 	else
diff --git a/meta/recipes-kernel/module-init-tools/files/modutils_extension.patch b/meta/recipes-kernel/module-init-tools/files/modutils_extension.patch
deleted file mode 100644
index 4a6e0fe..0000000
--- a/meta/recipes-kernel/module-init-tools/files/modutils_extension.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-# poky uses new name to differentiate from modutils, so reflect this new name in source
-#
-# comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-21
-
-Upstream-Status: Inappropriate [embedded specific]
-
---- module-init-tools-3.0-pre10.orig/generate-modprobe.conf
-+++ module-init-tools-3.0-pre10/generate-modprobe.conf
-@@ -45,12 +45,12 @@
-     cp $TESTING_MODPROBE_CONF $MODPROBECONF
- elif [ "$STDIN" = "1" ]; then
-     cat > $MODPROBECONF
--elif [ -x /sbin/modprobe.old ]; then
-+elif [ -x /sbin/modprobe.24 ]; then
-     # In sbin.
--    /sbin/modprobe.old -c > $MODPROBECONF || modprobe_abort
--elif modprobe.old -c >/dev/null 2>&1; then
-+    /sbin/modprobe.24 -c > $MODPROBECONF || modprobe_abort
-+elif modprobe.24 -c >/dev/null 2>&1; then
-     # Somewhere in path.
--    modprobe.old -c > $MODPROBECONF || modprobe_abort
-+    modprobe.24 -c > $MODPROBECONF || modprobe_abort
- elif /sbin/modprobe -V 2>/dev/null | grep -q 'modprobe version'; then
-     # Running /sbin/modprobe gives old version.
-     /sbin/modprobe -c > $MODPROBECONF || modprobe_abort
diff --git a/meta/recipes-kernel/module-init-tools/module-init-tools-cross_3.16.bb b/meta/recipes-kernel/module-init-tools/module-init-tools-cross_3.16.bb
deleted file mode 100644
index dee163d..0000000
--- a/meta/recipes-kernel/module-init-tools/module-init-tools-cross_3.16.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require module-init-tools.inc
-PR = "r0"
-inherit cross
-PROVIDES += "virtual/${TARGET_PREFIX}depmod"
-RDEPENDS_${PN} = ""
-
-SRC_URI[md5sum] = "bc44832c6e41707b8447e2847d2019f5"
-SRC_URI[sha256sum] = "e1f2cdcae64a8effc25e545a5e0bdaf312f816ebbcd0916e4e87450755fab64b"
-
-EXTRA_OECONF_append = " --program-prefix=${TARGET_PREFIX} --disable-static-utils"
diff --git a/meta/recipes-kernel/module-init-tools/module-init-tools.inc b/meta/recipes-kernel/module-init-tools/module-init-tools.inc
deleted file mode 100644
index c290c4f..0000000
--- a/meta/recipes-kernel/module-init-tools/module-init-tools.inc
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Kernel Module Utilities"
-DESCRIPTION = "This package contains a set of programs for loading, inserting, and removing kernel modules for Linux (versions 2.5.48 and above). It serves the same function that the modutils package serves for Linux 2.4"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
-                    file://lsmod.c;md5=743c873ec42632d2ce37d3c440f366dd"
-SECTION = "base"
-
-PACKAGES =+ "module-init-tools-insmod-static module-init-tools-depmod"
-RDEPENDS_${PN} += "module-init-tools-depmod"
-
-FILES_module-init-tools-depmod = "${sbindir}/depmod.26"
-FILES_module-init-tools-insmod-static = "${sbindir}/insmod.static"
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/module-init-tools/module-init-tools-${PV}.tar.bz2 \
-           file://modutils_extension.patch \
-           file://disable_man.patch \
-           file://grab_module_memset.patch"
-
-inherit autotools
-
-# module-init-tools uses AX_ENABLE_BUILDDIR to move rest of configuration steps
-# into a subdir. However this macro is not quite cross friendly. Instead of 
-# mangling that macro, a easier way is to take the disable option
-EXTRA_OECONF = "--disable-builddir"
diff --git a/meta/recipes-kernel/module-init-tools/module-init-tools_3.16.bb b/meta/recipes-kernel/module-init-tools/module-init-tools_3.16.bb
deleted file mode 100644
index 0248b46..0000000
--- a/meta/recipes-kernel/module-init-tools/module-init-tools_3.16.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-require module-init-tools.inc
-PR = "r0"
-
-# autotools set prefix to /usr, however we want them in /bin and /sbin
-bindir = "/bin"
-sbindir = "/sbin"
-
-do_install() {
-	autotools_do_install
-	for f in bin/lsmod sbin/insmod sbin/rmmod sbin/modprobe sbin/modinfo sbin/depmod; do
-		mv ${D}/$f ${D}/$f.26
-	done
-}
-
-pkg_postinst_module-init-tools() {
-	for f in sbin/insmod sbin/modprobe sbin/rmmod sbin/modinfo; do
-		bn=`basename $f`
-		update-alternatives --install /$f $bn /$f.26 60
-	done
-	update-alternatives --install /bin/lsmod bin-lsmod /bin/lsmod.26 60
-	update-alternatives --install /sbin/lsmod lsmod /bin/lsmod.26 60
-}
-
-pkg_prerm_module-init-tools() {
-	for f in sbin/insmod sbin/modprobe sbin/rmmod sbin/modinfo; do
-		bn=`basename $f`
-		update-alternatives --remove $bn /$f.26
-	done
-	update-alternatives --remove bin-lsmod /bin/lsmod.26
-	update-alternatives --remove lsmod /bin/lsmod.26
-}
-
-pkg_postinst_module-init-tools-depmod() {
-	update-alternatives --install /sbin/depmod depmod /sbin/depmod.26 60
-}
-
-pkg_prerm_module-init-tools-depmod() {
-	update-alternatives --remove depmod /sbin/depmod.26
-}
-
-SRC_URI[md5sum] = "bc44832c6e41707b8447e2847d2019f5"
-SRC_URI[sha256sum] = "e1f2cdcae64a8effc25e545a5e0bdaf312f816ebbcd0916e4e87450755fab64b"
diff --git a/meta/recipes-kernel/module-init-tools/files/PD.patch b/meta/recipes-kernel/modutils-initscripts/files/PD.patch
similarity index 100%
rename from meta/recipes-kernel/module-init-tools/files/PD.patch
rename to meta/recipes-kernel/modutils-initscripts/files/PD.patch
diff --git a/meta/recipes-kernel/module-init-tools/files/modutils.sh b/meta/recipes-kernel/modutils-initscripts/files/modutils.sh
similarity index 100%
rename from meta/recipes-kernel/module-init-tools/files/modutils.sh
rename to meta/recipes-kernel/modutils-initscripts/files/modutils.sh
diff --git a/meta/recipes-kernel/module-init-tools/modutils-initscripts.bb b/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
similarity index 100%
rename from meta/recipes-kernel/module-init-tools/modutils-initscripts.bb
rename to meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 09/20] image.bbclass, kernel.bbclass: Use kmod-native instead of module-init-tools-cross
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (7 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 08/20] module-init-tools: Delete Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-05-03 21:09   ` Darren Hart
  2012-02-06  6:40 ` [PATCH 10/20] pseudo: Wrap renameat and opendir Khem Raj
                   ` (11 subsequent siblings)
  20 siblings, 1 reply; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/classes/image.bbclass  |    2 +-
 meta/classes/kernel.bbclass |    9 ++++-----
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 3034725..adb9b39 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -173,7 +173,7 @@ fakeroot do_rootfs () {
 		KERNEL_VERSION=`cat ${STAGING_KERNEL_DIR}/kernel-abiversion`
 
 		mkdir -p ${IMAGE_ROOTFS}/lib/modules/$KERNEL_VERSION
-		${TARGET_PREFIX}depmod -a -b ${IMAGE_ROOTFS} -F ${STAGING_KERNEL_DIR}/System.map-$KERNEL_VERSION $KERNEL_VERSION
+		depmod -a -b ${IMAGE_ROOTFS} -F ${STAGING_KERNEL_DIR}/System.map-$KERNEL_VERSION $KERNEL_VERSION
 	fi
 
 	${IMAGE_PREPROCESS_COMMAND}
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index ec5d65e..be54f8e 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -1,7 +1,7 @@
 inherit linux-kernel-base module_strip
 
 PROVIDES += "virtual/kernel"
-DEPENDS += "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}depmod virtual/${TARGET_PREFIX}gcc${KERNEL_CCSUFFIX} update-modules"
+DEPENDS += "virtual/${TARGET_PREFIX}gcc kmod-native virtual/${TARGET_PREFIX}gcc${KERNEL_CCSUFFIX} update-modules"
 
 # we include gcc above, we dont need virtual/libc
 INHIBIT_DEFAULT_DEPS = "1"
@@ -259,7 +259,7 @@ if [ ! -e "$D/lib/modules/${KERNEL_VERSION}" ]; then
 	mkdir -p $D/lib/modules/${KERNEL_VERSION}
 fi
 if [ -n "$D" ]; then
-	${HOST_PREFIX}depmod -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
+	depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
 else
 	depmod -a
 fi
@@ -267,7 +267,7 @@ fi
 
 pkg_postinst_modules () {
 if [ -n "$D" ]; then
-	${HOST_PREFIX}depmod -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
+	depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
 else
 	depmod -a
 	update-modules || true
@@ -339,9 +339,8 @@ python populate_packages_prepend () {
 		if m:
 			kernelver_stripped = m.group(1)
 		path = d.getVar("PATH", 1)
-		host_prefix = d.getVar("HOST_PREFIX", 1) or ""
 
-		cmd = "PATH=\"%s\" %sdepmod -n -a -r -b %s -F %s/boot/System.map-%s %s" % (path, host_prefix, dvar, dvar, kernelver, kernelver_stripped)
+		cmd = "PATH=\"%s\" depmod -n -a -b %s -F %s/boot/System.map-%s %s" % (path, dvar, dvar, kernelver, kernelver_stripped)
 		f = os.popen(cmd, 'r')
 
 		deps = {}
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 10/20] pseudo: Wrap renameat and opendir
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (8 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 09/20] image.bbclass, kernel.bbclass: Use kmod-native instead of module-init-tools-cross Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-07 16:21   ` Saul Wold
  2012-02-06  6:40 ` [PATCH 11/20] uclibc: Upgrade recipes from 0.9.32 -> 0.9.33 Khem Raj
                   ` (10 subsequent siblings)
  20 siblings, 1 reply; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-devtools/pseudo/pseudo/opendir.patch  |   92 ++++++++
 meta/recipes-devtools/pseudo/pseudo/renameat.patch |  227 ++++++++++++++++++++
 meta/recipes-devtools/pseudo/pseudo_1.2.bb         |    6 +-
 3 files changed, 323 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-devtools/pseudo/pseudo/opendir.patch
 create mode 100644 meta/recipes-devtools/pseudo/pseudo/renameat.patch

diff --git a/meta/recipes-devtools/pseudo/pseudo/opendir.patch b/meta/recipes-devtools/pseudo/pseudo/opendir.patch
new file mode 100644
index 0000000..d20f717
--- /dev/null
+++ b/meta/recipes-devtools/pseudo/pseudo/opendir.patch
@@ -0,0 +1,92 @@
+commit 162f2692c399b93311652201a940fdaf9c9e6924
+Author: Peter Seebach <peter.seebach@windriver.com>
+Date:   Thu Feb 2 11:45:42 2012 -0600
+
+    Make opendir/closedir stash and forget directory names.
+    
+    The dirfd(DIR *) interface allows you to get the fd for a DIR *,
+    meaning you can use it with openat(), meaning you can need its
+    path.  This causes a segfault.  Also gonna fix the base_path
+    code not to segfault in that case, but first fix the underlying
+    problem.
+
+diff --git a/ChangeLog.txt b/ChangeLog.txt
+index 4de488c..9625b38 100644
+--- a/ChangeLog.txt
++++ b/ChangeLog.txt
+@@ -1,3 +1,7 @@
++2012-02-02:
++	* (seebs) stash dir name for DIR * from opendir using dirfd.
++	* (seebs) add closedir.
++
+ 2011-11-02:
+ 	* (seebs) Call this 1.2 because the UNLOAD change is moderately
+ 	  significant, and so's the clone change.
+diff --git a/ports/unix/guts/closedir.c b/ports/unix/guts/closedir.c
+new file mode 100644
+index 0000000..1085361
+--- /dev/null
++++ b/ports/unix/guts/closedir.c
+@@ -0,0 +1,20 @@
++/*
++ * Copyright (c) 2012 Wind River Systems; see
++ * guts/COPYRIGHT for information.
++ *
++ * static int
++ * wrap_closedir(DIR *dirp) {
++ *	int rc = -1;
++ */
++	if (!dirp) {
++		errno = EFAULT;
++		return -1;
++	}
++
++	int fd = dirfd(dirp);
++	pseudo_client_op(OP_CLOSE, 0, fd, -1, 0, 0);
++	rc = real_closedir(dirp);
++
++/*	return rc;
++ * }
++ */
+diff --git a/ports/unix/guts/opendir.c b/ports/unix/guts/opendir.c
+index 8eaa71f..e69717e 100644
+--- a/ports/unix/guts/opendir.c
++++ b/ports/unix/guts/opendir.c
+@@ -6,8 +6,25 @@
+  * wrap_opendir(const char *path) {
+  *	DIR * rc = NULL;
+  */
++ 	struct stat buf;
++	int save_errno;
+ 
+ 	rc = real_opendir(path);
++	if (rc) {
++		int fd;
++		save_errno = errno;
++		fd = dirfd(rc);
++		if (real_fstat(fd, &buf) == -1) {
++			pseudo_debug(1, "diropen (fd %d) succeeded, but fstat failed (%s).\n",
++				fd, strerror(errno));
++			pseudo_client_op_plain(OP_OPEN, PSA_READ, fd, -1, path, 0);
++		} else {
++			pseudo_client_op_plain(OP_OPEN, PSA_READ, fd, -1, path, &buf);
++		}
++
++
++		errno = save_errno;
++	}
+ 
+ /*	return rc;
+  * }
+diff --git a/ports/unix/wrapfuncs.in b/ports/unix/wrapfuncs.in
+index e06e404..32250c4 100644
+--- a/ports/unix/wrapfuncs.in
++++ b/ports/unix/wrapfuncs.in
+@@ -21,6 +21,7 @@ long pathconf(const char *path, int name);
+ char *realpath(const char *name, char *resolved_name); /* version="GLIBC_2.3" */
+ int remove(const char *path); /* flags=AT_SYMLINK_NOFOLLOW */
+ DIR *opendir(const char *path);
++int closedir(DIR *dirp);
+ char *tempnam(const char *template, const char *pfx);
+ char *tmpnam(char *s);
+ int truncate(const char *path, off_t length);
diff --git a/meta/recipes-devtools/pseudo/pseudo/renameat.patch b/meta/recipes-devtools/pseudo/pseudo/renameat.patch
new file mode 100644
index 0000000..74c8585
--- /dev/null
+++ b/meta/recipes-devtools/pseudo/pseudo/renameat.patch
@@ -0,0 +1,227 @@
+commit 795f2b44b7f692151556782f142a4a6e7d45d892
+Author: Peter Seebach <peter.seebach@windriver.com>
+Date:   Thu Feb 2 15:49:21 2012 -0600
+
+    Implement renameat()
+    
+    After three long years, someone tried to use this.  This was impossibly
+    hard back when pseudo was written, because there was only one dirfd
+    provided for.  Thing is, now, the canonicalization happens in wrapfuncs,
+    so a small tweak to makewrappers to recognize that oldpath should use
+    olddirfd if it exists is enough to get us fully canonicalized paths
+    when needed.
+    
+    Also fix the crash if base_path gets called with an fd for which we have
+    no path.
+
+diff --git a/ChangeLog.txt b/ChangeLog.txt
+index 9625b38..25bd463 100644
+--- a/ChangeLog.txt
++++ b/ChangeLog.txt
+@@ -1,6 +1,9 @@
+ 2012-02-02:
+ 	* (seebs) stash dir name for DIR * from opendir using dirfd.
+ 	* (seebs) add closedir.
++	* (seebs) add initial pass at renameat()
++	* (seebs) in base_path, don't try to strlen the result if
++	  fd_path() returns NULL.
+ 
+ 2011-11-02:
+ 	* (seebs) Call this 1.2 because the UNLOAD change is moderately
+diff --git a/makewrappers b/makewrappers
+index 20bbf2b..bf344d6 100755
+--- a/makewrappers
++++ b/makewrappers
+@@ -211,12 +211,13 @@ class Function:
+         self.flags = '0'
+         self.port = port
+         self.directory = ''
+-	self.version = 'NULL'
++        self.version = 'NULL'
+         # On Darwin, some functions are SECRETLY converted to foo$INODE64
+         # when called.  So we have to look those up for real_*
+         self.inode64 = None
+         self.real_func = None
+         self.paths_to_munge = []
++        self.dirfds = {}
+         self.hand_wrapped = None
+         # used for the copyright date when creating stub functions
+         self.date = datetime.date.today().year
+@@ -239,6 +240,7 @@ class Function:
+         # * If the arg has a name ending in 'path', we will canonicalize it.
+         # * If the arg is named 'dirfd' or 'flags', it becomes the default
+         #   values for the dirfd and flags arguments when canonicalizing.
++        # * If the name ends in dirfd, we do the same fancy stuff.
+         # * Note that the "comments" field (/* ... */ after the decl) can
+         #   override the dirfd/flags values.
+         self.args = ArgumentList(bits.group(2))
+@@ -246,7 +248,9 @@ class Function:
+             # ignore varargs, they never get these special treatments
+             if arg.vararg:
+                 pass
+-            elif arg.name == 'dirfd':
++            elif arg.name[-5:] == 'dirfd':
++                if len(arg.name) > 5:
++                    self.dirfds[arg.name[:-5]] = True
+                 self.dirfd = 'dirfd'
+             elif arg.name == 'flags':
+                 self.flags = 'flags'
+@@ -325,9 +329,13 @@ class Function:
+         """create/allocate canonical paths"""
+         alloc_paths = []
+         for path in self.paths_to_munge:
++            prefix = path[:-4]
++	    if not prefix in self.dirfds:
++                prefix = ''
++            print "for path %s: prefix <%s>" % ( path, prefix )
+             alloc_paths.append(
+-                "%s = pseudo_root_path(__func__, __LINE__, %s, %s, %s);" %
+-                (path, self.dirfd, path, self.flags))
++                "%s = pseudo_root_path(__func__, __LINE__, %s%s, %s, %s);" %
++                (path, prefix, self.dirfd, path, self.flags))
+         return "\n\t\t\t".join(alloc_paths)
+ 
+     def free_paths(self):
+diff --git a/ports/unix/guts/renameat.c b/ports/unix/guts/renameat.c
+index c8203b7..f13cd1e 100644
+--- a/ports/unix/guts/renameat.c
++++ b/ports/unix/guts/renameat.c
+@@ -1,15 +1,111 @@
+ /* 
+- * Copyright (c) 2008-2010 Wind River Systems; see
++ * Copyright (c) 2008-2012 Wind River Systems; see
+  * guts/COPYRIGHT for information.
+  *
+  * static int
+  * wrap_renameat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath) {
+  *	int rc = -1;
+  */
++ 	pseudo_msg_t *msg;
++ 	struct stat oldbuf, newbuf;
++	int oldrc, newrc;
++	int save_errno;
++	int old_db_entry = 0;
+ 
+-	pseudo_diag("help! unimplemented renameat [%s -> %s].\n", oldpath, newpath);
++	pseudo_debug(2, "renameat: %d,%s->%d,%s\n",
++		olddirfd, oldpath ? oldpath : "<nil>",
++		newdirfd, newpath ? newpath : "<nil>");
++
++#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
++	if (olddirfd != AT_FDCWD || newdirfd != AT_FDCWD) {
++		errno = ENOSYS;
++		return -1;
++	}
++#endif
++
++	if (!oldpath || !newpath) {
++		errno = EFAULT;
++		return -1;
++	}
++
++	save_errno = errno;
++
++#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
++	newrc = real_lstat(newpath, &newbuf);
++	oldrc = real_lstat(oldpath, &oldbuf);
++#else
++	oldrc = real___fxstatat(_STAT_VER, olddirfd, oldpath, &oldbuf, AT_SYMLINK_NOFOLLOW);
++	newrc = real___fxstatat(_STAT_VER, newdirfd, newpath, &newbuf, AT_SYMLINK_NOFOLLOW);
++#endif
++
++	errno = save_errno;
++
++	/* newpath must be removed. */
++	/* as with unlink, we have to mark that the file may get deleted */
++	msg = pseudo_client_op_plain(OP_MAY_UNLINK, 0, -1, newdirfd, newpath, newrc ? NULL : &newbuf);
++	if (msg && msg->result == RESULT_SUCCEED)
++		old_db_entry = 1;
+ 	rc = real_renameat(olddirfd, oldpath, newdirfd, newpath);
++	save_errno = errno;
++	if (old_db_entry) {
++		if (rc == -1) {
++			/* since we failed, that wasn't really unlinked -- put
++			 * it back.
++			 */
++			pseudo_client_op_plain(OP_CANCEL_UNLINK, 0, -1, newdirfd, newpath, &newbuf);
++		} else {
++			/* confirm that the file was removed */
++			pseudo_client_op_plain(OP_DID_UNLINK, 0, -1, newdirfd, newpath, &newbuf);
++		}
++	}
++	if (rc == -1) {
++		/* and we're done. */
++		errno = save_errno;
++		return rc;
++	}
++	save_errno = errno;
++	/* nothing to do for a "rename" of a link to itself */
++	if (newrc != -1 && oldrc != -1 &&
++	    newbuf.st_dev == oldbuf.st_dev &&
++	    newbuf.st_ino == oldbuf.st_ino) {
++		return rc;
++        }
++
++	/* rename(3) is not mv(1).  rename(file, dir) fails; you must provide
++	 * the corrected path yourself.  You can rename over a directory only
++	 * if the source is a directory.  Symlinks are simply removed.
++	 *
++	 * If we got here, the real rename call succeeded.  That means newpath
++	 * has been unlinked and oldpath has been linked to it.
++	 *
++	 * There are a ton of special cases to error check.  I don't check
++	 * for any of them, because in every such case, the underlying rename
++	 * failed, and there is nothing to do.
++	 * The only tricky part is that, because we used to ignore symlinks,
++	 * we may have to rename or remove directory trees even though in
++	 * theory rename can never destroy a directory tree.
++	 */
++	if (!old_db_entry) {
++		/* create an entry under the old name, which will then be
++		 * renamed; this way, children would get renamed too, if there
++		 * were any.
++		 */
++		if (newrc == 0) {
++			if (newbuf.st_dev != oldbuf.st_dev) {
++				oldbuf.st_dev = newbuf.st_dev;
++				oldbuf.st_ino = newbuf.st_ino;
++			}
++		}
++		pseudo_debug(1, "creating new '%s' [%llu] to rename\n",
++			oldpath, (unsigned long long) oldbuf.st_ino);
++		pseudo_client_op_plain(OP_LINK, 0, -1, olddirfd, oldpath, &oldbuf);
++	}
++	/* special case: use 'fd' for olddirfd, because
++	 * we know it has no other meaning for RENAME
++	 */
++	pseudo_client_op_plain(OP_RENAME, 0, olddirfd, newdirfd, newpath, &oldbuf, oldpath);
+ 
++	errno = save_errno;
+ /*	return rc;
+  * }
+  */
+diff --git a/pseudo_client.c b/pseudo_client.c
+index 48607c2..4a30420 100644
+--- a/pseudo_client.c
++++ b/pseudo_client.c
+@@ -988,6 +988,8 @@ base_path(int dirfd, const char *path, int leave_last) {
+ 		if (dirfd != -1 && dirfd != AT_FDCWD) {
+ 			if (dirfd >= 0) {
+ 				basepath = fd_path(dirfd);
++			}
++			if (basepath) {
+ 				baselen = strlen(basepath);
+ 			} else {
+ 				pseudo_diag("got *at() syscall for unknown directory, fd %d\n", dirfd);
+@@ -1128,7 +1130,10 @@ pseudo_client_op(pseudo_op_t op, int access, int fd, int dirfd, const char *path
+ 	if (path) {
+ 		pseudo_debug(2, " %s", path);
+ 	}
+-	if (fd != -1) {
++	/* for OP_RENAME in renameat, "fd" is also used for the
++	 * second dirfd.
++	 */
++	if (fd != -1 && op != OP_RENAME) {
+ 		pseudo_debug(2, " [fd %d]", fd);
+ 	}
+ 	if (buf) {
diff --git a/meta/recipes-devtools/pseudo/pseudo_1.2.bb b/meta/recipes-devtools/pseudo/pseudo_1.2.bb
index f2ebc22..04bcbce 100644
--- a/meta/recipes-devtools/pseudo/pseudo_1.2.bb
+++ b/meta/recipes-devtools/pseudo/pseudo_1.2.bb
@@ -1,10 +1,12 @@
 require pseudo.inc
 
-PR = "r4"
+PR = "r5"
 
 SRC_URI = "http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2 \
            file://oe-config.patch \
-           file://static_sqlite.patch"
+           file://static_sqlite.patch \
+           file://opendir.patch \
+           file://renameat.patch"
 
 SRC_URI[md5sum] = "a2819084bab7e991f06626d02cf55048"
 SRC_URI[sha256sum] = "4749a22df687f44d24c26e97170d4781a1bd52d5ee092364a40877e4d96ff058"
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 11/20] uclibc: Upgrade recipes from 0.9.32 -> 0.9.33
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (9 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 10/20] pseudo: Wrap renameat and opendir Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-07 19:02   ` Saul Wold
  2012-02-06  6:40 ` [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6 Khem Raj
                   ` (9 subsequent siblings)
  20 siblings, 1 reply; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

Prefer 0.9.33 by default
Delete recipes for 0.9.32

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/conf/distro/include/tcmode-default.inc        |    2 +-
 ...rch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch |   29 --
 ...fd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch |   33 --
 .../uclibc-0.9.32/detect-bx-availibility.patch     |   75 ----
 .../uclibc/uclibc-0.9.32/epoll-asm-fix.patch       |   25 --
 .../uclibc/uclibc-0.9.32/include-arm-asm.h.patch   |   65 ---
 .../uclibc/uclibc-0.9.32/mount.h-update.patch      |   85 ----
 .../uclibc-0.9.32/remove-eabi-oabi-selection.patch |   91 ----
 .../uclibc-0.9.32/remove-sub-arch-variants.patch   |  215 ---------
 .../uclibc/uclibc-0.9.32/rtld_no.patch             |  215 ---------
 .../uclibc/uclibc-0.9.32/select-force-thumb.patch  |  172 --------
 .../uclibc/uclibc-0.9.32/sync_file_range2.patch    |   47 --
 .../uclibc-0.9.32/transform-eabi-oabi-choice.patch |   71 ---
 .../uclibc-0.9.32/uclibc-arm-ftruncate64.patch     |   13 -
 .../uclibc-0.9.32/uclibc_scheduler_update.patch    |  455 --------------------
 ...rr-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch |   32 ++
 ...fstat-Use-64bit-version-of-syscall-if-ava.patch |  177 ++++++++
 .../argp-headers.patch                             |    2 +
 .../argp-support.patch                             |    3 +
 .../compile-arm-fork-with-O2.patch                 |    2 +-
 .../uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch    |   25 ++
 meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch  |   37 ++
 ...so_use_arm_dl_linux_resolve_in_thumb_mode.patch |    6 +
 .../libc_symbols_include_bits_uclibc_config.patch  |   19 +
 .../mips/uClibc.machine                            |    0
 .../orign_path.patch                               |   94 ++--
 .../powerpc_copysignl.patch                        |    6 +
 .../remove_attribute_optimize_Os.patch             |   17 +-
 .../{uclibc-0.9.32 => uclibc-0.9.33}/uClibc.distro |    8 +-
 .../uClibc.machine                                 |    0
 .../uclibc-execvpe.patch                           |    3 +
 .../uclibc_enable_log2_test.patch                  |    5 +
 ...-initial_0.9.32.bb => uclibc-initial_0.9.33.bb} |    0
 .../uclibc/{uclibc_0.9.32.bb => uclibc_0.9.33.bb}  |   26 +-
 34 files changed, 386 insertions(+), 1669 deletions(-)
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/detect-bx-availibility.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/epoll-asm-fix.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/include-arm-asm.h.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/mount.h-update.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/remove-eabi-oabi-selection.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/rtld_no.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/select-force-thumb.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/sync_file_range2.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/transform-eabi-oabi-choice.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-arm-ftruncate64.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_scheduler_update.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/argp-headers.patch (99%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/argp-support.patch (99%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/compile-arm-fork-with-O2.patch (97%)
 create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch (86%)
 create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/libc_symbols_include_bits_uclibc_config.patch
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/mips/uClibc.machine (100%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/orign_path.patch (64%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/powerpc_copysignl.patch (96%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/remove_attribute_optimize_Os.patch (93%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/uClibc.distro (96%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/uClibc.machine (100%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/uclibc-execvpe.patch (99%)
 rename meta/recipes-core/uclibc/{uclibc-0.9.32 => uclibc-0.9.33}/uclibc_enable_log2_test.patch (81%)
 rename meta/recipes-core/uclibc/{uclibc-initial_0.9.32.bb => uclibc-initial_0.9.33.bb} (100%)
 rename meta/recipes-core/uclibc/{uclibc_0.9.32.bb => uclibc_0.9.33.bb} (45%)

diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
index 5bb253e..b7c2160 100644
--- a/meta/conf/distro/include/tcmode-default.inc
+++ b/meta/conf/distro/include/tcmode-default.inc
@@ -20,7 +20,7 @@ GCCVERSION ?= "4.6%"
 SDKGCCVERSION ?= "4.6%"
 BINUVERSION ?= "2.22"
 EGLIBCVERSION ?= "2.13"
-UCLIBCVERSION ?= "0.9.32"
+UCLIBCVERSION ?= "0.9.33"
 LINUXLIBCVERSION ?= "3.1"
 
 PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch
deleted file mode 100644
index da97d38..0000000
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 06cdcd2a9dd6b46b7fbb5b3ae0a62bdb7ee6c402 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 27 Jun 2011 17:48:18 -0700
-Subject: [PATCH] Config.in.arch: Free UCLIBC_HAS_FPU setting from depending on UCLIBC_HAS_FLOATS
-
-UCLIBC_HAS_FLOATS and UCLIBC_HAS_FPU are denoting two different aspects.
-UCLIBC_HAS_FLOATS covers the floating point operations which has nothing
-to do if you have FPU or not.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- extra/Configs/Config.in.arch |    1 -
- 1 files changed, 0 insertions(+), 1 deletions(-)
-
-diff --git a/extra/Configs/Config.in.arch b/extra/Configs/Config.in.arch
-index 5f7a2b0..c1ca390 100644
---- a/extra/Configs/Config.in.arch
-+++ b/extra/Configs/Config.in.arch
-@@ -133,7 +133,6 @@ config UCLIBC_HAS_FLOATS
- 
- config UCLIBC_HAS_FPU
- 	bool "Target CPU has a floating point unit (FPU)"
--	depends on UCLIBC_HAS_FLOATS
- 	default y
- 	help
- 	  If your target CPU does not have a Floating Point Unit (FPU) or a
--- 
-1.7.0.4
-
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch
deleted file mode 100644
index 6892ceb..0000000
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From ecc7d34cbbaf83aae87b091555650ed33e27ed2e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 30 Jun 2011 00:32:11 -0700
-Subject: [PATCH] mips/signalfd.h: SFD_NONBLOCK for mips is 0200 unlike 04000 commonly
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- include/sys/signalfd.h |    9 +++++++++
- 1 files changed, 9 insertions(+), 0 deletions(-)
-
-diff --git a/include/sys/signalfd.h b/include/sys/signalfd.h
-index 8cee17c..f1cb63a 100644
---- a/include/sys/signalfd.h
-+++ b/include/sys/signalfd.h
-@@ -64,6 +64,15 @@ enum
- # define SFD_NONBLOCK SFD_NONBLOCK
-   };
- 
-+#elif defined __mips__
-+enum
-+  {
-+    SFD_CLOEXEC = 02000000,
-+# define SFD_CLOEXEC SFD_CLOEXEC
-+    SFD_NONBLOCK = 0200
-+# define SFD_NONBLOCK SFD_NONBLOCK
-+  };
-+
- #else
- enum
-   {
--- 
-1.7.0.4
-
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/detect-bx-availibility.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/detect-bx-availibility.patch
deleted file mode 100644
index 43d19fc..0000000
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/detect-bx-availibility.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-Delivered-To: raj.khem@gmail.com
-Received: by 10.90.86.4 with SMTP id j4cs313307agb;
-        Sat, 8 Jan 2011 16:45:20 -0800 (PST)
-Received: by 10.227.141.78 with SMTP id l14mr16920947wbu.128.1294533919168;
-        Sat, 08 Jan 2011 16:45:19 -0800 (PST)
-Return-Path: <yann.morin.1998@anciens.enib.fr>
-Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123])
-        by mx.google.com with ESMTP id w30si33755908wbd.17.2011.01.08.16.45.18;
-        Sat, 08 Jan 2011 16:45:19 -0800 (PST)
-Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123;
-Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr
-Received: from roazhon.bzh.lan ([90.32.245.227])
-	by mwinf5d24 with ME
-	id tClC1f0024v5z3u03ClHDo; Sun, 09 Jan 2011 01:45:18 +0100
-From: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-To: uclibc@uclibc.org
-Cc: Khem Raj <raj.khem@gmail.com>,
-	Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>,
-	Carmelo AMOROSO <carmelo.amoroso@st.com>
-Subject: [PATCH 6/7] ARM: detect BX availibility at build time
-Date: Sun,  9 Jan 2011 01:45:09 +0100
-Message-Id: <1294533910-19305-7-git-send-email-yann.morin.1998@anciens.enib.fr>
-X-Mailer: git-send-email 1.7.1
-In-Reply-To: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
-References: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
-
-The "use BX" option is now a suggestion that BX be used if available.
-Use a macro to detect if BX is available at build time. If so, and
-the user requested it be used, then use it. Otherwise, error out.
-
-Macro courtesy Khem RAJ:
-  http://lists.uclibc.org/pipermail/uclibc/2009-April/042301.html
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-Cc: Khem Raj <raj.khem@gmail.com>
-Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
----
- extra/Configs/Config.arm              |    4 +++-
- libc/sysdeps/linux/arm/bits/arm_asm.h |    9 ++++++++-
- 2 files changed, 11 insertions(+), 2 deletions(-)
-
-diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm
-index 227b90c..9aa9e56 100644
---- a/extra/Configs/Config.arm
-+++ b/extra/Configs/Config.arm
-@@ -33,4 +33,6 @@ config COMPILE_IN_THUMB_MODE
- config USE_BX
- 	bool "Use BX in function return"
- 	help
--	  Use BX instruction for THUMB aware architectures.
-+	  Say 'y' to use BX to return from functions on your thumb-aware
-+	  processor. Say 'y' if you need to use interworking. Say 'n' if not.
-+	  It is safe to say 'y' even if you're not doing interworking.
-diff --git a/libc/sysdeps/linux/arm/bits/arm_asm.h b/libc/sysdeps/linux/arm/bits/arm_asm.h
-index 1d87df6..921c9a3 100644
---- a/libc/sysdeps/linux/arm/bits/arm_asm.h
-+++ b/libc/sysdeps/linux/arm/bits/arm_asm.h
-@@ -24,5 +24,12 @@
- #define THUMB1_ONLY 1
- #endif
- 
--#endif /* _ARM_ASM_H */
-+#if defined(__USE_BX__)
-+# if (   defined (__ARM_ARCH_2__)  || defined (__ARM_ARCH_3__) \
-+      || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \
-+     )
-+#  error Use of BX was requested, but is not available on the target processor.
-+# endif /* ARCH level */
-+#endif /* __USE_BX__ */
- 
-+#endif /* _ARM_ASM_H */
--- 
-1.7.1
-
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/epoll-asm-fix.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/epoll-asm-fix.patch
deleted file mode 100644
index bcd834d..0000000
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/epoll-asm-fix.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Fix a compile error due to last argument to syscall() not being memory addressable.
-
-Upstream-Status: Pending
-Signed-off-by: Phil Blundell <philb@gnu.org>
-
-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-0.9.32/include-arm-asm.h.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/include-arm-asm.h.patch
deleted file mode 100644
index 55c312e..0000000
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/include-arm-asm.h.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-Delivered-To: raj.khem@gmail.com
-Received: by 10.90.86.4 with SMTP id j4cs313304agb;
-        Sat, 8 Jan 2011 16:45:19 -0800 (PST)
-Received: by 10.227.155.75 with SMTP id r11mr17188266wbw.3.1294533918432;
-        Sat, 08 Jan 2011 16:45:18 -0800 (PST)
-Return-Path: <yann.morin.1998@anciens.enib.fr>
-Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123])
-        by mx.google.com with ESMTP id k3si33753340wbx.29.2011.01.08.16.45.17;
-        Sat, 08 Jan 2011 16:45:18 -0800 (PST)
-Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123;
-Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr
-Received: from roazhon.bzh.lan ([90.32.245.227])
-	by mwinf5d24 with ME
-	id tClC1f0024v5z3u03ClHDf; Sun, 09 Jan 2011 01:45:17 +0100
-From: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-To: uclibc@uclibc.org
-Cc: Khem Raj <raj.khem@gmail.com>,
-	Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>,
-	Carmelo AMOROSO <carmelo.amoroso@st.com>
-Subject: [PATCH 5/7] ARM: #include <bits/arm_asm.h> where __USE_BX__ is used
-Date: Sun,  9 Jan 2011 01:45:08 +0100
-Message-Id: <1294533910-19305-6-git-send-email-yann.morin.1998@anciens.enib.fr>
-X-Mailer: git-send-email 1.7.1
-In-Reply-To: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
-References: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
-
-The check for __USE_BX__ will be available in bits/arm_asm.h,
-so the latter must be included wherever the former is used.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-Cc: Khem Raj <raj.khem@gmail.com>
-Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
----
- ldso/ldso/arm/dl-startup.h      |    1 +
- libc/sysdeps/linux/arm/sysdep.h |    1 +
- 2 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/ldso/ldso/arm/dl-startup.h b/ldso/ldso/arm/dl-startup.h
-index a95389d..2dfdaff 100644
---- a/ldso/ldso/arm/dl-startup.h
-+++ b/ldso/ldso/arm/dl-startup.h
-@@ -7,6 +7,7 @@
-  */
- 
- #include <features.h>
-+#include <bits/arm_asm.h>
- 
- #if !defined(__thumb__)
- __asm__(
-diff --git a/libc/sysdeps/linux/arm/sysdep.h b/libc/sysdeps/linux/arm/sysdep.h
-index 013f88c..e498695 100644
---- a/libc/sysdeps/linux/arm/sysdep.h
-+++ b/libc/sysdeps/linux/arm/sysdep.h
-@@ -21,6 +21,7 @@
- #define _LINUX_ARM_SYSDEP_H 1
- 
- #include <common/sysdep.h>
-+#include <bits/arm_asm.h>
- 
- #include <sys/syscall.h>
- /* For Linux we can use the system call table in the header file
--- 
-1.7.1
-
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/mount.h-update.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/mount.h-update.patch
deleted file mode 100644
index 3508e0e..0000000
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/mount.h-update.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-Sync mount.h from glibc this is needed to get missing defines
-that some apps e.g. systemd are depending on
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
-
-Index: git/include/sys/mount.h
-===================================================================
---- git.orig/include/sys/mount.h	2011-07-21 14:37:27.134255747 -0700
-+++ git/include/sys/mount.h	2011-07-21 14:39:53.844470932 -0700
-@@ -1,5 +1,5 @@
- /* Header file for mounting/unmount Linux filesystems.
--   Copyright (C) 1996,1997,1998,1999,2000,2004 Free Software Foundation, Inc.
-+   Copyright (C) 1996-2000, 2004, 2010 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -47,23 +47,46 @@
- #define MS_REMOUNT	MS_REMOUNT
-   MS_MANDLOCK = 64,		/* Allow mandatory locks on an FS.  */
- #define MS_MANDLOCK	MS_MANDLOCK
--  S_WRITE = 128,		/* Write on file/directory/symlink.  */
--#define S_WRITE		S_WRITE
--  S_APPEND = 256,		/* Append-only file.  */
--#define S_APPEND	S_APPEND
--  S_IMMUTABLE = 512,		/* Immutable file.  */
--#define S_IMMUTABLE	S_IMMUTABLE
-+  MS_DIRSYNC = 128,		/* Directory modifications are synchronous.  */
-+#define MS_DIRSYNC	MS_DIRSYNC
-   MS_NOATIME = 1024,		/* Do not update access times.  */
- #define MS_NOATIME	MS_NOATIME
-   MS_NODIRATIME = 2048,		/* Do not update directory access times.  */
- #define MS_NODIRATIME	MS_NODIRATIME
-   MS_BIND = 4096,		/* Bind directory at different place.  */
- #define MS_BIND		MS_BIND
-+  MS_MOVE = 8192,
-+#define MS_MOVE		MS_MOVE
-+  MS_REC = 16384,
-+#define MS_REC		MS_REC
-+  MS_SILENT = 32768,
-+#define MS_SILENT	MS_SILENT
-+  MS_POSIXACL = 1 << 16,	/* VFS does not apply the umask.  */
-+#define MS_POSIXACL	MS_POSIXACL
-+  MS_UNBINDABLE = 1 << 17,	/* Change to unbindable.  */
-+#define MS_UNBINDABLE	MS_UNBINDABLE
-+  MS_PRIVATE = 1 << 18,		/* Change to private.  */
-+#define MS_PRIVATE	MS_PRIVATE
-+  MS_SLAVE = 1 << 19,		/* Change to slave.  */
-+#define MS_SLAVE	MS_SLAVE
-+  MS_SHARED = 1 << 20,		/* Change to shared.  */
-+#define MS_SHARED	MS_SHARED
-+  MS_RELATIME = 1 << 21,	/* Update atime relative to mtime/ctime.  */
-+#define MS_RELATIME	MS_RELATIME
-+  MS_KERNMOUNT = 1 << 22,	/* This is a kern_mount call.  */
-+#define MS_KERNMOUNT	MS_KERNMOUNT
-+  MS_I_VERSION =  1 << 23,	/* Update inode I_version field.  */
-+#define MS_I_VERSION	MS_I_VERSION
-+  MS_STRICTATIME = 1 << 24,	/* Always perform atime updates.  */
-+#define MS_STRICTATIME	MS_STRICTATIME
-+  MS_ACTIVE = 1 << 30,
-+#define MS_ACTIVE	MS_ACTIVE
-+  MS_NOUSER = 1 << 31
-+#define MS_NOUSER	MS_NOUSER
- };
- 
- /* Flags that can be altered by MS_REMOUNT  */
--#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_NOATIME \
--		     |MS_NODIRATIME)
-+#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION)
- 
- 
- /* Magic mount flag number. Has to be or-ed to the flag values.  */
-@@ -100,8 +123,10 @@
- #define MNT_FORCE MNT_FORCE
-   MNT_DETACH = 2,		/* Just detach from the tree.  */
- #define MNT_DETACH MNT_DETACH
--  MNT_EXPIRE = 4		/* Mark for expiry.  */
-+  MNT_EXPIRE = 4,		/* Mark for expiry.  */
- #define MNT_EXPIRE MNT_EXPIRE
-+  UMOUNT_NOFOLLOW = 8		/* Don't follow symlink on umount.  */
-+#define UMOUNT_NOFOLLOW UMOUNT_NOFOLLOW
- };
- 
- 
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/remove-eabi-oabi-selection.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/remove-eabi-oabi-selection.patch
deleted file mode 100644
index 8f3464e..0000000
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/remove-eabi-oabi-selection.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-Delivered-To: raj.khem@gmail.com
-Received: by 10.90.86.4 with SMTP id j4cs313309agb;
-        Sat, 8 Jan 2011 16:45:20 -0800 (PST)
-Received: by 10.216.173.7 with SMTP id u7mr612034wel.50.1294533919433;
-        Sat, 08 Jan 2011 16:45:19 -0800 (PST)
-Return-Path: <yann.morin.1998@anciens.enib.fr>
-Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123])
-        by mx.google.com with ESMTP id e10si33752027wer.68.2011.01.08.16.45.19;
-        Sat, 08 Jan 2011 16:45:19 -0800 (PST)
-Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123;
-Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr
-Received: from roazhon.bzh.lan ([90.32.245.227])
-	by mwinf5d24 with ME
-	id tClC1f0024v5z3u03ClJDu; Sun, 09 Jan 2011 01:45:18 +0100
-From: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-To: uclibc@uclibc.org
-Cc: Khem Raj <raj.khem@gmail.com>,
-	Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>,
-	Carmelo AMOROSO <carmelo.amoroso@st.com>
-Subject: [PATCH 7/7] ARM: remove EABI/OABI selection
-Date: Sun,  9 Jan 2011 01:45:10 +0100
-Message-Id: <1294533910-19305-8-git-send-email-yann.morin.1998@anciens.enib.fr>
-X-Mailer: git-send-email 1.7.1
-In-Reply-To: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
-References: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
-
-Rely on the compiler to be properly setup for the default ABI.
-
-When installing-headers, there are two cases:
-- NPTL: no issue, a cross-compiler is already expected
-- LinuxThreads: no issue, EABI/OABI has no impact on installed headers.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-Cc: Khem Raj <raj.khem@gmail.com>
-Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
----
- extra/Configs/Config.arm               |   11 -----------
- libc/sysdeps/linux/arm/Makefile.arch   |    9 +++++++--
- libc/sysdeps/linux/arm/bits/huge_val.h |    4 ++--
- 3 files changed, 9 insertions(+), 15 deletions(-)
-
-Index: git/libc/sysdeps/linux/arm/Makefile.arch
-===================================================================
---- git.orig/libc/sysdeps/linux/arm/Makefile.arch
-+++ git/libc/sysdeps/linux/arm/Makefile.arch
-@@ -24,7 +24,12 @@ ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
- CSRC += posix_fadvise.c posix_fadvise64.c
- endif
- 
--ifeq ($(CONFIG_ARM_EABI),y)
-+# Is our compiler set up for EABI ?
-+IS_EABI:=$(shell $(CC) $(CFLAGS) -x c - -E -dM </dev/null 2>/dev/null \
-+                 |sed -r -e '/^\#[[:space:]]*define[[:space:]]+__ARM_EABI__([[:space:]]+1)?$$/!d; s/.+/y/;' \
-+          )
-+
-+ifeq ($(IS_EABI),y)
- CSRC += aeabi_assert.c aeabi_atexit.c aeabi_errno_addr.c \
- 	aeabi_localeconv.c aeabi_memclr.c aeabi_memcpy.c \
- 	aeabi_memmove.c aeabi_memset.c find_exidx.c
-@@ -37,7 +42,7 @@ else
- CSRC += syscall.c
- endif
- 
--ifeq ($(CONFIG_ARM_EABI),y)
-+ifeq ($(IS_EABI),y)
- libc-static-y += $(ARCH_OUT)/aeabi_lcsts.o $(ARCH_OUT)/aeabi_math.o \
- 	$(ARCH_OUT)/aeabi_sighandlers.o
- libc-nonshared-y += $(ARCH_OUT)/aeabi_lcsts.os $(ARCH_OUT)/aeabi_math.os \
-Index: git/libc/sysdeps/linux/arm/bits/huge_val.h
-===================================================================
---- git.orig/libc/sysdeps/linux/arm/bits/huge_val.h
-+++ git/libc/sysdeps/linux/arm/bits/huge_val.h
-@@ -32,7 +32,7 @@
- # define HUGE_VAL (__extension__ 0x1.0p2047)
- #elif defined __GNUC__
- 
--#ifndef __CONFIG_ARM_EABI__
-+#ifndef __ARM_EABI__
- # define HUGE_VAL \
-   (__extension__							      \
-    ((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; })   \
-@@ -50,7 +50,7 @@
- 
- typedef union { unsigned char __c[8]; double __d; } __huge_val_t;
- 
--#ifndef __CONFIG_ARM_EABI__
-+#ifndef __ARM_EABI__
- # if __BYTE_ORDER == __BIG_ENDIAN
- #  define __HUGE_VAL_bytes	{ 0, 0, 0, 0, 0x7f, 0xf0, 0, 0 }
- # endif
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch
deleted file mode 100644
index 920a669..0000000
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch
+++ /dev/null
@@ -1,215 +0,0 @@
-Delivered-To: raj.khem@gmail.com
-Received: by 10.90.86.4 with SMTP id j4cs313303agb;
-        Sat, 8 Jan 2011 16:45:18 -0800 (PST)
-Received: by 10.227.98.158 with SMTP id q30mr1255804wbn.151.1294533917314;
-        Sat, 08 Jan 2011 16:45:17 -0800 (PST)
-Return-Path: <yann.morin.1998@anciens.enib.fr>
-Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123])
-        by mx.google.com with ESMTP id r3si33749838wbr.54.2011.01.08.16.45.16;
-        Sat, 08 Jan 2011 16:45:17 -0800 (PST)
-Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123;
-Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr
-Received: from roazhon.bzh.lan ([90.32.245.227])
-	by mwinf5d24 with ME
-	id tClC1f0024v5z3u03ClGDS; Sun, 09 Jan 2011 01:45:16 +0100
-From: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-To: uclibc@uclibc.org
-Cc: Khem Raj <raj.khem@gmail.com>,
-	Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>,
-	Carmelo AMOROSO <carmelo.amoroso@st.com>
-Subject: [PATCH 3/7] ARM: remove sub-arch/variants selection from menuconfig
-Date: Sun,  9 Jan 2011 01:45:06 +0100
-Message-Id: <1294533910-19305-4-git-send-email-yann.morin.1998@anciens.enib.fr>
-X-Mailer: git-send-email 1.7.1
-In-Reply-To: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
-References: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
-
-Rely on the compiler to be correctly set up to generate
-appropriate code for the target variant.
-
-This exposes the Thumb option, as it is no longer auto-selected.
-The "Use BX" no longer depends on supported CPU to be selected,
-so it now defaults to 'n' as it shall work by default on CPUs
-that do not have BX.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-Cc: Khem Raj <raj.khem@gmail.com>
-Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
----
- Rules.mak                |   19 -------
- extra/Configs/Config.arm |  125 ++--------------------------------------------
- 2 files changed, 5 insertions(+), 139 deletions(-)
-
-diff --git a/Rules.mak b/Rules.mak
-index 2a16908..09741a6 100644
---- a/Rules.mak
-+++ b/Rules.mak
-@@ -332,25 +332,6 @@ ifeq ($(TARGET_ARCH),arm)
- 	OPTIMIZATION+=-fstrict-aliasing
- 	CPU_CFLAGS-$(ARCH_LITTLE_ENDIAN)+=-mlittle-endian
- 	CPU_CFLAGS-$(ARCH_BIG_ENDIAN)+=-mbig-endian
--	CPU_CFLAGS-$(CONFIG_GENERIC_ARM)+=
--	CPU_CFLAGS-$(CONFIG_ARM610)+=-mtune=arm610 -march=armv3
--	CPU_CFLAGS-$(CONFIG_ARM710)+=-mtune=arm710 -march=armv3
--	CPU_CFLAGS-$(CONFIG_ARM7TDMI)+=-mtune=arm7tdmi -march=armv4t
--	CPU_CFLAGS-$(CONFIG_ARM720T)+=-mtune=arm7tdmi -march=armv4t
--	CPU_CFLAGS-$(CONFIG_ARM920T)+=-mtune=arm9tdmi -march=armv4t
--	CPU_CFLAGS-$(CONFIG_ARM922T)+=-mtune=arm9tdmi -march=armv4t
--	CPU_CFLAGS-$(CONFIG_ARM926T)+=-mtune=arm9e -march=armv5te
--	CPU_CFLAGS-$(CONFIG_ARM10T)+=-mtune=arm10tdmi -march=armv5t
--	CPU_CFLAGS-$(CONFIG_ARM1136JF_S)+=-mtune=arm1136jf-s -march=armv6
--	CPU_CFLAGS-$(CONFIG_ARM1176JZ_S)+=-mtune=arm1176jz-s -march=armv6
--	CPU_CFLAGS-$(CONFIG_ARM1176JZF_S)+=-mtune=arm1176jzf-s -march=armv6
--	CPU_CFLAGS-$(CONFIG_ARM_SA110)+=-mtune=strongarm110 -march=armv4
--	CPU_CFLAGS-$(CONFIG_ARM_SA1100)+=-mtune=strongarm1100 -march=armv4
--	CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=$(call check_gcc,-mtune=xscale,-mtune=strongarm110)
--	CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=-march=armv5te -Wa,-mcpu=xscale
--	CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt
--	CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3
--	CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1
- 	CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb
- endif
- 
-diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm
-index c9c40d4..6c75a00 100644
---- a/extra/Configs/Config.arm
-+++ b/extra/Configs/Config.arm
-@@ -30,129 +30,14 @@ config CONFIG_ARM_EABI
- 
- endchoice
- 
--choice
--	prompt "Target Processor Type"
--	default CONFIG_GENERIC_ARM
--	help
--	  This is the processor type of your CPU. This information is used for
--	  optimizing purposes.  To build a library that will run on all ARMCPU
--	  types (albeit not optimally fast), you can specify "Generic Arm" here.
--	  If you pick anything other than "Generic Arm", there is no guarantee 
--	  that uClibc will even run on anything other than the selected
--	  processor type.
--
--	  Here are the settings recommended for greatest speed:
--	  - "Generic Arm" select this if your compiler is already setup to
--	    optimize things properly, or if you want to run on pretty much
--	    everything, or you just don't much care.
--	  - For anything else, pick the ARM core type that best matches the
--	    cpu you will be using on your device.
--
--	  If you don't know what to do, choose "Generic Arm".
--
--config CONFIG_GENERIC_ARM
--	bool "Generic Arm"
--
--config CONFIG_ARM610
--	bool "Arm 610"
--	select ARCH_HAS_MMU
--
--config CONFIG_ARM710
--	bool "Arm 710"
--	select ARCH_HAS_MMU
--
--config CONFIG_ARM7TDMI
--	bool "Arm 7TDMI"
--	select ARCH_HAS_NO_MMU
--	select HAS_THUMB
--
--config CONFIG_ARM720T
--	bool "Arm 720T"
--	select ARCH_HAS_MMU
--	select HAS_THUMB
--
--config CONFIG_ARM920T
--	bool "Arm 920T"
--	select ARCH_HAS_MMU
--	select HAS_THUMB
--
--config CONFIG_ARM922T
--	bool "Arm 922T"
--	select ARCH_HAS_MMU
--	select HAS_THUMB
--
--config CONFIG_ARM926T
--	bool "Arm 926T"
--	select ARCH_HAS_MMU
--	select HAS_THUMB
--
--config CONFIG_ARM10T
--	bool "Arm 10T"
--	select ARCH_HAS_MMU
--	select HAS_THUMB
--
--config CONFIG_ARM1136JF_S
--	bool "Arm 1136JF-S"
--	select ARCH_HAS_MMU
--	select HAS_THUMB
--
--config CONFIG_ARM1176JZ_S
--	bool "Arm 1176JZ-S"
--	select ARCH_HAS_MMU
--	select HAS_THUMB
--
--config CONFIG_ARM1176JZF_S
--	bool "Arm 1176JZF-S"
--	select ARCH_HAS_MMU
--	select HAS_THUMB
--
--config CONFIG_ARM_CORTEX_M3
--	bool "Arm Cortex-M3"
--	select ARCH_HAS_NO_MMU
--	select FORCE_THUMB
--
--config CONFIG_ARM_CORTEX_M1
--	bool "Arm Cortex-M1"
--	select ARCH_HAS_NO_MMU
--	select FORCE_THUMB
--
--config CONFIG_ARM_SA110
--	bool "Intel StrongArm SA-110"
--	select ARCH_HAS_MMU
--	select HAS_THUMB
--
--config CONFIG_ARM_SA1100
--	bool "Intel StrongArm SA-1100"
--	select ARCH_HAS_MMU
--	select HAS_THUMB
--
--config CONFIG_ARM_XSCALE
--	bool "Intel Xscale"
--	select ARCH_HAS_MMU
--	select HAS_THUMB
--
--config CONFIG_ARM_IWMMXT
--	bool "Intel Xscale With WMMX PXA27x"
--	select ARCH_HAS_MMU
--	select HAS_THUMB
--
--endchoice
--
--config HAS_THUMB
--	bool
--
--config FORCE_THUMB
--	bool
--	select HAS_THUMB
--	select COMPILE_IN_THUMB_MODE
--	select USE_BX
--
- config COMPILE_IN_THUMB_MODE
--	bool
-+	bool "Build using Thumb mode"
-+	select USE_BX
-+	help
-+	  Say 'y' here to force building uClibc in thumb mode.
-+	  Say 'n' to use your compiler's default mode.
- 
- config USE_BX
- 	bool "Use BX in function return"
--	default y
--	depends on HAS_THUMB
- 	help
- 	  Use BX instruction for THUMB aware architectures.
--- 
-1.7.1
-
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/rtld_no.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/rtld_no.patch
deleted file mode 100644
index 30cb7f6..0000000
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/rtld_no.patch
+++ /dev/null
@@ -1,215 +0,0 @@
-Patch is backported from
-http://lists.busybox.net/pipermail/uclibc/2011-March/045004.html
-
-Upstream-Status: Pending
-
-diff --git a/ldso/include/dl-elf.h b/ldso/include/dl-elf.h
-index 7fbb373..7102351 100644
---- a/ldso/include/dl-elf.h
-+++ b/ldso/include/dl-elf.h
-@@ -25,16 +25,18 @@ static __inline__ void _dl_map_cache(void) { }
- static __inline__ void _dl_unmap_cache(void) { }
- #endif
- 
-+#define DL_RESOLVE_SECURE		0x0001
-+#define DL_RESOLVE_NOLOAD		0x0002
- 
- /* Function prototypes for non-static stuff in readelflib1.c */
- extern void _dl_parse_lazy_relocation_information(struct dyn_elf *rpnt,
- 	unsigned long rel_addr, unsigned long rel_size);
- extern int _dl_parse_relocation_information(struct dyn_elf *rpnt,
- 	unsigned long rel_addr, unsigned long rel_size);
--extern struct elf_resolve * _dl_load_shared_library(int secure,
-+extern struct elf_resolve * _dl_load_shared_library(int resolve_flags,
- 	struct dyn_elf **rpnt, struct elf_resolve *tpnt, char *full_libname,
- 	int trace_loaded_objects);
--extern struct elf_resolve * _dl_load_elf_shared_library(int secure,
-+extern struct elf_resolve * _dl_load_elf_shared_library(int resolve_flags,
- 	struct dyn_elf **rpnt, char *libname);
- extern struct elf_resolve *_dl_check_if_named_library_is_loaded(const char *full_libname,
- 	int trace_loaded_objects);
-diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c
-index 2b2d429..6d35bf2 100644
---- a/ldso/ldso/dl-elf.c
-+++ b/ldso/ldso/dl-elf.c
-@@ -132,7 +132,7 @@ _dl_protect_relro (struct elf_resolve *l)
- /* This function's behavior must exactly match that
-  * in uClibc/ldso/util/ldd.c */
- static struct elf_resolve *
--search_for_named_library(const char *name, int secure, const char *path_list,
-+search_for_named_library(const char *name, int resolve_flags, const char *path_list,
- 	struct dyn_elf **rpnt, const char *origin)
- {
- 	char *mylibname;
-@@ -162,7 +162,7 @@ search_for_named_library(const char *name, int secure, const char *path_list,
- 
- 		if (plen >= 7 && _dl_memcmp(p, "$ORIGIN", 7) == 0) {
- 			int olen;
--			if (secure && plen != 7)
-+			if ((resolve_flags & DL_RESOLVE_SECURE) && plen != 7)
- 				continue;
- 			if (origin == NULL)
- 				continue;
-@@ -182,7 +182,7 @@ search_for_named_library(const char *name, int secure, const char *path_list,
- 		_dl_strcat(mylibname, "/");
- 		_dl_strcat(mylibname, name);
- 
--		tpnt = _dl_load_elf_shared_library(secure, rpnt, mylibname);
-+		tpnt = _dl_load_elf_shared_library(resolve_flags, rpnt, mylibname);
- 		if (tpnt != NULL)
- 			return tpnt;
- 	}
-@@ -194,7 +194,7 @@ search_for_named_library(const char *name, int secure, const char *path_list,
- unsigned long _dl_error_number;
- unsigned long _dl_internal_error_number;
- 
--struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
-+struct elf_resolve *_dl_load_shared_library(int resolve_flags, struct dyn_elf **rpnt,
- 	struct elf_resolve *tpnt, char *full_libname, int attribute_unused trace_loaded_objects)
- {
- 	char *pnt;
-@@ -223,7 +223,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
- 
- 	if (libname != full_libname) {
- 		_dl_if_debug_dprint("\ttrying file='%s'\n", full_libname);
--		tpnt1 = _dl_load_elf_shared_library(secure, rpnt, full_libname);
-+		tpnt1 = _dl_load_elf_shared_library(resolve_flags, rpnt, full_libname);
- 		if (tpnt1) {
- 			return tpnt1;
- 		}
-@@ -238,7 +238,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
- 	if (pnt) {
- 		pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
- 		_dl_if_debug_dprint("\tsearching RPATH='%s'\n", pnt);
--		if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt,
-+		if ((tpnt1 = search_for_named_library(libname, resolve_flags, pnt, rpnt,
- 						      tpnt->libname)) != NULL)
- 			return tpnt1;
- 	}
-@@ -247,7 +247,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
- 	/* Check in LD_{ELF_}LIBRARY_PATH, if specified and allowed */
- 	if (_dl_library_path) {
- 		_dl_if_debug_dprint("\tsearching LD_LIBRARY_PATH='%s'\n", _dl_library_path);
--		if ((tpnt1 = search_for_named_library(libname, secure, _dl_library_path, rpnt, NULL)) != NULL)
-+		if ((tpnt1 = search_for_named_library(libname, resolve_flags, _dl_library_path, rpnt, NULL)) != NULL)
- 		{
- 			return tpnt1;
- 		}
-@@ -261,7 +261,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
- 	if (pnt) {
- 		pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
- 		_dl_if_debug_dprint("\tsearching RUNPATH='%s'\n", pnt);
--		if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt, NULL)) != NULL)
-+		if ((tpnt1 = search_for_named_library(libname, resolve_flags, pnt, rpnt, NULL)) != NULL)
- 			return tpnt1;
- 	}
- #endif
-@@ -284,7 +284,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
- 			     || libent[i].flags == LIB_ELF_LIBC0
- 			     ||	libent[i].flags == LIB_ELF_LIBC5)
- 			 && _dl_strcmp(libname, strs + libent[i].sooffset) == 0
--			 && (tpnt1 = _dl_load_elf_shared_library(secure, rpnt, strs + libent[i].liboffset))
-+			 && (tpnt1 = _dl_load_elf_shared_library(resolve_flags, rpnt, strs + libent[i].liboffset))
- 			) {
- 				return tpnt1;
- 			}
-@@ -295,14 +295,14 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
- 	/* Look for libraries wherever the shared library loader
- 	 * was installed */
- 	_dl_if_debug_dprint("\tsearching ldso dir='%s'\n", _dl_ldsopath);
--	tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath, rpnt, NULL);
-+	tpnt1 = search_for_named_library(libname, resolve_flags, _dl_ldsopath, rpnt, NULL);
- 	if (tpnt1 != NULL)
- 		return tpnt1;
- 
- 	/* Lastly, search the standard list of paths for the library.
- 	   This list must exactly match the list in uClibc/ldso/util/ldd.c */
- 	_dl_if_debug_dprint("\tsearching full lib path list\n");
--	tpnt1 = search_for_named_library(libname, secure,
-+	tpnt1 = search_for_named_library(libname, resolve_flags,
- 					UCLIBC_RUNTIME_PREFIX "lib:"
- 					UCLIBC_RUNTIME_PREFIX "usr/lib"
- #ifndef __LDSO_CACHE_SUPPORT__
-@@ -329,7 +329,7 @@ goof:
-  * are required.
-  */
- 
--struct elf_resolve *_dl_load_elf_shared_library(int secure,
-+struct elf_resolve *_dl_load_elf_shared_library(int resolve_flags,
- 	struct dyn_elf **rpnt, char *libname)
- {
- 	ElfW(Ehdr) *epnt;
-@@ -368,7 +368,7 @@ struct elf_resolve *_dl_load_elf_shared_library(int secure,
- 	}
- 	/* If we are in secure mode (i.e. a setu/gid binary using LD_PRELOAD),
- 	   we don't load the library if it isn't setuid. */
--	if (secure) {
-+	if (resolve_flags & DL_RESOLVE_SECURE) {
- 		if (!(st.st_mode & S_ISUID)) {
- 			_dl_close(infile);
- 			return NULL;
-@@ -384,6 +384,10 @@ struct elf_resolve *_dl_load_elf_shared_library(int secure,
- 			return tpnt;
- 		}
- 	}
-+	if (resolve_flags & DL_RESOLVE_NOLOAD) {
-+		_dl_close(infile);
-+		return NULL;
-+	}
- 	header = _dl_mmap((void *) 0, _dl_pagesize, PROT_READ | PROT_WRITE,
- 			MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZE, -1, 0);
- 	if (_dl_mmap_check_error(header)) {
-diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c
-index 9423670..b71af34 100644
---- a/ldso/ldso/ldso.c
-+++ b/ldso/ldso/ldso.c
-@@ -646,7 +646,9 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr,
- 			if (!_dl_secure || _dl_strchr(str, '/') == NULL) {
- 				_dl_if_debug_dprint("\tfile='%s';  needed by '%s'\n", str, _dl_progname);
- 
--				tpnt1 = _dl_load_shared_library(_dl_secure, &rpnt, NULL, str, trace_loaded_objects);
-+				tpnt1 = _dl_load_shared_library(
-+					_dl_secure ? DL_RESOLVE_SECURE : 0,
-+					&rpnt, NULL, str, trace_loaded_objects);
- 				if (!tpnt1) {
- #ifdef __LDSO_LDD_SUPPORT__
- 					if (trace_loaded_objects)
-diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c
-index 68cd579..edf38d2 100644
---- a/ldso/libdl/libdl.c
-+++ b/ldso/libdl/libdl.c
-@@ -288,7 +288,7 @@ void *dlopen(const char *libname, int flag)
- #endif
- 
- 	/* A bit of sanity checking... */
--	if (!(flag & (RTLD_LAZY|RTLD_NOW))) {
-+	if (!(flag & (RTLD_LAZY|RTLD_NOW|RTLD_NOLOAD))) {
- 		_dl_error_number = LD_BAD_HANDLE;
- 		return NULL;
- 	}
-@@ -358,8 +358,9 @@ void *dlopen(const char *libname, int flag)
- 	/* Try to load the specified library */
- 	_dl_if_debug_print("Trying to dlopen '%s', RTLD_GLOBAL:%d RTLD_NOW:%d\n",
- 			(char*)libname, (flag & RTLD_GLOBAL ? 1:0), (now_flag & RTLD_NOW ? 1:0));
--	tpnt = _dl_load_shared_library(0, &rpnt, tfrom, (char*)libname, 0);
- 
-+	tpnt = _dl_load_shared_library((flag & RTLD_NOLOAD) ? DL_RESOLVE_NOLOAD : 0,
-+					&rpnt, tfrom, (char*)libname, 0);
- 	if (tpnt == NULL) {
- 		_dl_unmap_cache();
- 		return NULL;
-diff --git a/libc/sysdeps/linux/common/bits/dlfcn.h b/libc/sysdeps/linux/common/bits/dlfcn.h
-index 4bfbbff..47b42ad 100644
---- a/libc/sysdeps/linux/common/bits/dlfcn.h
-+++ b/libc/sysdeps/linux/common/bits/dlfcn.h
-@@ -24,9 +24,9 @@
- /* The MODE argument to `dlopen' contains one of the following: */
- #define RTLD_LAZY	0x00001	/* Lazy function call binding.  */
- #define RTLD_NOW	0x00002	/* Immediate function call binding.  */
--#if 0 /* uClibc doesnt support these */
--#define	RTLD_BINDING_MASK   0x3	/* Mask of binding time value.  */
-+#define RTLD_BINDING_MASK   0x3	/* Mask of binding time value.  */
- #define RTLD_NOLOAD	0x00004	/* Do not load the object.  */
-+#if 0 /* uClibc doesnt support these */
- #define RTLD_DEEPBIND	0x00008	/* Use deep binding.  */
- #endif
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/select-force-thumb.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/select-force-thumb.patch
deleted file mode 100644
index b19408f..0000000
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/select-force-thumb.patch
+++ /dev/null
@@ -1,172 +0,0 @@
-Delivered-To: raj.khem@gmail.com
-Received: by 10.90.86.4 with SMTP id j4cs313301agb;
-        Sat, 8 Jan 2011 16:45:17 -0800 (PST)
-Received: by 10.216.186.82 with SMTP id v60mr20017574wem.56.1294533916559;
-        Sat, 08 Jan 2011 16:45:16 -0800 (PST)
-Return-Path: <yann.morin.1998@anciens.enib.fr>
-Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123])
-        by mx.google.com with ESMTP id o13si33755824wee.56.2011.01.08.16.45.16;
-        Sat, 08 Jan 2011 16:45:16 -0800 (PST)
-Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123;
-Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr
-Received: from roazhon.bzh.lan ([90.32.245.227])
-	by mwinf5d24 with ME
-	id tClC1f0024v5z3u03ClFDL; Sun, 09 Jan 2011 01:45:16 +0100
-From: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-To: uclibc@uclibc.org
-Cc: Khem Raj <raj.khem@gmail.com>,
-	Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>,
-	Carmelo AMOROSO <carmelo.amoroso@st.com>
-Subject: [PATCH 2/7] ARM: introduce blind options to select & force THUMB mode
-Date: Sun,  9 Jan 2011 01:45:05 +0100
-Message-Id: <1294533910-19305-3-git-send-email-yann.morin.1998@anciens.enib.fr>
-X-Mailer: git-send-email 1.7.1
-In-Reply-To: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
-References: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
-
-Add three new blind options to set use of Thumb mode:
-- COMPILE_IN_THUMB_MODE
-  - if set, CFLAGS will contain -mthumb
-  - if unset, the compiler's default is used
-- HAS_THUMB
-  - CPUS with Thumb instruction set can select this
-  - use of BX depends on this
-- FORCE_THUMB
-  - CPUs that are Thumb-only must select this
-  - this selects: HAS_THUMB, COMPILE_IN_THUMB_MODE and USE_BX
-
-Also, remove leading space in Rules.mak.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-Cc: Khem Raj <raj.khem@gmail.com>
-Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
----
- Rules.mak                |    7 ++++---
- extra/Configs/Config.arm |   31 ++++++++++++++++++++++++++++---
- 2 files changed, 32 insertions(+), 6 deletions(-)
-
-diff --git a/Rules.mak b/Rules.mak
-index eecdc64..2a16908 100644
---- a/Rules.mak
-+++ b/Rules.mak
-@@ -348,9 +348,10 @@ ifeq ($(TARGET_ARCH),arm)
- 	CPU_CFLAGS-$(CONFIG_ARM_SA1100)+=-mtune=strongarm1100 -march=armv4
- 	CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=$(call check_gcc,-mtune=xscale,-mtune=strongarm110)
- 	CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=-march=armv5te -Wa,-mcpu=xscale
-- 	CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt
-- 	CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3 -mthumb
-- 	CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1 -mthumb
-+	CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt
-+	CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3
-+	CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1
-+	CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb
- endif
- 
- ifeq ($(TARGET_ARCH),mips)
-diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm
-index 3b90e67..c9c40d4 100644
---- a/extra/Configs/Config.arm
-+++ b/extra/Configs/Config.arm
-@@ -64,70 +64,95 @@ config CONFIG_ARM710
- config CONFIG_ARM7TDMI
- 	bool "Arm 7TDMI"
- 	select ARCH_HAS_NO_MMU
-+	select HAS_THUMB
- 
- config CONFIG_ARM720T
- 	bool "Arm 720T"
- 	select ARCH_HAS_MMU
-+	select HAS_THUMB
- 
- config CONFIG_ARM920T
- 	bool "Arm 920T"
- 	select ARCH_HAS_MMU
-+	select HAS_THUMB
- 
- config CONFIG_ARM922T
- 	bool "Arm 922T"
- 	select ARCH_HAS_MMU
-+	select HAS_THUMB
- 
- config CONFIG_ARM926T
- 	bool "Arm 926T"
- 	select ARCH_HAS_MMU
-+	select HAS_THUMB
- 
- config CONFIG_ARM10T
- 	bool "Arm 10T"
- 	select ARCH_HAS_MMU
-+	select HAS_THUMB
- 
- config CONFIG_ARM1136JF_S
- 	bool "Arm 1136JF-S"
- 	select ARCH_HAS_MMU
-+	select HAS_THUMB
- 
- config CONFIG_ARM1176JZ_S
- 	bool "Arm 1176JZ-S"
- 	select ARCH_HAS_MMU
-+	select HAS_THUMB
- 
- config CONFIG_ARM1176JZF_S
- 	bool "Arm 1176JZF-S"
- 	select ARCH_HAS_MMU
-+	select HAS_THUMB
- 
- config CONFIG_ARM_CORTEX_M3
- 	bool "Arm Cortex-M3"
- 	select ARCH_HAS_NO_MMU
--	select USE_BX
-+	select FORCE_THUMB
- 
- config CONFIG_ARM_CORTEX_M1
- 	bool "Arm Cortex-M1"
- 	select ARCH_HAS_NO_MMU
--	select USE_BX
-+	select FORCE_THUMB
- 
- config CONFIG_ARM_SA110
- 	bool "Intel StrongArm SA-110"
- 	select ARCH_HAS_MMU
-+	select HAS_THUMB
- 
- config CONFIG_ARM_SA1100
- 	bool "Intel StrongArm SA-1100"
- 	select ARCH_HAS_MMU
-+	select HAS_THUMB
- 
- config CONFIG_ARM_XSCALE
- 	bool "Intel Xscale"
- 	select ARCH_HAS_MMU
-+	select HAS_THUMB
- 
- config CONFIG_ARM_IWMMXT
- 	bool "Intel Xscale With WMMX PXA27x"
- 	select ARCH_HAS_MMU
-+	select HAS_THUMB
- 
- endchoice
- 
-+config HAS_THUMB
-+	bool
-+
-+config FORCE_THUMB
-+	bool
-+	select HAS_THUMB
-+	select COMPILE_IN_THUMB_MODE
-+	select USE_BX
-+
-+config COMPILE_IN_THUMB_MODE
-+	bool
-+
- config USE_BX
- 	bool "Use BX in function return"
- 	default y
--	depends on !CONFIG_GENERIC_ARM && !CONFIG_ARM610 && !CONFIG_ARM710
-+	depends on HAS_THUMB
- 	help
- 	  Use BX instruction for THUMB aware architectures.
--- 
-1.7.1
-
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/sync_file_range2.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/sync_file_range2.patch
deleted file mode 100644
index 4b85a43..0000000
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/sync_file_range2.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-Some architectures like ppc, arm use aligned 64 bit inputs so a register is not wasted
-this then uses __NR_sync_file_range2 syscall. Implement is
-
-Singed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
-
-Index: git/libc/sysdeps/linux/common/sync_file_range.c
-===================================================================
---- git.orig/libc/sysdeps/linux/common/sync_file_range.c	2011-07-19 14:23:35.000000000 -0700
-+++ git/libc/sysdeps/linux/common/sync_file_range.c	2011-07-19 15:04:38.631808666 -0700
-@@ -11,7 +11,8 @@
- #if defined __USE_GNU
- #include <fcntl.h>
- 
--#if defined __NR_sync_file_range && defined __UCLIBC_HAS_LFS__
-+#if defined __UCLIBC_HAS_LFS__
-+#if defined __NR_sync_file_range
- #define __NR___syscall_sync_file_range __NR_sync_file_range
- static __inline__ _syscall6(int, __syscall_sync_file_range, int, fd,
- 		off_t, offset_hi, off_t, offset_lo,
-@@ -23,5 +24,23 @@
- 		__LONG_LONG_PAIR((long)(nbytes >> 32), (long)(nbytes & 0xffffffff)),
- 		flags);
- }
--#endif
--#endif
-+#elif defined __NR_sync_file_range2
-+#define __NR___syscall_sync_file_range2 __NR_sync_file_range2
-+static __inline__ _syscall6(int, __syscall_sync_file_range2, int, fd,
-+		unsigned int, flags, off_t, offset_hi, off_t, offset_lo,
-+		off_t, nbytes_hi, off_t, nbytes_lo)
-+int sync_file_range(int fd, off64_t offset, off64_t nbytes, unsigned int flags)
-+{
-+	return __syscall_sync_file_range2(fd, flags,
-+		__LONG_LONG_PAIR((long)(offset >> 32), (long)(offset & 0xffffffff)),
-+		__LONG_LONG_PAIR((long)(nbytes >> 32), (long)(nbytes & 0xffffffff)));
-+}
-+#else
-+int sync_file_range(int fd, off64_t offset, off64_t nbytes, unsigned int flags)
-+{
-+	__set_errno (ENOSYS);
-+	return -1
-+}
-+#endif /* __NR_sync_file_range */
-+#endif /* __UCLIBC_HAS_LFS__ */
-+#endif /* __USE_GNU */
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/transform-eabi-oabi-choice.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/transform-eabi-oabi-choice.patch
deleted file mode 100644
index 82970ca..0000000
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/transform-eabi-oabi-choice.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-Delivered-To: raj.khem@gmail.com
-Received: by 10.90.86.4 with SMTP id j4cs313305agb;
-        Sat, 8 Jan 2011 16:45:19 -0800 (PST)
-Received: by 10.216.153.210 with SMTP id f60mr573848wek.114.1294533918335;
-        Sat, 08 Jan 2011 16:45:18 -0800 (PST)
-Return-Path: <yann.morin.1998@anciens.enib.fr>
-Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123])
-        by mx.google.com with ESMTP id n4si33737071wej.152.2011.01.08.16.45.17;
-        Sat, 08 Jan 2011 16:45:18 -0800 (PST)
-Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123;
-Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr
-Received: from roazhon.bzh.lan ([90.32.245.227])
-	by mwinf5d24 with ME
-	id tClC1f0024v5z3u03ClGDX; Sun, 09 Jan 2011 01:45:17 +0100
-From: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-To: uclibc@uclibc.org
-Cc: Khem Raj <raj.khem@gmail.com>,
-	Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>,
-	Carmelo AMOROSO <carmelo.amoroso@st.com>
-Subject: [PATCH 4/7] ARM: transform the EABI/OABI choice into a boolean
-Date: Sun,  9 Jan 2011 01:45:07 +0100
-Message-Id: <1294533910-19305-5-git-send-email-yann.morin.1998@anciens.enib.fr>
-X-Mailer: git-send-email 1.7.1
-In-Reply-To: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
-References: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
-
-The CONFIG_ARM_OABI option is never used.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-Cc: Khem Raj <raj.khem@gmail.com>
-Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
----
- extra/Configs/Config.arm |   23 ++++++++---------------
- 1 files changed, 8 insertions(+), 15 deletions(-)
-
-Index: git/extra/Configs/Config.arm
-===================================================================
---- git.orig/extra/Configs/Config.arm
-+++ git/extra/Configs/Config.arm
-@@ -12,23 +12,16 @@ config FORCE_OPTIONS_FOR_ARCH
- 	default y
- 	select ARCH_ANY_ENDIAN
- 
--choice
--	prompt "Target ABI"
--	default CONFIG_ARM_EABI
-+config CONFIG_ARM_EABI
-+	bool "Build for EABI"
- 	help
--	  If you choose "EABI" here, functions and constants required by the
--	  ARM EABI will be built into the library.  You should choose "EABI"
-+	  If you say 'y' here, functions and constants required by the
-+	  ARM EABI will be built into the library.  You should say 'y'
- 	  if your compiler uses the ARM EABI, in which case you will also
--	  need a kernel supporting the EABI system call interface, or "OABI"
--	  for a compiler using the old Linux ABI.
--
--config CONFIG_ARM_OABI
--	bool "OABI"
--
--config CONFIG_ARM_EABI
--	bool "EABI"
-+	  need a kernel supporting the EABI system call interface.
- 
--endchoice
-+	  If you say 'n' here, then the library will be built for the
-+	  old Linux ABI.
- 
- config COMPILE_IN_THUMB_MODE
- 	bool "Build using Thumb mode"
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-arm-ftruncate64.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-arm-ftruncate64.patch
deleted file mode 100644
index 504d37b..0000000
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-arm-ftruncate64.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: uclibc-0.9.29/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
-===================================================================
---- uclibc-0.9.29.orig/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
-+++ uclibc-0.9.29/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
-@@ -38,4 +38,8 @@
- /* define if target supports IEEE signed zero floats */
- #define __UCLIBC_HAVE_SIGNED_ZERO__
- 
-+#ifdef __ARM_EABI__
-+# define __UCLIBC_TRUNCATE64_HAS_4_ARGS__
-+#endif
-+
- #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_scheduler_update.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_scheduler_update.patch
deleted file mode 100644
index 78401bd..0000000
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_scheduler_update.patch
+++ /dev/null
@@ -1,455 +0,0 @@
-From 2becc16ecbef71c496644d9dc6cbd7383d7cdca3 Mon Sep 17 00:00:00 2001
-From: Henning Heinold <heinold@inf.fu-berlin.de>
-Date: Sat, 4 Jun 2011 21:21:41 +0200
-Subject: [PATCH 1/2] libc: updates the linux scheduler functions, most stuff
- was taken from the eglibc
-
-
-Signed-off-by: Henning Heinold <heinold@inf.fu-berlin.de>
----
- include/sched.h                            |   52 ++++++++++++----
- libc/sysdeps/linux/common/Makefile.in      |    4 +-
- libc/sysdeps/linux/common/bits/sched.h     |   96 +++++++++++++++++++++++-----
- libc/sysdeps/linux/common/sched_cpualloc.c |   27 ++++++++
- libc/sysdeps/linux/common/sched_cpucount.c |   60 +++++++++++++++++
- libc/sysdeps/linux/common/sched_cpufree.c  |   27 ++++++++
- libc/sysdeps/linux/common/sched_getcpu.c   |   37 +++++++++++
- libc/sysdeps/linux/common/unshare.c        |   12 ++++
- 8 files changed, 286 insertions(+), 29 deletions(-)
- create mode 100644 libc/sysdeps/linux/common/sched_cpualloc.c
- create mode 100644 libc/sysdeps/linux/common/sched_cpucount.c
- create mode 100644 libc/sysdeps/linux/common/sched_cpufree.c
- create mode 100644 libc/sysdeps/linux/common/sched_getcpu.c
- create mode 100644 libc/sysdeps/linux/common/unshare.c
-
-diff --git a/include/sched.h b/include/sched.h
-index 0d110c3..e265b84 100644
---- a/include/sched.h
-+++ b/include/sched.h
-@@ -1,5 +1,5 @@
- /* Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface.
--   Copyright (C) 1996,1997,1999,2001-2003,2004 Free Software Foundation, Inc.
-+   Copyright (C) 1996,1997,1999,2001-2004,2007 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -25,6 +25,9 @@
- /* Get type definitions.  */
- #include <bits/types.h>
- 
-+#define __need_size_t
-+#include <stddef.h>
-+
- #define __need_timespec
- #include <time.h>
- 
-@@ -65,11 +68,42 @@ extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
- 
- #if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Access macros for `cpu_set'.  */
--#define CPU_SETSIZE __CPU_SETSIZE
--#define CPU_SET(cpu, cpusetp)	__CPU_SET (cpu, cpusetp)
--#define CPU_CLR(cpu, cpusetp)	__CPU_CLR (cpu, cpusetp)
--#define CPU_ISSET(cpu, cpusetp)	__CPU_ISSET (cpu, cpusetp)
--#define CPU_ZERO(cpusetp)	__CPU_ZERO (cpusetp)
-+# define CPU_SETSIZE __CPU_SETSIZE
-+# define CPU_SET(cpu, cpusetp)	 __CPU_SET_S (cpu, sizeof (cpu_set_t), cpusetp)
-+# define CPU_CLR(cpu, cpusetp)	 __CPU_CLR_S (cpu, sizeof (cpu_set_t), cpusetp)
-+# define CPU_ISSET(cpu, cpusetp) __CPU_ISSET_S (cpu, sizeof (cpu_set_t), \
-+						cpusetp)
-+# define CPU_ZERO(cpusetp)	 __CPU_ZERO_S (sizeof (cpu_set_t), cpusetp)
-+# define CPU_COUNT(cpusetp)	 __CPU_COUNT_S (sizeof (cpu_set_t), cpusetp)
-+
-+# define CPU_SET_S(cpu, setsize, cpusetp)   __CPU_SET_S (cpu, setsize, cpusetp)
-+# define CPU_CLR_S(cpu, setsize, cpusetp)   __CPU_CLR_S (cpu, setsize, cpusetp)
-+# define CPU_ISSET_S(cpu, setsize, cpusetp) __CPU_ISSET_S (cpu, setsize, \
-+							   cpusetp)
-+# define CPU_ZERO_S(setsize, cpusetp)	    __CPU_ZERO_S (setsize, cpusetp)
-+# define CPU_COUNT_S(setsize, cpusetp)	    __CPU_COUNT_S (setsize, cpusetp)
-+
-+# define CPU_EQUAL(cpusetp1, cpusetp2) \
-+  __CPU_EQUAL_S (sizeof (cpu_set_t), cpusetp1, cpusetp2)
-+# define CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \
-+  __CPU_EQUAL_S (setsize, cpusetp1, cpusetp2)
-+
-+# define CPU_AND(destset, srcset1, srcset2) \
-+  __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, &)
-+# define CPU_OR(destset, srcset1, srcset2) \
-+  __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, |)
-+# define CPU_XOR(destset, srcset1, srcset2) \
-+  __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, ^)
-+# define CPU_AND_S(setsize, destset, srcset1, srcset2) \
-+  __CPU_OP_S (setsize, destset, srcset1, srcset2, &)
-+# define CPU_OR_S(setsize, destset, srcset1, srcset2) \
-+  __CPU_OP_S (setsize, destset, srcset1, srcset2, |)
-+# define CPU_XOR_S(setsize, destset, srcset1, srcset2) \
-+  __CPU_OP_S (setsize, destset, srcset1, srcset2, ^)
-+
-+# define CPU_ALLOC_SIZE(count) __CPU_ALLOC_SIZE (count)
-+# define CPU_ALLOC(count) __CPU_ALLOC (count)
-+# define CPU_FREE(cpuset) __CPU_FREE (cpuset)
- 
- 
- /* Set the CPU affinity for a task */
-@@ -79,12 +113,6 @@ extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
- /* Get the CPU affinity for a task */
- extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
- 			      cpu_set_t *__cpuset) __THROW;
--
--extern int __clone (int (*__fn) (void *__arg), void *__child_stack,
--		    int __flags, void *__arg, ...);
--extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
--		     size_t __child_stack_size, int __flags, void *__arg, ...);
--
- #endif
- 
- __END_DECLS
-diff --git a/libc/sysdeps/linux/common/Makefile.in b/libc/sysdeps/linux/common/Makefile.in
-index 8f936ff..cb8c153 100644
---- a/libc/sysdeps/linux/common/Makefile.in
-+++ b/libc/sysdeps/linux/common/Makefile.in
-@@ -22,9 +22,11 @@ CSRC-$(UCLIBC_LINUX_SPECIFIC) += capget.c capset.c inotify.c ioperm.c iopl.c \
- 	modify_ldt.c pipe2.c personality.c ppoll.c prctl.c \
- 	readahead.c reboot.c \
- 	remap_file_pages.c sched_getaffinity.c sched_setaffinity.c \
-+	sched_cpualloc.c sched_cpucount.c sched_cpufree.c \
- 	sendfile64.c sendfile.c setfsgid.c setfsuid.c setresuid.c \
- 	splice.c vmsplice.c tee.c signalfd.c swapoff.c swapon.c \
--	sync_file_range.c sysctl.c sysinfo.c timerfd.c uselib.c vhangup.c
-+	sync_file_range.c sysctl.c sysinfo.c timerfd.c unshare.c \
-+	uselib.c vhangup.c
- # NPTL needs these internally: madvise.c
- CSRC-$(findstring y,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_THREADS_NATIVE)) += madvise.c
- ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
-diff --git a/libc/sysdeps/linux/common/bits/sched.h b/libc/sysdeps/linux/common/bits/sched.h
-index b48a0c8..fea66a8 100644
---- a/libc/sysdeps/linux/common/bits/sched.h
-+++ b/libc/sysdeps/linux/common/bits/sched.h
-@@ -1,6 +1,7 @@
- /* Definitions of constants and data structure for POSIX 1003.1b-1993
-    scheduling interface.
--   Copyright (C) 1996-1999,2001-2003,2005,2006 Free Software Foundation, Inc.
-+   Copyright (C) 1996-1999,2001-2003,2005,2006,2007,2008
-+   Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -58,7 +59,13 @@
- 				      force CLONE_PTRACE on this clone.  */
- # define CLONE_CHILD_SETTID 0x01000000 /* Store TID in userlevel buffer in
- 					  the child.  */
--# define CLONE_STOPPED	0x02000000 /* Start in stopped state.  */
-+# define CLONE_STOPPED 0x02000000 /* Start in stopped state.  */
-+# define CLONE_NEWUTS	0x04000000	/* New utsname group.  */
-+# define CLONE_NEWIPC	0x08000000	/* New ipcs.  */
-+# define CLONE_NEWUSER	0x10000000	/* New user namespace.  */
-+# define CLONE_NEWPID	0x20000000	/* New pid namespace.  */
-+# define CLONE_NEWNET	0x40000000	/* New network namespace.  */
-+# define CLONE_IO	0x80000000	/* Clone I/O context.  */
- #endif
- 
- /* The official definition.  */
-@@ -74,10 +81,11 @@ __BEGIN_DECLS
- extern int clone (int (*__fn) (void *__arg), void *__child_stack,
- 		  int __flags, void *__arg, ...) __THROW;
- 
--#if 0
- /* Unshare the specified resources.  */
- extern int unshare (int __flags) __THROW;
--#endif
-+
-+/* Get index of currently used CPU.  */
-+extern int sched_getcpu (void) __THROW;
- #endif
- 
- __END_DECLS
-@@ -102,7 +110,7 @@ struct __sched_param
- # define __CPU_SETSIZE	1024
- # define __NCPUBITS	(8 * sizeof (__cpu_mask))
- 
--/* Type for array elements in 'cpu_set'.  */
-+/* Type for array elements in 'cpu_set_t'.  */
- typedef unsigned long int __cpu_mask;
- 
- /* Basic access functions.  */
-@@ -116,17 +124,73 @@ typedef struct
- } cpu_set_t;
- 
- /* Access functions for CPU masks.  */
--# define __CPU_ZERO(cpusetp) \
-+# define __CPU_ZERO_S(setsize, cpusetp) \
-   do {									      \
--    unsigned int __i;							      \
--    cpu_set_t *__arr = (cpusetp);					      \
--    for (__i = 0; __i < sizeof (cpu_set_t) / sizeof (__cpu_mask); ++__i)      \
--      __arr->__bits[__i] = 0;						      \
-+    size_t __i;								      \
-+    size_t __imax = (setsize) / sizeof (__cpu_mask);			      \
-+    __cpu_mask *__bits = (cpusetp)->__bits;				      \
-+    for (__i = 0; __i < __imax; ++__i)					      \
-+      __bits[__i] = 0;							      \
-   } while (0)
--# define __CPU_SET(cpu, cpusetp) \
--  ((cpusetp)->__bits[__CPUELT (cpu)] |= __CPUMASK (cpu))
--# define __CPU_CLR(cpu, cpusetp) \
--  ((cpusetp)->__bits[__CPUELT (cpu)] &= ~__CPUMASK (cpu))
--# define __CPU_ISSET(cpu, cpusetp) \
--  (((cpusetp)->__bits[__CPUELT (cpu)] & __CPUMASK (cpu)) != 0)
-+# define __CPU_SET_S(cpu, setsize, cpusetp) \
-+  (__extension__							      \
-+   ({ size_t __cpu = (cpu);						      \
-+      __cpu < 8 * (setsize)						      \
-+      ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]		      \
-+	 |= __CPUMASK (__cpu))						      \
-+      : 0; }))
-+# define __CPU_CLR_S(cpu, setsize, cpusetp) \
-+  (__extension__							      \
-+   ({ size_t __cpu = (cpu);						      \
-+      __cpu < 8 * (setsize)						      \
-+      ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]		      \
-+	 &= ~__CPUMASK (__cpu))						      \
-+      : 0; }))
-+# define __CPU_ISSET_S(cpu, setsize, cpusetp) \
-+  (__extension__							      \
-+   ({ size_t __cpu = (cpu);						      \
-+      __cpu < 8 * (setsize)						      \
-+      ? ((((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]	      \
-+	  & __CPUMASK (__cpu))) != 0					      \
-+      : 0; }))
-+
-+# define __CPU_COUNT_S(setsize, cpusetp) \
-+  __sched_cpucount (setsize, cpusetp)
-+
-+# define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \
-+  (__extension__							      \
-+   ({ __cpu_mask *__arr1 = (cpusetp1)->__bits;				      \
-+      __cpu_mask *__arr2 = (cpusetp2)->__bits;				      \
-+      size_t __imax = (setsize) / sizeof (__cpu_mask);			      \
-+      size_t __i;							      \
-+      for (__i = 0; __i < __imax; ++__i)				      \
-+	if (__arr1[__i] != __arr2[__i])					      \
-+	  break;							      \
-+      __i == __imax; }))
-+
-+# define __CPU_OP_S(setsize, destset, srcset1, srcset2, op) \
-+  (__extension__							      \
-+   ({ cpu_set_t *__dest = (destset);					      \
-+      __cpu_mask *__arr1 = (srcset1)->__bits;				      \
-+      __cpu_mask *__arr2 = (srcset2)->__bits;				      \
-+      size_t __imax = (setsize) / sizeof (__cpu_mask);			      \
-+      size_t __i;							      \
-+      for (__i = 0; __i < __imax; ++__i)				      \
-+	((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op __arr2[__i];    \
-+      __dest; }))
-+
-+# define __CPU_ALLOC_SIZE(count) \
-+  ((((count) + __NCPUBITS - 1) / __NCPUBITS) * sizeof (__cpu_mask))
-+# define __CPU_ALLOC(count) __sched_cpualloc (count)
-+# define __CPU_FREE(cpuset) __sched_cpufree (cpuset)
-+
-+__BEGIN_DECLS
-+
-+extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
-+  __THROW;
-+extern cpu_set_t *__sched_cpualloc (size_t __count) __THROW __wur;
-+extern void __sched_cpufree (cpu_set_t *__set) __THROW;
-+
-+__END_DECLS
-+
- #endif
-diff --git a/libc/sysdeps/linux/common/sched_cpualloc.c b/libc/sysdeps/linux/common/sched_cpualloc.c
-new file mode 100644
-index 0000000..2642a80
---- /dev/null
-+++ b/libc/sysdeps/linux/common/sched_cpualloc.c
-@@ -0,0 +1,27 @@
-+/* Copyright (C) 2007 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <sched.h>
-+#include <stdlib.h>
-+
-+
-+cpu_set_t *
-+__sched_cpualloc (size_t count)
-+{
-+  return malloc (CPU_ALLOC_SIZE (count));
-+}
-diff --git a/libc/sysdeps/linux/common/sched_cpucount.c b/libc/sysdeps/linux/common/sched_cpucount.c
-new file mode 100644
-index 0000000..331c0b8
---- /dev/null
-+++ b/libc/sysdeps/linux/common/sched_cpucount.c
-@@ -0,0 +1,60 @@
-+/* Copyright (C) 2007 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <limits.h>
-+#include <sched.h>
-+
-+
-+int
-+__sched_cpucount (size_t setsize, const cpu_set_t *setp)
-+{
-+  int s = 0;
-+  const __cpu_mask *p = setp->__bits;
-+  const __cpu_mask *end = &setp->__bits[setsize / sizeof (__cpu_mask)];
-+
-+  while (p < end)
-+    {
-+      __cpu_mask l = *p++;
-+
-+#ifdef POPCNT
-+      s += POPCNT (l);
-+#else
-+      if (l == 0)
-+	continue;
-+
-+# if LONG_BIT > 32
-+      l = (l & 0x5555555555555555ul) + ((l >> 1) & 0x5555555555555555ul);
-+      l = (l & 0x3333333333333333ul) + ((l >> 2) & 0x3333333333333333ul);
-+      l = (l & 0x0f0f0f0f0f0f0f0ful) + ((l >> 4) & 0x0f0f0f0f0f0f0f0ful);
-+      l = (l & 0x00ff00ff00ff00fful) + ((l >> 8) & 0x00ff00ff00ff00fful);
-+      l = (l & 0x0000ffff0000fffful) + ((l >> 16) & 0x0000ffff0000fffful);
-+      l = (l & 0x00000000fffffffful) + ((l >> 32) & 0x00000000fffffffful);
-+# else
-+      l = (l & 0x55555555ul) + ((l >> 1) & 0x55555555ul);
-+      l = (l & 0x33333333ul) + ((l >> 2) & 0x33333333ul);
-+      l = (l & 0x0f0f0f0ful) + ((l >> 4) & 0x0f0f0f0ful);
-+      l = (l & 0x00ff00fful) + ((l >> 8) & 0x00ff00fful);
-+      l = (l & 0x0000fffful) + ((l >> 16) & 0x0000fffful);
-+# endif
-+
-+      s += l;
-+#endif
-+    }
-+
-+  return s;
-+}
-diff --git a/libc/sysdeps/linux/common/sched_cpufree.c b/libc/sysdeps/linux/common/sched_cpufree.c
-new file mode 100644
-index 0000000..dd4c613
---- /dev/null
-+++ b/libc/sysdeps/linux/common/sched_cpufree.c
-@@ -0,0 +1,27 @@
-+/* Copyright (C) 2007 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <sched.h>
-+#include <stdlib.h>
-+
-+
-+void
-+__sched_cpufree (cpu_set_t *set)
-+{
-+  free (set);
-+}
-diff --git a/libc/sysdeps/linux/common/sched_getcpu.c b/libc/sysdeps/linux/common/sched_getcpu.c
-new file mode 100644
-index 0000000..b193d65
---- /dev/null
-+++ b/libc/sysdeps/linux/common/sched_getcpu.c
-@@ -0,0 +1,37 @@
-+/* Copyright (C) 2007 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <stdlib.h>
-+#include <errno.h>
-+#include <sched.h>
-+#include <sysdep.h>
-+
-+
-+int
-+sched_getcpu (void)
-+{
-+#ifdef __NR_getcpu
-+  unsigned int cpu;
-+  int r = INLINE_SYSCALL (getcpu, 3, &cpu, NULL, NULL);
-+
-+  return r == -1 ? r : cpu;
-+#else
-+  __set_errno (ENOSYS);
-+  return -1;
-+#endif
-+}
-diff --git a/libc/sysdeps/linux/common/unshare.c b/libc/sysdeps/linux/common/unshare.c
-new file mode 100644
-index 0000000..485bf88
---- /dev/null
-+++ b/libc/sysdeps/linux/common/unshare.c
-@@ -0,0 +1,12 @@
-+/* vi: set sw=4 ts=4: */
-+/*
-+ * unshare() for uClibc
-+ *
-+ * Copyright (C) 2011 Henning Heinold <heinold@inf.fu-berlin.de>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sys/syscall.h>
-+#include <sched.h>
-+_syscall1(int, unshare, int, flags)
--- 
-1.7.5.3
-
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.33/0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch
new file mode 100644
index 0000000..2f0c191
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.33/0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch
@@ -0,0 +1,32 @@
+From 6c3919a6d4a8686772e2a302bf951548ee24a8c1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 3 Feb 2012 10:57:44 -0800
+Subject: [PATCH] Declare __err and pass it to INTERNAL_SYSCALL_NCS so
+ subsequent macros can use it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libc/sysdeps/linux/common/bits/syscalls-common.h |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+
+Upstream-Status: Pending
+
+diff --git a/libc/sysdeps/linux/common/bits/syscalls-common.h b/libc/sysdeps/linux/common/bits/syscalls-common.h
+index faebd1b..0f5a929 100644
+--- a/libc/sysdeps/linux/common/bits/syscalls-common.h
++++ b/libc/sysdeps/linux/common/bits/syscalls-common.h
+@@ -59,8 +59,8 @@
+ #ifndef INLINE_SYSCALL_NOERR_NCS
+ # define INLINE_SYSCALL_NOERR_NCS(name, nr, args...)			\
+ ({									\
+-	/*INTERNAL_SYSCALL_DECL(__err);*/					\
+-	long __res = INTERNAL_SYSCALL_NCS(name, /*__err*/, nr, args);	\
++	INTERNAL_SYSCALL_DECL(__err);					\
++	long __res = INTERNAL_SYSCALL_NCS(name, __err, nr, args);	\
+ 	__res;								\
+ })
+ #endif
+-- 
+1.7.5.4
+
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.33/0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch
new file mode 100644
index 0000000..da4ffef
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.33/0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch
@@ -0,0 +1,177 @@
+From effbfd8e8a7b883671b24fc9759b135b48dbfaca Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 3 Feb 2012 20:06:55 -0800
+Subject: [PATCH] lstat/stat/fstat: Use 64bit version of syscall if available
+
+This is needed for stat'ing loop devices > 255
+since otherwise kernel returns EOVERFLOW becasue
+it needs st_rdev/st_dev to be larger than 16bits but
+in kernel it uses __old_kernel_stat for stat
+syscall which has st_rdev/st_dev as unsigned short
+
+Add a testcase
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libc/sysdeps/linux/common/fstat.c |   18 ++++++++++++++----
+ libc/sysdeps/linux/common/lstat.c |   19 ++++++++++++++-----
+ libc/sysdeps/linux/common/stat.c  |   18 ++++++++++++++----
+ test/stat/stat-loop256.c          |   32 ++++++++++++++++++++++++++++++++
+ 4 files changed, 74 insertions(+), 13 deletions(-)
+ create mode 100644 test/stat/stat-loop256.c
+
+diff --git a/libc/sysdeps/linux/common/fstat.c b/libc/sysdeps/linux/common/fstat.c
+index acc639b..4726a68 100644
+--- a/libc/sysdeps/linux/common/fstat.c
++++ b/libc/sysdeps/linux/common/fstat.c
+@@ -12,18 +12,28 @@
+ #include <sys/stat.h>
+ #include "xstatconv.h"
+ 
+-#define __NR___syscall_fstat __NR_fstat
+-static __inline__ _syscall2(int, __syscall_fstat, int, fd, struct kernel_stat *, buf)
+-
+ int fstat(int fd, struct stat *buf)
+ {
+ 	int result;
++#ifdef __NR_fstat64
++	/* normal stat call has limited values for various stat elements
++	 * e.g. uid device major/minor etc.
++	 * so we use 64 variant if available
++	 * in order to get newer versions of stat elements
++	 */
++	struct kernel_stat64 kbuf;
++	result = INLINE_SYSCALL(fstat64, 2, fd, &kbuf);
++	if (result == 0) {
++		__xstat32_conv(&kbuf, buf);
++	}
++#else
+ 	struct kernel_stat kbuf;
+ 
+-	result = __syscall_fstat(fd, &kbuf);
++	result = INLINE_SYSCALL(fstat, 2, fd, &kbuf);
+ 	if (result == 0) {
+ 		__xstat_conv(&kbuf, buf);
+ 	}
++#endif
+ 	return result;
+ }
+ libc_hidden_def(fstat)
+diff --git a/libc/sysdeps/linux/common/lstat.c b/libc/sysdeps/linux/common/lstat.c
+index aa77447..db72d1f 100644
+--- a/libc/sysdeps/linux/common/lstat.c
++++ b/libc/sysdeps/linux/common/lstat.c
+@@ -12,19 +12,28 @@
+ #include <sys/stat.h>
+ #include "xstatconv.h"
+ 
+-#define __NR___syscall_lstat __NR_lstat
+-static __inline__ _syscall2(int, __syscall_lstat,
+-		const char *, file_name, struct kernel_stat *, buf)
+-
+ int lstat(const char *file_name, struct stat *buf)
+ {
+ 	int result;
++#ifdef __NR_lstat64
++	/* normal stat call has limited values for various stat elements
++	 * e.g. uid device major/minor etc.
++	 * so we use 64 variant if available
++	 * in order to get newer versions of stat elements
++	 */
++	struct kernel_stat64 kbuf;
++	result = INLINE_SYSCALL(lstat64, 2, file_name, &kbuf);
++	if (result == 0) {
++		__xstat32_conv(&kbuf, buf);
++	}
++#else
+ 	struct kernel_stat kbuf;
+ 
+-	result = __syscall_lstat(file_name, &kbuf);
++	result = INLINE_SYSCALL(lstat, 2, file_name, &kbuf);
+ 	if (result == 0) {
+ 		__xstat_conv(&kbuf, buf);
+ 	}
++#endif
+ 	return result;
+ }
+ libc_hidden_def(lstat)
+diff --git a/libc/sysdeps/linux/common/stat.c b/libc/sysdeps/linux/common/stat.c
+index a6ab291..829f35a 100644
+--- a/libc/sysdeps/linux/common/stat.c
++++ b/libc/sysdeps/linux/common/stat.c
+@@ -12,20 +12,30 @@
+ #include <sys/stat.h>
+ #include "xstatconv.h"
+ 
+-#define __NR___syscall_stat __NR_stat
+ #undef stat
+-static __inline__ _syscall2(int, __syscall_stat,
+-		const char *, file_name, struct kernel_stat *, buf)
+ 
+ int stat(const char *file_name, struct stat *buf)
+ {
+ 	int result;
++#ifdef __NR_stat64
++	/* normal stat call has limited values for various stat elements
++	 * e.g. uid device major/minor etc.
++	 * so we use 64 variant if available
++	 * in order to get newer versions of stat elements
++	 */
++	struct kernel_stat64 kbuf;
++	result = INLINE_SYSCALL(stat64, 2, file_name, &kbuf);
++	if (result == 0) {
++		__xstat32_conv(&kbuf, buf);
++	}
++#else
+ 	struct kernel_stat kbuf;
+ 
+-	result = __syscall_stat(file_name, &kbuf);
++	result = INLINE_SYSCALL(stat, 2, file_name, &kbuf);
+ 	if (result == 0) {
+ 		__xstat_conv(&kbuf, buf);
+ 	}
++#endif
+ 	return result;
+ }
+ libc_hidden_def(stat)
+diff --git a/test/stat/stat-loop256.c b/test/stat/stat-loop256.c
+new file mode 100644
+index 0000000..14284c1
+--- /dev/null
++++ b/test/stat/stat-loop256.c
+@@ -0,0 +1,32 @@
++#include <stdio.h>
++#include <unistd.h>
++#include <stdlib.h>
++#include <sys/stat.h>
++int main()
++{
++    struct stat statbuf;
++    int ret = 0;
++    char* loop255 = "/dev/loop255";
++    char* loop256 = "/dev/loop256";
++    mode_t mode = 0660;
++    mknod(loop255, mode, 0x7ff);
++    mknod(loop256, mode, 0x100700);
++    ret = stat(loop255, &statbuf);
++    if(ret < 0) {
++	printf("stat: Cant stat %s\n",loop255);
++	unlink(loop255);
++	exit(1);
++    }
++    ret = stat(loop256, &statbuf);
++    if(ret < 0) {
++        printf("stat: Cant stat %s\n",loop256);
++	unlink(loop255);
++	unlink(loop256);
++        exit(1);
++    }
++
++    unlink(loop255);
++    unlink(loop256);
++    exit(0);
++}
++
+-- 
+1.7.5.4
+
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/argp-headers.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/argp-headers.patch
similarity index 99%
rename from meta/recipes-core/uclibc/uclibc-0.9.32/argp-headers.patch
rename to meta/recipes-core/uclibc/uclibc-0.9.33/argp-headers.patch
index 7fd148f..b31b991 100644
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/argp-headers.patch
+++ b/meta/recipes-core/uclibc/uclibc-0.9.33/argp-headers.patch
@@ -8,6 +8,8 @@ Signed-off-by: Salvatore Cro <salvatore.cro at st.com>
  create mode 100644 include/argp.h
  create mode 100644 libc/argp/argp-fmtstream.h
 
+Upstream-Status: Pending
+
 Index: git/include/argp.h
 ===================================================================
 --- /dev/null
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/argp-support.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/argp-support.patch
similarity index 99%
rename from meta/recipes-core/uclibc/uclibc-0.9.32/argp-support.patch
rename to meta/recipes-core/uclibc/uclibc-0.9.33/argp-support.patch
index 04a3c78..3e9680f 100644
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/argp-support.patch
+++ b/meta/recipes-core/uclibc/uclibc-0.9.33/argp-support.patch
@@ -13,6 +13,9 @@ it doesn't need to link libuargp.so explicitely.
 Signed-off-by: Salvatore Cro <salvatore.cro at st.com>
 Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono at st.com>
 Signed-off-by: Carmelo Amoroso <carmelo.amoroso at st.com>
+
+Upstream-Status: Pending
+
 ---
  Makefile.in                                 |    8 +
  Makerules                                   |    8 +-
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/compile-arm-fork-with-O2.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/compile-arm-fork-with-O2.patch
similarity index 97%
rename from meta/recipes-core/uclibc/uclibc-0.9.32/compile-arm-fork-with-O2.patch
rename to meta/recipes-core/uclibc/uclibc-0.9.33/compile-arm-fork-with-O2.patch
index 429f27d..15ee0ca 100644
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/compile-arm-fork-with-O2.patch
+++ b/meta/recipes-core/uclibc/uclibc-0.9.33/compile-arm-fork-with-O2.patch
@@ -1,5 +1,5 @@
 When compiling in thumb mode for arm with -Os gcc gives up since it can not find registers
-to spill. So we use -O2 option for compiling fork.c It may be addressable is gcc.
+to spill. So we use -O2 option for compiling fork.c It may be addressable in gcc.
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch
new file mode 100644
index 0000000..4e900f3
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch
@@ -0,0 +1,25 @@
+Add definition of MSG_WAITFORONE and MSG_CMSG_CLOEXEC
+
+Upstream-Status: Pending
+
+Index: git/libc/sysdeps/linux/common/bits/socket.h
+===================================================================
+--- git.orig/libc/sysdeps/linux/common/bits/socket.h	2012-01-26 23:23:21.537456132 -0800
++++ git/libc/sysdeps/linux/common/bits/socket.h	2012-01-26 23:25:10.125461388 -0800
+@@ -235,8 +235,15 @@
+ #define	MSG_ERRQUEUE	MSG_ERRQUEUE
+     MSG_NOSIGNAL	= 0x4000, /* Do not generate SIGPIPE.  */
+ #define	MSG_NOSIGNAL	MSG_NOSIGNAL
+-    MSG_MORE		= 0x8000  /* Sender will send more.  */
++    MSG_MORE		= 0x8000,  /* Sender will send more.  */
+ #define	MSG_MORE	MSG_MORE
++    MSG_WAITFORONE      = 0x10000, /* Wait for at least one packet to return.*/
++#define MSG_WAITFORONE  MSG_WAITFORONE
++
++    MSG_CMSG_CLOEXEC    = 0x40000000    /* Set close_on_exit for file
++                                           descriptor received through
++                                           SCM_RIGHTS.  */
++#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
+   };
+ 
+ 
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch
new file mode 100644
index 0000000..481f23b
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch
@@ -0,0 +1,37 @@
+Implement dup3()
+
+Upstream-Status: Pending
+
+Index: git/libc/sysdeps/linux/common/dup3.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ git/libc/sysdeps/linux/common/dup3.c	2012-01-27 07:40:52.802900849 -0800
+@@ -0,0 +1,15 @@
++/* vi: set sw=4 ts=4: */
++/*
++ * dup3() for uClibc
++ *
++ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
++ *
++ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
++ */
++
++#include <sys/syscall.h>
++#include <unistd.h>
++
++
++_syscall3(int, dup3, int, oldfd, int, newfd, int, flags)
++libc_hidden_def(dup3)
+Index: git/include/unistd.h
+===================================================================
+--- git.orig/include/unistd.h	2012-01-27 01:19:17.521792781 -0800
++++ git/include/unistd.h	2012-01-27 07:40:03.106898447 -0800
+@@ -512,6 +512,8 @@
+ /* Duplicate FD to FD2, closing FD2 and making it open on the same file.  */
+ extern int dup2 (int __fd, int __fd2) __THROW;
+ libc_hidden_proto(dup2)
++extern int dup3 (int __fd, int __fd2, int __flags) __THROW;
++libc_hidden_proto(dup3)
+ 
+ /* NULL-terminated array of "NAME=VALUE" environment variables.  */
+ extern char **__environ;
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
similarity index 86%
rename from meta/recipes-core/uclibc/uclibc-0.9.32/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
rename to meta/recipes-core/uclibc/uclibc-0.9.33/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
index cfa68ce..d44acca 100644
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
+++ b/meta/recipes-core/uclibc/uclibc-0.9.33/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
@@ -1,3 +1,9 @@
+resolver code should always be in arm mode
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+
 Index: uClibc/ldso/ldso/arm/resolve.S
 ===================================================================
 --- uClibc.orig/ldso/ldso/arm/resolve.S	2009-03-20 12:03:32.000000000 -0700
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.33/libc_symbols_include_bits_uclibc_config.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/libc_symbols_include_bits_uclibc_config.patch
new file mode 100644
index 0000000..8064115
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-0.9.33/libc_symbols_include_bits_uclibc_config.patch
@@ -0,0 +1,19 @@
+Index: git/include/libc-symbols.h
+===================================================================
+--- git.orig/include/libc-symbols.h	2011-07-05 17:04:41.171219323 -0700
++++ git/include/libc-symbols.h	2011-07-05 22:50:36.851661478 -0700
+@@ -48,10 +48,12 @@
+ 
+    */
+ 
+-#include <bits/uClibc_arch_features.h>
+-
+ /* Enable declarations of GNU extensions, since we are compiling them.  */
+ #define _GNU_SOURCE	1
++#define __need_uClibc_config_h
++#include <bits/uClibc_config.h>
++#undef __need_uClibc_config_h
++#include <bits/uClibc_arch_features.h>
+ 
+ /* Prepare for the case that `__builtin_expect' is not available.  */
+ #if defined __GNUC__ && __GNUC__ == 2 && __GNUC_MINOR__ < 96
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/mips/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.33/mips/uClibc.machine
similarity index 100%
rename from meta/recipes-core/uclibc/uclibc-0.9.32/mips/uClibc.machine
rename to meta/recipes-core/uclibc/uclibc-0.9.33/mips/uClibc.machine
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/orign_path.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/orign_path.patch
similarity index 64%
rename from meta/recipes-core/uclibc/uclibc-0.9.32/orign_path.patch
rename to meta/recipes-core/uclibc/uclibc-0.9.33/orign_path.patch
index 631951e..c9c15a3 100644
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/orign_path.patch
+++ b/meta/recipes-core/uclibc/uclibc-0.9.33/orign_path.patch
@@ -3,16 +3,16 @@ http://lists.busybox.net/pipermail/uclibc/2011-March/045003.html
 
 Upstream-Status: Pending
 
-diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c
-index 505247e..2b2d429 100644
---- a/ldso/ldso/dl-elf.c
-+++ b/ldso/ldso/dl-elf.c
-@@ -133,53 +133,60 @@ _dl_protect_relro (struct elf_resolve *l)
+Index: git/ldso/ldso/dl-elf.c
+===================================================================
+--- git.orig/ldso/ldso/dl-elf.c	2012-01-23 19:18:58.000000000 -0800
++++ git/ldso/ldso/dl-elf.c	2012-01-23 21:52:06.144646590 -0800
+@@ -133,53 +133,60 @@
   * in uClibc/ldso/util/ldd.c */
  static struct elf_resolve *
- search_for_named_library(const char *name, int secure, const char *path_list,
+ search_for_named_library(const char *name, unsigned rflags, const char *path_list,
 -	struct dyn_elf **rpnt)
-+	struct dyn_elf **rpnt, const char *origin)
++	struct dyn_elf **rpnt, const char* origin)
  {
 -	char *path, *path_n, *mylibname;
 +	char *mylibname;
@@ -47,18 +47,6 @@ index 505247e..2b2d429 100644
 -		if (*path == 0) {
 -			*path = ':';
 -			done = 1;
--		}
--		if (*path == ':') {
--			*path = 0;
--			if (*path_n)
--				_dl_strcpy(mylibname, path_n);
--			else
--				_dl_strcpy(mylibname, "."); /* Assume current dir if empty path */
--			_dl_strcat(mylibname, "/");
--			_dl_strcat(mylibname, name);
--			if ((tpnt = _dl_load_elf_shared_library(secure, rpnt, mylibname)) != NULL)
--				return tpnt;
--			path_n = path+1;
 +	for (p = path_list; p != NULL; p = pn) {
 +		pn = _dl_strchr(p + 1, ':');
 +		if (pn != NULL) {
@@ -69,7 +57,7 @@ index 505247e..2b2d429 100644
 +
 +		if (plen >= 7 && _dl_memcmp(p, "$ORIGIN", 7) == 0) {
 +			int olen;
-+			if (secure && plen != 7)
++			if (rflags && plen != 7)
 +				continue;
 +			if (origin == NULL)
 +				continue;
@@ -86,12 +74,24 @@ index 505247e..2b2d429 100644
 +		} else {
 +			_dl_strcpy(mylibname, ".");
  		}
+-		if (*path == ':') {
+-			*path = 0;
+-			if (*path_n)
+-				_dl_strcpy(mylibname, path_n);
+-			else
+-				_dl_strcpy(mylibname, "."); /* Assume current dir if empty path */
+-			_dl_strcat(mylibname, "/");
+-			_dl_strcat(mylibname, name);
+-			if ((tpnt = _dl_load_elf_shared_library(rflags, rpnt, mylibname)) != NULL)
+-				return tpnt;
+-			path_n = path+1;
+-		}
 -		path++;
 -	} while (!done);
 +		_dl_strcat(mylibname, "/");
 +		_dl_strcat(mylibname, name);
 +
-+		tpnt = _dl_load_elf_shared_library(secure, rpnt, mylibname);
++		tpnt = _dl_load_elf_shared_library(rflags, rpnt, mylibname);
 +		if (tpnt != NULL)
 +			return tpnt;
 +	}
@@ -99,44 +99,46 @@ index 505247e..2b2d429 100644
  	return NULL;
  }
  
-@@ -231,7 +238,8 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
+@@ -231,8 +238,10 @@
  	if (pnt) {
  		pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
  		_dl_if_debug_dprint("\tsearching RPATH='%s'\n", pnt);
--		if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt)) != NULL)
-+		if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt,
+-		if ((tpnt1 = search_for_named_library(libname, rflags, pnt, rpnt)) != NULL)
++		if ((tpnt1 = search_for_named_library(libname, rflags, pnt, rpnt,
 +						      tpnt->libname)) != NULL)
  			return tpnt1;
++
  	}
  #endif
-@@ -239,7 +247,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
+ 
+@@ -240,7 +249,7 @@
  	/* Check in LD_{ELF_}LIBRARY_PATH, if specified and allowed */
  	if (_dl_library_path) {
  		_dl_if_debug_dprint("\tsearching LD_LIBRARY_PATH='%s'\n", _dl_library_path);
--		if ((tpnt1 = search_for_named_library(libname, secure, _dl_library_path, rpnt)) != NULL)
-+		if ((tpnt1 = search_for_named_library(libname, secure, _dl_library_path, rpnt, NULL)) != NULL)
+-		if ((tpnt1 = search_for_named_library(libname, rflags, _dl_library_path, rpnt)) != NULL)
++		if ((tpnt1 = search_for_named_library(libname, rflags, _dl_library_path, rpnt, NULL)) != NULL)
  		{
  			return tpnt1;
  		}
-@@ -253,7 +261,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
+@@ -254,7 +263,7 @@
  	if (pnt) {
  		pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
  		_dl_if_debug_dprint("\tsearching RUNPATH='%s'\n", pnt);
--		if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt)) != NULL)
-+		if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt, NULL)) != NULL)
+-		if ((tpnt1 = search_for_named_library(libname, rflags, pnt, rpnt)) != NULL)
++		if ((tpnt1 = search_for_named_library(libname, rflags, pnt, rpnt, NULL)) != NULL)
  			return tpnt1;
  	}
  #endif
-@@ -287,7 +295,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
+@@ -288,7 +297,7 @@
  	/* Look for libraries wherever the shared library loader
  	 * was installed */
  	_dl_if_debug_dprint("\tsearching ldso dir='%s'\n", _dl_ldsopath);
--	tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath, rpnt);
-+	tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath, rpnt, NULL);
+-	tpnt1 = search_for_named_library(libname, rflags, _dl_ldsopath, rpnt);
++	tpnt1 = search_for_named_library(libname, rflags, _dl_ldsopath, rpnt, NULL);
  	if (tpnt1 != NULL)
  		return tpnt1;
- 
-@@ -300,7 +308,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
+ #endif
+@@ -301,7 +310,7 @@
  #ifndef __LDSO_CACHE_SUPPORT__
  					":" UCLIBC_RUNTIME_PREFIX "usr/X11R6/lib"
  #endif
@@ -145,12 +147,12 @@ index 505247e..2b2d429 100644
  	if (tpnt1 != NULL)
  		return tpnt1;
  
-diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c
-index 7ee9257..9423670 100644
---- a/ldso/ldso/ldso.c
-+++ b/ldso/ldso/ldso.c
-@@ -272,6 +272,20 @@ static void __attribute__ ((destructor)) __attribute_used__ _dl_fini(void)
- 	}
+Index: git/ldso/ldso/ldso.c
+===================================================================
+--- git.orig/ldso/ldso/ldso.c	2012-01-23 19:18:58.000000000 -0800
++++ git/ldso/ldso/ldso.c	2012-01-23 21:34:11.152594621 -0800
+@@ -407,6 +407,20 @@
+ 	return p - list;
  }
  
 +static void _dl_setup_progname(const char *argv0)
@@ -167,10 +169,10 @@ index 7ee9257..9423670 100644
 +	}
 +}
 +
- void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr,
- 			  ElfW(auxv_t) auxvt[AT_EGID + 1], char **envp,
- 			  char **argv
-@@ -321,9 +335,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr,
+ void *_dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr,
+ 			  ElfW(auxv_t) auxvt[AT_EGID + 1], char **envp, char **argv
+ 			  DL_GET_READY_TO_RUN_EXTRA_PARMS)
+@@ -458,9 +472,7 @@
  	 * been fixed up by now.  Still no function calls outside of this
  	 * library, since the dynamic resolver is not yet ready.
  	 */
@@ -179,5 +181,5 @@ index 7ee9257..9423670 100644
 -	}
 +	_dl_setup_progname(argv[0]);
  
+ #ifndef __LDSO_STANDALONE_SUPPORT__
  	if (_start == (void *) auxvt[AT_ENTRY].a_un.a_val) {
- 		_dl_dprintf(_dl_debug_file, "Standalone execution is not supported yet\n");
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/powerpc_copysignl.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/powerpc_copysignl.patch
similarity index 96%
rename from meta/recipes-core/uclibc/uclibc-0.9.32/powerpc_copysignl.patch
rename to meta/recipes-core/uclibc/uclibc-0.9.33/powerpc_copysignl.patch
index 339ce7f..3fa10af 100644
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/powerpc_copysignl.patch
+++ b/meta/recipes-core/uclibc/uclibc-0.9.33/powerpc_copysignl.patch
@@ -1,3 +1,9 @@
+Add ppc copysignl implementation
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 Index: git/libc/sysdeps/linux/powerpc/Makefile.arch
 ===================================================================
 --- git.orig/libc/sysdeps/linux/powerpc/Makefile.arch
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/remove_attribute_optimize_Os.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/remove_attribute_optimize_Os.patch
similarity index 93%
rename from meta/recipes-core/uclibc/uclibc-0.9.32/remove_attribute_optimize_Os.patch
rename to meta/recipes-core/uclibc/uclibc-0.9.33/remove_attribute_optimize_Os.patch
index 1930383..bee251c 100644
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/remove_attribute_optimize_Os.patch
+++ b/meta/recipes-core/uclibc/uclibc-0.9.33/remove_attribute_optimize_Os.patch
@@ -1,15 +1,8 @@
-Index: git/include/features.h
-===================================================================
---- git.orig/include/features.h
-+++ git/include/features.h
-@@ -186,7 +186,6 @@
- # define __need_uClibc_config_h
- # include <bits/uClibc_config.h>
- # undef __need_uClibc_config_h
--
- /* For uClibc, always optimize for size -- this should disable
-  * a lot of expensive inlining...
-  * TODO: this is wrong! __OPTIMIZE_SIZE__ is an indicator of
+Dont support localised optimizations this helps to have a global -O level
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
 Index: git/libpthread/nptl/pthread_mutex_timedlock.c
 ===================================================================
 --- git.orig/libpthread/nptl/pthread_mutex_timedlock.c
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/uClibc.distro b/meta/recipes-core/uclibc/uclibc-0.9.33/uClibc.distro
similarity index 96%
rename from meta/recipes-core/uclibc/uclibc-0.9.32/uClibc.distro
rename to meta/recipes-core/uclibc/uclibc-0.9.33/uClibc.distro
index 5638d47..c33bf8e 100644
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/uClibc.distro
+++ b/meta/recipes-core/uclibc/uclibc-0.9.33/uClibc.distro
@@ -181,4 +181,10 @@ UCLIBC_HAS_FLOATS=y
 
 # needed by systemd
 UCLIBC_HAS_UTMPX=y
-
+UCLIBC_LINUX_MODULE_26=y
+UCLIBC_HAS_RESOLVER_SUPPORT=y
+# needed for LTP
+UCLIBC_SUSV4_LEGACY=y
+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+DO_XSI_MATH=y
+UCLIBC_SV4_DEPRECATED=y
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.33/uClibc.machine
similarity index 100%
rename from meta/recipes-core/uclibc/uclibc-0.9.32/uClibc.machine
rename to meta/recipes-core/uclibc/uclibc-0.9.33/uClibc.machine
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-execvpe.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/uclibc-execvpe.patch
similarity index 99%
rename from meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-execvpe.patch
rename to meta/recipes-core/uclibc/uclibc-0.9.33/uclibc-execvpe.patch
index cd90a09..fe191fc 100644
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-execvpe.patch
+++ b/meta/recipes-core/uclibc/uclibc-0.9.33/uclibc-execvpe.patch
@@ -12,6 +12,9 @@ Signed-off-by: Henning Heinold <heinold@inf.fu-berlin.de>
  3 files changed, 46 insertions(+), 5 deletions(-)
  create mode 100644 libc/unistd/execvpe.c
 
+
+Upstream-Status: Pending
+
 diff --git a/include/unistd.h b/include/unistd.h
 index 9568790..070e4f2 100644
 --- a/include/unistd.h
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_enable_log2_test.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/uclibc_enable_log2_test.patch
similarity index 81%
rename from meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_enable_log2_test.patch
rename to meta/recipes-core/uclibc/uclibc-0.9.33/uclibc_enable_log2_test.patch
index f8f3a7d..37a5988 100644
--- a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_enable_log2_test.patch
+++ b/meta/recipes-core/uclibc/uclibc-0.9.33/uclibc_enable_log2_test.patch
@@ -1,3 +1,8 @@
+uclibc now has log2 so enable the tests
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
 Index: uClibc/test/math/libm-test.inc
 ===================================================================
 --- uClibc/test/math/libm-test.inc	(revision 23784)
diff --git a/meta/recipes-core/uclibc/uclibc-initial_0.9.32.bb b/meta/recipes-core/uclibc/uclibc-initial_0.9.33.bb
similarity index 100%
rename from meta/recipes-core/uclibc/uclibc-initial_0.9.32.bb
rename to meta/recipes-core/uclibc/uclibc-initial_0.9.33.bb
diff --git a/meta/recipes-core/uclibc/uclibc_0.9.32.bb b/meta/recipes-core/uclibc/uclibc_0.9.33.bb
similarity index 45%
rename from meta/recipes-core/uclibc/uclibc_0.9.32.bb
rename to meta/recipes-core/uclibc/uclibc_0.9.33.bb
index 235b436..b559fd4 100644
--- a/meta/recipes-core/uclibc/uclibc_0.9.32.bb
+++ b/meta/recipes-core/uclibc/uclibc_0.9.33.bb
@@ -1,34 +1,26 @@
-SRCREV="9152c4d67c763fde5712e2d181d92c0d7e1e2ab9"
+SRCREV="1548ee3ca582f3732136e71613c87c16230f71cc"
 
 require uclibc.inc
-PR = "${INC_PR}.3"
+
+PR = "${INC_PR}.0"
 PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
 
 SRC_URI = "git://uclibc.org/uClibc.git;branch=${PV};protocol=git \
 	file://uClibc.machine \
 	file://uClibc.distro \
-	file://uclibc-arm-ftruncate64.patch \
 	file://uclibc_enable_log2_test.patch \
 	file://ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch \
-	file://select-force-thumb.patch \
-	file://remove-sub-arch-variants.patch \
-	file://transform-eabi-oabi-choice.patch \
-	file://include-arm-asm.h.patch \
-	file://detect-bx-availibility.patch \
-	file://remove-eabi-oabi-selection.patch \
 	file://powerpc_copysignl.patch \
 	file://argp-support.patch \
 	file://argp-headers.patch \
 	file://remove_attribute_optimize_Os.patch \
 	file://compile-arm-fork-with-O2.patch \
-	file://epoll-asm-fix.patch \
-	file://orign_path.patch \
-	file://rtld_no.patch \
-	file://0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch \
-	file://0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch \
 	file://uclibc-execvpe.patch \
-	file://uclibc_scheduler_update.patch \
-	file://sync_file_range2.patch \
-	file://mount.h-update.patch \
+	file://orign_path.patch \
+	file://dup3.patch \
+	file://define-MSG_CMSG_CLOEXEC.patch \
+	file://0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch \
+	file://0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch \
 	"
+
 S = "${WORKDIR}/git"
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (10 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 11/20] uclibc: Upgrade recipes from 0.9.32 -> 0.9.33 Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-07  8:08   ` Saul Wold
  2012-02-06  6:40 ` [PATCH 13/20] runqemu-internal: qemuarm can handle 256M Khem Raj
                   ` (8 subsequent siblings)
  20 siblings, 1 reply; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

Dont use autotools, it really not so autoconf like.
the configure script gets updated with every release of zlib
and we overwrite that. Instead use the upstream provided
configure

copyright year was changed in zlib.h which caused change in
LIC_FILE_CHECKSUM

fix.inverted.LFS.logic.patch is already applied upstream so drop it

Drop the configure.ac and Makefile.am scripts since we do not
autoreconf anymore and do not inherit autotools anymore

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-core/zlib/files/Makefile.am           |    9 ----
 meta/recipes-core/zlib/files/configure.ac          |   48 --------------------
 .../zlib/zlib-1.2.5/fix.inverted.LFS.logic.patch   |   20 --------
 meta/recipes-core/zlib/zlib_1.2.5.bb               |   41 -----------------
 meta/recipes-core/zlib/zlib_1.2.6.bb               |   26 +++++++++++
 5 files changed, 26 insertions(+), 118 deletions(-)
 delete mode 100644 meta/recipes-core/zlib/files/Makefile.am
 delete mode 100644 meta/recipes-core/zlib/files/configure.ac
 delete mode 100644 meta/recipes-core/zlib/zlib-1.2.5/fix.inverted.LFS.logic.patch
 delete mode 100644 meta/recipes-core/zlib/zlib_1.2.5.bb
 create mode 100644 meta/recipes-core/zlib/zlib_1.2.6.bb

diff --git a/meta/recipes-core/zlib/files/Makefile.am b/meta/recipes-core/zlib/files/Makefile.am
deleted file mode 100644
index b66d299..0000000
--- a/meta/recipes-core/zlib/files/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-lib_LTLIBRARIES = libz.la
-
-libz_la_SOURCES = adler32.c compress.c crc32.c gzlib.c gzclose.c gzread.c \
-                  gzwrite.c uncompr.c deflate.c trees.c zutil.c inflate.c \
-                  infback.c inftrees.c inffast.c
-
-libz_la_LDFLAGS = -version-number 1:2:5 --version-script zlib.map
-
-include_HEADERS = zconf.h zlib.h zlibdefs.h
diff --git a/meta/recipes-core/zlib/files/configure.ac b/meta/recipes-core/zlib/files/configure.ac
deleted file mode 100644
index 4761b7e..0000000
--- a/meta/recipes-core/zlib/files/configure.ac
+++ /dev/null
@@ -1,48 +0,0 @@
-AC_INIT(zlib,1.2.5)
-AC_CONFIG_SRCDIR(adler32.c)
-AM_INIT_AUTOMAKE(zlibs,1.2.5)
-
-AC_PREREQ([2.59])
-
-AC_PROG_CC([gcc])
-AC_PROG_LIBTOOL
-
-AC_HEADER_STDC
-
-zlib_save_CPPFLAGS=$CPPFLAGS
-CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
-AC_CHECK_TYPES(off64_t)
-CPPFLAGS=$zlib_save_CPPFLAGS
-
-AC_CACHE_CHECK([whether to enable -D_LARGEFILE64_SOURCE], [zlib_cv_use_lfs64], [
-    zlib_cv_use_lfs64=no
-    if test "$ac_cv_type_off64_t" = "yes"; then
-        zlib_cv_use_lfs64=yes
-    fi
-])
-
-if test "$zlib_cv_use_lfs64" = "yes"; then
-    CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
-
-    #APR_ADDTO(CPPFLAGS, [-D_LARGEFILE64_SOURCE])
-fi
-
-cat > zlibdefs.h << EOF
-/* zlibdefs.h -- compile-time definitions for the zlib compression library
- * Copyright (C) 1995-2006 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include <sys/types.h>	/* for off_t */
-#include <unistd.h>	/* for SEEK_* and off_t */
-#ifdef VMS
-#  include <unixio.h>	/* for off_t */
-#endif
-#ifndef z_off_t
-#  define z_off_t off_t
-#endif
-EOF
-
-AC_CONFIG_FILES([Makefile])
-
-AC_OUTPUT
diff --git a/meta/recipes-core/zlib/zlib-1.2.5/fix.inverted.LFS.logic.patch b/meta/recipes-core/zlib/zlib-1.2.5/fix.inverted.LFS.logic.patch
deleted file mode 100644
index 038c1a2..0000000
--- a/meta/recipes-core/zlib/zlib-1.2.5/fix.inverted.LFS.logic.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Upstream-Status: Pending
-
-see
-https://bugs.gentoo.org/316377?id=316377
-https://bugs.freedesktop.org/show_bug.cgi?id=33710
-http://lists.freedesktop.org/archives/poppler-bugs/2011-January/006014.html
-for details
-
-diff -up zlib-1.2.5/zlib.h.pom zlib-1.2.5/zlib.h
---- zlib-1.2.5/zlib.h.pom	2010-04-20 06:12:48.000000000 +0200
-+++ zlib-1.2.5/zlib.h	2010-06-16 13:08:59.000000000 +0200
-@@ -1578,7 +1578,7 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF(
- #  define gzoffset gzoffset64
- #  define adler32_combine adler32_combine64
- #  define crc32_combine crc32_combine64
--#  ifdef _LARGEFILE64_SOURCE
-+#  ifndef _LARGEFILE64_SOURCE
-      ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
-      ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int));
-      ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile));
diff --git a/meta/recipes-core/zlib/zlib_1.2.5.bb b/meta/recipes-core/zlib/zlib_1.2.5.bb
deleted file mode 100644
index b5756d9..0000000
--- a/meta/recipes-core/zlib/zlib_1.2.5.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Zlib Compression Library"
-DESCRIPTION = "Zlib is a general-purpose, patent-free, lossless data compression \
-library which is used by many different programs."
-HOMEPAGE = "http://zlib.net/"
-SECTION = "libs"
-LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://zlib.h;beginline=4;endline=23;md5=084e9c30e4e6272c3b057b13c6467f3d"
-
-DEPENDS = "libtool-cross"
-PR = "r3"
-
-SRC_URI = "http://www.zlib.net/${BPN}-${PV}.tar.bz2 \
-           file://configure.ac \
-           file://Makefile.am \
-           file://fix.inverted.LFS.logic.patch"
-
-SRC_URI[md5sum] = "be1e89810e66150f5b0327984d8625a0"
-SRC_URI[sha256sum] = "239aead2f22f16bfcfa6a6a5150dcbd6d6f2e4d1eaa8727b5769ea014120b307"
-
-inherit autotools
-
-do_configure_prepend () {
-	cp ${WORKDIR}/configure.ac ${S}/
-	cp ${WORKDIR}/Makefile.am ${S}/
-}
-
-do_install_append () {
-	sed \
-		-e 's:@prefix@:${prefix}:' \
-		-e 's:@exec_prefix@:${exec_prefix}:' \
-		-e 's:@libdir@:${libdir}:' \
-		-e 's:@sharedlibdir@:${libdir}:' \
-		-e 's:@includedir@:${includedir}:' \
-		-e 's:@VERSION@:${PV}:' \
-		zlib.pc.in > zlib.pc
-
-	install -d ${D}${libdir}/pkgconfig
-	install -m 0644 zlib.pc ${D}${libdir}/pkgconfig/
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-core/zlib/zlib_1.2.6.bb b/meta/recipes-core/zlib/zlib_1.2.6.bb
new file mode 100644
index 0000000..a220773
--- /dev/null
+++ b/meta/recipes-core/zlib/zlib_1.2.6.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Zlib Compression Library"
+DESCRIPTION = "Zlib is a general-purpose, patent-free, lossless data compression \
+library which is used by many different programs."
+HOMEPAGE = "http://zlib.net/"
+SECTION = "libs"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://zlib.h;beginline=4;endline=23;md5=94d1b5a40dadd127f3351471727e66a9"
+
+SRC_URI = "http://www.zlib.net/${BPN}-${PV}.tar.bz2 \
+           "
+SRC_URI[md5sum] = "dc2cfa0d2313ca77224b4d932b2911e9"
+SRC_URI[sha256sum] = "fa3e3e4881fa5810b8903f2c7e0dcd5a0a673535f0438021c4bbb5db1b918c8e"
+
+do_configure (){
+	./configure --prefix=${prefix} --shared --libdir=${libdir}
+}
+
+do_compile (){
+	oe_runmake
+}
+
+do_install() {
+	oe_runmake DESTDIR=${D} install
+}
+
+BBCLASSEXTEND = "native nativesdk"
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 13/20] runqemu-internal: qemuarm can handle 256M
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (11 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6 Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-06  6:40 ` [PATCH 14/20] gconf, consolekit: Avoid polkit when compiling with uclibc Khem Raj
                   ` (7 subsequent siblings)
  20 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

Raise the check for max RAM supported for QEMU/arm
its 256M since we patched it to be so in OE

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 scripts/runqemu-internal |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal
index 21fbce3..73b8b41 100755
--- a/scripts/runqemu-internal
+++ b/scripts/runqemu-internal
@@ -67,13 +67,14 @@ fi
 # QEMU_MEMORY has 'M' appended to mem_size
 QEMU_MEMORY="$mem_size"M
 
-# Bug 433: qemuarm cannot use > 128 MB RAM
+# Bug 433: qemuarm cannot use > 256 MB RAM
 if [ "$MACHINE" = "qemuarm" ]; then
-    if [[ -z "$mem_size" || $mem_size -gt 128 ]]; then
-        echo "WARNING: qemuarm does not support > 128M of RAM."
-        echo "Changing QEMU_MEMORY to default of 128M."
-        QEMU_MEMORY="128M"
-        SCRIPT_QEMU_EXTRA_OPT=`echo $SCRIPT_QEMU_EXTRA_OPT | sed -e "s/$mem_set/-m 128/" `
+    if [[ -z "$mem_size" || $mem_size -gt 256 ]]; then
+        echo "WARNING: qemuarm does not support > 256M of RAM."
+        echo "Changing QEMU_MEMORY to default of 256M."
+        QEMU_MEMORY="256M"
+	mem_size="256"
+        SCRIPT_QEMU_EXTRA_OPT=`echo $SCRIPT_QEMU_EXTRA_OPT | sed -e "s/$mem_set/-m 256/" `
     fi
 fi
 
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 14/20] gconf, consolekit: Avoid polkit when compiling with uclibc
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (12 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 13/20] runqemu-internal: qemuarm can handle 256M Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-06  6:40 ` [PATCH 15/20] python: Fix build failure of python-elementtree on x86_64 Khem Raj
                   ` (6 subsequent siblings)
  20 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

polkit uses netdb functionality from glibc which is not
available in uclibc therefore we avoid polkit when compiling
for uclibc systems.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-gnome/gnome/gconf_3.2.3.bb            |    9 +++++++--
 .../recipes-support/consolekit/consolekit_0.4.5.bb |   11 ++++++++---
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/meta/recipes-gnome/gnome/gconf_3.2.3.bb b/meta/recipes-gnome/gnome/gconf_3.2.3.bb
index 412f01c..a0b8d0c 100644
--- a/meta/recipes-gnome/gnome/gconf_3.2.3.bb
+++ b/meta/recipes-gnome/gnome/gconf_3.2.3.bb
@@ -3,10 +3,13 @@ SECTION = "x11/gnome"
 LICENSE = "LGPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
 
-DEPENDS = "glib-2.0 gtk+ dbus dbus-glib libxml2 intltool-native polkit"
+POLKIT = "polkit"
+POLKIT_libc-uclibc = ""
+
+DEPENDS = "glib-2.0 gtk+ dbus dbus-glib libxml2 intltool-native ${POLKIT}"
 DEPENDS_virtclass-native = "glib-2.0-native dbus-native dbus-glib-native libxml2-native intltool-native gnome-common-native"
 
-PR = "r5"
+PR = "r6"
 
 inherit gnomebase
 
@@ -21,6 +24,8 @@ S = "${WORKDIR}/GConf-${PV}"
 
 POLKIT_OECONF = "--enable-defaults-service"
 POLKIT_OECONF_virtclass-native = "--disable-defaults-service"
+POLKIT_OECONF_libc-uclibc = "--disable-default-service"
+
 GTKOECONF = "--with-gtk=2.0 --enable-gtk"
 GTKOECONF_virtclass-native = "--disable-gtk"
 EXTRA_OECONF = "--disable-gtk-doc --enable-shared --disable-static --enable-debug=yes \
diff --git a/meta/recipes-support/consolekit/consolekit_0.4.5.bb b/meta/recipes-support/consolekit/consolekit_0.4.5.bb
index 45f6ad3..3ded6df 100644
--- a/meta/recipes-support/consolekit/consolekit_0.4.5.bb
+++ b/meta/recipes-support/consolekit/consolekit_0.4.5.bb
@@ -2,13 +2,18 @@ DESCRIPTION = "ConsoleKit is a framework for defining and tracking users, login
 HOMEPAGE="http://www.freedesktop.org/wiki/Software/ConsoleKit"
 BUGTRACKER="https://bugs.freedesktop.org/buglist.cgi?query_format=specific&product=ConsoleKit"
 
-PR = "r7"
+PR = "r8"
 
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
                     file://src/main.c;endline=21;md5=0a994e09769780220163255d8f9071c3"
 
-DEPENDS = "glib-2.0 dbus polkit ${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+POLKIT = "polkit"
+POLKIT_libc-uclibc = ""
+POLKITCONF = ""
+POLKITCONF_libc-uclibc = "--disable-policykit"
+
+DEPENDS = "glib-2.0 dbus ${POLKIT} ${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
 RDEPENDS_${PN} += "base-files"
 
 inherit gnome
@@ -20,7 +25,7 @@ SRC_URI[sha256sum] = "43e0780c53078e125efcec3f847e484dc3533e49b408ce6a0ab1b22368
 
 S = "${WORKDIR}/ConsoleKit-${PV}"
 
-EXTRA_OECONF = "--with-systemdsystemunitdir=${base_libdir}/systemd/system/ \
+EXTRA_OECONF = "${POLKITCONF} --with-systemdsystemunitdir=${base_libdir}/systemd/system/ \
                 ${@base_contains('DISTRO_FEATURES', 'pam', '--enable-pam-module --with-pam-module-dir=${base_libdir}/security', '--disable-pam-module', d)} \
                "
 
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 15/20] python: Fix build failure of python-elementtree on x86_64
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (13 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 14/20] gconf, consolekit: Avoid polkit when compiling with uclibc Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-06  6:40 ` [PATCH 16/20] libdrm: Fix build failure unearthed by uclibc Khem Raj
                   ` (5 subsequent siblings)
  20 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

The problem is due to mixing of headers from host system
thusly corrected in setup.py by checkinng if we are cross
compiling

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../python/python/host_include_contamination.patch |   27 ++++++++++++++++++++
 meta/recipes-devtools/python/python_2.7.2.bb       |    3 +-
 2 files changed, 29 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-devtools/python/python/host_include_contamination.patch

diff --git a/meta/recipes-devtools/python/python/host_include_contamination.patch b/meta/recipes-devtools/python/python/host_include_contamination.patch
new file mode 100644
index 0000000..62cb8b1
--- /dev/null
+++ b/meta/recipes-devtools/python/python/host_include_contamination.patch
@@ -0,0 +1,27 @@
+when building python for qemux86-64 on ubuntu 11.10/64bit
+it gropes into host includes and then mixes them with cross
+includes and as a result some modules fail to compile and link
+one of the modules is python-elementtree which is then not
+found during image creation
+
+Proble is that setup.py tries to add native includes that newer
+ubuntu has introduced for multiarch support. But that should
+only happen for native builds and not cross building python
+so we add a check here.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: Python-2.7.2/setup.py
+===================================================================
+--- Python-2.7.2.orig/setup.py	2012-02-03 12:10:42.307057756 -0800
++++ Python-2.7.2/setup.py	2012-02-03 12:11:12.363059210 -0800
+@@ -360,6 +360,8 @@
+         # https://wiki.ubuntu.com/MultiarchSpec
+         if not find_executable('dpkg-architecture'):
+             return
++	if os.environ.get('CROSS_COMPILE') is not None:
++	    return
+         tmpfile = os.path.join(self.build_temp, 'multiarch')
+         if not os.path.exists(self.build_temp):
+             os.makedirs(self.build_temp)
diff --git a/meta/recipes-devtools/python/python_2.7.2.bb b/meta/recipes-devtools/python/python_2.7.2.bb
index 654c850..fb5e860 100644
--- a/meta/recipes-devtools/python/python_2.7.2.bb
+++ b/meta/recipes-devtools/python/python_2.7.2.bb
@@ -1,7 +1,7 @@
 require python.inc
 DEPENDS = "python-native db gdbm openssl readline sqlite3 zlib"
 DEPENDS_sharprom = "python-native db readline zlib gdbm openssl"
-PR = "${INC_PR}.5"
+PR = "${INC_PR}.6"
 
 DISTRO_SRC_URI ?= "file://sitecustomize.py"
 DISTRO_SRC_URI_linuxstdbase = ""
@@ -20,6 +20,7 @@ SRC_URI += "\
   file://remove_sqlite_rpath.patch \
   file://setup_py_skip_cross_import_check.patch \
   file://add-md5module-support.patch \
+  file://host_include_contamination.patch \
 "
 
 S = "${WORKDIR}/Python-${PV}"
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 16/20] libdrm: Fix build failure unearthed by uclibc
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (14 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 15/20] python: Fix build failure of python-elementtree on x86_64 Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-06  6:40 ` [PATCH 17/20] classes, recipes: Replace POKY_* with CORE_IMAGE_* Khem Raj
                   ` (4 subsequent siblings)
  20 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

uclibc wants to know value of __USE_GNU for certain
header prototypes to be enabled. So we move the config.h
header up in search list.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../drm/libdrm/GNU_SOURCE_definition.patch         |   30 ++++++++++++++++++++
 meta/recipes-graphics/drm/libdrm_2.4.30.bb         |    6 ++-
 2 files changed, 34 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-graphics/drm/libdrm/GNU_SOURCE_definition.patch

diff --git a/meta/recipes-graphics/drm/libdrm/GNU_SOURCE_definition.patch b/meta/recipes-graphics/drm/libdrm/GNU_SOURCE_definition.patch
new file mode 100644
index 0000000..8eb1d5e
--- /dev/null
+++ b/meta/recipes-graphics/drm/libdrm/GNU_SOURCE_definition.patch
@@ -0,0 +1,30 @@
+uclibc headers need to know if _GNU_SOURCE is defined or not and its defined
+in config.h so include it first to get the definition if its there fixed build
+problems on uclibc
+
+test_decode.c:107:2: error: implicit declaration of function 'open_memstream' [-Werror=implicit-function-declaration]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: libdrm-2.4.30/intel/test_decode.c
+===================================================================
+--- libdrm-2.4.30.orig/intel/test_decode.c	2012-02-03 14:28:46.409355918 -0800
++++ libdrm-2.4.30/intel/test_decode.c	2012-02-03 14:29:02.357356689 -0800
+@@ -21,6 +21,8 @@
+  * IN THE SOFTWARE.
+  */
+ 
++#include "config.h"
++
+ #include <string.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+@@ -31,7 +33,6 @@
+ #include <sys/mman.h>
+ #include <err.h>
+ 
+-#include "config.h"
+ #include "intel_bufmgr.h"
+ #include "intel_chipset.h"
+ 
diff --git a/meta/recipes-graphics/drm/libdrm_2.4.30.bb b/meta/recipes-graphics/drm/libdrm_2.4.30.bb
index 4a6052d..5d99916 100644
--- a/meta/recipes-graphics/drm/libdrm_2.4.30.bb
+++ b/meta/recipes-graphics/drm/libdrm_2.4.30.bb
@@ -2,9 +2,11 @@ require libdrm.inc
 
 LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71"
 
-PR = "r0"
+PR = "r1"
 
-SRC_URI += "file://installtests.patch"
+SRC_URI += "file://installtests.patch \
+            file://GNU_SOURCE_definition.patch \
+           "
 
 SRC_URI[md5sum] = "9f57a68b2c0836b55ebcbc241f6ca175"
 SRC_URI[sha256sum] = "cacea9c157ec824ad278a06f4910659b2f3ae69686518ece8d6967843cddcd56"
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 17/20] classes, recipes: Replace POKY_* with CORE_IMAGE_*
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (15 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 16/20] libdrm: Fix build failure unearthed by uclibc Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-06  6:40 ` [PATCH 18/20] libx11: Backport _XGetRequest API Khem Raj
                   ` (3 subsequent siblings)
  20 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/classes/core-image.bbclass                    |    8 ++++----
 meta/recipes-core/images/core-image-minimal.bb     |    2 +-
 meta/recipes-core/images/self-hosted-image.bb      |    2 +-
 meta/recipes-extended/images/core-image-basic.bb   |    2 +-
 meta/recipes-extended/images/core-image-lsb-dev.bb |    2 +-
 meta/recipes-extended/images/core-image-lsb-sdk.bb |    2 +-
 meta/recipes-extended/images/core-image-lsb.bb     |    2 +-
 meta/recipes-graphics/images/core-image-clutter.bb |    2 +-
 .../images/core-image-gtk-directfb.bb              |    2 +-
 meta/recipes-qt/images/qt4e-demo-image.bb          |    2 +-
 10 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/meta/classes/core-image.bbclass b/meta/classes/core-image.bbclass
index c08895f..668297b 100644
--- a/meta/classes/core-image.bbclass
+++ b/meta/classes/core-image.bbclass
@@ -47,18 +47,18 @@ PACKAGE_GROUP_ssh-server-openssh = "task-core-ssh-openssh"
 PACKAGE_GROUP_package-management = "${ROOTFS_PKGMANAGE}"
 PACKAGE_GROUP_qt4-pkgs = "task-core-qt-demos"
 
-POKY_BASE_INSTALL = '\
+CORE_IMAGE_BASE_INSTALL = '\
     task-core-boot \
     task-base-extended \
     \
     ${@base_contains("IMAGE_FEATURES", "package-management", "", "${ROOTFS_PKGMANAGE_BOOTSTRAP}",d)} \
     \
-    ${POKY_EXTRA_INSTALL} \
+    ${CORE_IMAGE_EXTRA_INSTALL} \
     '
 
-POKY_EXTRA_INSTALL ?= ""
+CORE_IMAGE_EXTRA_INSTALL ?= ""
 
-IMAGE_INSTALL ?= "${POKY_BASE_INSTALL}"
+IMAGE_INSTALL ?= "${CORE_IMAGE_BASE_INSTALL}"
 
 X11_IMAGE_FEATURES  = "x11-base apps-x11-core package-management"
 ENHANCED_IMAGE_FEATURES = "${X11_IMAGE_FEATURES} apps-x11-games apps-x11-pimlico package-management"
diff --git a/meta/recipes-core/images/core-image-minimal.bb b/meta/recipes-core/images/core-image-minimal.bb
index 687f72a..7953b80 100644
--- a/meta/recipes-core/images/core-image-minimal.bb
+++ b/meta/recipes-core/images/core-image-minimal.bb
@@ -3,7 +3,7 @@
 #
 DESCRIPTION = "A small image just capable of allowing a device to boot."
 
-IMAGE_INSTALL = "task-core-boot ${ROOTFS_PKGMANAGE_BOOTSTRAP} ${POKY_EXTRA_INSTALL}"
+IMAGE_INSTALL = "task-core-boot ${ROOTFS_PKGMANAGE_BOOTSTRAP} ${CORE_IMAGE_EXTRA_INSTALL}"
 
 IMAGE_LINGUAS = " "
 
diff --git a/meta/recipes-core/images/self-hosted-image.bb b/meta/recipes-core/images/self-hosted-image.bb
index 5029ac2..a0a7592 100644
--- a/meta/recipes-core/images/self-hosted-image.bb
+++ b/meta/recipes-core/images/self-hosted-image.bb
@@ -1,6 +1,6 @@
 IMAGE_INSTALL = "task-core-boot task-core-apps-console task-core-ssh-openssh task-self-hosted"
 
-POKY_EXTRA_INSTALL = "\
+CORE_IMAGE_EXTRA_INSTALL = "\
     task-self-hosted \
     "
 
diff --git a/meta/recipes-extended/images/core-image-basic.bb b/meta/recipes-extended/images/core-image-basic.bb
index 5e58e60..f801346 100644
--- a/meta/recipes-extended/images/core-image-basic.bb
+++ b/meta/recipes-extended/images/core-image-basic.bb
@@ -8,6 +8,6 @@ IMAGE_INSTALL = "\
     task-core-basic \
     "
 
-#    ${POKY_BASE_INSTALL} 
+#    ${CORE_IMAGE_BASE_INSTALL} 
 
 inherit core-image
diff --git a/meta/recipes-extended/images/core-image-lsb-dev.bb b/meta/recipes-extended/images/core-image-lsb-dev.bb
index 2d6f674..e6d7bc9 100644
--- a/meta/recipes-extended/images/core-image-lsb-dev.bb
+++ b/meta/recipes-extended/images/core-image-lsb-dev.bb
@@ -5,7 +5,7 @@ standalone SDK."
 IMAGE_FEATURES += "apps-console-core dev-pkgs ssh-server-openssh"
 
 IMAGE_INSTALL = "\
-    ${POKY_BASE_INSTALL} \
+    ${CORE_IMAGE_BASE_INSTALL} \
     task-core-basic \
     task-core-lsb \
     "
diff --git a/meta/recipes-extended/images/core-image-lsb-sdk.bb b/meta/recipes-extended/images/core-image-lsb-sdk.bb
index 105c8db..0892891 100644
--- a/meta/recipes-extended/images/core-image-lsb-sdk.bb
+++ b/meta/recipes-extended/images/core-image-lsb-sdk.bb
@@ -7,7 +7,7 @@ EXTRA_IMAGE_FEATURES = "tools-debug tools-profile tools-testapps debug-tweaks"
 
 
 IMAGE_INSTALL = "\
-    ${POKY_BASE_INSTALL} \
+    ${CORE_IMAGE_BASE_INSTALL} \
     task-core-basic \
     task-core-lsb \
     "
diff --git a/meta/recipes-extended/images/core-image-lsb.bb b/meta/recipes-extended/images/core-image-lsb.bb
index f669618..b0a3a4d 100644
--- a/meta/recipes-extended/images/core-image-lsb.bb
+++ b/meta/recipes-extended/images/core-image-lsb.bb
@@ -4,7 +4,7 @@ conform to Linux Standard Base (LSB)."
 IMAGE_FEATURES += "apps-console-core ssh-server-openssh"
 
 IMAGE_INSTALL = "\
-    ${POKY_BASE_INSTALL} \
+    ${CORE_IMAGE_BASE_INSTALL} \
     task-core-basic \
     task-core-lsb \
     "
diff --git a/meta/recipes-graphics/images/core-image-clutter.bb b/meta/recipes-graphics/images/core-image-clutter.bb
index 636238a..6c49a02 100644
--- a/meta/recipes-graphics/images/core-image-clutter.bb
+++ b/meta/recipes-graphics/images/core-image-clutter.bb
@@ -6,7 +6,7 @@ IMAGE_FEATURES += "apps-console-core ${SATO_IMAGE_FEATURES}"
 LICENSE = "MIT"
 
 IMAGE_INSTALL = "\
-    ${POKY_BASE_INSTALL} \
+    ${CORE_IMAGE_BASE_INSTALL} \
     task-core-clutter-core \
     task-core-clutter-tests \
     task-core-clutter-apps"
diff --git a/meta/recipes-graphics/images/core-image-gtk-directfb.bb b/meta/recipes-graphics/images/core-image-gtk-directfb.bb
index 87b3a86..a5fba17 100644
--- a/meta/recipes-graphics/images/core-image-gtk-directfb.bb
+++ b/meta/recipes-graphics/images/core-image-gtk-directfb.bb
@@ -15,7 +15,7 @@ RDEPENDS_${PN} += " \
 inherit core-image
 
 IMAGE_INSTALL += "\
-	${POKY_BASE_INSTALL} \
+	${CORE_IMAGE_BASE_INSTALL} \
 	task-core-basic \
 	module-init-tools \
 	task-core-gtk-directfb-base \
diff --git a/meta/recipes-qt/images/qt4e-demo-image.bb b/meta/recipes-qt/images/qt4e-demo-image.bb
index 6523379..2e50bf6 100644
--- a/meta/recipes-qt/images/qt4e-demo-image.bb
+++ b/meta/recipes-qt/images/qt4e-demo-image.bb
@@ -11,7 +11,7 @@ RDEPENDS_${PN} += " \
 	"
 
 IMAGE_INSTALL += "\
-	${POKY_BASE_INSTALL} \
+	${CORE_IMAGE_BASE_INSTALL} \
 	module-init-tools \
 	task-qt4e-base \
 "
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 18/20] libx11: Backport _XGetRequest API
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (16 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 17/20] classes, recipes: Replace POKY_* with CORE_IMAGE_* Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-06  6:40 ` [PATCH 19/20] gcc-cross-testing: Fix evaluation of user and target name Khem Raj
                   ` (2 subsequent siblings)
  20 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

This API is relatively new and will be in next release of libX11
this is needed for OE qemu-native which links to libx11-native
but uses libGL from build system and herein lies the problem
if you have bleeding edge distro e.g. ubuntu 12.04(development)
libGL.so expects this API to be present. Backported to 1.4.4
thusly

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...quest-as-substitute-for-GetReq-GetReqExtr.patch |  137 ++++++++++++++++++++
 meta/recipes-graphics/xorg-lib/libx11_1.4.4.bb     |    3 +
 2 files changed, 140 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-graphics/xorg-lib/libx11-1.4.4/0001-Add-_XGetRequest-as-substitute-for-GetReq-GetReqExtr.patch

diff --git a/meta/recipes-graphics/xorg-lib/libx11-1.4.4/0001-Add-_XGetRequest-as-substitute-for-GetReq-GetReqExtr.patch b/meta/recipes-graphics/xorg-lib/libx11-1.4.4/0001-Add-_XGetRequest-as-substitute-for-GetReq-GetReqExtr.patch
new file mode 100644
index 0000000..aedb5c4
--- /dev/null
+++ b/meta/recipes-graphics/xorg-lib/libx11-1.4.4/0001-Add-_XGetRequest-as-substitute-for-GetReq-GetReqExtr.patch
@@ -0,0 +1,137 @@
+From 4a060f993bf676cf21ad9784e010f54134da7b40 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon, 17 Oct 2011 09:45:15 +1000
+Subject: [PATCH] Add _XGetRequest as substitute for GetReq/GetReqExtra
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+Reviewed-by: Jamey Sharp <jamey@minilop.net>
+---
+ include/X11/Xlibint.h |   49 ++++++++++++++++---------------------------------
+ src/XlibInt.c         |   31 +++++++++++++++++++++++++++++++
+ 2 files changed, 47 insertions(+), 33 deletions(-)
+
+Upstream-Status: Backport
+
+diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h
+index 2ce356d..43d1f2a 100644
+--- a/include/X11/Xlibint.h
++++ b/include/X11/Xlibint.h
+@@ -420,6 +420,18 @@ extern LockInfoPtr _Xglobal_lock;
+ #define WORD64ALIGN
+ #endif /* WORD64 */
+ 
++/**
++ * Return a len-sized request buffer for the request type. This function may
++ * flush the output queue.
++ *
++ * @param dpy The display connection
++ * @param type The request type
++ * @param len Length of the request in bytes
++ *
++ * @returns A pointer to the request buffer with a few default values
++ * initialized.
++ */
++extern void *_XGetRequest(Display *dpy, CARD8 type, size_t len);
+ 
+ /*
+  * GetReq - Get the next available X request packet in the buffer and
+@@ -432,25 +444,10 @@ extern LockInfoPtr _Xglobal_lock;
+ 
+ #if !defined(UNIXCPP) || defined(ANSICPP)
+ #define GetReq(name, req) \
+-        WORD64ALIGN\
+-	if ((dpy->bufptr + SIZEOF(x##name##Req)) > dpy->bufmax)\
+-		_XFlush(dpy);\
+-	req = (x##name##Req *)(dpy->last_req = dpy->bufptr);\
+-	req->reqType = X_##name;\
+-	req->length = (SIZEOF(x##name##Req))>>2;\
+-	dpy->bufptr += SIZEOF(x##name##Req);\
+-	dpy->request++
+-
++	req = (x##name##Req *) _XGetRequest(dpy, X_##name, SIZEOF(x##name##Req))
+ #else  /* non-ANSI C uses empty comment instead of "##" for token concatenation */
+ #define GetReq(name, req) \
+-        WORD64ALIGN\
+-	if ((dpy->bufptr + SIZEOF(x/**/name/**/Req)) > dpy->bufmax)\
+-		_XFlush(dpy);\
+-	req = (x/**/name/**/Req *)(dpy->last_req = dpy->bufptr);\
+-	req->reqType = X_/**/name;\
+-	req->length = (SIZEOF(x/**/name/**/Req))>>2;\
+-	dpy->bufptr += SIZEOF(x/**/name/**/Req);\
+-	dpy->request++
++	req = (x/**/name/**/Req *) _XGetRequest(dpy, X_/**/name, SIZEOF(x/**/name/**/Req))
+ #endif
+ 
+ /* GetReqExtra is the same as GetReq, but allocates "n" additional
+@@ -458,24 +455,10 @@ extern LockInfoPtr _Xglobal_lock;
+ 
+ #if !defined(UNIXCPP) || defined(ANSICPP)
+ #define GetReqExtra(name, n, req) \
+-        WORD64ALIGN\
+-	if ((dpy->bufptr + SIZEOF(x##name##Req) + n) > dpy->bufmax)\
+-		_XFlush(dpy);\
+-	req = (x##name##Req *)(dpy->last_req = dpy->bufptr);\
+-	req->reqType = X_##name;\
+-	req->length = (SIZEOF(x##name##Req) + n)>>2;\
+-	dpy->bufptr += SIZEOF(x##name##Req) + n;\
+-	dpy->request++
++	req = (x##name##Req *) _XGetRequest(dpy, X_##name, SIZEOF(x##name##Req) + n)
+ #else
+ #define GetReqExtra(name, n, req) \
+-        WORD64ALIGN\
+-	if ((dpy->bufptr + SIZEOF(x/**/name/**/Req) + n) > dpy->bufmax)\
+-		_XFlush(dpy);\
+-	req = (x/**/name/**/Req *)(dpy->last_req = dpy->bufptr);\
+-	req->reqType = X_/**/name;\
+-	req->length = (SIZEOF(x/**/name/**/Req) + n)>>2;\
+-	dpy->bufptr += SIZEOF(x/**/name/**/Req) + n;\
+-	dpy->request++
++	req = (x/**/name/**/Req *) _XGetRequest(dpy, X_/**/name, SIZEOF(x/**/name/**/Req) + n)
+ #endif
+ 
+ 
+diff --git a/src/XlibInt.c b/src/XlibInt.c
+index 3db151e..a8f5d08 100644
+--- a/src/XlibInt.c
++++ b/src/XlibInt.c
+@@ -1956,6 +1956,37 @@ Screen *_XScreenOfWindow(Display *dpy, Window w)
+ }
+ 
+ 
++/*
++ * WARNING: This implementation's pre-conditions and post-conditions
++ * must remain compatible with the old macro-based implementations of
++ * GetReq, GetReqExtra, GetResReq, and GetEmptyReq. The portions of the
++ * Display structure affected by those macros are part of libX11's
++ * ABI.
++ */
++void *_XGetRequest(Display *dpy, CARD8 type, size_t len)
++{
++    xReq *req;
++
++    WORD64ALIGN
++
++    if (dpy->bufptr + len > dpy->bufmax)
++	_XFlush(dpy);
++
++    if (len % 4)
++	fprintf(stderr,
++		"Xlib: request %d length %zd not a multiple of 4.\n",
++		type, len);
++
++    dpy->last_req = dpy->bufptr;
++
++    req = (xReq*)dpy->bufptr;
++    req->reqType = type;
++    req->length = len / 4;
++    dpy->bufptr += len;
++    dpy->request++;
++    return req;
++}
++
+ #if defined(WIN32)
+ 
+ /*
+-- 
+1.7.8.3
+
diff --git a/meta/recipes-graphics/xorg-lib/libx11_1.4.4.bb b/meta/recipes-graphics/xorg-lib/libx11_1.4.4.bb
index 823b3dc..ee1d919 100644
--- a/meta/recipes-graphics/xorg-lib/libx11_1.4.4.bb
+++ b/meta/recipes-graphics/xorg-lib/libx11_1.4.4.bb
@@ -1,6 +1,8 @@
 require libx11.inc
 inherit gettext
 
+PR = "r1"
+
 BBCLASSEXTEND = "native nativesdk"
 
 EXTRA_OECONF += "--with-keysymdefdir=${STAGING_INCDIR}/X11"
@@ -12,6 +14,7 @@ DEPENDS += "util-macros xtrans libxdmcp libxau \
 
 SRC_URI += " file://keysymdef_include.patch \
              file://x11_disable_makekeys.patch \
+             file://0001-Add-_XGetRequest-as-substitute-for-GetReq-GetReqExtr.patch \
              "
 
 SRC_URI[md5sum] = "ed7c382cbf8c13425b6a66bcac0ca5d9"
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 19/20] gcc-cross-testing: Fix evaluation of user and target name
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (17 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 18/20] libx11: Backport _XGetRequest API Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-07 17:21   ` Saul Wold
  2012-02-07 17:49   ` Otavio Salvador
  2012-02-06  6:40 ` [PATCH 20/20] mirrors.bbclass: Add yp.org and oe.org to fallback mirrors Khem Raj
  2012-02-08  4:12 ` [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Saul Wold
  20 siblings, 2 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

Dont use -q to grep we pipe to /dev/null anyway all we
care is the return status of grep

Signed-off-by: Khem Raj <raj.khem@gmail.com>

xxx

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-devtools/gcc/gcc-cross.inc |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc b/meta/recipes-devtools/gcc/gcc-cross.inc
index 6acf8c5..b16c57d 100644
--- a/meta/recipes-devtools/gcc/gcc-cross.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross.inc
@@ -65,11 +65,11 @@ then
 	exit 1;
 fi
 
-echo "\$target" | grep −q "@" >& /dev/null
+echo "\$target" | grep "@" >& /dev/null
 if [ "x\$?" = "x0" ]
 then
-   user=echo \$target | cut -d '@' -f 1
-   target=echo \$target | cut -d '@' -f 2
+   user=\$(echo \$target | cut -d '@' -f 1)
+   target=\$(echo \$target | cut -d '@' -f 2)
 else
    user=\$USER
 fi
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* [PATCH 20/20] mirrors.bbclass: Add yp.org and oe.org to fallback mirrors
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (18 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 19/20] gcc-cross-testing: Fix evaluation of user and target name Khem Raj
@ 2012-02-06  6:40 ` Khem Raj
  2012-02-07 17:49   ` Saul Wold
  2012-02-08  4:12 ` [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Saul Wold
  20 siblings, 1 reply; 70+ messages in thread
From: Khem Raj @ 2012-02-06  6:40 UTC (permalink / raw)
  To: openembedded-core

This should improve the fetching errors users see
when upstream src_uri is unavailable

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/classes/mirrors.bbclass |   21 ++++++++++++++++++++-
 1 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/meta/classes/mirrors.bbclass b/meta/classes/mirrors.bbclass
index 2146087..69f44cd 100644
--- a/meta/classes/mirrors.bbclass
+++ b/meta/classes/mirrors.bbclass
@@ -52,5 +52,24 @@ ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://gd.tuwien.ac.at/utils/adm
 ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://sunsite.ualberta.ca/pub/Mirror/lsof/ \n \
 ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://the.wiretapped.net/pub/security/host-security/lsof/ \n \
 http://www.apache.org/dist  http://archive.apache.org/dist \n \
+cvs://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
+svn://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
+git://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
+hg://.*/.*      http://autobuilder.yoctoproject.org/pub/sources/ \n \
+bzr://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
+svk://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
+p4://.*/.*      http://autobuilder.yoctoproject.org/pub/sources/ \n \
+osc://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
+https?$://.*/.* http://autobuilder.yoctoproject.org/pub/sources/ \n \
+ftp://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
+cvs://.*/.*     http://sources.openembedded.org/ \n \
+svn://.*/.*     http://sources.openembedded.org/ \n \
+git://.*/.*     http://sources.openembedded.org/ \n \
+hg://.*/.*      http://sources.openembedded.org/ \n \
+bzr://.*/.*     http://sources.openembedded.org/ \n \
+svk://.*/.*     http://sources.openembedded.org/ \n \
+p4://.*/.*      http://sources.openembedded.org/ \n \
+osc://.*/.*     http://sources.openembedded.org/ \n \
+https?$://.*/.* http://sources.openembedded.org/ \n \
+ftp://.*/.*     http://sources.openembedded.org/ \n \
 "
-
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-06  6:40 ` [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6 Khem Raj
@ 2012-02-07  8:08   ` Saul Wold
  2012-02-07 15:31     ` Khem Raj
  0 siblings, 1 reply; 70+ messages in thread
From: Saul Wold @ 2012-02-07  8:08 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 02/05/2012 10:40 PM, Khem Raj wrote:
> Dont use autotools, it really not so autoconf like.
> the configure script gets updated with every release of zlib
> and we overwrite that. Instead use the upstream provided
> configure
>
> copyright year was changed in zlib.h which caused change in
> LIC_FILE_CHECKSUM
>
> fix.inverted.LFS.logic.patch is already applied upstream so drop it
>
> Drop the configure.ac and Makefile.am scripts since we do not
> autoreconf anymore and do not inherit autotools anymore
>
Not sure what's up with this patch, but it is causing failures in other 
recipes that depend on libz, it seems like the libz.la is not getting 
installed correctly.

| /bin/grep: 
/intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la: No such 
file or directory
| /bin/sed: can't read 
/intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la: No such 
file or directory
| i586-poky-linux-libtool: link: 
`/intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la' is not a 
valid libtool archive


Sau!

> Signed-off-by: Khem Raj<raj.khem@gmail.com>
> ---
>   meta/recipes-core/zlib/files/Makefile.am           |    9 ----
>   meta/recipes-core/zlib/files/configure.ac          |   48 --------------------
>   .../zlib/zlib-1.2.5/fix.inverted.LFS.logic.patch   |   20 --------
>   meta/recipes-core/zlib/zlib_1.2.5.bb               |   41 -----------------
>   meta/recipes-core/zlib/zlib_1.2.6.bb               |   26 +++++++++++
>   5 files changed, 26 insertions(+), 118 deletions(-)
>   delete mode 100644 meta/recipes-core/zlib/files/Makefile.am
>   delete mode 100644 meta/recipes-core/zlib/files/configure.ac
>   delete mode 100644 meta/recipes-core/zlib/zlib-1.2.5/fix.inverted.LFS.logic.patch
>   delete mode 100644 meta/recipes-core/zlib/zlib_1.2.5.bb
>   create mode 100644 meta/recipes-core/zlib/zlib_1.2.6.bb
>
> diff --git a/meta/recipes-core/zlib/files/Makefile.am b/meta/recipes-core/zlib/files/Makefile.am
> deleted file mode 100644
> index b66d299..0000000
> --- a/meta/recipes-core/zlib/files/Makefile.am
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -lib_LTLIBRARIES = libz.la
> -
> -libz_la_SOURCES = adler32.c compress.c crc32.c gzlib.c gzclose.c gzread.c \
> -                  gzwrite.c uncompr.c deflate.c trees.c zutil.c inflate.c \
> -                  infback.c inftrees.c inffast.c
> -
> -libz_la_LDFLAGS = -version-number 1:2:5 --version-script zlib.map
> -
> -include_HEADERS = zconf.h zlib.h zlibdefs.h
> diff --git a/meta/recipes-core/zlib/files/configure.ac b/meta/recipes-core/zlib/files/configure.ac
> deleted file mode 100644
> index 4761b7e..0000000
> --- a/meta/recipes-core/zlib/files/configure.ac
> +++ /dev/null
> @@ -1,48 +0,0 @@
> -AC_INIT(zlib,1.2.5)
> -AC_CONFIG_SRCDIR(adler32.c)
> -AM_INIT_AUTOMAKE(zlibs,1.2.5)
> -
> -AC_PREREQ([2.59])
> -
> -AC_PROG_CC([gcc])
> -AC_PROG_LIBTOOL
> -
> -AC_HEADER_STDC
> -
> -zlib_save_CPPFLAGS=$CPPFLAGS
> -CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
> -AC_CHECK_TYPES(off64_t)
> -CPPFLAGS=$zlib_save_CPPFLAGS
> -
> -AC_CACHE_CHECK([whether to enable -D_LARGEFILE64_SOURCE], [zlib_cv_use_lfs64], [
> -    zlib_cv_use_lfs64=no
> -    if test "$ac_cv_type_off64_t" = "yes"; then
> -        zlib_cv_use_lfs64=yes
> -    fi
> -])
> -
> -if test "$zlib_cv_use_lfs64" = "yes"; then
> -    CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
> -
> -    #APR_ADDTO(CPPFLAGS, [-D_LARGEFILE64_SOURCE])
> -fi
> -
> -cat>  zlibdefs.h<<  EOF
> -/* zlibdefs.h -- compile-time definitions for the zlib compression library
> - * Copyright (C) 1995-2006 Jean-loup Gailly.
> - * For conditions of distribution and use, see copyright notice in zlib.h
> - */
> -
> -#include<sys/types.h>	/* for off_t */
> -#include<unistd.h>	/* for SEEK_* and off_t */
> -#ifdef VMS
> -#  include<unixio.h>	/* for off_t */
> -#endif
> -#ifndef z_off_t
> -#  define z_off_t off_t
> -#endif
> -EOF
> -
> -AC_CONFIG_FILES([Makefile])
> -
> -AC_OUTPUT
> diff --git a/meta/recipes-core/zlib/zlib-1.2.5/fix.inverted.LFS.logic.patch b/meta/recipes-core/zlib/zlib-1.2.5/fix.inverted.LFS.logic.patch
> deleted file mode 100644
> index 038c1a2..0000000
> --- a/meta/recipes-core/zlib/zlib-1.2.5/fix.inverted.LFS.logic.patch
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -Upstream-Status: Pending
> -
> -see
> -https://bugs.gentoo.org/316377?id=316377
> -https://bugs.freedesktop.org/show_bug.cgi?id=33710
> -http://lists.freedesktop.org/archives/poppler-bugs/2011-January/006014.html
> -for details
> -
> -diff -up zlib-1.2.5/zlib.h.pom zlib-1.2.5/zlib.h
> ---- zlib-1.2.5/zlib.h.pom	2010-04-20 06:12:48.000000000 +0200
> -+++ zlib-1.2.5/zlib.h	2010-06-16 13:08:59.000000000 +0200
> -@@ -1578,7 +1578,7 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF(
> - #  define gzoffset gzoffset64
> - #  define adler32_combine adler32_combine64
> - #  define crc32_combine crc32_combine64
> --#  ifdef _LARGEFILE64_SOURCE
> -+#  ifndef _LARGEFILE64_SOURCE
> -      ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
> -      ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int));
> -      ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile));
> diff --git a/meta/recipes-core/zlib/zlib_1.2.5.bb b/meta/recipes-core/zlib/zlib_1.2.5.bb
> deleted file mode 100644
> index b5756d9..0000000
> --- a/meta/recipes-core/zlib/zlib_1.2.5.bb
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -SUMMARY = "Zlib Compression Library"
> -DESCRIPTION = "Zlib is a general-purpose, patent-free, lossless data compression \
> -library which is used by many different programs."
> -HOMEPAGE = "http://zlib.net/"
> -SECTION = "libs"
> -LICENSE = "Zlib"
> -LIC_FILES_CHKSUM = "file://zlib.h;beginline=4;endline=23;md5=084e9c30e4e6272c3b057b13c6467f3d"
> -
> -DEPENDS = "libtool-cross"
> -PR = "r3"
> -
> -SRC_URI = "http://www.zlib.net/${BPN}-${PV}.tar.bz2 \
> -           file://configure.ac \
> -           file://Makefile.am \
> -           file://fix.inverted.LFS.logic.patch"
> -
> -SRC_URI[md5sum] = "be1e89810e66150f5b0327984d8625a0"
> -SRC_URI[sha256sum] = "239aead2f22f16bfcfa6a6a5150dcbd6d6f2e4d1eaa8727b5769ea014120b307"
> -
> -inherit autotools
> -
> -do_configure_prepend () {
> -	cp ${WORKDIR}/configure.ac ${S}/
> -	cp ${WORKDIR}/Makefile.am ${S}/
> -}
> -
> -do_install_append () {
> -	sed \
> -		-e 's:@prefix@:${prefix}:' \
> -		-e 's:@exec_prefix@:${exec_prefix}:' \
> -		-e 's:@libdir@:${libdir}:' \
> -		-e 's:@sharedlibdir@:${libdir}:' \
> -		-e 's:@includedir@:${includedir}:' \
> -		-e 's:@VERSION@:${PV}:' \
> -		zlib.pc.in>  zlib.pc
> -
> -	install -d ${D}${libdir}/pkgconfig
> -	install -m 0644 zlib.pc ${D}${libdir}/pkgconfig/
> -}
> -
> -BBCLASSEXTEND = "native nativesdk"
> diff --git a/meta/recipes-core/zlib/zlib_1.2.6.bb b/meta/recipes-core/zlib/zlib_1.2.6.bb
> new file mode 100644
> index 0000000..a220773
> --- /dev/null
> +++ b/meta/recipes-core/zlib/zlib_1.2.6.bb
> @@ -0,0 +1,26 @@
> +SUMMARY = "Zlib Compression Library"
> +DESCRIPTION = "Zlib is a general-purpose, patent-free, lossless data compression \
> +library which is used by many different programs."
> +HOMEPAGE = "http://zlib.net/"
> +SECTION = "libs"
> +LICENSE = "Zlib"
> +LIC_FILES_CHKSUM = "file://zlib.h;beginline=4;endline=23;md5=94d1b5a40dadd127f3351471727e66a9"
> +
> +SRC_URI = "http://www.zlib.net/${BPN}-${PV}.tar.bz2 \
> +           "
> +SRC_URI[md5sum] = "dc2cfa0d2313ca77224b4d932b2911e9"
> +SRC_URI[sha256sum] = "fa3e3e4881fa5810b8903f2c7e0dcd5a0a673535f0438021c4bbb5db1b918c8e"
> +
> +do_configure (){
> +	./configure --prefix=${prefix} --shared --libdir=${libdir}
> +}
> +
> +do_compile (){
> +	oe_runmake
> +}
> +
> +do_install() {
> +	oe_runmake DESTDIR=${D} install
> +}
> +
> +BBCLASSEXTEND = "native nativesdk"



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-07  8:08   ` Saul Wold
@ 2012-02-07 15:31     ` Khem Raj
  2012-02-07 15:59       ` Saul Wold
  0 siblings, 1 reply; 70+ messages in thread
From: Khem Raj @ 2012-02-07 15:31 UTC (permalink / raw)
  To: Saul Wold; +Cc: Patches and discussions about the oe-core layer

On Tue, Feb 7, 2012 at 12:08 AM, Saul Wold <sgw@linux.intel.com> wrote:
> | /bin/grep: /intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la:
> No such file or directory

thanks ok I did not catch it with sato image build. which package is
failing with this
error.



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-07 15:31     ` Khem Raj
@ 2012-02-07 15:59       ` Saul Wold
  2012-02-07 23:12         ` Khem Raj
  0 siblings, 1 reply; 70+ messages in thread
From: Saul Wold @ 2012-02-07 15:59 UTC (permalink / raw)
  To: Khem Raj; +Cc: Patches and discussions about the oe-core layer

On 02/07/2012 07:31 AM, Khem Raj wrote:
> On Tue, Feb 7, 2012 at 12:08 AM, Saul Wold<sgw@linux.intel.com>  wrote:
>> | /bin/grep: /intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la:
>> No such file or directory
>
> thanks ok I did not catch it with sato image build. which package is
> failing with this
> error.
>
pixman, gconf, polkit are the 3 I saw doing a world build.

Sau!



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 10/20] pseudo: Wrap renameat and opendir
  2012-02-06  6:40 ` [PATCH 10/20] pseudo: Wrap renameat and opendir Khem Raj
@ 2012-02-07 16:21   ` Saul Wold
  2012-02-07 16:31     ` Khem Raj
  0 siblings, 1 reply; 70+ messages in thread
From: Saul Wold @ 2012-02-07 16:21 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 02/05/2012 10:40 PM, Khem Raj wrote:
> Signed-off-by: Khem Raj<raj.khem@gmail.com>
> ---
>   meta/recipes-devtools/pseudo/pseudo/opendir.patch  |   92 ++++++++
>   meta/recipes-devtools/pseudo/pseudo/renameat.patch |  227 ++++++++++++++++++++
>   meta/recipes-devtools/pseudo/pseudo_1.2.bb         |    6 +-
>   3 files changed, 323 insertions(+), 2 deletions(-)
>   create mode 100644 meta/recipes-devtools/pseudo/pseudo/opendir.patch
>   create mode 100644 meta/recipes-devtools/pseudo/pseudo/renameat.patch
>
> diff --git a/meta/recipes-devtools/pseudo/pseudo/opendir.patch b/meta/recipes-devtools/pseudo/pseudo/opendir.patch
> new file mode 100644
> index 0000000..d20f717
> --- /dev/null
> +++ b/meta/recipes-devtools/pseudo/pseudo/opendir.patch
> @@ -0,0 +1,92 @@
> +commit 162f2692c399b93311652201a940fdaf9c9e6924
> +Author: Peter Seebach<peter.seebach@windriver.com>
> +Date:   Thu Feb 2 11:45:42 2012 -0600
> +
> +    Make opendir/closedir stash and forget directory names.
> +
> +    The dirfd(DIR *) interface allows you to get the fd for a DIR *,
> +    meaning you can use it with openat(), meaning you can need its
> +    path.  This causes a segfault.  Also gonna fix the base_path
> +    code not to segfault in that case, but first fix the underlying
> +    problem.
> +

Missing Upstream-Status: and Signed-off-by (yes I know we have an email 
header).

Thanks
	Sau!

> +diff --git a/ChangeLog.txt b/ChangeLog.txt
> +index 4de488c..9625b38 100644
> +--- a/ChangeLog.txt
> ++++ b/ChangeLog.txt
> +@@ -1,3 +1,7 @@
> ++2012-02-02:
> ++	* (seebs) stash dir name for DIR * from opendir using dirfd.
> ++	* (seebs) add closedir.
> ++
> + 2011-11-02:
> + 	* (seebs) Call this 1.2 because the UNLOAD change is moderately
> + 	  significant, and so's the clone change.
> +diff --git a/ports/unix/guts/closedir.c b/ports/unix/guts/closedir.c
> +new file mode 100644
> +index 0000000..1085361
> +--- /dev/null
> ++++ b/ports/unix/guts/closedir.c
> +@@ -0,0 +1,20 @@
> ++/*
> ++ * Copyright (c) 2012 Wind River Systems; see
> ++ * guts/COPYRIGHT for information.
> ++ *
> ++ * static int
> ++ * wrap_closedir(DIR *dirp) {
> ++ *	int rc = -1;
> ++ */
> ++	if (!dirp) {
> ++		errno = EFAULT;
> ++		return -1;
> ++	}
> ++
> ++	int fd = dirfd(dirp);
> ++	pseudo_client_op(OP_CLOSE, 0, fd, -1, 0, 0);
> ++	rc = real_closedir(dirp);
> ++
> ++/*	return rc;
> ++ * }
> ++ */
> +diff --git a/ports/unix/guts/opendir.c b/ports/unix/guts/opendir.c
> +index 8eaa71f..e69717e 100644
> +--- a/ports/unix/guts/opendir.c
> ++++ b/ports/unix/guts/opendir.c
> +@@ -6,8 +6,25 @@
> +  * wrap_opendir(const char *path) {
> +  *	DIR * rc = NULL;
> +  */
> ++ 	struct stat buf;
> ++	int save_errno;
> +
> + 	rc = real_opendir(path);
> ++	if (rc) {
> ++		int fd;
> ++		save_errno = errno;
> ++		fd = dirfd(rc);
> ++		if (real_fstat(fd,&buf) == -1) {
> ++			pseudo_debug(1, "diropen (fd %d) succeeded, but fstat failed (%s).\n",
> ++				fd, strerror(errno));
> ++			pseudo_client_op_plain(OP_OPEN, PSA_READ, fd, -1, path, 0);
> ++		} else {
> ++			pseudo_client_op_plain(OP_OPEN, PSA_READ, fd, -1, path,&buf);
> ++		}
> ++
> ++
> ++		errno = save_errno;
> ++	}
> +
> + /*	return rc;
> +  * }
> +diff --git a/ports/unix/wrapfuncs.in b/ports/unix/wrapfuncs.in
> +index e06e404..32250c4 100644
> +--- a/ports/unix/wrapfuncs.in
> ++++ b/ports/unix/wrapfuncs.in
> +@@ -21,6 +21,7 @@ long pathconf(const char *path, int name);
> + char *realpath(const char *name, char *resolved_name); /* version="GLIBC_2.3" */
> + int remove(const char *path); /* flags=AT_SYMLINK_NOFOLLOW */
> + DIR *opendir(const char *path);
> ++int closedir(DIR *dirp);
> + char *tempnam(const char *template, const char *pfx);
> + char *tmpnam(char *s);
> + int truncate(const char *path, off_t length);
> diff --git a/meta/recipes-devtools/pseudo/pseudo/renameat.patch b/meta/recipes-devtools/pseudo/pseudo/renameat.patch
> new file mode 100644
> index 0000000..74c8585
> --- /dev/null
> +++ b/meta/recipes-devtools/pseudo/pseudo/renameat.patch
> @@ -0,0 +1,227 @@
> +commit 795f2b44b7f692151556782f142a4a6e7d45d892
> +Author: Peter Seebach<peter.seebach@windriver.com>
> +Date:   Thu Feb 2 15:49:21 2012 -0600
> +
> +    Implement renameat()
> +
> +    After three long years, someone tried to use this.  This was impossibly
> +    hard back when pseudo was written, because there was only one dirfd
> +    provided for.  Thing is, now, the canonicalization happens in wrapfuncs,
> +    so a small tweak to makewrappers to recognize that oldpath should use
> +    olddirfd if it exists is enough to get us fully canonicalized paths
> +    when needed.
> +
> +    Also fix the crash if base_path gets called with an fd for which we have
> +    no path.
> +
> +diff --git a/ChangeLog.txt b/ChangeLog.txt
> +index 9625b38..25bd463 100644
> +--- a/ChangeLog.txt
> ++++ b/ChangeLog.txt
> +@@ -1,6 +1,9 @@
> + 2012-02-02:
> + 	* (seebs) stash dir name for DIR * from opendir using dirfd.
> + 	* (seebs) add closedir.
> ++	* (seebs) add initial pass at renameat()
> ++	* (seebs) in base_path, don't try to strlen the result if
> ++	  fd_path() returns NULL.
> +
> + 2011-11-02:
> + 	* (seebs) Call this 1.2 because the UNLOAD change is moderately
> +diff --git a/makewrappers b/makewrappers
> +index 20bbf2b..bf344d6 100755
> +--- a/makewrappers
> ++++ b/makewrappers
> +@@ -211,12 +211,13 @@ class Function:
> +         self.flags = '0'
> +         self.port = port
> +         self.directory = ''
> +-	self.version = 'NULL'
> ++        self.version = 'NULL'
> +         # On Darwin, some functions are SECRETLY converted to foo$INODE64
> +         # when called.  So we have to look those up for real_*
> +         self.inode64 = None
> +         self.real_func = None
> +         self.paths_to_munge = []
> ++        self.dirfds = {}
> +         self.hand_wrapped = None
> +         # used for the copyright date when creating stub functions
> +         self.date = datetime.date.today().year
> +@@ -239,6 +240,7 @@ class Function:
> +         # * If the arg has a name ending in 'path', we will canonicalize it.
> +         # * If the arg is named 'dirfd' or 'flags', it becomes the default
> +         #   values for the dirfd and flags arguments when canonicalizing.
> ++        # * If the name ends in dirfd, we do the same fancy stuff.
> +         # * Note that the "comments" field (/* ... */ after the decl) can
> +         #   override the dirfd/flags values.
> +         self.args = ArgumentList(bits.group(2))
> +@@ -246,7 +248,9 @@ class Function:
> +             # ignore varargs, they never get these special treatments
> +             if arg.vararg:
> +                 pass
> +-            elif arg.name == 'dirfd':
> ++            elif arg.name[-5:] == 'dirfd':
> ++                if len(arg.name)>  5:
> ++                    self.dirfds[arg.name[:-5]] = True
> +                 self.dirfd = 'dirfd'
> +             elif arg.name == 'flags':
> +                 self.flags = 'flags'
> +@@ -325,9 +329,13 @@ class Function:
> +         """create/allocate canonical paths"""
> +         alloc_paths = []
> +         for path in self.paths_to_munge:
> ++            prefix = path[:-4]
> ++	    if not prefix in self.dirfds:
> ++                prefix = ''
> ++            print "for path %s: prefix<%s>" % ( path, prefix )
> +             alloc_paths.append(
> +-                "%s = pseudo_root_path(__func__, __LINE__, %s, %s, %s);" %
> +-                (path, self.dirfd, path, self.flags))
> ++                "%s = pseudo_root_path(__func__, __LINE__, %s%s, %s, %s);" %
> ++                (path, prefix, self.dirfd, path, self.flags))
> +         return "\n\t\t\t".join(alloc_paths)
> +
> +     def free_paths(self):
> +diff --git a/ports/unix/guts/renameat.c b/ports/unix/guts/renameat.c
> +index c8203b7..f13cd1e 100644
> +--- a/ports/unix/guts/renameat.c
> ++++ b/ports/unix/guts/renameat.c
> +@@ -1,15 +1,111 @@
> + /*
> +- * Copyright (c) 2008-2010 Wind River Systems; see
> ++ * Copyright (c) 2008-2012 Wind River Systems; see
> +  * guts/COPYRIGHT for information.
> +  *
> +  * static int
> +  * wrap_renameat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath) {
> +  *	int rc = -1;
> +  */
> ++ 	pseudo_msg_t *msg;
> ++ 	struct stat oldbuf, newbuf;
> ++	int oldrc, newrc;
> ++	int save_errno;
> ++	int old_db_entry = 0;
> +
> +-	pseudo_diag("help! unimplemented renameat [%s ->  %s].\n", oldpath, newpath);
> ++	pseudo_debug(2, "renameat: %d,%s->%d,%s\n",
> ++		olddirfd, oldpath ? oldpath : "<nil>",
> ++		newdirfd, newpath ? newpath : "<nil>");
> ++
> ++#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
> ++	if (olddirfd != AT_FDCWD || newdirfd != AT_FDCWD) {
> ++		errno = ENOSYS;
> ++		return -1;
> ++	}
> ++#endif
> ++
> ++	if (!oldpath || !newpath) {
> ++		errno = EFAULT;
> ++		return -1;
> ++	}
> ++
> ++	save_errno = errno;
> ++
> ++#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
> ++	newrc = real_lstat(newpath,&newbuf);
> ++	oldrc = real_lstat(oldpath,&oldbuf);
> ++#else
> ++	oldrc = real___fxstatat(_STAT_VER, olddirfd, oldpath,&oldbuf, AT_SYMLINK_NOFOLLOW);
> ++	newrc = real___fxstatat(_STAT_VER, newdirfd, newpath,&newbuf, AT_SYMLINK_NOFOLLOW);
> ++#endif
> ++
> ++	errno = save_errno;
> ++
> ++	/* newpath must be removed. */
> ++	/* as with unlink, we have to mark that the file may get deleted */
> ++	msg = pseudo_client_op_plain(OP_MAY_UNLINK, 0, -1, newdirfd, newpath, newrc ? NULL :&newbuf);
> ++	if (msg&&  msg->result == RESULT_SUCCEED)
> ++		old_db_entry = 1;
> + 	rc = real_renameat(olddirfd, oldpath, newdirfd, newpath);
> ++	save_errno = errno;
> ++	if (old_db_entry) {
> ++		if (rc == -1) {
> ++			/* since we failed, that wasn't really unlinked -- put
> ++			 * it back.
> ++			 */
> ++			pseudo_client_op_plain(OP_CANCEL_UNLINK, 0, -1, newdirfd, newpath,&newbuf);
> ++		} else {
> ++			/* confirm that the file was removed */
> ++			pseudo_client_op_plain(OP_DID_UNLINK, 0, -1, newdirfd, newpath,&newbuf);
> ++		}
> ++	}
> ++	if (rc == -1) {
> ++		/* and we're done. */
> ++		errno = save_errno;
> ++		return rc;
> ++	}
> ++	save_errno = errno;
> ++	/* nothing to do for a "rename" of a link to itself */
> ++	if (newrc != -1&&  oldrc != -1&&
> ++	    newbuf.st_dev == oldbuf.st_dev&&
> ++	    newbuf.st_ino == oldbuf.st_ino) {
> ++		return rc;
> ++        }
> ++
> ++	/* rename(3) is not mv(1).  rename(file, dir) fails; you must provide
> ++	 * the corrected path yourself.  You can rename over a directory only
> ++	 * if the source is a directory.  Symlinks are simply removed.
> ++	 *
> ++	 * If we got here, the real rename call succeeded.  That means newpath
> ++	 * has been unlinked and oldpath has been linked to it.
> ++	 *
> ++	 * There are a ton of special cases to error check.  I don't check
> ++	 * for any of them, because in every such case, the underlying rename
> ++	 * failed, and there is nothing to do.
> ++	 * The only tricky part is that, because we used to ignore symlinks,
> ++	 * we may have to rename or remove directory trees even though in
> ++	 * theory rename can never destroy a directory tree.
> ++	 */
> ++	if (!old_db_entry) {
> ++		/* create an entry under the old name, which will then be
> ++		 * renamed; this way, children would get renamed too, if there
> ++		 * were any.
> ++		 */
> ++		if (newrc == 0) {
> ++			if (newbuf.st_dev != oldbuf.st_dev) {
> ++				oldbuf.st_dev = newbuf.st_dev;
> ++				oldbuf.st_ino = newbuf.st_ino;
> ++			}
> ++		}
> ++		pseudo_debug(1, "creating new '%s' [%llu] to rename\n",
> ++			oldpath, (unsigned long long) oldbuf.st_ino);
> ++		pseudo_client_op_plain(OP_LINK, 0, -1, olddirfd, oldpath,&oldbuf);
> ++	}
> ++	/* special case: use 'fd' for olddirfd, because
> ++	 * we know it has no other meaning for RENAME
> ++	 */
> ++	pseudo_client_op_plain(OP_RENAME, 0, olddirfd, newdirfd, newpath,&oldbuf, oldpath);
> +
> ++	errno = save_errno;
> + /*	return rc;
> +  * }
> +  */
> +diff --git a/pseudo_client.c b/pseudo_client.c
> +index 48607c2..4a30420 100644
> +--- a/pseudo_client.c
> ++++ b/pseudo_client.c
> +@@ -988,6 +988,8 @@ base_path(int dirfd, const char *path, int leave_last) {
> + 		if (dirfd != -1&&  dirfd != AT_FDCWD) {
> + 			if (dirfd>= 0) {
> + 				basepath = fd_path(dirfd);
> ++			}
> ++			if (basepath) {
> + 				baselen = strlen(basepath);
> + 			} else {
> + 				pseudo_diag("got *at() syscall for unknown directory, fd %d\n", dirfd);
> +@@ -1128,7 +1130,10 @@ pseudo_client_op(pseudo_op_t op, int access, int fd, int dirfd, const char *path
> + 	if (path) {
> + 		pseudo_debug(2, " %s", path);
> + 	}
> +-	if (fd != -1) {
> ++	/* for OP_RENAME in renameat, "fd" is also used for the
> ++	 * second dirfd.
> ++	 */
> ++	if (fd != -1&&  op != OP_RENAME) {
> + 		pseudo_debug(2, " [fd %d]", fd);
> + 	}
> + 	if (buf) {
> diff --git a/meta/recipes-devtools/pseudo/pseudo_1.2.bb b/meta/recipes-devtools/pseudo/pseudo_1.2.bb
> index f2ebc22..04bcbce 100644
> --- a/meta/recipes-devtools/pseudo/pseudo_1.2.bb
> +++ b/meta/recipes-devtools/pseudo/pseudo_1.2.bb
> @@ -1,10 +1,12 @@
>   require pseudo.inc
>
> -PR = "r4"
> +PR = "r5"
>
>   SRC_URI = "http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2 \
>              file://oe-config.patch \
> -           file://static_sqlite.patch"
> +           file://static_sqlite.patch \
> +           file://opendir.patch \
> +           file://renameat.patch"
>
>   SRC_URI[md5sum] = "a2819084bab7e991f06626d02cf55048"
>   SRC_URI[sha256sum] = "4749a22df687f44d24c26e97170d4781a1bd52d5ee092364a40877e4d96ff058"



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 10/20] pseudo: Wrap renameat and opendir
  2012-02-07 16:21   ` Saul Wold
@ 2012-02-07 16:31     ` Khem Raj
  2012-02-07 16:43       ` Saul Wold
  0 siblings, 1 reply; 70+ messages in thread
From: Khem Raj @ 2012-02-07 16:31 UTC (permalink / raw)
  To: Saul Wold; +Cc: Patches and discussions about the oe-core layer

On Tue, Feb 7, 2012 at 8:21 AM, Saul Wold <sgw@linux.intel.com> wrote:
> On 02/05/2012 10:40 PM, Khem Raj wrote:
>>
>> Signed-off-by: Khem Raj<raj.khem@gmail.com>
>> ---
>>  meta/recipes-devtools/pseudo/pseudo/opendir.patch  |   92 ++++++++
>>  meta/recipes-devtools/pseudo/pseudo/renameat.patch |  227
>> ++++++++++++++++++++
>>  meta/recipes-devtools/pseudo/pseudo_1.2.bb         |    6 +-
>>  3 files changed, 323 insertions(+), 2 deletions(-)
>>  create mode 100644 meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>  create mode 100644 meta/recipes-devtools/pseudo/pseudo/renameat.patch
>>
>> diff --git a/meta/recipes-devtools/pseudo/pseudo/opendir.patch
>> b/meta/recipes-devtools/pseudo/pseudo/opendir.patch
>> new file mode 100644
>> index 0000000..d20f717
>> --- /dev/null
>> +++ b/meta/recipes-devtools/pseudo/pseudo/opendir.patch
>> @@ -0,0 +1,92 @@
>> +commit 162f2692c399b93311652201a940fdaf9c9e6924
>> +Author: Peter Seebach<peter.seebach@windriver.com>
>> +Date:   Thu Feb 2 11:45:42 2012 -0600
>> +
>> +    Make opendir/closedir stash and forget directory names.
>> +
>> +    The dirfd(DIR *) interface allows you to get the fd for a DIR *,
>> +    meaning you can use it with openat(), meaning you can need its
>> +    path.  This causes a segfault.  Also gonna fix the base_path
>> +    code not to segfault in that case, but first fix the underlying
>> +    problem.
>> +
>
>
> Missing Upstream-Status: and Signed-off-by (yes I know we have an email
> header).

they are backports

>
> Thanks
>        Sau!
>
>> +diff --git a/ChangeLog.txt b/ChangeLog.txt
>> +index 4de488c..9625b38 100644
>> +--- a/ChangeLog.txt
>> ++++ b/ChangeLog.txt
>> +@@ -1,3 +1,7 @@
>> ++2012-02-02:
>> ++      * (seebs) stash dir name for DIR * from opendir using dirfd.
>> ++      * (seebs) add closedir.
>> ++
>> + 2011-11-02:
>> +       * (seebs) Call this 1.2 because the UNLOAD change is moderately
>> +         significant, and so's the clone change.
>> +diff --git a/ports/unix/guts/closedir.c b/ports/unix/guts/closedir.c
>> +new file mode 100644
>> +index 0000000..1085361
>> +--- /dev/null
>> ++++ b/ports/unix/guts/closedir.c
>> +@@ -0,0 +1,20 @@
>> ++/*
>> ++ * Copyright (c) 2012 Wind River Systems; see
>> ++ * guts/COPYRIGHT for information.
>> ++ *
>> ++ * static int
>> ++ * wrap_closedir(DIR *dirp) {
>> ++ *    int rc = -1;
>> ++ */
>> ++      if (!dirp) {
>> ++              errno = EFAULT;
>> ++              return -1;
>> ++      }
>> ++
>> ++      int fd = dirfd(dirp);
>> ++      pseudo_client_op(OP_CLOSE, 0, fd, -1, 0, 0);
>> ++      rc = real_closedir(dirp);
>> ++
>> ++/*    return rc;
>> ++ * }
>> ++ */
>> +diff --git a/ports/unix/guts/opendir.c b/ports/unix/guts/opendir.c
>> +index 8eaa71f..e69717e 100644
>> +--- a/ports/unix/guts/opendir.c
>> ++++ b/ports/unix/guts/opendir.c
>> +@@ -6,8 +6,25 @@
>> +  * wrap_opendir(const char *path) {
>> +  *    DIR * rc = NULL;
>> +  */
>> ++      struct stat buf;
>> ++      int save_errno;
>> +
>> +       rc = real_opendir(path);
>> ++      if (rc) {
>> ++              int fd;
>> ++              save_errno = errno;
>> ++              fd = dirfd(rc);
>> ++              if (real_fstat(fd,&buf) == -1) {
>>
>> ++                      pseudo_debug(1, "diropen (fd %d) succeeded, but
>> fstat failed (%s).\n",
>> ++                              fd, strerror(errno));
>> ++                      pseudo_client_op_plain(OP_OPEN, PSA_READ, fd, -1,
>> path, 0);
>> ++              } else {
>> ++                      pseudo_client_op_plain(OP_OPEN, PSA_READ, fd, -1,
>> path,&buf);
>> ++              }
>> ++
>> ++
>> ++              errno = save_errno;
>> ++      }
>> +
>> + /*    return rc;
>> +  * }
>> +diff --git a/ports/unix/wrapfuncs.in b/ports/unix/wrapfuncs.in
>> +index e06e404..32250c4 100644
>> +--- a/ports/unix/wrapfuncs.in
>> ++++ b/ports/unix/wrapfuncs.in
>> +@@ -21,6 +21,7 @@ long pathconf(const char *path, int name);
>> + char *realpath(const char *name, char *resolved_name); /*
>> version="GLIBC_2.3" */
>> + int remove(const char *path); /* flags=AT_SYMLINK_NOFOLLOW */
>> + DIR *opendir(const char *path);
>> ++int closedir(DIR *dirp);
>> + char *tempnam(const char *template, const char *pfx);
>> + char *tmpnam(char *s);
>> + int truncate(const char *path, off_t length);
>> diff --git a/meta/recipes-devtools/pseudo/pseudo/renameat.patch
>> b/meta/recipes-devtools/pseudo/pseudo/renameat.patch
>> new file mode 100644
>> index 0000000..74c8585
>> --- /dev/null
>> +++ b/meta/recipes-devtools/pseudo/pseudo/renameat.patch
>> @@ -0,0 +1,227 @@
>> +commit 795f2b44b7f692151556782f142a4a6e7d45d892
>> +Author: Peter Seebach<peter.seebach@windriver.com>
>> +Date:   Thu Feb 2 15:49:21 2012 -0600
>> +
>> +    Implement renameat()
>> +
>> +    After three long years, someone tried to use this.  This was
>> impossibly
>> +    hard back when pseudo was written, because there was only one dirfd
>> +    provided for.  Thing is, now, the canonicalization happens in
>> wrapfuncs,
>> +    so a small tweak to makewrappers to recognize that oldpath should use
>> +    olddirfd if it exists is enough to get us fully canonicalized paths
>> +    when needed.
>> +
>> +    Also fix the crash if base_path gets called with an fd for which we
>> have
>> +    no path.
>> +
>> +diff --git a/ChangeLog.txt b/ChangeLog.txt
>> +index 9625b38..25bd463 100644
>> +--- a/ChangeLog.txt
>> ++++ b/ChangeLog.txt
>> +@@ -1,6 +1,9 @@
>> + 2012-02-02:
>> +       * (seebs) stash dir name for DIR * from opendir using dirfd.
>> +       * (seebs) add closedir.
>> ++      * (seebs) add initial pass at renameat()
>> ++      * (seebs) in base_path, don't try to strlen the result if
>> ++        fd_path() returns NULL.
>> +
>> + 2011-11-02:
>> +       * (seebs) Call this 1.2 because the UNLOAD change is moderately
>> +diff --git a/makewrappers b/makewrappers
>> +index 20bbf2b..bf344d6 100755
>> +--- a/makewrappers
>> ++++ b/makewrappers
>> +@@ -211,12 +211,13 @@ class Function:
>> +         self.flags = '0'
>> +         self.port = port
>> +         self.directory = ''
>> +-      self.version = 'NULL'
>> ++        self.version = 'NULL'
>> +         # On Darwin, some functions are SECRETLY converted to
>> foo$INODE64
>> +         # when called.  So we have to look those up for real_*
>> +         self.inode64 = None
>> +         self.real_func = None
>> +         self.paths_to_munge = []
>> ++        self.dirfds = {}
>> +         self.hand_wrapped = None
>> +         # used for the copyright date when creating stub functions
>> +         self.date = datetime.date.today().year
>> +@@ -239,6 +240,7 @@ class Function:
>> +         # * If the arg has a name ending in 'path', we will canonicalize
>> it.
>> +         # * If the arg is named 'dirfd' or 'flags', it becomes the
>> default
>> +         #   values for the dirfd and flags arguments when
>> canonicalizing.
>> ++        # * If the name ends in dirfd, we do the same fancy stuff.
>> +         # * Note that the "comments" field (/* ... */ after the decl)
>> can
>> +         #   override the dirfd/flags values.
>> +         self.args = ArgumentList(bits.group(2))
>> +@@ -246,7 +248,9 @@ class Function:
>> +             # ignore varargs, they never get these special treatments
>> +             if arg.vararg:
>> +                 pass
>> +-            elif arg.name == 'dirfd':
>> ++            elif arg.name[-5:] == 'dirfd':
>> ++                if len(arg.name)>  5:
>> ++                    self.dirfds[arg.name[:-5]] = True
>> +                 self.dirfd = 'dirfd'
>> +             elif arg.name == 'flags':
>> +                 self.flags = 'flags'
>> +@@ -325,9 +329,13 @@ class Function:
>> +         """create/allocate canonical paths"""
>> +         alloc_paths = []
>> +         for path in self.paths_to_munge:
>> ++            prefix = path[:-4]
>> ++          if not prefix in self.dirfds:
>> ++                prefix = ''
>> ++            print "for path %s: prefix<%s>" % ( path, prefix )
>> +             alloc_paths.append(
>> +-                "%s = pseudo_root_path(__func__, __LINE__, %s, %s, %s);"
>> %
>> +-                (path, self.dirfd, path, self.flags))
>> ++                "%s = pseudo_root_path(__func__, __LINE__, %s%s, %s,
>> %s);" %
>> ++                (path, prefix, self.dirfd, path, self.flags))
>> +         return "\n\t\t\t".join(alloc_paths)
>> +
>> +     def free_paths(self):
>> +diff --git a/ports/unix/guts/renameat.c b/ports/unix/guts/renameat.c
>> +index c8203b7..f13cd1e 100644
>> +--- a/ports/unix/guts/renameat.c
>> ++++ b/ports/unix/guts/renameat.c
>> +@@ -1,15 +1,111 @@
>> + /*
>> +- * Copyright (c) 2008-2010 Wind River Systems; see
>> ++ * Copyright (c) 2008-2012 Wind River Systems; see
>> +  * guts/COPYRIGHT for information.
>> +  *
>> +  * static int
>> +  * wrap_renameat(int olddirfd, const char *oldpath, int newdirfd, const
>> char *newpath) {
>> +  *    int rc = -1;
>> +  */
>> ++      pseudo_msg_t *msg;
>> ++      struct stat oldbuf, newbuf;
>> ++      int oldrc, newrc;
>> ++      int save_errno;
>> ++      int old_db_entry = 0;
>> +
>> +-      pseudo_diag("help! unimplemented renameat [%s ->  %s].\n",
>> oldpath, newpath);
>> ++      pseudo_debug(2, "renameat: %d,%s->%d,%s\n",
>> ++              olddirfd, oldpath ? oldpath : "<nil>",
>> ++              newdirfd, newpath ? newpath : "<nil>");
>> ++
>> ++#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
>> ++      if (olddirfd != AT_FDCWD || newdirfd != AT_FDCWD) {
>> ++              errno = ENOSYS;
>> ++              return -1;
>> ++      }
>> ++#endif
>> ++
>> ++      if (!oldpath || !newpath) {
>> ++              errno = EFAULT;
>> ++              return -1;
>> ++      }
>> ++
>> ++      save_errno = errno;
>> ++
>> ++#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
>> ++      newrc = real_lstat(newpath,&newbuf);
>> ++      oldrc = real_lstat(oldpath,&oldbuf);
>> ++#else
>> ++      oldrc = real___fxstatat(_STAT_VER, olddirfd, oldpath,&oldbuf,
>> AT_SYMLINK_NOFOLLOW);
>> ++      newrc = real___fxstatat(_STAT_VER, newdirfd, newpath,&newbuf,
>> AT_SYMLINK_NOFOLLOW);
>>
>> ++#endif
>> ++
>> ++      errno = save_errno;
>> ++
>> ++      /* newpath must be removed. */
>> ++      /* as with unlink, we have to mark that the file may get deleted
>> */
>> ++      msg = pseudo_client_op_plain(OP_MAY_UNLINK, 0, -1, newdirfd,
>> newpath, newrc ? NULL :&newbuf);
>> ++      if (msg&&  msg->result == RESULT_SUCCEED)
>>
>> ++              old_db_entry = 1;
>> +       rc = real_renameat(olddirfd, oldpath, newdirfd, newpath);
>> ++      save_errno = errno;
>> ++      if (old_db_entry) {
>> ++              if (rc == -1) {
>> ++                      /* since we failed, that wasn't really unlinked --
>> put
>> ++                       * it back.
>> ++                       */
>> ++                      pseudo_client_op_plain(OP_CANCEL_UNLINK, 0, -1,
>> newdirfd, newpath,&newbuf);
>> ++              } else {
>> ++                      /* confirm that the file was removed */
>> ++                      pseudo_client_op_plain(OP_DID_UNLINK, 0, -1,
>> newdirfd, newpath,&newbuf);
>> ++              }
>> ++      }
>> ++      if (rc == -1) {
>> ++              /* and we're done. */
>> ++              errno = save_errno;
>> ++              return rc;
>> ++      }
>> ++      save_errno = errno;
>> ++      /* nothing to do for a "rename" of a link to itself */
>> ++      if (newrc != -1&&  oldrc != -1&&
>> ++          newbuf.st_dev == oldbuf.st_dev&&
>> ++          newbuf.st_ino == oldbuf.st_ino) {
>> ++              return rc;
>> ++        }
>> ++
>> ++      /* rename(3) is not mv(1).  rename(file, dir) fails; you must
>> provide
>> ++       * the corrected path yourself.  You can rename over a directory
>> only
>> ++       * if the source is a directory.  Symlinks are simply removed.
>> ++       *
>> ++       * If we got here, the real rename call succeeded.  That means
>> newpath
>> ++       * has been unlinked and oldpath has been linked to it.
>> ++       *
>> ++       * There are a ton of special cases to error check.  I don't check
>> ++       * for any of them, because in every such case, the underlying
>> rename
>> ++       * failed, and there is nothing to do.
>> ++       * The only tricky part is that, because we used to ignore
>> symlinks,
>> ++       * we may have to rename or remove directory trees even though in
>> ++       * theory rename can never destroy a directory tree.
>> ++       */
>> ++      if (!old_db_entry) {
>> ++              /* create an entry under the old name, which will then be
>> ++               * renamed; this way, children would get renamed too, if
>> there
>> ++               * were any.
>> ++               */
>> ++              if (newrc == 0) {
>> ++                      if (newbuf.st_dev != oldbuf.st_dev) {
>> ++                              oldbuf.st_dev = newbuf.st_dev;
>> ++                              oldbuf.st_ino = newbuf.st_ino;
>> ++                      }
>> ++              }
>> ++              pseudo_debug(1, "creating new '%s' [%llu] to rename\n",
>> ++                      oldpath, (unsigned long long) oldbuf.st_ino);
>> ++              pseudo_client_op_plain(OP_LINK, 0, -1, olddirfd,
>> oldpath,&oldbuf);
>> ++      }
>> ++      /* special case: use 'fd' for olddirfd, because
>> ++       * we know it has no other meaning for RENAME
>> ++       */
>> ++      pseudo_client_op_plain(OP_RENAME, 0, olddirfd, newdirfd,
>> newpath,&oldbuf, oldpath);
>>
>> +
>> ++      errno = save_errno;
>> + /*    return rc;
>> +  * }
>> +  */
>> +diff --git a/pseudo_client.c b/pseudo_client.c
>> +index 48607c2..4a30420 100644
>> +--- a/pseudo_client.c
>> ++++ b/pseudo_client.c
>> +@@ -988,6 +988,8 @@ base_path(int dirfd, const char *path, int
>> leave_last) {
>> +               if (dirfd != -1&&  dirfd != AT_FDCWD) {
>>
>> +                       if (dirfd>= 0) {
>> +                               basepath = fd_path(dirfd);
>> ++                      }
>> ++                      if (basepath) {
>> +                               baselen = strlen(basepath);
>> +                       } else {
>> +                               pseudo_diag("got *at() syscall for unknown
>> directory, fd %d\n", dirfd);
>> +@@ -1128,7 +1130,10 @@ pseudo_client_op(pseudo_op_t op, int access, int
>> fd, int dirfd, const char *path
>> +       if (path) {
>> +               pseudo_debug(2, " %s", path);
>> +       }
>> +-      if (fd != -1) {
>> ++      /* for OP_RENAME in renameat, "fd" is also used for the
>> ++       * second dirfd.
>> ++       */
>> ++      if (fd != -1&&  op != OP_RENAME) {
>>
>> +               pseudo_debug(2, " [fd %d]", fd);
>> +       }
>> +       if (buf) {
>> diff --git a/meta/recipes-devtools/pseudo/pseudo_1.2.bb
>> b/meta/recipes-devtools/pseudo/pseudo_1.2.bb
>> index f2ebc22..04bcbce 100644
>> --- a/meta/recipes-devtools/pseudo/pseudo_1.2.bb
>> +++ b/meta/recipes-devtools/pseudo/pseudo_1.2.bb
>> @@ -1,10 +1,12 @@
>>  require pseudo.inc
>>
>> -PR = "r4"
>> +PR = "r5"
>>
>>  SRC_URI =
>> "http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2 \
>>             file://oe-config.patch \
>> -           file://static_sqlite.patch"
>> +           file://static_sqlite.patch \
>> +           file://opendir.patch \
>> +           file://renameat.patch"
>>
>>  SRC_URI[md5sum] = "a2819084bab7e991f06626d02cf55048"
>>  SRC_URI[sha256sum] =
>> "4749a22df687f44d24c26e97170d4781a1bd52d5ee092364a40877e4d96ff058"



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 10/20] pseudo: Wrap renameat and opendir
  2012-02-07 16:31     ` Khem Raj
@ 2012-02-07 16:43       ` Saul Wold
  2012-02-07 18:10         ` Khem Raj
  2012-02-07 23:21         ` Mark Hatle
  0 siblings, 2 replies; 70+ messages in thread
From: Saul Wold @ 2012-02-07 16:43 UTC (permalink / raw)
  To: Khem Raj; +Cc: Patches and discussions about the oe-core layer

On 02/07/2012 08:31 AM, Khem Raj wrote:
> On Tue, Feb 7, 2012 at 8:21 AM, Saul Wold<sgw@linux.intel.com>  wrote:
>> On 02/05/2012 10:40 PM, Khem Raj wrote:
>>>
>>> Signed-off-by: Khem Raj<raj.khem@gmail.com>
>>> ---
>>>   meta/recipes-devtools/pseudo/pseudo/opendir.patch  |   92 ++++++++
>>>   meta/recipes-devtools/pseudo/pseudo/renameat.patch |  227
>>> ++++++++++++++++++++
>>>   meta/recipes-devtools/pseudo/pseudo_1.2.bb         |    6 +-
>>>   3 files changed, 323 insertions(+), 2 deletions(-)
>>>   create mode 100644 meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>>   create mode 100644 meta/recipes-devtools/pseudo/pseudo/renameat.patch
>>>
>>> diff --git a/meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>> b/meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>> new file mode 100644
>>> index 0000000..d20f717
>>> --- /dev/null
>>> +++ b/meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>> @@ -0,0 +1,92 @@
>>> +commit 162f2692c399b93311652201a940fdaf9c9e6924
>>> +Author: Peter Seebach<peter.seebach@windriver.com>
>>> +Date:   Thu Feb 2 11:45:42 2012 -0600
>>> +
>>> +    Make opendir/closedir stash and forget directory names.
>>> +
>>> +    The dirfd(DIR *) interface allows you to get the fd for a DIR *,
>>> +    meaning you can use it with openat(), meaning you can need its
>>> +    path.  This causes a segfault.  Also gonna fix the base_path
>>> +    code not to segfault in that case, but first fix the underlying
>>> +    problem.
>>> +
>>
>>
>> Missing Upstream-Status: and Signed-off-by (yes I know we have an email
>> header).
>
> they are backports
>
Please update the patch!

Thanks
	Sau!

>>
>> Thanks
>>         Sau!
>>
>>> +diff --git a/ChangeLog.txt b/ChangeLog.txt
>>> +index 4de488c..9625b38 100644
>>> +--- a/ChangeLog.txt
>>> ++++ b/ChangeLog.txt
>>> +@@ -1,3 +1,7 @@
>>> ++2012-02-02:
>>> ++      * (seebs) stash dir name for DIR * from opendir using dirfd.
>>> ++      * (seebs) add closedir.
>>> ++
>>> + 2011-11-02:
>>> +       * (seebs) Call this 1.2 because the UNLOAD change is moderately
>>> +         significant, and so's the clone change.
>>> +diff --git a/ports/unix/guts/closedir.c b/ports/unix/guts/closedir.c
>>> +new file mode 100644
>>> +index 0000000..1085361
>>> +--- /dev/null
>>> ++++ b/ports/unix/guts/closedir.c
>>> +@@ -0,0 +1,20 @@
>>> ++/*
>>> ++ * Copyright (c) 2012 Wind River Systems; see
>>> ++ * guts/COPYRIGHT for information.
>>> ++ *
>>> ++ * static int
>>> ++ * wrap_closedir(DIR *dirp) {
>>> ++ *    int rc = -1;
>>> ++ */
>>> ++      if (!dirp) {
>>> ++              errno = EFAULT;
>>> ++              return -1;
>>> ++      }
>>> ++
>>> ++      int fd = dirfd(dirp);
>>> ++      pseudo_client_op(OP_CLOSE, 0, fd, -1, 0, 0);
>>> ++      rc = real_closedir(dirp);
>>> ++
>>> ++/*    return rc;
>>> ++ * }
>>> ++ */
>>> +diff --git a/ports/unix/guts/opendir.c b/ports/unix/guts/opendir.c
>>> +index 8eaa71f..e69717e 100644
>>> +--- a/ports/unix/guts/opendir.c
>>> ++++ b/ports/unix/guts/opendir.c
>>> +@@ -6,8 +6,25 @@
>>> +  * wrap_opendir(const char *path) {
>>> +  *    DIR * rc = NULL;
>>> +  */
>>> ++      struct stat buf;
>>> ++      int save_errno;
>>> +
>>> +       rc = real_opendir(path);
>>> ++      if (rc) {
>>> ++              int fd;
>>> ++              save_errno = errno;
>>> ++              fd = dirfd(rc);
>>> ++              if (real_fstat(fd,&buf) == -1) {
>>>
>>> ++                      pseudo_debug(1, "diropen (fd %d) succeeded, but
>>> fstat failed (%s).\n",
>>> ++                              fd, strerror(errno));
>>> ++                      pseudo_client_op_plain(OP_OPEN, PSA_READ, fd, -1,
>>> path, 0);
>>> ++              } else {
>>> ++                      pseudo_client_op_plain(OP_OPEN, PSA_READ, fd, -1,
>>> path,&buf);
>>> ++              }
>>> ++
>>> ++
>>> ++              errno = save_errno;
>>> ++      }
>>> +
>>> + /*    return rc;
>>> +  * }
>>> +diff --git a/ports/unix/wrapfuncs.in b/ports/unix/wrapfuncs.in
>>> +index e06e404..32250c4 100644
>>> +--- a/ports/unix/wrapfuncs.in
>>> ++++ b/ports/unix/wrapfuncs.in
>>> +@@ -21,6 +21,7 @@ long pathconf(const char *path, int name);
>>> + char *realpath(const char *name, char *resolved_name); /*
>>> version="GLIBC_2.3" */
>>> + int remove(const char *path); /* flags=AT_SYMLINK_NOFOLLOW */
>>> + DIR *opendir(const char *path);
>>> ++int closedir(DIR *dirp);
>>> + char *tempnam(const char *template, const char *pfx);
>>> + char *tmpnam(char *s);
>>> + int truncate(const char *path, off_t length);
>>> diff --git a/meta/recipes-devtools/pseudo/pseudo/renameat.patch
>>> b/meta/recipes-devtools/pseudo/pseudo/renameat.patch
>>> new file mode 100644
>>> index 0000000..74c8585
>>> --- /dev/null
>>> +++ b/meta/recipes-devtools/pseudo/pseudo/renameat.patch
>>> @@ -0,0 +1,227 @@
>>> +commit 795f2b44b7f692151556782f142a4a6e7d45d892
>>> +Author: Peter Seebach<peter.seebach@windriver.com>
>>> +Date:   Thu Feb 2 15:49:21 2012 -0600
>>> +
>>> +    Implement renameat()
>>> +
>>> +    After three long years, someone tried to use this.  This was
>>> impossibly
>>> +    hard back when pseudo was written, because there was only one dirfd
>>> +    provided for.  Thing is, now, the canonicalization happens in
>>> wrapfuncs,
>>> +    so a small tweak to makewrappers to recognize that oldpath should use
>>> +    olddirfd if it exists is enough to get us fully canonicalized paths
>>> +    when needed.
>>> +
>>> +    Also fix the crash if base_path gets called with an fd for which we
>>> have
>>> +    no path.
>>> +
>>> +diff --git a/ChangeLog.txt b/ChangeLog.txt
>>> +index 9625b38..25bd463 100644
>>> +--- a/ChangeLog.txt
>>> ++++ b/ChangeLog.txt
>>> +@@ -1,6 +1,9 @@
>>> + 2012-02-02:
>>> +       * (seebs) stash dir name for DIR * from opendir using dirfd.
>>> +       * (seebs) add closedir.
>>> ++      * (seebs) add initial pass at renameat()
>>> ++      * (seebs) in base_path, don't try to strlen the result if
>>> ++        fd_path() returns NULL.
>>> +
>>> + 2011-11-02:
>>> +       * (seebs) Call this 1.2 because the UNLOAD change is moderately
>>> +diff --git a/makewrappers b/makewrappers
>>> +index 20bbf2b..bf344d6 100755
>>> +--- a/makewrappers
>>> ++++ b/makewrappers
>>> +@@ -211,12 +211,13 @@ class Function:
>>> +         self.flags = '0'
>>> +         self.port = port
>>> +         self.directory = ''
>>> +-      self.version = 'NULL'
>>> ++        self.version = 'NULL'
>>> +         # On Darwin, some functions are SECRETLY converted to
>>> foo$INODE64
>>> +         # when called.  So we have to look those up for real_*
>>> +         self.inode64 = None
>>> +         self.real_func = None
>>> +         self.paths_to_munge = []
>>> ++        self.dirfds = {}
>>> +         self.hand_wrapped = None
>>> +         # used for the copyright date when creating stub functions
>>> +         self.date = datetime.date.today().year
>>> +@@ -239,6 +240,7 @@ class Function:
>>> +         # * If the arg has a name ending in 'path', we will canonicalize
>>> it.
>>> +         # * If the arg is named 'dirfd' or 'flags', it becomes the
>>> default
>>> +         #   values for the dirfd and flags arguments when
>>> canonicalizing.
>>> ++        # * If the name ends in dirfd, we do the same fancy stuff.
>>> +         # * Note that the "comments" field (/* ... */ after the decl)
>>> can
>>> +         #   override the dirfd/flags values.
>>> +         self.args = ArgumentList(bits.group(2))
>>> +@@ -246,7 +248,9 @@ class Function:
>>> +             # ignore varargs, they never get these special treatments
>>> +             if arg.vararg:
>>> +                 pass
>>> +-            elif arg.name == 'dirfd':
>>> ++            elif arg.name[-5:] == 'dirfd':
>>> ++                if len(arg.name)>    5:
>>> ++                    self.dirfds[arg.name[:-5]] = True
>>> +                 self.dirfd = 'dirfd'
>>> +             elif arg.name == 'flags':
>>> +                 self.flags = 'flags'
>>> +@@ -325,9 +329,13 @@ class Function:
>>> +         """create/allocate canonical paths"""
>>> +         alloc_paths = []
>>> +         for path in self.paths_to_munge:
>>> ++            prefix = path[:-4]
>>> ++          if not prefix in self.dirfds:
>>> ++                prefix = ''
>>> ++            print "for path %s: prefix<%s>" % ( path, prefix )
>>> +             alloc_paths.append(
>>> +-                "%s = pseudo_root_path(__func__, __LINE__, %s, %s, %s);"
>>> %
>>> +-                (path, self.dirfd, path, self.flags))
>>> ++                "%s = pseudo_root_path(__func__, __LINE__, %s%s, %s,
>>> %s);" %
>>> ++                (path, prefix, self.dirfd, path, self.flags))
>>> +         return "\n\t\t\t".join(alloc_paths)
>>> +
>>> +     def free_paths(self):
>>> +diff --git a/ports/unix/guts/renameat.c b/ports/unix/guts/renameat.c
>>> +index c8203b7..f13cd1e 100644
>>> +--- a/ports/unix/guts/renameat.c
>>> ++++ b/ports/unix/guts/renameat.c
>>> +@@ -1,15 +1,111 @@
>>> + /*
>>> +- * Copyright (c) 2008-2010 Wind River Systems; see
>>> ++ * Copyright (c) 2008-2012 Wind River Systems; see
>>> +  * guts/COPYRIGHT for information.
>>> +  *
>>> +  * static int
>>> +  * wrap_renameat(int olddirfd, const char *oldpath, int newdirfd, const
>>> char *newpath) {
>>> +  *    int rc = -1;
>>> +  */
>>> ++      pseudo_msg_t *msg;
>>> ++      struct stat oldbuf, newbuf;
>>> ++      int oldrc, newrc;
>>> ++      int save_errno;
>>> ++      int old_db_entry = 0;
>>> +
>>> +-      pseudo_diag("help! unimplemented renameat [%s ->    %s].\n",
>>> oldpath, newpath);
>>> ++      pseudo_debug(2, "renameat: %d,%s->%d,%s\n",
>>> ++              olddirfd, oldpath ? oldpath : "<nil>",
>>> ++              newdirfd, newpath ? newpath : "<nil>");
>>> ++
>>> ++#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
>>> ++      if (olddirfd != AT_FDCWD || newdirfd != AT_FDCWD) {
>>> ++              errno = ENOSYS;
>>> ++              return -1;
>>> ++      }
>>> ++#endif
>>> ++
>>> ++      if (!oldpath || !newpath) {
>>> ++              errno = EFAULT;
>>> ++              return -1;
>>> ++      }
>>> ++
>>> ++      save_errno = errno;
>>> ++
>>> ++#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
>>> ++      newrc = real_lstat(newpath,&newbuf);
>>> ++      oldrc = real_lstat(oldpath,&oldbuf);
>>> ++#else
>>> ++      oldrc = real___fxstatat(_STAT_VER, olddirfd, oldpath,&oldbuf,
>>> AT_SYMLINK_NOFOLLOW);
>>> ++      newrc = real___fxstatat(_STAT_VER, newdirfd, newpath,&newbuf,
>>> AT_SYMLINK_NOFOLLOW);
>>>
>>> ++#endif
>>> ++
>>> ++      errno = save_errno;
>>> ++
>>> ++      /* newpath must be removed. */
>>> ++      /* as with unlink, we have to mark that the file may get deleted
>>> */
>>> ++      msg = pseudo_client_op_plain(OP_MAY_UNLINK, 0, -1, newdirfd,
>>> newpath, newrc ? NULL :&newbuf);
>>> ++      if (msg&&    msg->result == RESULT_SUCCEED)
>>>
>>> ++              old_db_entry = 1;
>>> +       rc = real_renameat(olddirfd, oldpath, newdirfd, newpath);
>>> ++      save_errno = errno;
>>> ++      if (old_db_entry) {
>>> ++              if (rc == -1) {
>>> ++                      /* since we failed, that wasn't really unlinked --
>>> put
>>> ++                       * it back.
>>> ++                       */
>>> ++                      pseudo_client_op_plain(OP_CANCEL_UNLINK, 0, -1,
>>> newdirfd, newpath,&newbuf);
>>> ++              } else {
>>> ++                      /* confirm that the file was removed */
>>> ++                      pseudo_client_op_plain(OP_DID_UNLINK, 0, -1,
>>> newdirfd, newpath,&newbuf);
>>> ++              }
>>> ++      }
>>> ++      if (rc == -1) {
>>> ++              /* and we're done. */
>>> ++              errno = save_errno;
>>> ++              return rc;
>>> ++      }
>>> ++      save_errno = errno;
>>> ++      /* nothing to do for a "rename" of a link to itself */
>>> ++      if (newrc != -1&&    oldrc != -1&&
>>> ++          newbuf.st_dev == oldbuf.st_dev&&
>>> ++          newbuf.st_ino == oldbuf.st_ino) {
>>> ++              return rc;
>>> ++        }
>>> ++
>>> ++      /* rename(3) is not mv(1).  rename(file, dir) fails; you must
>>> provide
>>> ++       * the corrected path yourself.  You can rename over a directory
>>> only
>>> ++       * if the source is a directory.  Symlinks are simply removed.
>>> ++       *
>>> ++       * If we got here, the real rename call succeeded.  That means
>>> newpath
>>> ++       * has been unlinked and oldpath has been linked to it.
>>> ++       *
>>> ++       * There are a ton of special cases to error check.  I don't check
>>> ++       * for any of them, because in every such case, the underlying
>>> rename
>>> ++       * failed, and there is nothing to do.
>>> ++       * The only tricky part is that, because we used to ignore
>>> symlinks,
>>> ++       * we may have to rename or remove directory trees even though in
>>> ++       * theory rename can never destroy a directory tree.
>>> ++       */
>>> ++      if (!old_db_entry) {
>>> ++              /* create an entry under the old name, which will then be
>>> ++               * renamed; this way, children would get renamed too, if
>>> there
>>> ++               * were any.
>>> ++               */
>>> ++              if (newrc == 0) {
>>> ++                      if (newbuf.st_dev != oldbuf.st_dev) {
>>> ++                              oldbuf.st_dev = newbuf.st_dev;
>>> ++                              oldbuf.st_ino = newbuf.st_ino;
>>> ++                      }
>>> ++              }
>>> ++              pseudo_debug(1, "creating new '%s' [%llu] to rename\n",
>>> ++                      oldpath, (unsigned long long) oldbuf.st_ino);
>>> ++              pseudo_client_op_plain(OP_LINK, 0, -1, olddirfd,
>>> oldpath,&oldbuf);
>>> ++      }
>>> ++      /* special case: use 'fd' for olddirfd, because
>>> ++       * we know it has no other meaning for RENAME
>>> ++       */
>>> ++      pseudo_client_op_plain(OP_RENAME, 0, olddirfd, newdirfd,
>>> newpath,&oldbuf, oldpath);
>>>
>>> +
>>> ++      errno = save_errno;
>>> + /*    return rc;
>>> +  * }
>>> +  */
>>> +diff --git a/pseudo_client.c b/pseudo_client.c
>>> +index 48607c2..4a30420 100644
>>> +--- a/pseudo_client.c
>>> ++++ b/pseudo_client.c
>>> +@@ -988,6 +988,8 @@ base_path(int dirfd, const char *path, int
>>> leave_last) {
>>> +               if (dirfd != -1&&    dirfd != AT_FDCWD) {
>>>
>>> +                       if (dirfd>= 0) {
>>> +                               basepath = fd_path(dirfd);
>>> ++                      }
>>> ++                      if (basepath) {
>>> +                               baselen = strlen(basepath);
>>> +                       } else {
>>> +                               pseudo_diag("got *at() syscall for unknown
>>> directory, fd %d\n", dirfd);
>>> +@@ -1128,7 +1130,10 @@ pseudo_client_op(pseudo_op_t op, int access, int
>>> fd, int dirfd, const char *path
>>> +       if (path) {
>>> +               pseudo_debug(2, " %s", path);
>>> +       }
>>> +-      if (fd != -1) {
>>> ++      /* for OP_RENAME in renameat, "fd" is also used for the
>>> ++       * second dirfd.
>>> ++       */
>>> ++      if (fd != -1&&    op != OP_RENAME) {
>>>
>>> +               pseudo_debug(2, " [fd %d]", fd);
>>> +       }
>>> +       if (buf) {
>>> diff --git a/meta/recipes-devtools/pseudo/pseudo_1.2.bb
>>> b/meta/recipes-devtools/pseudo/pseudo_1.2.bb
>>> index f2ebc22..04bcbce 100644
>>> --- a/meta/recipes-devtools/pseudo/pseudo_1.2.bb
>>> +++ b/meta/recipes-devtools/pseudo/pseudo_1.2.bb
>>> @@ -1,10 +1,12 @@
>>>   require pseudo.inc
>>>
>>> -PR = "r4"
>>> +PR = "r5"
>>>
>>>   SRC_URI =
>>> "http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2 \
>>>              file://oe-config.patch \
>>> -           file://static_sqlite.patch"
>>> +           file://static_sqlite.patch \
>>> +           file://opendir.patch \
>>> +           file://renameat.patch"
>>>
>>>   SRC_URI[md5sum] = "a2819084bab7e991f06626d02cf55048"
>>>   SRC_URI[sha256sum] =
>>> "4749a22df687f44d24c26e97170d4781a1bd52d5ee092364a40877e4d96ff058"
>



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 19/20] gcc-cross-testing: Fix evaluation of user and target name
  2012-02-06  6:40 ` [PATCH 19/20] gcc-cross-testing: Fix evaluation of user and target name Khem Raj
@ 2012-02-07 17:21   ` Saul Wold
  2012-02-07 18:07     ` Khem Raj
  2012-02-07 17:49   ` Otavio Salvador
  1 sibling, 1 reply; 70+ messages in thread
From: Saul Wold @ 2012-02-07 17:21 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 02/05/2012 10:40 PM, Khem Raj wrote:
> Dont use -q to grep we pipe to /dev/null anyway all we
> care is the return status of grep
>
> Signed-off-by: Khem Raj<raj.khem@gmail.com>
>
> xxx
>
> Signed-off-by: Khem Raj<raj.khem@gmail.com>

The patch seem valid, but the commit message needs to be cleaned up.


Sau!

> ---
>   meta/recipes-devtools/gcc/gcc-cross.inc |    6 +++---
>   1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc b/meta/recipes-devtools/gcc/gcc-cross.inc
> index 6acf8c5..b16c57d 100644
> --- a/meta/recipes-devtools/gcc/gcc-cross.inc
> +++ b/meta/recipes-devtools/gcc/gcc-cross.inc
> @@ -65,11 +65,11 @@ then
>   	exit 1;
>   fi
>
> -echo "\$target" | grep −q "@">&  /dev/null
> +echo "\$target" | grep "@">&  /dev/null
>   if [ "x\$?" = "x0" ]
>   then
> -   user=echo \$target | cut -d '@' -f 1
> -   target=echo \$target | cut -d '@' -f 2
> +   user=\$(echo \$target | cut -d '@' -f 1)
> +   target=\$(echo \$target | cut -d '@' -f 2)
>   else
>      user=\$USER
>   fi



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 20/20] mirrors.bbclass: Add yp.org and oe.org to fallback mirrors
  2012-02-06  6:40 ` [PATCH 20/20] mirrors.bbclass: Add yp.org and oe.org to fallback mirrors Khem Raj
@ 2012-02-07 17:49   ` Saul Wold
  2012-02-07 18:04     ` Khem Raj
  0 siblings, 1 reply; 70+ messages in thread
From: Saul Wold @ 2012-02-07 17:49 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 02/05/2012 10:40 PM, Khem Raj wrote:
> This should improve the fetching errors users see
> when upstream src_uri is unavailable
>
> Signed-off-by: Khem Raj<raj.khem@gmail.com>
> ---
>   meta/classes/mirrors.bbclass |   21 ++++++++++++++++++++-
>   1 files changed, 20 insertions(+), 1 deletions(-)
>
> diff --git a/meta/classes/mirrors.bbclass b/meta/classes/mirrors.bbclass
> index 2146087..69f44cd 100644
> --- a/meta/classes/mirrors.bbclass
> +++ b/meta/classes/mirrors.bbclass
> @@ -52,5 +52,24 @@ ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://gd.tuwien.ac.at/utils/adm
>   ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://sunsite.ualberta.ca/pub/Mirror/lsof/ \n \
>   ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://the.wiretapped.net/pub/security/host-security/lsof/ \n \
>   http://www.apache.org/dist  http://archive.apache.org/dist \n \
> +cvs://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
> +svn://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
> +git://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
> +hg://.*/.*      http://autobuilder.yoctoproject.org/pub/sources/ \n \
> +bzr://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
> +svk://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
> +p4://.*/.*      http://autobuilder.yoctoproject.org/pub/sources/ \n \
> +osc://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
> +https?$://.*/.* http://autobuilder.yoctoproject.org/pub/sources/ \n \
> +ftp://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \

Please use: http://downloads.yoctoproject.org/mirror/sources

That makes it clearer.

Thanks
	Sau!

> +cvs://.*/.*     http://sources.openembedded.org/ \n \
> +svn://.*/.*     http://sources.openembedded.org/ \n \
> +git://.*/.*     http://sources.openembedded.org/ \n \
> +hg://.*/.*      http://sources.openembedded.org/ \n \
> +bzr://.*/.*     http://sources.openembedded.org/ \n \
> +svk://.*/.*     http://sources.openembedded.org/ \n \
> +p4://.*/.*      http://sources.openembedded.org/ \n \
> +osc://.*/.*     http://sources.openembedded.org/ \n \
> +https?$://.*/.* http://sources.openembedded.org/ \n \
> +ftp://.*/.*     http://sources.openembedded.org/ \n \
>   "
> -



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 19/20] gcc-cross-testing: Fix evaluation of user and target name
  2012-02-06  6:40 ` [PATCH 19/20] gcc-cross-testing: Fix evaluation of user and target name Khem Raj
  2012-02-07 17:21   ` Saul Wold
@ 2012-02-07 17:49   ` Otavio Salvador
  2012-02-07 18:18     ` Khem Raj
  1 sibling, 1 reply; 70+ messages in thread
From: Otavio Salvador @ 2012-02-07 17:49 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 428 bytes --]

On Mon, Feb 6, 2012 at 04:40, Khem Raj <raj.khem@gmail.com> wrote:

> Dont use -q to grep we pipe to /dev/null anyway all we
> care is the return status of grep
>

There're any reason to not use grep -q and drop the pipe?

-- 
Otavio Salvador                             O.S. Systems
E-mail: otavio@ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br

[-- Attachment #2: Type: text/html, Size: 880 bytes --]

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 20/20] mirrors.bbclass: Add yp.org and oe.org to fallback mirrors
  2012-02-07 17:49   ` Saul Wold
@ 2012-02-07 18:04     ` Khem Raj
  0 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-07 18:04 UTC (permalink / raw)
  To: Saul Wold; +Cc: Patches and discussions about the oe-core layer

On Tue, Feb 7, 2012 at 9:49 AM, Saul Wold <sgw@linux.intel.com> wrote:
> On 02/05/2012 10:40 PM, Khem Raj wrote:
>>
>> This should improve the fetching errors users see
>> when upstream src_uri is unavailable
>>
>> Signed-off-by: Khem Raj<raj.khem@gmail.com>
>> ---
>>  meta/classes/mirrors.bbclass |   21 ++++++++++++++++++++-
>>  1 files changed, 20 insertions(+), 1 deletions(-)
>>
>> diff --git a/meta/classes/mirrors.bbclass b/meta/classes/mirrors.bbclass
>> index 2146087..69f44cd 100644
>> --- a/meta/classes/mirrors.bbclass
>> +++ b/meta/classes/mirrors.bbclass
>> @@ -52,5 +52,24 @@ ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
>>  ftp://gd.tuwien.ac.at/utils/adm
>>  ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
>>  ftp://sunsite.ualberta.ca/pub/Mirror/lsof/ \n \
>>  ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
>>  ftp://the.wiretapped.net/pub/security/host-security/lsof/ \n \
>>  http://www.apache.org/dist  http://archive.apache.org/dist \n \
>> +cvs://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
>> +svn://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
>> +git://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
>> +hg://.*/.*      http://autobuilder.yoctoproject.org/pub/sources/ \n \
>> +bzr://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
>> +svk://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
>> +p4://.*/.*      http://autobuilder.yoctoproject.org/pub/sources/ \n \
>> +osc://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
>> +https?$://.*/.* http://autobuilder.yoctoproject.org/pub/sources/ \n \
>> +ftp://.*/.*     http://autobuilder.yoctoproject.org/pub/sources/ \n \
>
>
> Please use: http://downloads.yoctoproject.org/mirror/sources

updated

>
> That makes it clearer.
>
> Thanks
>        Sau!
>
>
>> +cvs://.*/.*     http://sources.openembedded.org/ \n \
>> +svn://.*/.*     http://sources.openembedded.org/ \n \
>> +git://.*/.*     http://sources.openembedded.org/ \n \
>> +hg://.*/.*      http://sources.openembedded.org/ \n \
>> +bzr://.*/.*     http://sources.openembedded.org/ \n \
>> +svk://.*/.*     http://sources.openembedded.org/ \n \
>> +p4://.*/.*      http://sources.openembedded.org/ \n \
>> +osc://.*/.*     http://sources.openembedded.org/ \n \
>> +https?$://.*/.* http://sources.openembedded.org/ \n \
>> +ftp://.*/.*     http://sources.openembedded.org/ \n \
>>  "
>> -



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 19/20] gcc-cross-testing: Fix evaluation of user and target name
  2012-02-07 17:21   ` Saul Wold
@ 2012-02-07 18:07     ` Khem Raj
  0 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-07 18:07 UTC (permalink / raw)
  To: Saul Wold; +Cc: Patches and discussions about the oe-core layer

On Tue, Feb 7, 2012 at 9:21 AM, Saul Wold <sgw@linux.intel.com> wrote:
> On 02/05/2012 10:40 PM, Khem Raj wrote:
>>
>> Dont use -q to grep we pipe to /dev/null anyway all we
>> care is the return status of grep
>>
>> Signed-off-by: Khem Raj<raj.khem@gmail.com>
>>
>> xxx
>>
>> Signed-off-by: Khem Raj<raj.khem@gmail.com>
>
>
> The patch seem valid, but the commit message needs to be cleaned up.

also updated


>
>
> Sau!
>
>
>> ---
>>  meta/recipes-devtools/gcc/gcc-cross.inc |    6 +++---
>>  1 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc
>> b/meta/recipes-devtools/gcc/gcc-cross.inc
>> index 6acf8c5..b16c57d 100644
>> --- a/meta/recipes-devtools/gcc/gcc-cross.inc
>> +++ b/meta/recipes-devtools/gcc/gcc-cross.inc
>> @@ -65,11 +65,11 @@ then
>>        exit 1;
>>  fi
>>
>> -echo "\$target" | grep −q "@">&  /dev/null
>> +echo "\$target" | grep "@">&  /dev/null
>>  if [ "x\$?" = "x0" ]
>>  then
>> -   user=echo \$target | cut -d '@' -f 1
>> -   target=echo \$target | cut -d '@' -f 2
>> +   user=\$(echo \$target | cut -d '@' -f 1)
>> +   target=\$(echo \$target | cut -d '@' -f 2)
>>  else
>>     user=\$USER
>>  fi



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 10/20] pseudo: Wrap renameat and opendir
  2012-02-07 16:43       ` Saul Wold
@ 2012-02-07 18:10         ` Khem Raj
  2012-02-07 23:21         ` Mark Hatle
  1 sibling, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-07 18:10 UTC (permalink / raw)
  To: Saul Wold; +Cc: Patches and discussions about the oe-core layer

On Tue, Feb 7, 2012 at 8:43 AM, Saul Wold <sgw@linux.intel.com> wrote:
> On 02/07/2012 08:31 AM, Khem Raj wrote:
>>
>> On Tue, Feb 7, 2012 at 8:21 AM, Saul Wold<sgw@linux.intel.com>  wrote:
>>>
>>> On 02/05/2012 10:40 PM, Khem Raj wrote:
>>>>
>>>>
>>>> Signed-off-by: Khem Raj<raj.khem@gmail.com>
>>>> ---
>>>>  meta/recipes-devtools/pseudo/pseudo/opendir.patch  |   92 ++++++++
>>>>  meta/recipes-devtools/pseudo/pseudo/renameat.patch |  227
>>>> ++++++++++++++++++++
>>>>  meta/recipes-devtools/pseudo/pseudo_1.2.bb         |    6 +-
>>>>  3 files changed, 323 insertions(+), 2 deletions(-)
>>>>  create mode 100644 meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>>>  create mode 100644 meta/recipes-devtools/pseudo/pseudo/renameat.patch
>>>>
>>>> diff --git a/meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>>> b/meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>>> new file mode 100644
>>>> index 0000000..d20f717
>>>> --- /dev/null
>>>> +++ b/meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>>> @@ -0,0 +1,92 @@
>>>> +commit 162f2692c399b93311652201a940fdaf9c9e6924
>>>> +Author: Peter Seebach<peter.seebach@windriver.com>
>>>> +Date:   Thu Feb 2 11:45:42 2012 -0600
>>>> +
>>>> +    Make opendir/closedir stash and forget directory names.
>>>> +
>>>> +    The dirfd(DIR *) interface allows you to get the fd for a DIR *,
>>>> +    meaning you can use it with openat(), meaning you can need its
>>>> +    path.  This causes a segfault.  Also gonna fix the base_path
>>>> +    code not to segfault in that case, but first fix the underlying
>>>> +    problem.
>>>> +
>>>
>>>
>>>
>>> Missing Upstream-Status: and Signed-off-by (yes I know we have an email
>>> header).
>>
>>
>> they are backports
>>
> Please update the patch!

should be there now.



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 19/20] gcc-cross-testing: Fix evaluation of user and target name
  2012-02-07 17:49   ` Otavio Salvador
@ 2012-02-07 18:18     ` Khem Raj
  0 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-07 18:18 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Tue, Feb 7, 2012 at 9:49 AM, Otavio Salvador <otavio@ossystems.com.br> wrote:
>
> There're any reason to not use grep -q and drop the pipe?

yes. I dont need to know stderr along with stdio just return value is enough



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 11/20] uclibc: Upgrade recipes from 0.9.32 -> 0.9.33
  2012-02-06  6:40 ` [PATCH 11/20] uclibc: Upgrade recipes from 0.9.32 -> 0.9.33 Khem Raj
@ 2012-02-07 19:02   ` Saul Wold
  2012-02-07 22:26     ` Khem Raj
  0 siblings, 1 reply; 70+ messages in thread
From: Saul Wold @ 2012-02-07 19:02 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 02/05/2012 10:40 PM, Khem Raj wrote:
> Prefer 0.9.33 by default
> Delete recipes for 0.9.32
>
> Signed-off-by: Khem Raj<raj.khem@gmail.com>
> ---
>   meta/conf/distro/include/tcmode-default.inc        |    2 +-
>   ...rch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch |   29 --
>   ...fd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch |   33 --
>   .../uclibc-0.9.32/detect-bx-availibility.patch     |   75 ----
>   .../uclibc/uclibc-0.9.32/epoll-asm-fix.patch       |   25 --
>   .../uclibc/uclibc-0.9.32/include-arm-asm.h.patch   |   65 ---
>   .../uclibc/uclibc-0.9.32/mount.h-update.patch      |   85 ----
>   .../uclibc-0.9.32/remove-eabi-oabi-selection.patch |   91 ----
>   .../uclibc-0.9.32/remove-sub-arch-variants.patch   |  215 ---------
>   .../uclibc/uclibc-0.9.32/rtld_no.patch             |  215 ---------
>   .../uclibc/uclibc-0.9.32/select-force-thumb.patch  |  172 --------
>   .../uclibc/uclibc-0.9.32/sync_file_range2.patch    |   47 --
>   .../uclibc-0.9.32/transform-eabi-oabi-choice.patch |   71 ---
>   .../uclibc-0.9.32/uclibc-arm-ftruncate64.patch     |   13 -
>   .../uclibc-0.9.32/uclibc_scheduler_update.patch    |  455 --------------------
>   ...rr-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch |   32 ++
>   ...fstat-Use-64bit-version-of-syscall-if-ava.patch |  177 ++++++++
>   .../argp-headers.patch                             |    2 +
>   .../argp-support.patch                             |    3 +
>   .../compile-arm-fork-with-O2.patch                 |    2 +-
>   .../uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch    |   25 ++
>   meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch  |   37 ++
>   ...so_use_arm_dl_linux_resolve_in_thumb_mode.patch |    6 +
>   .../libc_symbols_include_bits_uclibc_config.patch  |   19 +
>   .../mips/uClibc.machine                            |    0
>   .../orign_path.patch                               |   94 ++--
>   .../powerpc_copysignl.patch                        |    6 +
>   .../remove_attribute_optimize_Os.patch             |   17 +-
>   .../{uclibc-0.9.32 =>  uclibc-0.9.33}/uClibc.distro |    8 +-
>   .../uClibc.machine                                 |    0
>   .../uclibc-execvpe.patch                           |    3 +
>   .../uclibc_enable_log2_test.patch                  |    5 +
>   ...-initial_0.9.32.bb =>  uclibc-initial_0.9.33.bb} |    0
>   .../uclibc/{uclibc_0.9.32.bb =>  uclibc_0.9.33.bb}  |   26 +-
>   34 files changed, 386 insertions(+), 1669 deletions(-)
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/detect-bx-availibility.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/epoll-asm-fix.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/include-arm-asm.h.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/mount.h-update.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/remove-eabi-oabi-selection.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/rtld_no.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/select-force-thumb.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/sync_file_range2.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/transform-eabi-oabi-choice.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-arm-ftruncate64.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_scheduler_update.patch
>   create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch
>   create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch

Missing Upstream-Status in this patch

>rename meta/recipes-core/uclibc/{uclibc-0.9.32 => 
uclibc-0.9.33}/argp-headers.patch (99%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/argp-support.patch (99%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/compile-arm-fork-with-O2.patch (97%)
>   create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch
>   create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch (86%)
>   create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/libc_symbols_include_bits_uclibc_config.patch

Also missing Upstream-Status.


>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/mips/uClibc.machine (100%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/orign_path.patch (64%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/powerpc_copysignl.patch (96%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/remove_attribute_optimize_Os.patch (93%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/uClibc.distro (96%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/uClibc.machine (100%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/uclibc-execvpe.patch (99%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/uclibc_enable_log2_test.patch (81%)
>   rename meta/recipes-core/uclibc/{uclibc-initial_0.9.32.bb =>  uclibc-initial_0.9.33.bb} (100%)
>   rename meta/recipes-core/uclibc/{uclibc_0.9.32.bb =>  uclibc_0.9.33.bb} (45%)
>
> diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
> index 5bb253e..b7c2160 100644
> --- a/meta/conf/distro/include/tcmode-default.inc
> +++ b/meta/conf/distro/include/tcmode-default.inc
> @@ -20,7 +20,7 @@ GCCVERSION ?= "4.6%"
>   SDKGCCVERSION ?= "4.6%"
>   BINUVERSION ?= "2.22"
>   EGLIBCVERSION ?= "2.13"
> -UCLIBCVERSION ?= "0.9.32"
> +UCLIBCVERSION ?= "0.9.33"
>   LINUXLIBCVERSION ?= "3.1"
>
>   PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch
> deleted file mode 100644
> index da97d38..0000000
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -From 06cdcd2a9dd6b46b7fbb5b3ae0a62bdb7ee6c402 Mon Sep 17 00:00:00 2001
> -From: Khem Raj<raj.khem@gmail.com>
> -Date: Mon, 27 Jun 2011 17:48:18 -0700
> -Subject: [PATCH] Config.in.arch: Free UCLIBC_HAS_FPU setting from depending on UCLIBC_HAS_FLOATS
> -
> -UCLIBC_HAS_FLOATS and UCLIBC_HAS_FPU are denoting two different aspects.
> -UCLIBC_HAS_FLOATS covers the floating point operations which has nothing
> -to do if you have FPU or not.
> -
> -Signed-off-by: Khem Raj<raj.khem@gmail.com>
> ----
> - extra/Configs/Config.in.arch |    1 -
> - 1 files changed, 0 insertions(+), 1 deletions(-)
> -
> -diff --git a/extra/Configs/Config.in.arch b/extra/Configs/Config.in.arch
> -index 5f7a2b0..c1ca390 100644
> ---- a/extra/Configs/Config.in.arch
> -+++ b/extra/Configs/Config.in.arch
> -@@ -133,7 +133,6 @@ config UCLIBC_HAS_FLOATS
> -
> - config UCLIBC_HAS_FPU
> - 	bool "Target CPU has a floating point unit (FPU)"
> --	depends on UCLIBC_HAS_FLOATS
> - 	default y
> - 	help
> - 	  If your target CPU does not have a Floating Point Unit (FPU) or a
> ---
> -1.7.0.4
> -
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch
> deleted file mode 100644
> index 6892ceb..0000000
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -From ecc7d34cbbaf83aae87b091555650ed33e27ed2e Mon Sep 17 00:00:00 2001
> -From: Khem Raj<raj.khem@gmail.com>
> -Date: Thu, 30 Jun 2011 00:32:11 -0700
> -Subject: [PATCH] mips/signalfd.h: SFD_NONBLOCK for mips is 0200 unlike 04000 commonly
> -
> -Signed-off-by: Khem Raj<raj.khem@gmail.com>
> ----
> - include/sys/signalfd.h |    9 +++++++++
> - 1 files changed, 9 insertions(+), 0 deletions(-)
> -
> -diff --git a/include/sys/signalfd.h b/include/sys/signalfd.h
> -index 8cee17c..f1cb63a 100644
> ---- a/include/sys/signalfd.h
> -+++ b/include/sys/signalfd.h
> -@@ -64,6 +64,15 @@ enum
> - # define SFD_NONBLOCK SFD_NONBLOCK
> -   };
> -
> -+#elif defined __mips__
> -+enum
> -+  {
> -+    SFD_CLOEXEC = 02000000,
> -+# define SFD_CLOEXEC SFD_CLOEXEC
> -+    SFD_NONBLOCK = 0200
> -+# define SFD_NONBLOCK SFD_NONBLOCK
> -+  };
> -+
> - #else
> - enum
> -   {
> ---
> -1.7.0.4
> -
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/detect-bx-availibility.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/detect-bx-availibility.patch
> deleted file mode 100644
> index 43d19fc..0000000
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/detect-bx-availibility.patch
> +++ /dev/null
> @@ -1,75 +0,0 @@
> -Delivered-To: raj.khem@gmail.com
> -Received: by 10.90.86.4 with SMTP id j4cs313307agb;
> -        Sat, 8 Jan 2011 16:45:20 -0800 (PST)
> -Received: by 10.227.141.78 with SMTP id l14mr16920947wbu.128.1294533919168;
> -        Sat, 08 Jan 2011 16:45:19 -0800 (PST)
> -Return-Path:<yann.morin.1998@anciens.enib.fr>
> -Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123])
> -        by mx.google.com with ESMTP id w30si33755908wbd.17.2011.01.08.16.45.18;
> -        Sat, 08 Jan 2011 16:45:19 -0800 (PST)
> -Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123;
> -Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr
> -Received: from roazhon.bzh.lan ([90.32.245.227])
> -	by mwinf5d24 with ME
> -	id tClC1f0024v5z3u03ClHDo; Sun, 09 Jan 2011 01:45:18 +0100
> -From: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
> -To: uclibc@uclibc.org
> -Cc: Khem Raj<raj.khem@gmail.com>,
> -	Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>,
> -	Carmelo AMOROSO<carmelo.amoroso@st.com>
> -Subject: [PATCH 6/7] ARM: detect BX availibility at build time
> -Date: Sun,  9 Jan 2011 01:45:09 +0100
> -Message-Id:<1294533910-19305-7-git-send-email-yann.morin.1998@anciens.enib.fr>
> -X-Mailer: git-send-email 1.7.1
> -In-Reply-To:<1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
> -References:<1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
> -
> -The "use BX" option is now a suggestion that BX be used if available.
> -Use a macro to detect if BX is available at build time. If so, and
> -the user requested it be used, then use it. Otherwise, error out.
> -
> -Macro courtesy Khem RAJ:
> -  http://lists.uclibc.org/pipermail/uclibc/2009-April/042301.html
> -
> -Signed-off-by: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
> -Cc: Khem Raj<raj.khem@gmail.com>
> -Cc: Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>
> -Cc: Carmelo AMOROSO<carmelo.amoroso@st.com>
> ----
> - extra/Configs/Config.arm              |    4 +++-
> - libc/sysdeps/linux/arm/bits/arm_asm.h |    9 ++++++++-
> - 2 files changed, 11 insertions(+), 2 deletions(-)
> -
> -diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm
> -index 227b90c..9aa9e56 100644
> ---- a/extra/Configs/Config.arm
> -+++ b/extra/Configs/Config.arm
> -@@ -33,4 +33,6 @@ config COMPILE_IN_THUMB_MODE
> - config USE_BX
> - 	bool "Use BX in function return"
> - 	help
> --	  Use BX instruction for THUMB aware architectures.
> -+	  Say 'y' to use BX to return from functions on your thumb-aware
> -+	  processor. Say 'y' if you need to use interworking. Say 'n' if not.
> -+	  It is safe to say 'y' even if you're not doing interworking.
> -diff --git a/libc/sysdeps/linux/arm/bits/arm_asm.h b/libc/sysdeps/linux/arm/bits/arm_asm.h
> -index 1d87df6..921c9a3 100644
> ---- a/libc/sysdeps/linux/arm/bits/arm_asm.h
> -+++ b/libc/sysdeps/linux/arm/bits/arm_asm.h
> -@@ -24,5 +24,12 @@
> - #define THUMB1_ONLY 1
> - #endif
> -
> --#endif /* _ARM_ASM_H */
> -+#if defined(__USE_BX__)
> -+# if (   defined (__ARM_ARCH_2__)  || defined (__ARM_ARCH_3__) \
> -+      || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \
> -+     )
> -+#  error Use of BX was requested, but is not available on the target processor.
> -+# endif /* ARCH level */
> -+#endif /* __USE_BX__ */
> -
> -+#endif /* _ARM_ASM_H */
> ---
> -1.7.1
> -
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/epoll-asm-fix.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/epoll-asm-fix.patch
> deleted file mode 100644
> index bcd834d..0000000
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/epoll-asm-fix.patch
> +++ /dev/null
> @@ -1,25 +0,0 @@
> -Fix a compile error due to last argument to syscall() not being memory addressable.
> -
> -Upstream-Status: Pending
> -Signed-off-by: Phil Blundell<philb@gnu.org>
> -
> -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-0.9.32/include-arm-asm.h.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/include-arm-asm.h.patch
> deleted file mode 100644
> index 55c312e..0000000
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/include-arm-asm.h.patch
> +++ /dev/null
> @@ -1,65 +0,0 @@
> -Delivered-To: raj.khem@gmail.com
> -Received: by 10.90.86.4 with SMTP id j4cs313304agb;
> -        Sat, 8 Jan 2011 16:45:19 -0800 (PST)
> -Received: by 10.227.155.75 with SMTP id r11mr17188266wbw.3.1294533918432;
> -        Sat, 08 Jan 2011 16:45:18 -0800 (PST)
> -Return-Path:<yann.morin.1998@anciens.enib.fr>
> -Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123])
> -        by mx.google.com with ESMTP id k3si33753340wbx.29.2011.01.08.16.45.17;
> -        Sat, 08 Jan 2011 16:45:18 -0800 (PST)
> -Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123;
> -Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr
> -Received: from roazhon.bzh.lan ([90.32.245.227])
> -	by mwinf5d24 with ME
> -	id tClC1f0024v5z3u03ClHDf; Sun, 09 Jan 2011 01:45:17 +0100
> -From: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
> -To: uclibc@uclibc.org
> -Cc: Khem Raj<raj.khem@gmail.com>,
> -	Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>,
> -	Carmelo AMOROSO<carmelo.amoroso@st.com>
> -Subject: [PATCH 5/7] ARM: #include<bits/arm_asm.h>  where __USE_BX__ is used
> -Date: Sun,  9 Jan 2011 01:45:08 +0100
> -Message-Id:<1294533910-19305-6-git-send-email-yann.morin.1998@anciens.enib.fr>
> -X-Mailer: git-send-email 1.7.1
> -In-Reply-To:<1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
> -References:<1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
> -
> -The check for __USE_BX__ will be available in bits/arm_asm.h,
> -so the latter must be included wherever the former is used.
> -
> -Signed-off-by: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
> -Cc: Khem Raj<raj.khem@gmail.com>
> -Cc: Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>
> -Cc: Carmelo AMOROSO<carmelo.amoroso@st.com>
> ----
> - ldso/ldso/arm/dl-startup.h      |    1 +
> - libc/sysdeps/linux/arm/sysdep.h |    1 +
> - 2 files changed, 2 insertions(+), 0 deletions(-)
> -
> -diff --git a/ldso/ldso/arm/dl-startup.h b/ldso/ldso/arm/dl-startup.h
> -index a95389d..2dfdaff 100644
> ---- a/ldso/ldso/arm/dl-startup.h
> -+++ b/ldso/ldso/arm/dl-startup.h
> -@@ -7,6 +7,7 @@
> -  */
> -
> - #include<features.h>
> -+#include<bits/arm_asm.h>
> -
> - #if !defined(__thumb__)
> - __asm__(
> -diff --git a/libc/sysdeps/linux/arm/sysdep.h b/libc/sysdeps/linux/arm/sysdep.h
> -index 013f88c..e498695 100644
> ---- a/libc/sysdeps/linux/arm/sysdep.h
> -+++ b/libc/sysdeps/linux/arm/sysdep.h
> -@@ -21,6 +21,7 @@
> - #define _LINUX_ARM_SYSDEP_H 1
> -
> - #include<common/sysdep.h>
> -+#include<bits/arm_asm.h>
> -
> - #include<sys/syscall.h>
> - /* For Linux we can use the system call table in the header file
> ---
> -1.7.1
> -
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/mount.h-update.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/mount.h-update.patch
> deleted file mode 100644
> index 3508e0e..0000000
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/mount.h-update.patch
> +++ /dev/null
> @@ -1,85 +0,0 @@
> -Sync mount.h from glibc this is needed to get missing defines
> -that some apps e.g. systemd are depending on
> -
> -Signed-off-by: Khem Raj<raj.khem@gmail.com>
> -
> -Upstream-Status: Pending
> -
> -Index: git/include/sys/mount.h
> -===================================================================
> ---- git.orig/include/sys/mount.h	2011-07-21 14:37:27.134255747 -0700
> -+++ git/include/sys/mount.h	2011-07-21 14:39:53.844470932 -0700
> -@@ -1,5 +1,5 @@
> - /* Header file for mounting/unmount Linux filesystems.
> --   Copyright (C) 1996,1997,1998,1999,2000,2004 Free Software Foundation, Inc.
> -+   Copyright (C) 1996-2000, 2004, 2010 Free Software Foundation, Inc.
> -    This file is part of the GNU C Library.
> -
> -    The GNU C Library is free software; you can redistribute it and/or
> -@@ -47,23 +47,46 @@
> - #define MS_REMOUNT	MS_REMOUNT
> -   MS_MANDLOCK = 64,		/* Allow mandatory locks on an FS.  */
> - #define MS_MANDLOCK	MS_MANDLOCK
> --  S_WRITE = 128,		/* Write on file/directory/symlink.  */
> --#define S_WRITE		S_WRITE
> --  S_APPEND = 256,		/* Append-only file.  */
> --#define S_APPEND	S_APPEND
> --  S_IMMUTABLE = 512,		/* Immutable file.  */
> --#define S_IMMUTABLE	S_IMMUTABLE
> -+  MS_DIRSYNC = 128,		/* Directory modifications are synchronous.  */
> -+#define MS_DIRSYNC	MS_DIRSYNC
> -   MS_NOATIME = 1024,		/* Do not update access times.  */
> - #define MS_NOATIME	MS_NOATIME
> -   MS_NODIRATIME = 2048,		/* Do not update directory access times.  */
> - #define MS_NODIRATIME	MS_NODIRATIME
> -   MS_BIND = 4096,		/* Bind directory at different place.  */
> - #define MS_BIND		MS_BIND
> -+  MS_MOVE = 8192,
> -+#define MS_MOVE		MS_MOVE
> -+  MS_REC = 16384,
> -+#define MS_REC		MS_REC
> -+  MS_SILENT = 32768,
> -+#define MS_SILENT	MS_SILENT
> -+  MS_POSIXACL = 1<<  16,	/* VFS does not apply the umask.  */
> -+#define MS_POSIXACL	MS_POSIXACL
> -+  MS_UNBINDABLE = 1<<  17,	/* Change to unbindable.  */
> -+#define MS_UNBINDABLE	MS_UNBINDABLE
> -+  MS_PRIVATE = 1<<  18,		/* Change to private.  */
> -+#define MS_PRIVATE	MS_PRIVATE
> -+  MS_SLAVE = 1<<  19,		/* Change to slave.  */
> -+#define MS_SLAVE	MS_SLAVE
> -+  MS_SHARED = 1<<  20,		/* Change to shared.  */
> -+#define MS_SHARED	MS_SHARED
> -+  MS_RELATIME = 1<<  21,	/* Update atime relative to mtime/ctime.  */
> -+#define MS_RELATIME	MS_RELATIME
> -+  MS_KERNMOUNT = 1<<  22,	/* This is a kern_mount call.  */
> -+#define MS_KERNMOUNT	MS_KERNMOUNT
> -+  MS_I_VERSION =  1<<  23,	/* Update inode I_version field.  */
> -+#define MS_I_VERSION	MS_I_VERSION
> -+  MS_STRICTATIME = 1<<  24,	/* Always perform atime updates.  */
> -+#define MS_STRICTATIME	MS_STRICTATIME
> -+  MS_ACTIVE = 1<<  30,
> -+#define MS_ACTIVE	MS_ACTIVE
> -+  MS_NOUSER = 1<<  31
> -+#define MS_NOUSER	MS_NOUSER
> - };
> -
> - /* Flags that can be altered by MS_REMOUNT  */
> --#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_NOATIME \
> --		     |MS_NODIRATIME)
> -+#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION)
> -
> -
> - /* Magic mount flag number. Has to be or-ed to the flag values.  */
> -@@ -100,8 +123,10 @@
> - #define MNT_FORCE MNT_FORCE
> -   MNT_DETACH = 2,		/* Just detach from the tree.  */
> - #define MNT_DETACH MNT_DETACH
> --  MNT_EXPIRE = 4		/* Mark for expiry.  */
> -+  MNT_EXPIRE = 4,		/* Mark for expiry.  */
> - #define MNT_EXPIRE MNT_EXPIRE
> -+  UMOUNT_NOFOLLOW = 8		/* Don't follow symlink on umount.  */
> -+#define UMOUNT_NOFOLLOW UMOUNT_NOFOLLOW
> - };
> -
> -
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/remove-eabi-oabi-selection.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/remove-eabi-oabi-selection.patch
> deleted file mode 100644
> index 8f3464e..0000000
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/remove-eabi-oabi-selection.patch
> +++ /dev/null
> @@ -1,91 +0,0 @@
> -Delivered-To: raj.khem@gmail.com
> -Received: by 10.90.86.4 with SMTP id j4cs313309agb;
> -        Sat, 8 Jan 2011 16:45:20 -0800 (PST)
> -Received: by 10.216.173.7 with SMTP id u7mr612034wel.50.1294533919433;
> -        Sat, 08 Jan 2011 16:45:19 -0800 (PST)
> -Return-Path:<yann.morin.1998@anciens.enib.fr>
> -Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123])
> -        by mx.google.com with ESMTP id e10si33752027wer.68.2011.01.08.16.45.19;
> -        Sat, 08 Jan 2011 16:45:19 -0800 (PST)
> -Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123;
> -Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr
> -Received: from roazhon.bzh.lan ([90.32.245.227])
> -	by mwinf5d24 with ME
> -	id tClC1f0024v5z3u03ClJDu; Sun, 09 Jan 2011 01:45:18 +0100
> -From: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
> -To: uclibc@uclibc.org
> -Cc: Khem Raj<raj.khem@gmail.com>,
> -	Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>,
> -	Carmelo AMOROSO<carmelo.amoroso@st.com>
> -Subject: [PATCH 7/7] ARM: remove EABI/OABI selection
> -Date: Sun,  9 Jan 2011 01:45:10 +0100
> -Message-Id:<1294533910-19305-8-git-send-email-yann.morin.1998@anciens.enib.fr>
> -X-Mailer: git-send-email 1.7.1
> -In-Reply-To:<1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
> -References:<1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
> -
> -Rely on the compiler to be properly setup for the default ABI.
> -
> -When installing-headers, there are two cases:
> -- NPTL: no issue, a cross-compiler is already expected
> -- LinuxThreads: no issue, EABI/OABI has no impact on installed headers.
> -
> -Signed-off-by: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
> -Cc: Khem Raj<raj.khem@gmail.com>
> -Cc: Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>
> -Cc: Carmelo AMOROSO<carmelo.amoroso@st.com>
> ----
> - extra/Configs/Config.arm               |   11 -----------
> - libc/sysdeps/linux/arm/Makefile.arch   |    9 +++++++--
> - libc/sysdeps/linux/arm/bits/huge_val.h |    4 ++--
> - 3 files changed, 9 insertions(+), 15 deletions(-)
> -
> -Index: git/libc/sysdeps/linux/arm/Makefile.arch
> -===================================================================
> ---- git.orig/libc/sysdeps/linux/arm/Makefile.arch
> -+++ git/libc/sysdeps/linux/arm/Makefile.arch
> -@@ -24,7 +24,12 @@ ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
> - CSRC += posix_fadvise.c posix_fadvise64.c
> - endif
> -
> --ifeq ($(CONFIG_ARM_EABI),y)
> -+# Is our compiler set up for EABI ?
> -+IS_EABI:=$(shell $(CC) $(CFLAGS) -x c - -E -dM</dev/null 2>/dev/null \
> -+                 |sed -r -e '/^\#[[:space:]]*define[[:space:]]+__ARM_EABI__([[:space:]]+1)?$$/!d; s/.+/y/;' \
> -+          )
> -+
> -+ifeq ($(IS_EABI),y)
> - CSRC += aeabi_assert.c aeabi_atexit.c aeabi_errno_addr.c \
> - 	aeabi_localeconv.c aeabi_memclr.c aeabi_memcpy.c \
> - 	aeabi_memmove.c aeabi_memset.c find_exidx.c
> -@@ -37,7 +42,7 @@ else
> - CSRC += syscall.c
> - endif
> -
> --ifeq ($(CONFIG_ARM_EABI),y)
> -+ifeq ($(IS_EABI),y)
> - libc-static-y += $(ARCH_OUT)/aeabi_lcsts.o $(ARCH_OUT)/aeabi_math.o \
> - 	$(ARCH_OUT)/aeabi_sighandlers.o
> - libc-nonshared-y += $(ARCH_OUT)/aeabi_lcsts.os $(ARCH_OUT)/aeabi_math.os \
> -Index: git/libc/sysdeps/linux/arm/bits/huge_val.h
> -===================================================================
> ---- git.orig/libc/sysdeps/linux/arm/bits/huge_val.h
> -+++ git/libc/sysdeps/linux/arm/bits/huge_val.h
> -@@ -32,7 +32,7 @@
> - # define HUGE_VAL (__extension__ 0x1.0p2047)
> - #elif defined __GNUC__
> -
> --#ifndef __CONFIG_ARM_EABI__
> -+#ifndef __ARM_EABI__
> - # define HUGE_VAL \
> -   (__extension__							      \
> -    ((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; })   \
> -@@ -50,7 +50,7 @@
> -
> - typedef union { unsigned char __c[8]; double __d; } __huge_val_t;
> -
> --#ifndef __CONFIG_ARM_EABI__
> -+#ifndef __ARM_EABI__
> - # if __BYTE_ORDER == __BIG_ENDIAN
> - #  define __HUGE_VAL_bytes	{ 0, 0, 0, 0, 0x7f, 0xf0, 0, 0 }
> - # endif
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch
> deleted file mode 100644
> index 920a669..0000000
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch
> +++ /dev/null
> @@ -1,215 +0,0 @@
> -Delivered-To: raj.khem@gmail.com
> -Received: by 10.90.86.4 with SMTP id j4cs313303agb;
> -        Sat, 8 Jan 2011 16:45:18 -0800 (PST)
> -Received: by 10.227.98.158 with SMTP id q30mr1255804wbn.151.1294533917314;
> -        Sat, 08 Jan 2011 16:45:17 -0800 (PST)
> -Return-Path:<yann.morin.1998@anciens.enib.fr>
> -Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123])
> -        by mx.google.com with ESMTP id r3si33749838wbr.54.2011.01.08.16.45.16;
> -        Sat, 08 Jan 2011 16:45:17 -0800 (PST)
> -Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123;
> -Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr
> -Received: from roazhon.bzh.lan ([90.32.245.227])
> -	by mwinf5d24 with ME
> -	id tClC1f0024v5z3u03ClGDS; Sun, 09 Jan 2011 01:45:16 +0100
> -From: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
> -To: uclibc@uclibc.org
> -Cc: Khem Raj<raj.khem@gmail.com>,
> -	Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>,
> -	Carmelo AMOROSO<carmelo.amoroso@st.com>
> -Subject: [PATCH 3/7] ARM: remove sub-arch/variants selection from menuconfig
> -Date: Sun,  9 Jan 2011 01:45:06 +0100
> -Message-Id:<1294533910-19305-4-git-send-email-yann.morin.1998@anciens.enib.fr>
> -X-Mailer: git-send-email 1.7.1
> -In-Reply-To:<1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
> -References:<1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
> -
> -Rely on the compiler to be correctly set up to generate
> -appropriate code for the target variant.
> -
> -This exposes the Thumb option, as it is no longer auto-selected.
> -The "Use BX" no longer depends on supported CPU to be selected,
> -so it now defaults to 'n' as it shall work by default on CPUs
> -that do not have BX.
> -
> -Signed-off-by: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
> -Cc: Khem Raj<raj.khem@gmail.com>
> -Cc: Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>
> -Cc: Carmelo AMOROSO<carmelo.amoroso@st.com>
> ----
> - Rules.mak                |   19 -------
> - extra/Configs/Config.arm |  125 ++--------------------------------------------
> - 2 files changed, 5 insertions(+), 139 deletions(-)
> -
> -diff --git a/Rules.mak b/Rules.mak
> -index 2a16908..09741a6 100644
> ---- a/Rules.mak
> -+++ b/Rules.mak
> -@@ -332,25 +332,6 @@ ifeq ($(TARGET_ARCH),arm)
> - 	OPTIMIZATION+=-fstrict-aliasing
> - 	CPU_CFLAGS-$(ARCH_LITTLE_ENDIAN)+=-mlittle-endian
> - 	CPU_CFLAGS-$(ARCH_BIG_ENDIAN)+=-mbig-endian
> --	CPU_CFLAGS-$(CONFIG_GENERIC_ARM)+=
> --	CPU_CFLAGS-$(CONFIG_ARM610)+=-mtune=arm610 -march=armv3
> --	CPU_CFLAGS-$(CONFIG_ARM710)+=-mtune=arm710 -march=armv3
> --	CPU_CFLAGS-$(CONFIG_ARM7TDMI)+=-mtune=arm7tdmi -march=armv4t
> --	CPU_CFLAGS-$(CONFIG_ARM720T)+=-mtune=arm7tdmi -march=armv4t
> --	CPU_CFLAGS-$(CONFIG_ARM920T)+=-mtune=arm9tdmi -march=armv4t
> --	CPU_CFLAGS-$(CONFIG_ARM922T)+=-mtune=arm9tdmi -march=armv4t
> --	CPU_CFLAGS-$(CONFIG_ARM926T)+=-mtune=arm9e -march=armv5te
> --	CPU_CFLAGS-$(CONFIG_ARM10T)+=-mtune=arm10tdmi -march=armv5t
> --	CPU_CFLAGS-$(CONFIG_ARM1136JF_S)+=-mtune=arm1136jf-s -march=armv6
> --	CPU_CFLAGS-$(CONFIG_ARM1176JZ_S)+=-mtune=arm1176jz-s -march=armv6
> --	CPU_CFLAGS-$(CONFIG_ARM1176JZF_S)+=-mtune=arm1176jzf-s -march=armv6
> --	CPU_CFLAGS-$(CONFIG_ARM_SA110)+=-mtune=strongarm110 -march=armv4
> --	CPU_CFLAGS-$(CONFIG_ARM_SA1100)+=-mtune=strongarm1100 -march=armv4
> --	CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=$(call check_gcc,-mtune=xscale,-mtune=strongarm110)
> --	CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=-march=armv5te -Wa,-mcpu=xscale
> --	CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt
> --	CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3
> --	CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1
> - 	CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb
> - endif
> -
> -diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm
> -index c9c40d4..6c75a00 100644
> ---- a/extra/Configs/Config.arm
> -+++ b/extra/Configs/Config.arm
> -@@ -30,129 +30,14 @@ config CONFIG_ARM_EABI
> -
> - endchoice
> -
> --choice
> --	prompt "Target Processor Type"
> --	default CONFIG_GENERIC_ARM
> --	help
> --	  This is the processor type of your CPU. This information is used for
> --	  optimizing purposes.  To build a library that will run on all ARMCPU
> --	  types (albeit not optimally fast), you can specify "Generic Arm" here.
> --	  If you pick anything other than "Generic Arm", there is no guarantee
> --	  that uClibc will even run on anything other than the selected
> --	  processor type.
> --
> --	  Here are the settings recommended for greatest speed:
> --	  - "Generic Arm" select this if your compiler is already setup to
> --	    optimize things properly, or if you want to run on pretty much
> --	    everything, or you just don't much care.
> --	  - For anything else, pick the ARM core type that best matches the
> --	    cpu you will be using on your device.
> --
> --	  If you don't know what to do, choose "Generic Arm".
> --
> --config CONFIG_GENERIC_ARM
> --	bool "Generic Arm"
> --
> --config CONFIG_ARM610
> --	bool "Arm 610"
> --	select ARCH_HAS_MMU
> --
> --config CONFIG_ARM710
> --	bool "Arm 710"
> --	select ARCH_HAS_MMU
> --
> --config CONFIG_ARM7TDMI
> --	bool "Arm 7TDMI"
> --	select ARCH_HAS_NO_MMU
> --	select HAS_THUMB
> --
> --config CONFIG_ARM720T
> --	bool "Arm 720T"
> --	select ARCH_HAS_MMU
> --	select HAS_THUMB
> --
> --config CONFIG_ARM920T
> --	bool "Arm 920T"
> --	select ARCH_HAS_MMU
> --	select HAS_THUMB
> --
> --config CONFIG_ARM922T
> --	bool "Arm 922T"
> --	select ARCH_HAS_MMU
> --	select HAS_THUMB
> --
> --config CONFIG_ARM926T
> --	bool "Arm 926T"
> --	select ARCH_HAS_MMU
> --	select HAS_THUMB
> --
> --config CONFIG_ARM10T
> --	bool "Arm 10T"
> --	select ARCH_HAS_MMU
> --	select HAS_THUMB
> --
> --config CONFIG_ARM1136JF_S
> --	bool "Arm 1136JF-S"
> --	select ARCH_HAS_MMU
> --	select HAS_THUMB
> --
> --config CONFIG_ARM1176JZ_S
> --	bool "Arm 1176JZ-S"
> --	select ARCH_HAS_MMU
> --	select HAS_THUMB
> --
> --config CONFIG_ARM1176JZF_S
> --	bool "Arm 1176JZF-S"
> --	select ARCH_HAS_MMU
> --	select HAS_THUMB
> --
> --config CONFIG_ARM_CORTEX_M3
> --	bool "Arm Cortex-M3"
> --	select ARCH_HAS_NO_MMU
> --	select FORCE_THUMB
> --
> --config CONFIG_ARM_CORTEX_M1
> --	bool "Arm Cortex-M1"
> --	select ARCH_HAS_NO_MMU
> --	select FORCE_THUMB
> --
> --config CONFIG_ARM_SA110
> --	bool "Intel StrongArm SA-110"
> --	select ARCH_HAS_MMU
> --	select HAS_THUMB
> --
> --config CONFIG_ARM_SA1100
> --	bool "Intel StrongArm SA-1100"
> --	select ARCH_HAS_MMU
> --	select HAS_THUMB
> --
> --config CONFIG_ARM_XSCALE
> --	bool "Intel Xscale"
> --	select ARCH_HAS_MMU
> --	select HAS_THUMB
> --
> --config CONFIG_ARM_IWMMXT
> --	bool "Intel Xscale With WMMX PXA27x"
> --	select ARCH_HAS_MMU
> --	select HAS_THUMB
> --
> --endchoice
> --
> --config HAS_THUMB
> --	bool
> --
> --config FORCE_THUMB
> --	bool
> --	select HAS_THUMB
> --	select COMPILE_IN_THUMB_MODE
> --	select USE_BX
> --
> - config COMPILE_IN_THUMB_MODE
> --	bool
> -+	bool "Build using Thumb mode"
> -+	select USE_BX
> -+	help
> -+	  Say 'y' here to force building uClibc in thumb mode.
> -+	  Say 'n' to use your compiler's default mode.
> -
> - config USE_BX
> - 	bool "Use BX in function return"
> --	default y
> --	depends on HAS_THUMB
> - 	help
> - 	  Use BX instruction for THUMB aware architectures.
> ---
> -1.7.1
> -
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/rtld_no.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/rtld_no.patch
> deleted file mode 100644
> index 30cb7f6..0000000
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/rtld_no.patch
> +++ /dev/null
> @@ -1,215 +0,0 @@
> -Patch is backported from
> -http://lists.busybox.net/pipermail/uclibc/2011-March/045004.html
> -
> -Upstream-Status: Pending
> -
> -diff --git a/ldso/include/dl-elf.h b/ldso/include/dl-elf.h
> -index 7fbb373..7102351 100644
> ---- a/ldso/include/dl-elf.h
> -+++ b/ldso/include/dl-elf.h
> -@@ -25,16 +25,18 @@ static __inline__ void _dl_map_cache(void) { }
> - static __inline__ void _dl_unmap_cache(void) { }
> - #endif
> -
> -+#define DL_RESOLVE_SECURE		0x0001
> -+#define DL_RESOLVE_NOLOAD		0x0002
> -
> - /* Function prototypes for non-static stuff in readelflib1.c */
> - extern void _dl_parse_lazy_relocation_information(struct dyn_elf *rpnt,
> - 	unsigned long rel_addr, unsigned long rel_size);
> - extern int _dl_parse_relocation_information(struct dyn_elf *rpnt,
> - 	unsigned long rel_addr, unsigned long rel_size);
> --extern struct elf_resolve * _dl_load_shared_library(int secure,
> -+extern struct elf_resolve * _dl_load_shared_library(int resolve_flags,
> - 	struct dyn_elf **rpnt, struct elf_resolve *tpnt, char *full_libname,
> - 	int trace_loaded_objects);
> --extern struct elf_resolve * _dl_load_elf_shared_library(int secure,
> -+extern struct elf_resolve * _dl_load_elf_shared_library(int resolve_flags,
> - 	struct dyn_elf **rpnt, char *libname);
> - extern struct elf_resolve *_dl_check_if_named_library_is_loaded(const char *full_libname,
> - 	int trace_loaded_objects);
> -diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c
> -index 2b2d429..6d35bf2 100644
> ---- a/ldso/ldso/dl-elf.c
> -+++ b/ldso/ldso/dl-elf.c
> -@@ -132,7 +132,7 @@ _dl_protect_relro (struct elf_resolve *l)
> - /* This function's behavior must exactly match that
> -  * in uClibc/ldso/util/ldd.c */
> - static struct elf_resolve *
> --search_for_named_library(const char *name, int secure, const char *path_list,
> -+search_for_named_library(const char *name, int resolve_flags, const char *path_list,
> - 	struct dyn_elf **rpnt, const char *origin)
> - {
> - 	char *mylibname;
> -@@ -162,7 +162,7 @@ search_for_named_library(const char *name, int secure, const char *path_list,
> -
> - 		if (plen>= 7&&  _dl_memcmp(p, "$ORIGIN", 7) == 0) {
> - 			int olen;
> --			if (secure&&  plen != 7)
> -+			if ((resolve_flags&  DL_RESOLVE_SECURE)&&  plen != 7)
> - 				continue;
> - 			if (origin == NULL)
> - 				continue;
> -@@ -182,7 +182,7 @@ search_for_named_library(const char *name, int secure, const char *path_list,
> - 		_dl_strcat(mylibname, "/");
> - 		_dl_strcat(mylibname, name);
> -
> --		tpnt = _dl_load_elf_shared_library(secure, rpnt, mylibname);
> -+		tpnt = _dl_load_elf_shared_library(resolve_flags, rpnt, mylibname);
> - 		if (tpnt != NULL)
> - 			return tpnt;
> - 	}
> -@@ -194,7 +194,7 @@ search_for_named_library(const char *name, int secure, const char *path_list,
> - unsigned long _dl_error_number;
> - unsigned long _dl_internal_error_number;
> -
> --struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
> -+struct elf_resolve *_dl_load_shared_library(int resolve_flags, struct dyn_elf **rpnt,
> - 	struct elf_resolve *tpnt, char *full_libname, int attribute_unused trace_loaded_objects)
> - {
> - 	char *pnt;
> -@@ -223,7 +223,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
> -
> - 	if (libname != full_libname) {
> - 		_dl_if_debug_dprint("\ttrying file='%s'\n", full_libname);
> --		tpnt1 = _dl_load_elf_shared_library(secure, rpnt, full_libname);
> -+		tpnt1 = _dl_load_elf_shared_library(resolve_flags, rpnt, full_libname);
> - 		if (tpnt1) {
> - 			return tpnt1;
> - 		}
> -@@ -238,7 +238,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
> - 	if (pnt) {
> - 		pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
> - 		_dl_if_debug_dprint("\tsearching RPATH='%s'\n", pnt);
> --		if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt,
> -+		if ((tpnt1 = search_for_named_library(libname, resolve_flags, pnt, rpnt,
> - 						      tpnt->libname)) != NULL)
> - 			return tpnt1;
> - 	}
> -@@ -247,7 +247,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
> - 	/* Check in LD_{ELF_}LIBRARY_PATH, if specified and allowed */
> - 	if (_dl_library_path) {
> - 		_dl_if_debug_dprint("\tsearching LD_LIBRARY_PATH='%s'\n", _dl_library_path);
> --		if ((tpnt1 = search_for_named_library(libname, secure, _dl_library_path, rpnt, NULL)) != NULL)
> -+		if ((tpnt1 = search_for_named_library(libname, resolve_flags, _dl_library_path, rpnt, NULL)) != NULL)
> - 		{
> - 			return tpnt1;
> - 		}
> -@@ -261,7 +261,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
> - 	if (pnt) {
> - 		pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
> - 		_dl_if_debug_dprint("\tsearching RUNPATH='%s'\n", pnt);
> --		if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt, NULL)) != NULL)
> -+		if ((tpnt1 = search_for_named_library(libname, resolve_flags, pnt, rpnt, NULL)) != NULL)
> - 			return tpnt1;
> - 	}
> - #endif
> -@@ -284,7 +284,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
> - 			     || libent[i].flags == LIB_ELF_LIBC0
> - 			     ||	libent[i].flags == LIB_ELF_LIBC5)
> - 			&&  _dl_strcmp(libname, strs + libent[i].sooffset) == 0
> --			&&  (tpnt1 = _dl_load_elf_shared_library(secure, rpnt, strs + libent[i].liboffset))
> -+			&&  (tpnt1 = _dl_load_elf_shared_library(resolve_flags, rpnt, strs + libent[i].liboffset))
> - 			) {
> - 				return tpnt1;
> - 			}
> -@@ -295,14 +295,14 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
> - 	/* Look for libraries wherever the shared library loader
> - 	 * was installed */
> - 	_dl_if_debug_dprint("\tsearching ldso dir='%s'\n", _dl_ldsopath);
> --	tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath, rpnt, NULL);
> -+	tpnt1 = search_for_named_library(libname, resolve_flags, _dl_ldsopath, rpnt, NULL);
> - 	if (tpnt1 != NULL)
> - 		return tpnt1;
> -
> - 	/* Lastly, search the standard list of paths for the library.
> - 	   This list must exactly match the list in uClibc/ldso/util/ldd.c */
> - 	_dl_if_debug_dprint("\tsearching full lib path list\n");
> --	tpnt1 = search_for_named_library(libname, secure,
> -+	tpnt1 = search_for_named_library(libname, resolve_flags,
> - 					UCLIBC_RUNTIME_PREFIX "lib:"
> - 					UCLIBC_RUNTIME_PREFIX "usr/lib"
> - #ifndef __LDSO_CACHE_SUPPORT__
> -@@ -329,7 +329,7 @@ goof:
> -  * are required.
> -  */
> -
> --struct elf_resolve *_dl_load_elf_shared_library(int secure,
> -+struct elf_resolve *_dl_load_elf_shared_library(int resolve_flags,
> - 	struct dyn_elf **rpnt, char *libname)
> - {
> - 	ElfW(Ehdr) *epnt;
> -@@ -368,7 +368,7 @@ struct elf_resolve *_dl_load_elf_shared_library(int secure,
> - 	}
> - 	/* If we are in secure mode (i.e. a setu/gid binary using LD_PRELOAD),
> - 	   we don't load the library if it isn't setuid. */
> --	if (secure) {
> -+	if (resolve_flags&  DL_RESOLVE_SECURE) {
> - 		if (!(st.st_mode&  S_ISUID)) {
> - 			_dl_close(infile);
> - 			return NULL;
> -@@ -384,6 +384,10 @@ struct elf_resolve *_dl_load_elf_shared_library(int secure,
> - 			return tpnt;
> - 		}
> - 	}
> -+	if (resolve_flags&  DL_RESOLVE_NOLOAD) {
> -+		_dl_close(infile);
> -+		return NULL;
> -+	}
> - 	header = _dl_mmap((void *) 0, _dl_pagesize, PROT_READ | PROT_WRITE,
> - 			MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZE, -1, 0);
> - 	if (_dl_mmap_check_error(header)) {
> -diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c
> -index 9423670..b71af34 100644
> ---- a/ldso/ldso/ldso.c
> -+++ b/ldso/ldso/ldso.c
> -@@ -646,7 +646,9 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr,
> - 			if (!_dl_secure || _dl_strchr(str, '/') == NULL) {
> - 				_dl_if_debug_dprint("\tfile='%s';  needed by '%s'\n", str, _dl_progname);
> -
> --				tpnt1 = _dl_load_shared_library(_dl_secure,&rpnt, NULL, str, trace_loaded_objects);
> -+				tpnt1 = _dl_load_shared_library(
> -+					_dl_secure ? DL_RESOLVE_SECURE : 0,
> -+					&rpnt, NULL, str, trace_loaded_objects);
> - 				if (!tpnt1) {
> - #ifdef __LDSO_LDD_SUPPORT__
> - 					if (trace_loaded_objects)
> -diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c
> -index 68cd579..edf38d2 100644
> ---- a/ldso/libdl/libdl.c
> -+++ b/ldso/libdl/libdl.c
> -@@ -288,7 +288,7 @@ void *dlopen(const char *libname, int flag)
> - #endif
> -
> - 	/* A bit of sanity checking... */
> --	if (!(flag&  (RTLD_LAZY|RTLD_NOW))) {
> -+	if (!(flag&  (RTLD_LAZY|RTLD_NOW|RTLD_NOLOAD))) {
> - 		_dl_error_number = LD_BAD_HANDLE;
> - 		return NULL;
> - 	}
> -@@ -358,8 +358,9 @@ void *dlopen(const char *libname, int flag)
> - 	/* Try to load the specified library */
> - 	_dl_if_debug_print("Trying to dlopen '%s', RTLD_GLOBAL:%d RTLD_NOW:%d\n",
> - 			(char*)libname, (flag&  RTLD_GLOBAL ? 1:0), (now_flag&  RTLD_NOW ? 1:0));
> --	tpnt = _dl_load_shared_library(0,&rpnt, tfrom, (char*)libname, 0);
> -
> -+	tpnt = _dl_load_shared_library((flag&  RTLD_NOLOAD) ? DL_RESOLVE_NOLOAD : 0,
> -+					&rpnt, tfrom, (char*)libname, 0);
> - 	if (tpnt == NULL) {
> - 		_dl_unmap_cache();
> - 		return NULL;
> -diff --git a/libc/sysdeps/linux/common/bits/dlfcn.h b/libc/sysdeps/linux/common/bits/dlfcn.h
> -index 4bfbbff..47b42ad 100644
> ---- a/libc/sysdeps/linux/common/bits/dlfcn.h
> -+++ b/libc/sysdeps/linux/common/bits/dlfcn.h
> -@@ -24,9 +24,9 @@
> - /* The MODE argument to `dlopen' contains one of the following: */
> - #define RTLD_LAZY	0x00001	/* Lazy function call binding.  */
> - #define RTLD_NOW	0x00002	/* Immediate function call binding.  */
> --#if 0 /* uClibc doesnt support these */
> --#define	RTLD_BINDING_MASK   0x3	/* Mask of binding time value.  */
> -+#define RTLD_BINDING_MASK   0x3	/* Mask of binding time value.  */
> - #define RTLD_NOLOAD	0x00004	/* Do not load the object.  */
> -+#if 0 /* uClibc doesnt support these */
> - #define RTLD_DEEPBIND	0x00008	/* Use deep binding.  */
> - #endif
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/select-force-thumb.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/select-force-thumb.patch
> deleted file mode 100644
> index b19408f..0000000
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/select-force-thumb.patch
> +++ /dev/null
> @@ -1,172 +0,0 @@
> -Delivered-To: raj.khem@gmail.com
> -Received: by 10.90.86.4 with SMTP id j4cs313301agb;
> -        Sat, 8 Jan 2011 16:45:17 -0800 (PST)
> -Received: by 10.216.186.82 with SMTP id v60mr20017574wem.56.1294533916559;
> -        Sat, 08 Jan 2011 16:45:16 -0800 (PST)
> -Return-Path:<yann.morin.1998@anciens.enib.fr>
> -Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123])
> -        by mx.google.com with ESMTP id o13si33755824wee.56.2011.01.08.16.45.16;
> -        Sat, 08 Jan 2011 16:45:16 -0800 (PST)
> -Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123;
> -Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr
> -Received: from roazhon.bzh.lan ([90.32.245.227])
> -	by mwinf5d24 with ME
> -	id tClC1f0024v5z3u03ClFDL; Sun, 09 Jan 2011 01:45:16 +0100
> -From: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
> -To: uclibc@uclibc.org
> -Cc: Khem Raj<raj.khem@gmail.com>,
> -	Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>,
> -	Carmelo AMOROSO<carmelo.amoroso@st.com>
> -Subject: [PATCH 2/7] ARM: introduce blind options to select&  force THUMB mode
> -Date: Sun,  9 Jan 2011 01:45:05 +0100
> -Message-Id:<1294533910-19305-3-git-send-email-yann.morin.1998@anciens.enib.fr>
> -X-Mailer: git-send-email 1.7.1
> -In-Reply-To:<1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
> -References:<1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
> -
> -Add three new blind options to set use of Thumb mode:
> -- COMPILE_IN_THUMB_MODE
> -  - if set, CFLAGS will contain -mthumb
> -  - if unset, the compiler's default is used
> -- HAS_THUMB
> -  - CPUS with Thumb instruction set can select this
> -  - use of BX depends on this
> -- FORCE_THUMB
> -  - CPUs that are Thumb-only must select this
> -  - this selects: HAS_THUMB, COMPILE_IN_THUMB_MODE and USE_BX
> -
> -Also, remove leading space in Rules.mak.
> -
> -Signed-off-by: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
> -Cc: Khem Raj<raj.khem@gmail.com>
> -Cc: Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>
> -Cc: Carmelo AMOROSO<carmelo.amoroso@st.com>
> ----
> - Rules.mak                |    7 ++++---
> - extra/Configs/Config.arm |   31 ++++++++++++++++++++++++++++---
> - 2 files changed, 32 insertions(+), 6 deletions(-)
> -
> -diff --git a/Rules.mak b/Rules.mak
> -index eecdc64..2a16908 100644
> ---- a/Rules.mak
> -+++ b/Rules.mak
> -@@ -348,9 +348,10 @@ ifeq ($(TARGET_ARCH),arm)
> - 	CPU_CFLAGS-$(CONFIG_ARM_SA1100)+=-mtune=strongarm1100 -march=armv4
> - 	CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=$(call check_gcc,-mtune=xscale,-mtune=strongarm110)
> - 	CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=-march=armv5te -Wa,-mcpu=xscale
> -- 	CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt
> -- 	CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3 -mthumb
> -- 	CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1 -mthumb
> -+	CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt
> -+	CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3
> -+	CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1
> -+	CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb
> - endif
> -
> - ifeq ($(TARGET_ARCH),mips)
> -diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm
> -index 3b90e67..c9c40d4 100644
> ---- a/extra/Configs/Config.arm
> -+++ b/extra/Configs/Config.arm
> -@@ -64,70 +64,95 @@ config CONFIG_ARM710
> - config CONFIG_ARM7TDMI
> - 	bool "Arm 7TDMI"
> - 	select ARCH_HAS_NO_MMU
> -+	select HAS_THUMB
> -
> - config CONFIG_ARM720T
> - 	bool "Arm 720T"
> - 	select ARCH_HAS_MMU
> -+	select HAS_THUMB
> -
> - config CONFIG_ARM920T
> - 	bool "Arm 920T"
> - 	select ARCH_HAS_MMU
> -+	select HAS_THUMB
> -
> - config CONFIG_ARM922T
> - 	bool "Arm 922T"
> - 	select ARCH_HAS_MMU
> -+	select HAS_THUMB
> -
> - config CONFIG_ARM926T
> - 	bool "Arm 926T"
> - 	select ARCH_HAS_MMU
> -+	select HAS_THUMB
> -
> - config CONFIG_ARM10T
> - 	bool "Arm 10T"
> - 	select ARCH_HAS_MMU
> -+	select HAS_THUMB
> -
> - config CONFIG_ARM1136JF_S
> - 	bool "Arm 1136JF-S"
> - 	select ARCH_HAS_MMU
> -+	select HAS_THUMB
> -
> - config CONFIG_ARM1176JZ_S
> - 	bool "Arm 1176JZ-S"
> - 	select ARCH_HAS_MMU
> -+	select HAS_THUMB
> -
> - config CONFIG_ARM1176JZF_S
> - 	bool "Arm 1176JZF-S"
> - 	select ARCH_HAS_MMU
> -+	select HAS_THUMB
> -
> - config CONFIG_ARM_CORTEX_M3
> - 	bool "Arm Cortex-M3"
> - 	select ARCH_HAS_NO_MMU
> --	select USE_BX
> -+	select FORCE_THUMB
> -
> - config CONFIG_ARM_CORTEX_M1
> - 	bool "Arm Cortex-M1"
> - 	select ARCH_HAS_NO_MMU
> --	select USE_BX
> -+	select FORCE_THUMB
> -
> - config CONFIG_ARM_SA110
> - 	bool "Intel StrongArm SA-110"
> - 	select ARCH_HAS_MMU
> -+	select HAS_THUMB
> -
> - config CONFIG_ARM_SA1100
> - 	bool "Intel StrongArm SA-1100"
> - 	select ARCH_HAS_MMU
> -+	select HAS_THUMB
> -
> - config CONFIG_ARM_XSCALE
> - 	bool "Intel Xscale"
> - 	select ARCH_HAS_MMU
> -+	select HAS_THUMB
> -
> - config CONFIG_ARM_IWMMXT
> - 	bool "Intel Xscale With WMMX PXA27x"
> - 	select ARCH_HAS_MMU
> -+	select HAS_THUMB
> -
> - endchoice
> -
> -+config HAS_THUMB
> -+	bool
> -+
> -+config FORCE_THUMB
> -+	bool
> -+	select HAS_THUMB
> -+	select COMPILE_IN_THUMB_MODE
> -+	select USE_BX
> -+
> -+config COMPILE_IN_THUMB_MODE
> -+	bool
> -+
> - config USE_BX
> - 	bool "Use BX in function return"
> - 	default y
> --	depends on !CONFIG_GENERIC_ARM&&  !CONFIG_ARM610&&  !CONFIG_ARM710
> -+	depends on HAS_THUMB
> - 	help
> - 	  Use BX instruction for THUMB aware architectures.
> ---
> -1.7.1
> -
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/sync_file_range2.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/sync_file_range2.patch
> deleted file mode 100644
> index 4b85a43..0000000
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/sync_file_range2.patch
> +++ /dev/null
> @@ -1,47 +0,0 @@
> -Some architectures like ppc, arm use aligned 64 bit inputs so a register is not wasted
> -this then uses __NR_sync_file_range2 syscall. Implement is
> -
> -Singed-off-by: Khem Raj<raj.khem@gmail.com>
> -
> -Upstream-Status: Pending
> -
> -Index: git/libc/sysdeps/linux/common/sync_file_range.c
> -===================================================================
> ---- git.orig/libc/sysdeps/linux/common/sync_file_range.c	2011-07-19 14:23:35.000000000 -0700
> -+++ git/libc/sysdeps/linux/common/sync_file_range.c	2011-07-19 15:04:38.631808666 -0700
> -@@ -11,7 +11,8 @@
> - #if defined __USE_GNU
> - #include<fcntl.h>
> -
> --#if defined __NR_sync_file_range&&  defined __UCLIBC_HAS_LFS__
> -+#if defined __UCLIBC_HAS_LFS__
> -+#if defined __NR_sync_file_range
> - #define __NR___syscall_sync_file_range __NR_sync_file_range
> - static __inline__ _syscall6(int, __syscall_sync_file_range, int, fd,
> - 		off_t, offset_hi, off_t, offset_lo,
> -@@ -23,5 +24,23 @@
> - 		__LONG_LONG_PAIR((long)(nbytes>>  32), (long)(nbytes&  0xffffffff)),
> - 		flags);
> - }
> --#endif
> --#endif
> -+#elif defined __NR_sync_file_range2
> -+#define __NR___syscall_sync_file_range2 __NR_sync_file_range2
> -+static __inline__ _syscall6(int, __syscall_sync_file_range2, int, fd,
> -+		unsigned int, flags, off_t, offset_hi, off_t, offset_lo,
> -+		off_t, nbytes_hi, off_t, nbytes_lo)
> -+int sync_file_range(int fd, off64_t offset, off64_t nbytes, unsigned int flags)
> -+{
> -+	return __syscall_sync_file_range2(fd, flags,
> -+		__LONG_LONG_PAIR((long)(offset>>  32), (long)(offset&  0xffffffff)),
> -+		__LONG_LONG_PAIR((long)(nbytes>>  32), (long)(nbytes&  0xffffffff)));
> -+}
> -+#else
> -+int sync_file_range(int fd, off64_t offset, off64_t nbytes, unsigned int flags)
> -+{
> -+	__set_errno (ENOSYS);
> -+	return -1
> -+}
> -+#endif /* __NR_sync_file_range */
> -+#endif /* __UCLIBC_HAS_LFS__ */
> -+#endif /* __USE_GNU */
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/transform-eabi-oabi-choice.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/transform-eabi-oabi-choice.patch
> deleted file mode 100644
> index 82970ca..0000000
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/transform-eabi-oabi-choice.patch
> +++ /dev/null
> @@ -1,71 +0,0 @@
> -Delivered-To: raj.khem@gmail.com
> -Received: by 10.90.86.4 with SMTP id j4cs313305agb;
> -        Sat, 8 Jan 2011 16:45:19 -0800 (PST)
> -Received: by 10.216.153.210 with SMTP id f60mr573848wek.114.1294533918335;
> -        Sat, 08 Jan 2011 16:45:18 -0800 (PST)
> -Return-Path:<yann.morin.1998@anciens.enib.fr>
> -Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123])
> -        by mx.google.com with ESMTP id n4si33737071wej.152.2011.01.08.16.45.17;
> -        Sat, 08 Jan 2011 16:45:18 -0800 (PST)
> -Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123;
> -Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr
> -Received: from roazhon.bzh.lan ([90.32.245.227])
> -	by mwinf5d24 with ME
> -	id tClC1f0024v5z3u03ClGDX; Sun, 09 Jan 2011 01:45:17 +0100
> -From: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
> -To: uclibc@uclibc.org
> -Cc: Khem Raj<raj.khem@gmail.com>,
> -	Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>,
> -	Carmelo AMOROSO<carmelo.amoroso@st.com>
> -Subject: [PATCH 4/7] ARM: transform the EABI/OABI choice into a boolean
> -Date: Sun,  9 Jan 2011 01:45:07 +0100
> -Message-Id:<1294533910-19305-5-git-send-email-yann.morin.1998@anciens.enib.fr>
> -X-Mailer: git-send-email 1.7.1
> -In-Reply-To:<1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
> -References:<1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
> -
> -The CONFIG_ARM_OABI option is never used.
> -
> -Signed-off-by: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
> -Cc: Khem Raj<raj.khem@gmail.com>
> -Cc: Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>
> -Cc: Carmelo AMOROSO<carmelo.amoroso@st.com>
> ----
> - extra/Configs/Config.arm |   23 ++++++++---------------
> - 1 files changed, 8 insertions(+), 15 deletions(-)
> -
> -Index: git/extra/Configs/Config.arm
> -===================================================================
> ---- git.orig/extra/Configs/Config.arm
> -+++ git/extra/Configs/Config.arm
> -@@ -12,23 +12,16 @@ config FORCE_OPTIONS_FOR_ARCH
> - 	default y
> - 	select ARCH_ANY_ENDIAN
> -
> --choice
> --	prompt "Target ABI"
> --	default CONFIG_ARM_EABI
> -+config CONFIG_ARM_EABI
> -+	bool "Build for EABI"
> - 	help
> --	  If you choose "EABI" here, functions and constants required by the
> --	  ARM EABI will be built into the library.  You should choose "EABI"
> -+	  If you say 'y' here, functions and constants required by the
> -+	  ARM EABI will be built into the library.  You should say 'y'
> - 	  if your compiler uses the ARM EABI, in which case you will also
> --	  need a kernel supporting the EABI system call interface, or "OABI"
> --	  for a compiler using the old Linux ABI.
> --
> --config CONFIG_ARM_OABI
> --	bool "OABI"
> --
> --config CONFIG_ARM_EABI
> --	bool "EABI"
> -+	  need a kernel supporting the EABI system call interface.
> -
> --endchoice
> -+	  If you say 'n' here, then the library will be built for the
> -+	  old Linux ABI.
> -
> - config COMPILE_IN_THUMB_MODE
> - 	bool "Build using Thumb mode"
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-arm-ftruncate64.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-arm-ftruncate64.patch
> deleted file mode 100644
> index 504d37b..0000000
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-arm-ftruncate64.patch
> +++ /dev/null
> @@ -1,13 +0,0 @@
> -Index: uclibc-0.9.29/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
> -===================================================================
> ---- uclibc-0.9.29.orig/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
> -+++ uclibc-0.9.29/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
> -@@ -38,4 +38,8 @@
> - /* define if target supports IEEE signed zero floats */
> - #define __UCLIBC_HAVE_SIGNED_ZERO__
> -
> -+#ifdef __ARM_EABI__
> -+# define __UCLIBC_TRUNCATE64_HAS_4_ARGS__
> -+#endif
> -+
> - #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_scheduler_update.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_scheduler_update.patch
> deleted file mode 100644
> index 78401bd..0000000
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_scheduler_update.patch
> +++ /dev/null
> @@ -1,455 +0,0 @@
> -From 2becc16ecbef71c496644d9dc6cbd7383d7cdca3 Mon Sep 17 00:00:00 2001
> -From: Henning Heinold<heinold@inf.fu-berlin.de>
> -Date: Sat, 4 Jun 2011 21:21:41 +0200
> -Subject: [PATCH 1/2] libc: updates the linux scheduler functions, most stuff
> - was taken from the eglibc
> -
> -
> -Signed-off-by: Henning Heinold<heinold@inf.fu-berlin.de>
> ----
> - include/sched.h                            |   52 ++++++++++++----
> - libc/sysdeps/linux/common/Makefile.in      |    4 +-
> - libc/sysdeps/linux/common/bits/sched.h     |   96 +++++++++++++++++++++++-----
> - libc/sysdeps/linux/common/sched_cpualloc.c |   27 ++++++++
> - libc/sysdeps/linux/common/sched_cpucount.c |   60 +++++++++++++++++
> - libc/sysdeps/linux/common/sched_cpufree.c  |   27 ++++++++
> - libc/sysdeps/linux/common/sched_getcpu.c   |   37 +++++++++++
> - libc/sysdeps/linux/common/unshare.c        |   12 ++++
> - 8 files changed, 286 insertions(+), 29 deletions(-)
> - create mode 100644 libc/sysdeps/linux/common/sched_cpualloc.c
> - create mode 100644 libc/sysdeps/linux/common/sched_cpucount.c
> - create mode 100644 libc/sysdeps/linux/common/sched_cpufree.c
> - create mode 100644 libc/sysdeps/linux/common/sched_getcpu.c
> - create mode 100644 libc/sysdeps/linux/common/unshare.c
> -
> -diff --git a/include/sched.h b/include/sched.h
> -index 0d110c3..e265b84 100644
> ---- a/include/sched.h
> -+++ b/include/sched.h
> -@@ -1,5 +1,5 @@
> - /* Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface.
> --   Copyright (C) 1996,1997,1999,2001-2003,2004 Free Software Foundation, Inc.
> -+   Copyright (C) 1996,1997,1999,2001-2004,2007 Free Software Foundation, Inc.
> -    This file is part of the GNU C Library.
> -
> -    The GNU C Library is free software; you can redistribute it and/or
> -@@ -25,6 +25,9 @@
> - /* Get type definitions.  */
> - #include<bits/types.h>
> -
> -+#define __need_size_t
> -+#include<stddef.h>
> -+
> - #define __need_timespec
> - #include<time.h>
> -
> -@@ -65,11 +68,42 @@ extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
> -
> - #if defined __USE_GNU&&  defined __UCLIBC_LINUX_SPECIFIC__
> - /* Access macros for `cpu_set'.  */
> --#define CPU_SETSIZE __CPU_SETSIZE
> --#define CPU_SET(cpu, cpusetp)	__CPU_SET (cpu, cpusetp)
> --#define CPU_CLR(cpu, cpusetp)	__CPU_CLR (cpu, cpusetp)
> --#define CPU_ISSET(cpu, cpusetp)	__CPU_ISSET (cpu, cpusetp)
> --#define CPU_ZERO(cpusetp)	__CPU_ZERO (cpusetp)
> -+# define CPU_SETSIZE __CPU_SETSIZE
> -+# define CPU_SET(cpu, cpusetp)	 __CPU_SET_S (cpu, sizeof (cpu_set_t), cpusetp)
> -+# define CPU_CLR(cpu, cpusetp)	 __CPU_CLR_S (cpu, sizeof (cpu_set_t), cpusetp)
> -+# define CPU_ISSET(cpu, cpusetp) __CPU_ISSET_S (cpu, sizeof (cpu_set_t), \
> -+						cpusetp)
> -+# define CPU_ZERO(cpusetp)	 __CPU_ZERO_S (sizeof (cpu_set_t), cpusetp)
> -+# define CPU_COUNT(cpusetp)	 __CPU_COUNT_S (sizeof (cpu_set_t), cpusetp)
> -+
> -+# define CPU_SET_S(cpu, setsize, cpusetp)   __CPU_SET_S (cpu, setsize, cpusetp)
> -+# define CPU_CLR_S(cpu, setsize, cpusetp)   __CPU_CLR_S (cpu, setsize, cpusetp)
> -+# define CPU_ISSET_S(cpu, setsize, cpusetp) __CPU_ISSET_S (cpu, setsize, \
> -+							   cpusetp)
> -+# define CPU_ZERO_S(setsize, cpusetp)	    __CPU_ZERO_S (setsize, cpusetp)
> -+# define CPU_COUNT_S(setsize, cpusetp)	    __CPU_COUNT_S (setsize, cpusetp)
> -+
> -+# define CPU_EQUAL(cpusetp1, cpusetp2) \
> -+  __CPU_EQUAL_S (sizeof (cpu_set_t), cpusetp1, cpusetp2)
> -+# define CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \
> -+  __CPU_EQUAL_S (setsize, cpusetp1, cpusetp2)
> -+
> -+# define CPU_AND(destset, srcset1, srcset2) \
> -+  __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2,&)
> -+# define CPU_OR(destset, srcset1, srcset2) \
> -+  __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, |)
> -+# define CPU_XOR(destset, srcset1, srcset2) \
> -+  __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, ^)
> -+# define CPU_AND_S(setsize, destset, srcset1, srcset2) \
> -+  __CPU_OP_S (setsize, destset, srcset1, srcset2,&)
> -+# define CPU_OR_S(setsize, destset, srcset1, srcset2) \
> -+  __CPU_OP_S (setsize, destset, srcset1, srcset2, |)
> -+# define CPU_XOR_S(setsize, destset, srcset1, srcset2) \
> -+  __CPU_OP_S (setsize, destset, srcset1, srcset2, ^)
> -+
> -+# define CPU_ALLOC_SIZE(count) __CPU_ALLOC_SIZE (count)
> -+# define CPU_ALLOC(count) __CPU_ALLOC (count)
> -+# define CPU_FREE(cpuset) __CPU_FREE (cpuset)
> -
> -
> - /* Set the CPU affinity for a task */
> -@@ -79,12 +113,6 @@ extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
> - /* Get the CPU affinity for a task */
> - extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
> - 			      cpu_set_t *__cpuset) __THROW;
> --
> --extern int __clone (int (*__fn) (void *__arg), void *__child_stack,
> --		    int __flags, void *__arg, ...);
> --extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
> --		     size_t __child_stack_size, int __flags, void *__arg, ...);
> --
> - #endif
> -
> - __END_DECLS
> -diff --git a/libc/sysdeps/linux/common/Makefile.in b/libc/sysdeps/linux/common/Makefile.in
> -index 8f936ff..cb8c153 100644
> ---- a/libc/sysdeps/linux/common/Makefile.in
> -+++ b/libc/sysdeps/linux/common/Makefile.in
> -@@ -22,9 +22,11 @@ CSRC-$(UCLIBC_LINUX_SPECIFIC) += capget.c capset.c inotify.c ioperm.c iopl.c \
> - 	modify_ldt.c pipe2.c personality.c ppoll.c prctl.c \
> - 	readahead.c reboot.c \
> - 	remap_file_pages.c sched_getaffinity.c sched_setaffinity.c \
> -+	sched_cpualloc.c sched_cpucount.c sched_cpufree.c \
> - 	sendfile64.c sendfile.c setfsgid.c setfsuid.c setresuid.c \
> - 	splice.c vmsplice.c tee.c signalfd.c swapoff.c swapon.c \
> --	sync_file_range.c sysctl.c sysinfo.c timerfd.c uselib.c vhangup.c
> -+	sync_file_range.c sysctl.c sysinfo.c timerfd.c unshare.c \
> -+	uselib.c vhangup.c
> - # NPTL needs these internally: madvise.c
> - CSRC-$(findstring y,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_THREADS_NATIVE)) += madvise.c
> - ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
> -diff --git a/libc/sysdeps/linux/common/bits/sched.h b/libc/sysdeps/linux/common/bits/sched.h
> -index b48a0c8..fea66a8 100644
> ---- a/libc/sysdeps/linux/common/bits/sched.h
> -+++ b/libc/sysdeps/linux/common/bits/sched.h
> -@@ -1,6 +1,7 @@
> - /* Definitions of constants and data structure for POSIX 1003.1b-1993
> -    scheduling interface.
> --   Copyright (C) 1996-1999,2001-2003,2005,2006 Free Software Foundation, Inc.
> -+   Copyright (C) 1996-1999,2001-2003,2005,2006,2007,2008
> -+   Free Software Foundation, Inc.
> -    This file is part of the GNU C Library.
> -
> -    The GNU C Library is free software; you can redistribute it and/or
> -@@ -58,7 +59,13 @@
> - 				      force CLONE_PTRACE on this clone.  */
> - # define CLONE_CHILD_SETTID 0x01000000 /* Store TID in userlevel buffer in
> - 					  the child.  */
> --# define CLONE_STOPPED	0x02000000 /* Start in stopped state.  */
> -+# define CLONE_STOPPED 0x02000000 /* Start in stopped state.  */
> -+# define CLONE_NEWUTS	0x04000000	/* New utsname group.  */
> -+# define CLONE_NEWIPC	0x08000000	/* New ipcs.  */
> -+# define CLONE_NEWUSER	0x10000000	/* New user namespace.  */
> -+# define CLONE_NEWPID	0x20000000	/* New pid namespace.  */
> -+# define CLONE_NEWNET	0x40000000	/* New network namespace.  */
> -+# define CLONE_IO	0x80000000	/* Clone I/O context.  */
> - #endif
> -
> - /* The official definition.  */
> -@@ -74,10 +81,11 @@ __BEGIN_DECLS
> - extern int clone (int (*__fn) (void *__arg), void *__child_stack,
> - 		  int __flags, void *__arg, ...) __THROW;
> -
> --#if 0
> - /* Unshare the specified resources.  */
> - extern int unshare (int __flags) __THROW;
> --#endif
> -+
> -+/* Get index of currently used CPU.  */
> -+extern int sched_getcpu (void) __THROW;
> - #endif
> -
> - __END_DECLS
> -@@ -102,7 +110,7 @@ struct __sched_param
> - # define __CPU_SETSIZE	1024
> - # define __NCPUBITS	(8 * sizeof (__cpu_mask))
> -
> --/* Type for array elements in 'cpu_set'.  */
> -+/* Type for array elements in 'cpu_set_t'.  */
> - typedef unsigned long int __cpu_mask;
> -
> - /* Basic access functions.  */
> -@@ -116,17 +124,73 @@ typedef struct
> - } cpu_set_t;
> -
> - /* Access functions for CPU masks.  */
> --# define __CPU_ZERO(cpusetp) \
> -+# define __CPU_ZERO_S(setsize, cpusetp) \
> -   do {									      \
> --    unsigned int __i;							      \
> --    cpu_set_t *__arr = (cpusetp);					      \
> --    for (__i = 0; __i<  sizeof (cpu_set_t) / sizeof (__cpu_mask); ++__i)      \
> --      __arr->__bits[__i] = 0;						      \
> -+    size_t __i;								      \
> -+    size_t __imax = (setsize) / sizeof (__cpu_mask);			      \
> -+    __cpu_mask *__bits = (cpusetp)->__bits;				      \
> -+    for (__i = 0; __i<  __imax; ++__i)					      \
> -+      __bits[__i] = 0;							      \
> -   } while (0)
> --# define __CPU_SET(cpu, cpusetp) \
> --  ((cpusetp)->__bits[__CPUELT (cpu)] |= __CPUMASK (cpu))
> --# define __CPU_CLR(cpu, cpusetp) \
> --  ((cpusetp)->__bits[__CPUELT (cpu)]&= ~__CPUMASK (cpu))
> --# define __CPU_ISSET(cpu, cpusetp) \
> --  (((cpusetp)->__bits[__CPUELT (cpu)]&  __CPUMASK (cpu)) != 0)
> -+# define __CPU_SET_S(cpu, setsize, cpusetp) \
> -+  (__extension__							      \
> -+   ({ size_t __cpu = (cpu);						      \
> -+      __cpu<  8 * (setsize)						      \
> -+      ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]		      \
> -+	 |= __CPUMASK (__cpu))						      \
> -+      : 0; }))
> -+# define __CPU_CLR_S(cpu, setsize, cpusetp) \
> -+  (__extension__							      \
> -+   ({ size_t __cpu = (cpu);						      \
> -+      __cpu<  8 * (setsize)						      \
> -+      ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]		      \
> -+	&= ~__CPUMASK (__cpu))						      \
> -+      : 0; }))
> -+# define __CPU_ISSET_S(cpu, setsize, cpusetp) \
> -+  (__extension__							      \
> -+   ({ size_t __cpu = (cpu);						      \
> -+      __cpu<  8 * (setsize)						      \
> -+      ? ((((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]	      \
> -+	&  __CPUMASK (__cpu))) != 0					      \
> -+      : 0; }))
> -+
> -+# define __CPU_COUNT_S(setsize, cpusetp) \
> -+  __sched_cpucount (setsize, cpusetp)
> -+
> -+# define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \
> -+  (__extension__							      \
> -+   ({ __cpu_mask *__arr1 = (cpusetp1)->__bits;				      \
> -+      __cpu_mask *__arr2 = (cpusetp2)->__bits;				      \
> -+      size_t __imax = (setsize) / sizeof (__cpu_mask);			      \
> -+      size_t __i;							      \
> -+      for (__i = 0; __i<  __imax; ++__i)				      \
> -+	if (__arr1[__i] != __arr2[__i])					      \
> -+	  break;							      \
> -+      __i == __imax; }))
> -+
> -+# define __CPU_OP_S(setsize, destset, srcset1, srcset2, op) \
> -+  (__extension__							      \
> -+   ({ cpu_set_t *__dest = (destset);					      \
> -+      __cpu_mask *__arr1 = (srcset1)->__bits;				      \
> -+      __cpu_mask *__arr2 = (srcset2)->__bits;				      \
> -+      size_t __imax = (setsize) / sizeof (__cpu_mask);			      \
> -+      size_t __i;							      \
> -+      for (__i = 0; __i<  __imax; ++__i)				      \
> -+	((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op __arr2[__i];    \
> -+      __dest; }))
> -+
> -+# define __CPU_ALLOC_SIZE(count) \
> -+  ((((count) + __NCPUBITS - 1) / __NCPUBITS) * sizeof (__cpu_mask))
> -+# define __CPU_ALLOC(count) __sched_cpualloc (count)
> -+# define __CPU_FREE(cpuset) __sched_cpufree (cpuset)
> -+
> -+__BEGIN_DECLS
> -+
> -+extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
> -+  __THROW;
> -+extern cpu_set_t *__sched_cpualloc (size_t __count) __THROW __wur;
> -+extern void __sched_cpufree (cpu_set_t *__set) __THROW;
> -+
> -+__END_DECLS
> -+
> - #endif
> -diff --git a/libc/sysdeps/linux/common/sched_cpualloc.c b/libc/sysdeps/linux/common/sched_cpualloc.c
> -new file mode 100644
> -index 0000000..2642a80
> ---- /dev/null
> -+++ b/libc/sysdeps/linux/common/sched_cpualloc.c
> -@@ -0,0 +1,27 @@
> -+/* Copyright (C) 2007 Free Software Foundation, Inc.
> -+   This file is part of the GNU C Library.
> -+
> -+   The GNU C Library is free software; you can redistribute it and/or
> -+   modify it under the terms of the GNU Lesser General Public
> -+   License as published by the Free Software Foundation; either
> -+   version 2.1 of the License, or (at your option) any later version.
> -+
> -+   The GNU C Library is distributed in the hope that it will be useful,
> -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
> -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> -+   Lesser General Public License for more details.
> -+
> -+   You should have received a copy of the GNU Lesser General Public
> -+   License along with the GNU C Library; if not, write to the Free
> -+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> -+   02111-1307 USA.  */
> -+
> -+#include<sched.h>
> -+#include<stdlib.h>
> -+
> -+
> -+cpu_set_t *
> -+__sched_cpualloc (size_t count)
> -+{
> -+  return malloc (CPU_ALLOC_SIZE (count));
> -+}
> -diff --git a/libc/sysdeps/linux/common/sched_cpucount.c b/libc/sysdeps/linux/common/sched_cpucount.c
> -new file mode 100644
> -index 0000000..331c0b8
> ---- /dev/null
> -+++ b/libc/sysdeps/linux/common/sched_cpucount.c
> -@@ -0,0 +1,60 @@
> -+/* Copyright (C) 2007 Free Software Foundation, Inc.
> -+   This file is part of the GNU C Library.
> -+
> -+   The GNU C Library is free software; you can redistribute it and/or
> -+   modify it under the terms of the GNU Lesser General Public
> -+   License as published by the Free Software Foundation; either
> -+   version 2.1 of the License, or (at your option) any later version.
> -+
> -+   The GNU C Library is distributed in the hope that it will be useful,
> -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
> -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> -+   Lesser General Public License for more details.
> -+
> -+   You should have received a copy of the GNU Lesser General Public
> -+   License along with the GNU C Library; if not, write to the Free
> -+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> -+   02111-1307 USA.  */
> -+
> -+#include<limits.h>
> -+#include<sched.h>
> -+
> -+
> -+int
> -+__sched_cpucount (size_t setsize, const cpu_set_t *setp)
> -+{
> -+  int s = 0;
> -+  const __cpu_mask *p = setp->__bits;
> -+  const __cpu_mask *end =&setp->__bits[setsize / sizeof (__cpu_mask)];
> -+
> -+  while (p<  end)
> -+    {
> -+      __cpu_mask l = *p++;
> -+
> -+#ifdef POPCNT
> -+      s += POPCNT (l);
> -+#else
> -+      if (l == 0)
> -+	continue;
> -+
> -+# if LONG_BIT>  32
> -+      l = (l&  0x5555555555555555ul) + ((l>>  1)&  0x5555555555555555ul);
> -+      l = (l&  0x3333333333333333ul) + ((l>>  2)&  0x3333333333333333ul);
> -+      l = (l&  0x0f0f0f0f0f0f0f0ful) + ((l>>  4)&  0x0f0f0f0f0f0f0f0ful);
> -+      l = (l&  0x00ff00ff00ff00fful) + ((l>>  8)&  0x00ff00ff00ff00fful);
> -+      l = (l&  0x0000ffff0000fffful) + ((l>>  16)&  0x0000ffff0000fffful);
> -+      l = (l&  0x00000000fffffffful) + ((l>>  32)&  0x00000000fffffffful);
> -+# else
> -+      l = (l&  0x55555555ul) + ((l>>  1)&  0x55555555ul);
> -+      l = (l&  0x33333333ul) + ((l>>  2)&  0x33333333ul);
> -+      l = (l&  0x0f0f0f0ful) + ((l>>  4)&  0x0f0f0f0ful);
> -+      l = (l&  0x00ff00fful) + ((l>>  8)&  0x00ff00fful);
> -+      l = (l&  0x0000fffful) + ((l>>  16)&  0x0000fffful);
> -+# endif
> -+
> -+      s += l;
> -+#endif
> -+    }
> -+
> -+  return s;
> -+}
> -diff --git a/libc/sysdeps/linux/common/sched_cpufree.c b/libc/sysdeps/linux/common/sched_cpufree.c
> -new file mode 100644
> -index 0000000..dd4c613
> ---- /dev/null
> -+++ b/libc/sysdeps/linux/common/sched_cpufree.c
> -@@ -0,0 +1,27 @@
> -+/* Copyright (C) 2007 Free Software Foundation, Inc.
> -+   This file is part of the GNU C Library.
> -+
> -+   The GNU C Library is free software; you can redistribute it and/or
> -+   modify it under the terms of the GNU Lesser General Public
> -+   License as published by the Free Software Foundation; either
> -+   version 2.1 of the License, or (at your option) any later version.
> -+
> -+   The GNU C Library is distributed in the hope that it will be useful,
> -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
> -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> -+   Lesser General Public License for more details.
> -+
> -+   You should have received a copy of the GNU Lesser General Public
> -+   License along with the GNU C Library; if not, write to the Free
> -+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> -+   02111-1307 USA.  */
> -+
> -+#include<sched.h>
> -+#include<stdlib.h>
> -+
> -+
> -+void
> -+__sched_cpufree (cpu_set_t *set)
> -+{
> -+  free (set);
> -+}
> -diff --git a/libc/sysdeps/linux/common/sched_getcpu.c b/libc/sysdeps/linux/common/sched_getcpu.c
> -new file mode 100644
> -index 0000000..b193d65
> ---- /dev/null
> -+++ b/libc/sysdeps/linux/common/sched_getcpu.c
> -@@ -0,0 +1,37 @@
> -+/* Copyright (C) 2007 Free Software Foundation, Inc.
> -+   This file is part of the GNU C Library.
> -+
> -+   The GNU C Library is free software; you can redistribute it and/or
> -+   modify it under the terms of the GNU Lesser General Public
> -+   License as published by the Free Software Foundation; either
> -+   version 2.1 of the License, or (at your option) any later version.
> -+
> -+   The GNU C Library is distributed in the hope that it will be useful,
> -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
> -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> -+   Lesser General Public License for more details.
> -+
> -+   You should have received a copy of the GNU Lesser General Public
> -+   License along with the GNU C Library; if not, write to the Free
> -+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> -+   02111-1307 USA.  */
> -+
> -+#include<stdlib.h>
> -+#include<errno.h>
> -+#include<sched.h>
> -+#include<sysdep.h>
> -+
> -+
> -+int
> -+sched_getcpu (void)
> -+{
> -+#ifdef __NR_getcpu
> -+  unsigned int cpu;
> -+  int r = INLINE_SYSCALL (getcpu, 3,&cpu, NULL, NULL);
> -+
> -+  return r == -1 ? r : cpu;
> -+#else
> -+  __set_errno (ENOSYS);
> -+  return -1;
> -+#endif
> -+}
> -diff --git a/libc/sysdeps/linux/common/unshare.c b/libc/sysdeps/linux/common/unshare.c
> -new file mode 100644
> -index 0000000..485bf88
> ---- /dev/null
> -+++ b/libc/sysdeps/linux/common/unshare.c
> -@@ -0,0 +1,12 @@
> -+/* vi: set sw=4 ts=4: */
> -+/*
> -+ * unshare() for uClibc
> -+ *
> -+ * Copyright (C) 2011 Henning Heinold<heinold@inf.fu-berlin.de>
> -+ *
> -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
> -+ */
> -+
> -+#include<sys/syscall.h>
> -+#include<sched.h>
> -+_syscall1(int, unshare, int, flags)
> ---
> -1.7.5.3
> -
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.33/0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch
> new file mode 100644
> index 0000000..2f0c191
> --- /dev/null
> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch
> @@ -0,0 +1,32 @@
> +From 6c3919a6d4a8686772e2a302bf951548ee24a8c1 Mon Sep 17 00:00:00 2001
> +From: Khem Raj<raj.khem@gmail.com>
> +Date: Fri, 3 Feb 2012 10:57:44 -0800
> +Subject: [PATCH] Declare __err and pass it to INTERNAL_SYSCALL_NCS so
> + subsequent macros can use it
> +
> +Signed-off-by: Khem Raj<raj.khem@gmail.com>
> +---
> + libc/sysdeps/linux/common/bits/syscalls-common.h |    4 ++--
> + 1 files changed, 2 insertions(+), 2 deletions(-)
> +
> +
> +Upstream-Status: Pending
> +
> +diff --git a/libc/sysdeps/linux/common/bits/syscalls-common.h b/libc/sysdeps/linux/common/bits/syscalls-common.h
> +index faebd1b..0f5a929 100644
> +--- a/libc/sysdeps/linux/common/bits/syscalls-common.h
> ++++ b/libc/sysdeps/linux/common/bits/syscalls-common.h
> +@@ -59,8 +59,8 @@
> + #ifndef INLINE_SYSCALL_NOERR_NCS
> + # define INLINE_SYSCALL_NOERR_NCS(name, nr, args...)			\
> + ({									\
> +-	/*INTERNAL_SYSCALL_DECL(__err);*/					\
> +-	long __res = INTERNAL_SYSCALL_NCS(name, /*__err*/, nr, args);	\
> ++	INTERNAL_SYSCALL_DECL(__err);					\
> ++	long __res = INTERNAL_SYSCALL_NCS(name, __err, nr, args);	\
> + 	__res;								\
> + })
> + #endif
> +--
> +1.7.5.4
> +
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.33/0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch
> new file mode 100644
> index 0000000..da4ffef
> --- /dev/null
> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch
> @@ -0,0 +1,177 @@
> +From effbfd8e8a7b883671b24fc9759b135b48dbfaca Mon Sep 17 00:00:00 2001
> +From: Khem Raj<raj.khem@gmail.com>
> +Date: Fri, 3 Feb 2012 20:06:55 -0800
> +Subject: [PATCH] lstat/stat/fstat: Use 64bit version of syscall if available
> +
> +This is needed for stat'ing loop devices>  255
> +since otherwise kernel returns EOVERFLOW becasue
> +it needs st_rdev/st_dev to be larger than 16bits but
> +in kernel it uses __old_kernel_stat for stat
> +syscall which has st_rdev/st_dev as unsigned short
> +
> +Add a testcase
> +
> +Signed-off-by: Khem Raj<raj.khem@gmail.com>
> +---
> + libc/sysdeps/linux/common/fstat.c |   18 ++++++++++++++----
> + libc/sysdeps/linux/common/lstat.c |   19 ++++++++++++++-----
> + libc/sysdeps/linux/common/stat.c  |   18 ++++++++++++++----
> + test/stat/stat-loop256.c          |   32 ++++++++++++++++++++++++++++++++
> + 4 files changed, 74 insertions(+), 13 deletions(-)
> + create mode 100644 test/stat/stat-loop256.c
> +
> +diff --git a/libc/sysdeps/linux/common/fstat.c b/libc/sysdeps/linux/common/fstat.c
> +index acc639b..4726a68 100644
> +--- a/libc/sysdeps/linux/common/fstat.c
> ++++ b/libc/sysdeps/linux/common/fstat.c
> +@@ -12,18 +12,28 @@
> + #include<sys/stat.h>
> + #include "xstatconv.h"
> +
> +-#define __NR___syscall_fstat __NR_fstat
> +-static __inline__ _syscall2(int, __syscall_fstat, int, fd, struct kernel_stat *, buf)
> +-
> + int fstat(int fd, struct stat *buf)
> + {
> + 	int result;
> ++#ifdef __NR_fstat64
> ++	/* normal stat call has limited values for various stat elements
> ++	 * e.g. uid device major/minor etc.
> ++	 * so we use 64 variant if available
> ++	 * in order to get newer versions of stat elements
> ++	 */
> ++	struct kernel_stat64 kbuf;
> ++	result = INLINE_SYSCALL(fstat64, 2, fd,&kbuf);
> ++	if (result == 0) {
> ++		__xstat32_conv(&kbuf, buf);
> ++	}
> ++#else
> + 	struct kernel_stat kbuf;
> +
> +-	result = __syscall_fstat(fd,&kbuf);
> ++	result = INLINE_SYSCALL(fstat, 2, fd,&kbuf);
> + 	if (result == 0) {
> + 		__xstat_conv(&kbuf, buf);
> + 	}
> ++#endif
> + 	return result;
> + }
> + libc_hidden_def(fstat)
> +diff --git a/libc/sysdeps/linux/common/lstat.c b/libc/sysdeps/linux/common/lstat.c
> +index aa77447..db72d1f 100644
> +--- a/libc/sysdeps/linux/common/lstat.c
> ++++ b/libc/sysdeps/linux/common/lstat.c
> +@@ -12,19 +12,28 @@
> + #include<sys/stat.h>
> + #include "xstatconv.h"
> +
> +-#define __NR___syscall_lstat __NR_lstat
> +-static __inline__ _syscall2(int, __syscall_lstat,
> +-		const char *, file_name, struct kernel_stat *, buf)
> +-
> + int lstat(const char *file_name, struct stat *buf)
> + {
> + 	int result;
> ++#ifdef __NR_lstat64
> ++	/* normal stat call has limited values for various stat elements
> ++	 * e.g. uid device major/minor etc.
> ++	 * so we use 64 variant if available
> ++	 * in order to get newer versions of stat elements
> ++	 */
> ++	struct kernel_stat64 kbuf;
> ++	result = INLINE_SYSCALL(lstat64, 2, file_name,&kbuf);
> ++	if (result == 0) {
> ++		__xstat32_conv(&kbuf, buf);
> ++	}
> ++#else
> + 	struct kernel_stat kbuf;
> +
> +-	result = __syscall_lstat(file_name,&kbuf);
> ++	result = INLINE_SYSCALL(lstat, 2, file_name,&kbuf);
> + 	if (result == 0) {
> + 		__xstat_conv(&kbuf, buf);
> + 	}
> ++#endif
> + 	return result;
> + }
> + libc_hidden_def(lstat)
> +diff --git a/libc/sysdeps/linux/common/stat.c b/libc/sysdeps/linux/common/stat.c
> +index a6ab291..829f35a 100644
> +--- a/libc/sysdeps/linux/common/stat.c
> ++++ b/libc/sysdeps/linux/common/stat.c
> +@@ -12,20 +12,30 @@
> + #include<sys/stat.h>
> + #include "xstatconv.h"
> +
> +-#define __NR___syscall_stat __NR_stat
> + #undef stat
> +-static __inline__ _syscall2(int, __syscall_stat,
> +-		const char *, file_name, struct kernel_stat *, buf)
> +
> + int stat(const char *file_name, struct stat *buf)
> + {
> + 	int result;
> ++#ifdef __NR_stat64
> ++	/* normal stat call has limited values for various stat elements
> ++	 * e.g. uid device major/minor etc.
> ++	 * so we use 64 variant if available
> ++	 * in order to get newer versions of stat elements
> ++	 */
> ++	struct kernel_stat64 kbuf;
> ++	result = INLINE_SYSCALL(stat64, 2, file_name,&kbuf);
> ++	if (result == 0) {
> ++		__xstat32_conv(&kbuf, buf);
> ++	}
> ++#else
> + 	struct kernel_stat kbuf;
> +
> +-	result = __syscall_stat(file_name,&kbuf);
> ++	result = INLINE_SYSCALL(stat, 2, file_name,&kbuf);
> + 	if (result == 0) {
> + 		__xstat_conv(&kbuf, buf);
> + 	}
> ++#endif
> + 	return result;
> + }
> + libc_hidden_def(stat)
> +diff --git a/test/stat/stat-loop256.c b/test/stat/stat-loop256.c
> +new file mode 100644
> +index 0000000..14284c1
> +--- /dev/null
> ++++ b/test/stat/stat-loop256.c
> +@@ -0,0 +1,32 @@
> ++#include<stdio.h>
> ++#include<unistd.h>
> ++#include<stdlib.h>
> ++#include<sys/stat.h>
> ++int main()
> ++{
> ++    struct stat statbuf;
> ++    int ret = 0;
> ++    char* loop255 = "/dev/loop255";
> ++    char* loop256 = "/dev/loop256";
> ++    mode_t mode = 0660;
> ++    mknod(loop255, mode, 0x7ff);
> ++    mknod(loop256, mode, 0x100700);
> ++    ret = stat(loop255,&statbuf);
> ++    if(ret<  0) {
> ++	printf("stat: Cant stat %s\n",loop255);
> ++	unlink(loop255);
> ++	exit(1);
> ++    }
> ++    ret = stat(loop256,&statbuf);
> ++    if(ret<  0) {
> ++        printf("stat: Cant stat %s\n",loop256);
> ++	unlink(loop255);
> ++	unlink(loop256);
> ++        exit(1);
> ++    }
> ++
> ++    unlink(loop255);
> ++    unlink(loop256);
> ++    exit(0);
> ++}
> ++
> +--
> +1.7.5.4
> +
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/argp-headers.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/argp-headers.patch
> similarity index 99%
> rename from meta/recipes-core/uclibc/uclibc-0.9.32/argp-headers.patch
> rename to meta/recipes-core/uclibc/uclibc-0.9.33/argp-headers.patch
> index 7fd148f..b31b991 100644
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/argp-headers.patch
> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/argp-headers.patch
> @@ -8,6 +8,8 @@ Signed-off-by: Salvatore Cro<salvatore.cro at st.com>
>    create mode 100644 include/argp.h
>    create mode 100644 libc/argp/argp-fmtstream.h
>
> +Upstream-Status: Pending
> +
>   Index: git/include/argp.h
>   ===================================================================
>   --- /dev/null
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/argp-support.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/argp-support.patch
> similarity index 99%
> rename from meta/recipes-core/uclibc/uclibc-0.9.32/argp-support.patch
> rename to meta/recipes-core/uclibc/uclibc-0.9.33/argp-support.patch
> index 04a3c78..3e9680f 100644
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/argp-support.patch
> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/argp-support.patch
> @@ -13,6 +13,9 @@ it doesn't need to link libuargp.so explicitely.
>   Signed-off-by: Salvatore Cro<salvatore.cro at st.com>
>   Signed-off-by: Filippo Arcidiacono<filippo.arcidiacono at st.com>
>   Signed-off-by: Carmelo Amoroso<carmelo.amoroso at st.com>
> +
> +Upstream-Status: Pending
> +
>   ---
>    Makefile.in                                 |    8 +
>    Makerules                                   |    8 +-
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/compile-arm-fork-with-O2.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/compile-arm-fork-with-O2.patch
> similarity index 97%
> rename from meta/recipes-core/uclibc/uclibc-0.9.32/compile-arm-fork-with-O2.patch
> rename to meta/recipes-core/uclibc/uclibc-0.9.33/compile-arm-fork-with-O2.patch
> index 429f27d..15ee0ca 100644
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/compile-arm-fork-with-O2.patch
> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/compile-arm-fork-with-O2.patch
> @@ -1,5 +1,5 @@
>   When compiling in thumb mode for arm with -Os gcc gives up since it can not find registers
> -to spill. So we use -O2 option for compiling fork.c It may be addressable is gcc.
> +to spill. So we use -O2 option for compiling fork.c It may be addressable in gcc.
>
>   Signed-off-by: Khem Raj<raj.khem@gmail.com>
>
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch
> new file mode 100644
> index 0000000..4e900f3
> --- /dev/null
> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch
> @@ -0,0 +1,25 @@
> +Add definition of MSG_WAITFORONE and MSG_CMSG_CLOEXEC
> +
> +Upstream-Status: Pending
> +
> +Index: git/libc/sysdeps/linux/common/bits/socket.h
> +===================================================================
> +--- git.orig/libc/sysdeps/linux/common/bits/socket.h	2012-01-26 23:23:21.537456132 -0800
> ++++ git/libc/sysdeps/linux/common/bits/socket.h	2012-01-26 23:25:10.125461388 -0800
> +@@ -235,8 +235,15 @@
> + #define	MSG_ERRQUEUE	MSG_ERRQUEUE
> +     MSG_NOSIGNAL	= 0x4000, /* Do not generate SIGPIPE.  */
> + #define	MSG_NOSIGNAL	MSG_NOSIGNAL
> +-    MSG_MORE		= 0x8000  /* Sender will send more.  */
> ++    MSG_MORE		= 0x8000,  /* Sender will send more.  */
> + #define	MSG_MORE	MSG_MORE
> ++    MSG_WAITFORONE      = 0x10000, /* Wait for at least one packet to return.*/
> ++#define MSG_WAITFORONE  MSG_WAITFORONE
> ++
> ++    MSG_CMSG_CLOEXEC    = 0x40000000    /* Set close_on_exit for file
> ++                                           descriptor received through
> ++                                           SCM_RIGHTS.  */
> ++#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
> +   };
> +
> +
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch
> new file mode 100644
> index 0000000..481f23b
> --- /dev/null
> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch
> @@ -0,0 +1,37 @@
> +Implement dup3()
> +
> +Upstream-Status: Pending
> +
> +Index: git/libc/sysdeps/linux/common/dup3.c
> +===================================================================
> +--- /dev/null	1970-01-01 00:00:00.000000000 +0000
> ++++ git/libc/sysdeps/linux/common/dup3.c	2012-01-27 07:40:52.802900849 -0800
> +@@ -0,0 +1,15 @@
> ++/* vi: set sw=4 ts=4: */
> ++/*
> ++ * dup3() for uClibc
> ++ *
> ++ * Copyright (C) 2000-2006 Erik Andersen<andersen@uclibc.org>
> ++ *
> ++ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
> ++ */
> ++
> ++#include<sys/syscall.h>
> ++#include<unistd.h>
> ++
> ++
> ++_syscall3(int, dup3, int, oldfd, int, newfd, int, flags)
> ++libc_hidden_def(dup3)
> +Index: git/include/unistd.h
> +===================================================================
> +--- git.orig/include/unistd.h	2012-01-27 01:19:17.521792781 -0800
> ++++ git/include/unistd.h	2012-01-27 07:40:03.106898447 -0800
> +@@ -512,6 +512,8 @@
> + /* Duplicate FD to FD2, closing FD2 and making it open on the same file.  */
> + extern int dup2 (int __fd, int __fd2) __THROW;
> + libc_hidden_proto(dup2)
> ++extern int dup3 (int __fd, int __fd2, int __flags) __THROW;
> ++libc_hidden_proto(dup3)
> +
> + /* NULL-terminated array of "NAME=VALUE" environment variables.  */
> + extern char **__environ;
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
> similarity index 86%
> rename from meta/recipes-core/uclibc/uclibc-0.9.32/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
> rename to meta/recipes-core/uclibc/uclibc-0.9.33/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
> index cfa68ce..d44acca 100644
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
> @@ -1,3 +1,9 @@
> +resolver code should always be in arm mode
> +
> +Signed-off-by: Khem Raj<raj.khem@gmail.com>
> +
> +Upstream-Status: Pending
> +
>   Index: uClibc/ldso/ldso/arm/resolve.S
>   ===================================================================
>   --- uClibc.orig/ldso/ldso/arm/resolve.S	2009-03-20 12:03:32.000000000 -0700
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.33/libc_symbols_include_bits_uclibc_config.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/libc_symbols_include_bits_uclibc_config.patch
> new file mode 100644
> index 0000000..8064115
> --- /dev/null
> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/libc_symbols_include_bits_uclibc_config.patch
> @@ -0,0 +1,19 @@
> +Index: git/include/libc-symbols.h
> +===================================================================
> +--- git.orig/include/libc-symbols.h	2011-07-05 17:04:41.171219323 -0700
> ++++ git/include/libc-symbols.h	2011-07-05 22:50:36.851661478 -0700
> +@@ -48,10 +48,12 @@
> +
> +    */
> +
> +-#include<bits/uClibc_arch_features.h>
> +-
> + /* Enable declarations of GNU extensions, since we are compiling them.  */
> + #define _GNU_SOURCE	1
> ++#define __need_uClibc_config_h
> ++#include<bits/uClibc_config.h>
> ++#undef __need_uClibc_config_h
> ++#include<bits/uClibc_arch_features.h>
> +
> + /* Prepare for the case that `__builtin_expect' is not available.  */
> + #if defined __GNUC__&&  __GNUC__ == 2&&  __GNUC_MINOR__<  96
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/mips/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.33/mips/uClibc.machine
> similarity index 100%
> rename from meta/recipes-core/uclibc/uclibc-0.9.32/mips/uClibc.machine
> rename to meta/recipes-core/uclibc/uclibc-0.9.33/mips/uClibc.machine
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/orign_path.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/orign_path.patch
> similarity index 64%
> rename from meta/recipes-core/uclibc/uclibc-0.9.32/orign_path.patch
> rename to meta/recipes-core/uclibc/uclibc-0.9.33/orign_path.patch
> index 631951e..c9c15a3 100644
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/orign_path.patch
> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/orign_path.patch
> @@ -3,16 +3,16 @@ http://lists.busybox.net/pipermail/uclibc/2011-March/045003.html
>
>   Upstream-Status: Pending
>
> -diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c
> -index 505247e..2b2d429 100644
> ---- a/ldso/ldso/dl-elf.c
> -+++ b/ldso/ldso/dl-elf.c
> -@@ -133,53 +133,60 @@ _dl_protect_relro (struct elf_resolve *l)
> +Index: git/ldso/ldso/dl-elf.c
> +===================================================================
> +--- git.orig/ldso/ldso/dl-elf.c	2012-01-23 19:18:58.000000000 -0800
> ++++ git/ldso/ldso/dl-elf.c	2012-01-23 21:52:06.144646590 -0800
> +@@ -133,53 +133,60 @@
>     * in uClibc/ldso/util/ldd.c */
>    static struct elf_resolve *
> - search_for_named_library(const char *name, int secure, const char *path_list,
> + search_for_named_library(const char *name, unsigned rflags, const char *path_list,
>   -	struct dyn_elf **rpnt)
> -+	struct dyn_elf **rpnt, const char *origin)
> ++	struct dyn_elf **rpnt, const char* origin)
>    {
>   -	char *path, *path_n, *mylibname;
>   +	char *mylibname;
> @@ -47,18 +47,6 @@ index 505247e..2b2d429 100644
>   -		if (*path == 0) {
>   -			*path = ':';
>   -			done = 1;
> --		}
> --		if (*path == ':') {
> --			*path = 0;
> --			if (*path_n)
> --				_dl_strcpy(mylibname, path_n);
> --			else
> --				_dl_strcpy(mylibname, "."); /* Assume current dir if empty path */
> --			_dl_strcat(mylibname, "/");
> --			_dl_strcat(mylibname, name);
> --			if ((tpnt = _dl_load_elf_shared_library(secure, rpnt, mylibname)) != NULL)
> --				return tpnt;
> --			path_n = path+1;
>   +	for (p = path_list; p != NULL; p = pn) {
>   +		pn = _dl_strchr(p + 1, ':');
>   +		if (pn != NULL) {
> @@ -69,7 +57,7 @@ index 505247e..2b2d429 100644
>   +
>   +		if (plen>= 7&&  _dl_memcmp(p, "$ORIGIN", 7) == 0) {
>   +			int olen;
> -+			if (secure&&  plen != 7)
> ++			if (rflags&&  plen != 7)
>   +				continue;
>   +			if (origin == NULL)
>   +				continue;
> @@ -86,12 +74,24 @@ index 505247e..2b2d429 100644
>   +		} else {
>   +			_dl_strcpy(mylibname, ".");
>    		}
> +-		if (*path == ':') {
> +-			*path = 0;
> +-			if (*path_n)
> +-				_dl_strcpy(mylibname, path_n);
> +-			else
> +-				_dl_strcpy(mylibname, "."); /* Assume current dir if empty path */
> +-			_dl_strcat(mylibname, "/");
> +-			_dl_strcat(mylibname, name);
> +-			if ((tpnt = _dl_load_elf_shared_library(rflags, rpnt, mylibname)) != NULL)
> +-				return tpnt;
> +-			path_n = path+1;
> +-		}
>   -		path++;
>   -	} while (!done);
>   +		_dl_strcat(mylibname, "/");
>   +		_dl_strcat(mylibname, name);
>   +
> -+		tpnt = _dl_load_elf_shared_library(secure, rpnt, mylibname);
> ++		tpnt = _dl_load_elf_shared_library(rflags, rpnt, mylibname);
>   +		if (tpnt != NULL)
>   +			return tpnt;
>   +	}
> @@ -99,44 +99,46 @@ index 505247e..2b2d429 100644
>    	return NULL;
>    }
>
> -@@ -231,7 +238,8 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
> +@@ -231,8 +238,10 @@
>    	if (pnt) {
>    		pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
>    		_dl_if_debug_dprint("\tsearching RPATH='%s'\n", pnt);
> --		if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt)) != NULL)
> -+		if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt,
> +-		if ((tpnt1 = search_for_named_library(libname, rflags, pnt, rpnt)) != NULL)
> ++		if ((tpnt1 = search_for_named_library(libname, rflags, pnt, rpnt,
>   +						      tpnt->libname)) != NULL)
>    			return tpnt1;
> ++
>    	}
>    #endif
> -@@ -239,7 +247,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
> +
> +@@ -240,7 +249,7 @@
>    	/* Check in LD_{ELF_}LIBRARY_PATH, if specified and allowed */
>    	if (_dl_library_path) {
>    		_dl_if_debug_dprint("\tsearching LD_LIBRARY_PATH='%s'\n", _dl_library_path);
> --		if ((tpnt1 = search_for_named_library(libname, secure, _dl_library_path, rpnt)) != NULL)
> -+		if ((tpnt1 = search_for_named_library(libname, secure, _dl_library_path, rpnt, NULL)) != NULL)
> +-		if ((tpnt1 = search_for_named_library(libname, rflags, _dl_library_path, rpnt)) != NULL)
> ++		if ((tpnt1 = search_for_named_library(libname, rflags, _dl_library_path, rpnt, NULL)) != NULL)
>    		{
>    			return tpnt1;
>    		}
> -@@ -253,7 +261,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
> +@@ -254,7 +263,7 @@
>    	if (pnt) {
>    		pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
>    		_dl_if_debug_dprint("\tsearching RUNPATH='%s'\n", pnt);
> --		if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt)) != NULL)
> -+		if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt, NULL)) != NULL)
> +-		if ((tpnt1 = search_for_named_library(libname, rflags, pnt, rpnt)) != NULL)
> ++		if ((tpnt1 = search_for_named_library(libname, rflags, pnt, rpnt, NULL)) != NULL)
>    			return tpnt1;
>    	}
>    #endif
> -@@ -287,7 +295,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
> +@@ -288,7 +297,7 @@
>    	/* Look for libraries wherever the shared library loader
>    	 * was installed */
>    	_dl_if_debug_dprint("\tsearching ldso dir='%s'\n", _dl_ldsopath);
> --	tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath, rpnt);
> -+	tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath, rpnt, NULL);
> +-	tpnt1 = search_for_named_library(libname, rflags, _dl_ldsopath, rpnt);
> ++	tpnt1 = search_for_named_library(libname, rflags, _dl_ldsopath, rpnt, NULL);
>    	if (tpnt1 != NULL)
>    		return tpnt1;
> -
> -@@ -300,7 +308,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
> + #endif
> +@@ -301,7 +310,7 @@
>    #ifndef __LDSO_CACHE_SUPPORT__
>    					":" UCLIBC_RUNTIME_PREFIX "usr/X11R6/lib"
>    #endif
> @@ -145,12 +147,12 @@ index 505247e..2b2d429 100644
>    	if (tpnt1 != NULL)
>    		return tpnt1;
>
> -diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c
> -index 7ee9257..9423670 100644
> ---- a/ldso/ldso/ldso.c
> -+++ b/ldso/ldso/ldso.c
> -@@ -272,6 +272,20 @@ static void __attribute__ ((destructor)) __attribute_used__ _dl_fini(void)
> - 	}
> +Index: git/ldso/ldso/ldso.c
> +===================================================================
> +--- git.orig/ldso/ldso/ldso.c	2012-01-23 19:18:58.000000000 -0800
> ++++ git/ldso/ldso/ldso.c	2012-01-23 21:34:11.152594621 -0800
> +@@ -407,6 +407,20 @@
> + 	return p - list;
>    }
>
>   +static void _dl_setup_progname(const char *argv0)
> @@ -167,10 +169,10 @@ index 7ee9257..9423670 100644
>   +	}
>   +}
>   +
> - void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr,
> - 			  ElfW(auxv_t) auxvt[AT_EGID + 1], char **envp,
> - 			  char **argv
> -@@ -321,9 +335,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr,
> + void *_dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr,
> + 			  ElfW(auxv_t) auxvt[AT_EGID + 1], char **envp, char **argv
> + 			  DL_GET_READY_TO_RUN_EXTRA_PARMS)
> +@@ -458,9 +472,7 @@
>    	 * been fixed up by now.  Still no function calls outside of this
>    	 * library, since the dynamic resolver is not yet ready.
>    	 */
> @@ -179,5 +181,5 @@ index 7ee9257..9423670 100644
>   -	}
>   +	_dl_setup_progname(argv[0]);
>
> + #ifndef __LDSO_STANDALONE_SUPPORT__
>    	if (_start == (void *) auxvt[AT_ENTRY].a_un.a_val) {
> - 		_dl_dprintf(_dl_debug_file, "Standalone execution is not supported yet\n");
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/powerpc_copysignl.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/powerpc_copysignl.patch
> similarity index 96%
> rename from meta/recipes-core/uclibc/uclibc-0.9.32/powerpc_copysignl.patch
> rename to meta/recipes-core/uclibc/uclibc-0.9.33/powerpc_copysignl.patch
> index 339ce7f..3fa10af 100644
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/powerpc_copysignl.patch
> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/powerpc_copysignl.patch
> @@ -1,3 +1,9 @@
> +Add ppc copysignl implementation
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Khem Raj<raj.khem@gmail.com>
> +
>   Index: git/libc/sysdeps/linux/powerpc/Makefile.arch
>   ===================================================================
>   --- git.orig/libc/sysdeps/linux/powerpc/Makefile.arch
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/remove_attribute_optimize_Os.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/remove_attribute_optimize_Os.patch
> similarity index 93%
> rename from meta/recipes-core/uclibc/uclibc-0.9.32/remove_attribute_optimize_Os.patch
> rename to meta/recipes-core/uclibc/uclibc-0.9.33/remove_attribute_optimize_Os.patch
> index 1930383..bee251c 100644
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/remove_attribute_optimize_Os.patch
> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/remove_attribute_optimize_Os.patch
> @@ -1,15 +1,8 @@
> -Index: git/include/features.h
> -===================================================================
> ---- git.orig/include/features.h
> -+++ git/include/features.h
> -@@ -186,7 +186,6 @@
> - # define __need_uClibc_config_h
> - # include<bits/uClibc_config.h>
> - # undef __need_uClibc_config_h
> --
> - /* For uClibc, always optimize for size -- this should disable
> -  * a lot of expensive inlining...
> -  * TODO: this is wrong! __OPTIMIZE_SIZE__ is an indicator of
> +Dont support localised optimizations this helps to have a global -O level
> +
> +Signed-off-by: Khem Raj<raj.khem@gmail.com>
> +Upstream-Status: Pending
> +
>   Index: git/libpthread/nptl/pthread_mutex_timedlock.c
>   ===================================================================
>   --- git.orig/libpthread/nptl/pthread_mutex_timedlock.c
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/uClibc.distro b/meta/recipes-core/uclibc/uclibc-0.9.33/uClibc.distro
> similarity index 96%
> rename from meta/recipes-core/uclibc/uclibc-0.9.32/uClibc.distro
> rename to meta/recipes-core/uclibc/uclibc-0.9.33/uClibc.distro
> index 5638d47..c33bf8e 100644
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/uClibc.distro
> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/uClibc.distro
> @@ -181,4 +181,10 @@ UCLIBC_HAS_FLOATS=y
>
>   # needed by systemd
>   UCLIBC_HAS_UTMPX=y
> -
> +UCLIBC_LINUX_MODULE_26=y
> +UCLIBC_HAS_RESOLVER_SUPPORT=y
> +# needed for LTP
> +UCLIBC_SUSV4_LEGACY=y
> +UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
> +DO_XSI_MATH=y
> +UCLIBC_SV4_DEPRECATED=y
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/uClibc.machine b/meta/recipes-core/uclibc/uclibc-0.9.33/uClibc.machine
> similarity index 100%
> rename from meta/recipes-core/uclibc/uclibc-0.9.32/uClibc.machine
> rename to meta/recipes-core/uclibc/uclibc-0.9.33/uClibc.machine
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-execvpe.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/uclibc-execvpe.patch
> similarity index 99%
> rename from meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-execvpe.patch
> rename to meta/recipes-core/uclibc/uclibc-0.9.33/uclibc-execvpe.patch
> index cd90a09..fe191fc 100644
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-execvpe.patch
> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/uclibc-execvpe.patch
> @@ -12,6 +12,9 @@ Signed-off-by: Henning Heinold<heinold@inf.fu-berlin.de>
>    3 files changed, 46 insertions(+), 5 deletions(-)
>    create mode 100644 libc/unistd/execvpe.c
>
> +
> +Upstream-Status: Pending
> +
>   diff --git a/include/unistd.h b/include/unistd.h
>   index 9568790..070e4f2 100644
>   --- a/include/unistd.h
> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_enable_log2_test.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/uclibc_enable_log2_test.patch
> similarity index 81%
> rename from meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_enable_log2_test.patch
> rename to meta/recipes-core/uclibc/uclibc-0.9.33/uclibc_enable_log2_test.patch
> index f8f3a7d..37a5988 100644
> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_enable_log2_test.patch
> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/uclibc_enable_log2_test.patch
> @@ -1,3 +1,8 @@
> +uclibc now has log2 so enable the tests
> +
> +Signed-off-by: Khem Raj<raj.khem@gmail.com>
> +Upstream-Status: Pending
> +
>   Index: uClibc/test/math/libm-test.inc
>   ===================================================================
>   --- uClibc/test/math/libm-test.inc	(revision 23784)
> diff --git a/meta/recipes-core/uclibc/uclibc-initial_0.9.32.bb b/meta/recipes-core/uclibc/uclibc-initial_0.9.33.bb
> similarity index 100%
> rename from meta/recipes-core/uclibc/uclibc-initial_0.9.32.bb
> rename to meta/recipes-core/uclibc/uclibc-initial_0.9.33.bb
> diff --git a/meta/recipes-core/uclibc/uclibc_0.9.32.bb b/meta/recipes-core/uclibc/uclibc_0.9.33.bb
> similarity index 45%
> rename from meta/recipes-core/uclibc/uclibc_0.9.32.bb
> rename to meta/recipes-core/uclibc/uclibc_0.9.33.bb
> index 235b436..b559fd4 100644
> --- a/meta/recipes-core/uclibc/uclibc_0.9.32.bb
> +++ b/meta/recipes-core/uclibc/uclibc_0.9.33.bb
> @@ -1,34 +1,26 @@
> -SRCREV="9152c4d67c763fde5712e2d181d92c0d7e1e2ab9"
> +SRCREV="1548ee3ca582f3732136e71613c87c16230f71cc"
>
>   require uclibc.inc
> -PR = "${INC_PR}.3"
> +
> +PR = "${INC_PR}.0"
>   PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
>
>   SRC_URI = "git://uclibc.org/uClibc.git;branch=${PV};protocol=git \
>   	file://uClibc.machine \
>   	file://uClibc.distro \
> -	file://uclibc-arm-ftruncate64.patch \
>   	file://uclibc_enable_log2_test.patch \
>   	file://ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch \
> -	file://select-force-thumb.patch \
> -	file://remove-sub-arch-variants.patch \
> -	file://transform-eabi-oabi-choice.patch \
> -	file://include-arm-asm.h.patch \
> -	file://detect-bx-availibility.patch \
> -	file://remove-eabi-oabi-selection.patch \
>   	file://powerpc_copysignl.patch \
>   	file://argp-support.patch \
>   	file://argp-headers.patch \
>   	file://remove_attribute_optimize_Os.patch \
>   	file://compile-arm-fork-with-O2.patch \
> -	file://epoll-asm-fix.patch \
> -	file://orign_path.patch \
> -	file://rtld_no.patch \
> -	file://0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch \
> -	file://0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch \
>   	file://uclibc-execvpe.patch \
> -	file://uclibc_scheduler_update.patch \
> -	file://sync_file_range2.patch \
> -	file://mount.h-update.patch \
> +	file://orign_path.patch \
> +	file://dup3.patch \
> +	file://define-MSG_CMSG_CLOEXEC.patch \
> +	file://0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch \
> +	file://0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch \
>   	"
> +
>   S = "${WORKDIR}/git"



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 11/20] uclibc: Upgrade recipes from 0.9.32 -> 0.9.33
  2012-02-07 19:02   ` Saul Wold
@ 2012-02-07 22:26     ` Khem Raj
  0 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-07 22:26 UTC (permalink / raw)
  To: Saul Wold; +Cc: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 119126 bytes --]

updated

On Tue, Feb 7, 2012 at 11:02 AM, Saul Wold <sgw@linux.intel.com> wrote:
> On 02/05/2012 10:40 PM, Khem Raj wrote:
>>
>> Prefer 0.9.33 by default
>> Delete recipes for 0.9.32
>>
>> Signed-off-by: Khem Raj<raj.khem@gmail.com>
>> ---
>>  meta/conf/distro/include/tcmode-default.inc        |    2 +-
>>  ...rch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch |   29 --
>>  ...fd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch |   33 --
>>  .../uclibc-0.9.32/detect-bx-availibility.patch     |   75 ----
>>  .../uclibc/uclibc-0.9.32/epoll-asm-fix.patch       |   25 --
>>  .../uclibc/uclibc-0.9.32/include-arm-asm.h.patch   |   65 ---
>>  .../uclibc/uclibc-0.9.32/mount.h-update.patch      |   85 ----
>>  .../uclibc-0.9.32/remove-eabi-oabi-selection.patch |   91 ----
>>  .../uclibc-0.9.32/remove-sub-arch-variants.patch   |  215 ---------
>>  .../uclibc/uclibc-0.9.32/rtld_no.patch             |  215 ---------
>>  .../uclibc/uclibc-0.9.32/select-force-thumb.patch  |  172 --------
>>  .../uclibc/uclibc-0.9.32/sync_file_range2.patch    |   47 --
>>  .../uclibc-0.9.32/transform-eabi-oabi-choice.patch |   71 ---
>>  .../uclibc-0.9.32/uclibc-arm-ftruncate64.patch     |   13 -
>>  .../uclibc-0.9.32/uclibc_scheduler_update.patch    |  455
>> --------------------
>>  ...rr-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch |   32 ++
>>  ...fstat-Use-64bit-version-of-syscall-if-ava.patch |  177 ++++++++
>>  .../argp-headers.patch                             |    2 +
>>  .../argp-support.patch                             |    3 +
>>  .../compile-arm-fork-with-O2.patch                 |    2 +-
>>  .../uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch    |   25 ++
>>  meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch  |   37 ++
>>  ...so_use_arm_dl_linux_resolve_in_thumb_mode.patch |    6 +
>>  .../libc_symbols_include_bits_uclibc_config.patch  |   19 +
>>  .../mips/uClibc.machine                            |    0
>>  .../orign_path.patch                               |   94 ++--
>>  .../powerpc_copysignl.patch                        |    6 +
>>  .../remove_attribute_optimize_Os.patch             |   17 +-
>>  .../{uclibc-0.9.32 =>  uclibc-0.9.33}/uClibc.distro |    8 +-
>>  .../uClibc.machine                                 |    0
>>  .../uclibc-execvpe.patch                           |    3 +
>>  .../uclibc_enable_log2_test.patch                  |    5 +
>>  ...-initial_0.9.32.bb =>  uclibc-initial_0.9.33.bb} |    0
>>  .../uclibc/{uclibc_0.9.32.bb =>  uclibc_0.9.33.bb}  |   26 +-
>>  34 files changed, 386 insertions(+), 1669 deletions(-)
>>  delete mode 100644
>>
meta/recipes-core/uclibc/uclibc-0.9.32/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch
>>  delete mode 100644
>>
meta/recipes-core/uclibc/uclibc-0.9.32/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch
>>  delete mode 100644
>> meta/recipes-core/uclibc/uclibc-0.9.32/detect-bx-availibility.patch
>>  delete mode 100644
>> meta/recipes-core/uclibc/uclibc-0.9.32/epoll-asm-fix.patch
>>  delete mode 100644
>> meta/recipes-core/uclibc/uclibc-0.9.32/include-arm-asm.h.patch
>>  delete mode 100644
>> meta/recipes-core/uclibc/uclibc-0.9.32/mount.h-update.patch
>>  delete mode 100644
>> meta/recipes-core/uclibc/uclibc-0.9.32/remove-eabi-oabi-selection.patch
>>  delete mode 100644
>> meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch
>>  delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/rtld_no.patch
>>  delete mode 100644
>> meta/recipes-core/uclibc/uclibc-0.9.32/select-force-thumb.patch
>>  delete mode 100644
>> meta/recipes-core/uclibc/uclibc-0.9.32/sync_file_range2.patch
>>  delete mode 100644
>> meta/recipes-core/uclibc/uclibc-0.9.32/transform-eabi-oabi-choice.patch
>>  delete mode 100644
>> meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-arm-ftruncate64.patch
>>  delete mode 100644
>> meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_scheduler_update.patch
>>  create mode 100644
>>
meta/recipes-core/uclibc/uclibc-0.9.33/0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch
>>  create mode 100644
>>
meta/recipes-core/uclibc/uclibc-0.9.33/0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch
>
>
> Missing Upstream-Status in this patch
>
>> rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>
>
> uclibc-0.9.33}/argp-headers.patch (99%)
>>
>>  rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>
>>  uclibc-0.9.33}/argp-support.patch (99%)
>>  rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>
>>  uclibc-0.9.33}/compile-arm-fork-with-O2.patch (97%)
>>  create mode 100644
>> meta/recipes-core/uclibc/uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch
>>  create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch
>>  rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>
>>  uclibc-0.9.33}/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch (86%)
>>  create mode 100644
>>
meta/recipes-core/uclibc/uclibc-0.9.33/libc_symbols_include_bits_uclibc_config.patch
>
>
> Also missing Upstream-Status.
>
>
>>  rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>
>>  uclibc-0.9.33}/mips/uClibc.machine (100%)
>>  rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>
>>  uclibc-0.9.33}/orign_path.patch (64%)
>>  rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>
>>  uclibc-0.9.33}/powerpc_copysignl.patch (96%)
>>  rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>
>>  uclibc-0.9.33}/remove_attribute_optimize_Os.patch (93%)
>>  rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>
>>  uclibc-0.9.33}/uClibc.distro (96%)
>>  rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>
>>  uclibc-0.9.33}/uClibc.machine (100%)
>>  rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>
>>  uclibc-0.9.33}/uclibc-execvpe.patch (99%)
>>  rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>
>>  uclibc-0.9.33}/uclibc_enable_log2_test.patch (81%)
>>  rename meta/recipes-core/uclibc/{uclibc-initial_0.9.32.bb =>
>>  uclibc-initial_0.9.33.bb} (100%)
>>  rename meta/recipes-core/uclibc/{uclibc_0.9.32.bb =>  uclibc_0.9.33.bb}
>> (45%)
>>
>> diff --git a/meta/conf/distro/include/tcmode-default.inc
>> b/meta/conf/distro/include/tcmode-default.inc
>> index 5bb253e..b7c2160 100644
>> --- a/meta/conf/distro/include/tcmode-default.inc
>> +++ b/meta/conf/distro/include/tcmode-default.inc
>> @@ -20,7 +20,7 @@ GCCVERSION ?= "4.6%"
>>  SDKGCCVERSION ?= "4.6%"
>>  BINUVERSION ?= "2.22"
>>  EGLIBCVERSION ?= "2.13"
>> -UCLIBCVERSION ?= "0.9.32"
>> +UCLIBCVERSION ?= "0.9.33"
>>  LINUXLIBCVERSION ?= "3.1"
>>
>>  PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
>> diff --git
>>
a/meta/recipes-core/uclibc/uclibc-0.9.32/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch
>>
b/meta/recipes-core/uclibc/uclibc-0.9.32/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch
>> deleted file mode 100644
>> index da97d38..0000000
>> ---
>>
a/meta/recipes-core/uclibc/uclibc-0.9.32/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch
>> +++ /dev/null
>> @@ -1,29 +0,0 @@
>> -From 06cdcd2a9dd6b46b7fbb5b3ae0a62bdb7ee6c402 Mon Sep 17 00:00:00 2001
>> -From: Khem Raj<raj.khem@gmail.com>
>> -Date: Mon, 27 Jun 2011 17:48:18 -0700
>> -Subject: [PATCH] Config.in.arch: Free UCLIBC_HAS_FPU setting from
>> depending on UCLIBC_HAS_FLOATS
>> -
>> -UCLIBC_HAS_FLOATS and UCLIBC_HAS_FPU are denoting two different aspects.
>> -UCLIBC_HAS_FLOATS covers the floating point operations which has nothing
>> -to do if you have FPU or not.
>> -
>> -Signed-off-by: Khem Raj<raj.khem@gmail.com>
>> ----
>> - extra/Configs/Config.in.arch |    1 -
>> - 1 files changed, 0 insertions(+), 1 deletions(-)
>> -
>> -diff --git a/extra/Configs/Config.in.arch b/extra/Configs/Config.in.arch
>> -index 5f7a2b0..c1ca390 100644
>> ---- a/extra/Configs/Config.in.arch
>> -+++ b/extra/Configs/Config.in.arch
>> -@@ -133,7 +133,6 @@ config UCLIBC_HAS_FLOATS
>> -
>> - config UCLIBC_HAS_FPU
>> -       bool "Target CPU has a floating point unit (FPU)"
>> --      depends on UCLIBC_HAS_FLOATS
>> -       default y
>> -       help
>> -         If your target CPU does not have a Floating Point Unit (FPU) or
>> a
>> ---
>> -1.7.0.4
>> -
>> diff --git
>>
a/meta/recipes-core/uclibc/uclibc-0.9.32/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch
>>
b/meta/recipes-core/uclibc/uclibc-0.9.32/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch
>> deleted file mode 100644
>> index 6892ceb..0000000
>> ---
>>
a/meta/recipes-core/uclibc/uclibc-0.9.32/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch
>> +++ /dev/null
>> @@ -1,33 +0,0 @@
>> -From ecc7d34cbbaf83aae87b091555650ed33e27ed2e Mon Sep 17 00:00:00 2001
>> -From: Khem Raj<raj.khem@gmail.com>
>> -Date: Thu, 30 Jun 2011 00:32:11 -0700
>> -Subject: [PATCH] mips/signalfd.h: SFD_NONBLOCK for mips is 0200 unlike
>> 04000 commonly
>> -
>> -Signed-off-by: Khem Raj<raj.khem@gmail.com>
>> ----
>> - include/sys/signalfd.h |    9 +++++++++
>> - 1 files changed, 9 insertions(+), 0 deletions(-)
>> -
>> -diff --git a/include/sys/signalfd.h b/include/sys/signalfd.h
>> -index 8cee17c..f1cb63a 100644
>> ---- a/include/sys/signalfd.h
>> -+++ b/include/sys/signalfd.h
>> -@@ -64,6 +64,15 @@ enum
>> - # define SFD_NONBLOCK SFD_NONBLOCK
>> -   };
>> -
>> -+#elif defined __mips__
>> -+enum
>> -+  {
>> -+    SFD_CLOEXEC = 02000000,
>> -+# define SFD_CLOEXEC SFD_CLOEXEC
>> -+    SFD_NONBLOCK = 0200
>> -+# define SFD_NONBLOCK SFD_NONBLOCK
>> -+  };
>> -+
>> - #else
>> - enum
>> -   {
>> ---
>> -1.7.0.4
>> -
>> diff --git
>> a/meta/recipes-core/uclibc/uclibc-0.9.32/detect-bx-availibility.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.32/detect-bx-availibility.patch
>> deleted file mode 100644
>> index 43d19fc..0000000
>> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/detect-bx-availibility.patch
>> +++ /dev/null
>> @@ -1,75 +0,0 @@
>> -Delivered-To: raj.khem@gmail.com
>> -Received: by 10.90.86.4 with SMTP id j4cs313307agb;
>> -        Sat, 8 Jan 2011 16:45:20 -0800 (PST)
>> -Received: by 10.227.141.78 with SMTP id
>> l14mr16920947wbu.128.1294533919168;
>> -        Sat, 08 Jan 2011 16:45:19 -0800 (PST)
>> -Return-Path:<yann.morin.1998@anciens.enib.fr>
>> -Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr
>> [80.12.242.123])
>> -        by mx.google.com with ESMTP id
>> w30si33755908wbd.17.2011.01.08.16.45.18;
>> -        Sat, 08 Jan 2011 16:45:19 -0800 (PST)
>> -Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted
nor
>> denied by best guess record for domain of yann.morin.1998@anciens.enib.fr
)
>> client-ip=80.12.242.123;
>> -Authentication-Results: mx.google.com; spf=neutral (google.com:
>> 80.12.242.123 is neither permitted nor denied by best guess record for
>> domain of yann.morin.1998@anciens.enib.fr)
>> smtp.mail=yann.morin.1998@anciens.enib.fr
>> -Received: from roazhon.bzh.lan ([90.32.245.227])
>> -       by mwinf5d24 with ME
>> -       id tClC1f0024v5z3u03ClHDo; Sun, 09 Jan 2011 01:45:18 +0100
>> -From: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
>> -To: uclibc@uclibc.org
>> -Cc: Khem Raj<raj.khem@gmail.com>,
>> -       Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>,
>> -       Carmelo AMOROSO<carmelo.amoroso@st.com>
>> -Subject: [PATCH 6/7] ARM: detect BX availibility at build time
>> -Date: Sun,  9 Jan 2011 01:45:09 +0100
>>
>> -Message-Id:<
1294533910-19305-7-git-send-email-yann.morin.1998@anciens.enib.fr>
>> -X-Mailer: git-send-email 1.7.1
>>
>> -In-Reply-To:<
1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
>>
>> -References:<
1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
>> -
>> -The "use BX" option is now a suggestion that BX be used if available.
>> -Use a macro to detect if BX is available at build time. If so, and
>> -the user requested it be used, then use it. Otherwise, error out.
>> -
>> -Macro courtesy Khem RAJ:
>> -  http://lists.uclibc.org/pipermail/uclibc/2009-April/042301.html
>> -
>> -Signed-off-by: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
>> -Cc: Khem Raj<raj.khem@gmail.com>
>> -Cc: Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>
>> -Cc: Carmelo AMOROSO<carmelo.amoroso@st.com>
>> ----
>> - extra/Configs/Config.arm              |    4 +++-
>> - libc/sysdeps/linux/arm/bits/arm_asm.h |    9 ++++++++-
>> - 2 files changed, 11 insertions(+), 2 deletions(-)
>> -
>> -diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm
>> -index 227b90c..9aa9e56 100644
>> ---- a/extra/Configs/Config.arm
>> -+++ b/extra/Configs/Config.arm
>> -@@ -33,4 +33,6 @@ config COMPILE_IN_THUMB_MODE
>> - config USE_BX
>> -       bool "Use BX in function return"
>> -       help
>> --        Use BX instruction for THUMB aware architectures.
>> -+        Say 'y' to use BX to return from functions on your thumb-aware
>> -+        processor. Say 'y' if you need to use interworking. Say 'n' if
>> not.
>> -+        It is safe to say 'y' even if you're not doing interworking.
>> -diff --git a/libc/sysdeps/linux/arm/bits/arm_asm.h
>> b/libc/sysdeps/linux/arm/bits/arm_asm.h
>> -index 1d87df6..921c9a3 100644
>> ---- a/libc/sysdeps/linux/arm/bits/arm_asm.h
>> -+++ b/libc/sysdeps/linux/arm/bits/arm_asm.h
>> -@@ -24,5 +24,12 @@
>> - #define THUMB1_ONLY 1
>> - #endif
>> -
>> --#endif /* _ARM_ASM_H */
>> -+#if defined(__USE_BX__)
>> -+# if (   defined (__ARM_ARCH_2__)  || defined (__ARM_ARCH_3__) \
>> -+      || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \
>> -+     )
>> -+#  error Use of BX was requested, but is not available on the target
>> processor.
>> -+# endif /* ARCH level */
>> -+#endif /* __USE_BX__ */
>> -
>> -+#endif /* _ARM_ASM_H */
>> ---
>> -1.7.1
>> -
>> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/epoll-asm-fix.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.32/epoll-asm-fix.patch
>> deleted file mode 100644
>> index bcd834d..0000000
>> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/epoll-asm-fix.patch
>> +++ /dev/null
>> @@ -1,25 +0,0 @@
>> -Fix a compile error due to last argument to syscall() not being memory
>> addressable.
>> -
>> -Upstream-Status: Pending
>> -Signed-off-by: Phil Blundell<philb@gnu.org>
>> -
>> -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-0.9.32/include-arm-asm.h.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.32/include-arm-asm.h.patch
>> deleted file mode 100644
>> index 55c312e..0000000
>> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/include-arm-asm.h.patch
>> +++ /dev/null
>> @@ -1,65 +0,0 @@
>> -Delivered-To: raj.khem@gmail.com
>> -Received: by 10.90.86.4 with SMTP id j4cs313304agb;
>> -        Sat, 8 Jan 2011 16:45:19 -0800 (PST)
>> -Received: by 10.227.155.75 with SMTP id
r11mr17188266wbw.3.1294533918432;
>> -        Sat, 08 Jan 2011 16:45:18 -0800 (PST)
>> -Return-Path:<yann.morin.1998@anciens.enib.fr>
>> -Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr
>> [80.12.242.123])
>> -        by mx.google.com with ESMTP id
>> k3si33753340wbx.29.2011.01.08.16.45.17;
>> -        Sat, 08 Jan 2011 16:45:18 -0800 (PST)
>> -Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted
nor
>> denied by best guess record for domain of yann.morin.1998@anciens.enib.fr
)
>> client-ip=80.12.242.123;
>> -Authentication-Results: mx.google.com; spf=neutral (google.com:
>> 80.12.242.123 is neither permitted nor denied by best guess record for
>> domain of yann.morin.1998@anciens.enib.fr)
>> smtp.mail=yann.morin.1998@anciens.enib.fr
>> -Received: from roazhon.bzh.lan ([90.32.245.227])
>> -       by mwinf5d24 with ME
>> -       id tClC1f0024v5z3u03ClHDf; Sun, 09 Jan 2011 01:45:17 +0100
>> -From: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
>> -To: uclibc@uclibc.org
>> -Cc: Khem Raj<raj.khem@gmail.com>,
>> -       Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>,
>> -       Carmelo AMOROSO<carmelo.amoroso@st.com>
>> -Subject: [PATCH 5/7] ARM: #include<bits/arm_asm.h>  where __USE_BX__ is
>> used
>> -Date: Sun,  9 Jan 2011 01:45:08 +0100
>>
>> -Message-Id:<
1294533910-19305-6-git-send-email-yann.morin.1998@anciens.enib.fr>
>> -X-Mailer: git-send-email 1.7.1
>>
>> -In-Reply-To:<
1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
>>
>> -References:<
1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
>> -
>> -The check for __USE_BX__ will be available in bits/arm_asm.h,
>> -so the latter must be included wherever the former is used.
>> -
>> -Signed-off-by: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
>> -Cc: Khem Raj<raj.khem@gmail.com>
>> -Cc: Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>
>> -Cc: Carmelo AMOROSO<carmelo.amoroso@st.com>
>> ----
>> - ldso/ldso/arm/dl-startup.h      |    1 +
>> - libc/sysdeps/linux/arm/sysdep.h |    1 +
>> - 2 files changed, 2 insertions(+), 0 deletions(-)
>> -
>> -diff --git a/ldso/ldso/arm/dl-startup.h b/ldso/ldso/arm/dl-startup.h
>> -index a95389d..2dfdaff 100644
>> ---- a/ldso/ldso/arm/dl-startup.h
>> -+++ b/ldso/ldso/arm/dl-startup.h
>> -@@ -7,6 +7,7 @@
>> -  */
>> -
>> - #include<features.h>
>> -+#include<bits/arm_asm.h>
>> -
>> - #if !defined(__thumb__)
>> - __asm__(
>> -diff --git a/libc/sysdeps/linux/arm/sysdep.h
>> b/libc/sysdeps/linux/arm/sysdep.h
>> -index 013f88c..e498695 100644
>> ---- a/libc/sysdeps/linux/arm/sysdep.h
>> -+++ b/libc/sysdeps/linux/arm/sysdep.h
>> -@@ -21,6 +21,7 @@
>> - #define _LINUX_ARM_SYSDEP_H 1
>> -
>> - #include<common/sysdep.h>
>> -+#include<bits/arm_asm.h>
>> -
>> - #include<sys/syscall.h>
>> - /* For Linux we can use the system call table in the header file
>> ---
>> -1.7.1
>> -
>> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/mount.h-update.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.32/mount.h-update.patch
>> deleted file mode 100644
>> index 3508e0e..0000000
>> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/mount.h-update.patch
>> +++ /dev/null
>> @@ -1,85 +0,0 @@
>> -Sync mount.h from glibc this is needed to get missing defines
>> -that some apps e.g. systemd are depending on
>> -
>> -Signed-off-by: Khem Raj<raj.khem@gmail.com>
>> -
>> -Upstream-Status: Pending
>> -
>> -Index: git/include/sys/mount.h
>> -===================================================================
>> ---- git.orig/include/sys/mount.h       2011-07-21 14:37:27.134255747
>> -0700
>> -+++ git/include/sys/mount.h    2011-07-21 14:39:53.844470932 -0700
>> -@@ -1,5 +1,5 @@
>> - /* Header file for mounting/unmount Linux filesystems.
>> --   Copyright (C) 1996,1997,1998,1999,2000,2004 Free Software
Foundation,
>> Inc.
>> -+   Copyright (C) 1996-2000, 2004, 2010 Free Software Foundation, Inc.
>> -    This file is part of the GNU C Library.
>> -
>> -    The GNU C Library is free software; you can redistribute it and/or
>> -@@ -47,23 +47,46 @@
>> - #define MS_REMOUNT    MS_REMOUNT
>> -   MS_MANDLOCK = 64,           /* Allow mandatory locks on an FS.  */
>> - #define MS_MANDLOCK   MS_MANDLOCK
>> --  S_WRITE = 128,              /* Write on file/directory/symlink.  */
>> --#define S_WRITE               S_WRITE
>> --  S_APPEND = 256,             /* Append-only file.  */
>> --#define S_APPEND      S_APPEND
>> --  S_IMMUTABLE = 512,          /* Immutable file.  */
>> --#define S_IMMUTABLE   S_IMMUTABLE
>> -+  MS_DIRSYNC = 128,           /* Directory modifications are
>> synchronous.  */
>> -+#define MS_DIRSYNC    MS_DIRSYNC
>> -   MS_NOATIME = 1024,          /* Do not update access times.  */
>> - #define MS_NOATIME    MS_NOATIME
>> -   MS_NODIRATIME = 2048,               /* Do not update directory access
>> times.  */
>> - #define MS_NODIRATIME MS_NODIRATIME
>> -   MS_BIND = 4096,             /* Bind directory at different place.  */
>> - #define MS_BIND               MS_BIND
>> -+  MS_MOVE = 8192,
>> -+#define MS_MOVE               MS_MOVE
>> -+  MS_REC = 16384,
>> -+#define MS_REC                MS_REC
>> -+  MS_SILENT = 32768,
>> -+#define MS_SILENT     MS_SILENT
>> -+  MS_POSIXACL = 1<<  16,      /* VFS does not apply the umask.  */
>> -+#define MS_POSIXACL   MS_POSIXACL
>> -+  MS_UNBINDABLE = 1<<  17,    /* Change to unbindable.  */
>> -+#define MS_UNBINDABLE MS_UNBINDABLE
>> -+  MS_PRIVATE = 1<<  18,               /* Change to private.  */
>> -+#define MS_PRIVATE    MS_PRIVATE
>> -+  MS_SLAVE = 1<<  19,         /* Change to slave.  */
>> -+#define MS_SLAVE      MS_SLAVE
>> -+  MS_SHARED = 1<<  20,                /* Change to shared.  */
>> -+#define MS_SHARED     MS_SHARED
>> -+  MS_RELATIME = 1<<  21,      /* Update atime relative to mtime/ctime.
>>  */
>> -+#define MS_RELATIME   MS_RELATIME
>> -+  MS_KERNMOUNT = 1<<  22,     /* This is a kern_mount call.  */
>> -+#define MS_KERNMOUNT  MS_KERNMOUNT
>> -+  MS_I_VERSION =  1<<  23,    /* Update inode I_version field.  */
>> -+#define MS_I_VERSION  MS_I_VERSION
>> -+  MS_STRICTATIME = 1<<  24,   /* Always perform atime updates.  */
>> -+#define MS_STRICTATIME        MS_STRICTATIME
>> -+  MS_ACTIVE = 1<<  30,
>> -+#define MS_ACTIVE     MS_ACTIVE
>> -+  MS_NOUSER = 1<<  31
>> -+#define MS_NOUSER     MS_NOUSER
>> - };
>> -
>> - /* Flags that can be altered by MS_REMOUNT  */
>> --#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_NOATIME \
>> --                   |MS_NODIRATIME)
>> -+#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION)
>> -
>> -
>> - /* Magic mount flag number. Has to be or-ed to the flag values.  */
>> -@@ -100,8 +123,10 @@
>> - #define MNT_FORCE MNT_FORCE
>> -   MNT_DETACH = 2,             /* Just detach from the tree.  */
>> - #define MNT_DETACH MNT_DETACH
>> --  MNT_EXPIRE = 4              /* Mark for expiry.  */
>> -+  MNT_EXPIRE = 4,             /* Mark for expiry.  */
>> - #define MNT_EXPIRE MNT_EXPIRE
>> -+  UMOUNT_NOFOLLOW = 8         /* Don't follow symlink on umount.  */
>> -+#define UMOUNT_NOFOLLOW UMOUNT_NOFOLLOW
>> - };
>> -
>> -
>> diff --git
>> a/meta/recipes-core/uclibc/uclibc-0.9.32/remove-eabi-oabi-selection.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.32/remove-eabi-oabi-selection.patch
>> deleted file mode 100644
>> index 8f3464e..0000000
>> ---
>> a/meta/recipes-core/uclibc/uclibc-0.9.32/remove-eabi-oabi-selection.patch
>> +++ /dev/null
>> @@ -1,91 +0,0 @@
>> -Delivered-To: raj.khem@gmail.com
>> -Received: by 10.90.86.4 with SMTP id j4cs313309agb;
>> -        Sat, 8 Jan 2011 16:45:20 -0800 (PST)
>> -Received: by 10.216.173.7 with SMTP id u7mr612034wel.50.1294533919433;
>> -        Sat, 08 Jan 2011 16:45:19 -0800 (PST)
>> -Return-Path:<yann.morin.1998@anciens.enib.fr>
>> -Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr
>> [80.12.242.123])
>> -        by mx.google.com with ESMTP id
>> e10si33752027wer.68.2011.01.08.16.45.19;
>> -        Sat, 08 Jan 2011 16:45:19 -0800 (PST)
>> -Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted
nor
>> denied by best guess record for domain of yann.morin.1998@anciens.enib.fr
)
>> client-ip=80.12.242.123;
>> -Authentication-Results: mx.google.com; spf=neutral (google.com:
>> 80.12.242.123 is neither permitted nor denied by best guess record for
>> domain of yann.morin.1998@anciens.enib.fr)
>> smtp.mail=yann.morin.1998@anciens.enib.fr
>> -Received: from roazhon.bzh.lan ([90.32.245.227])
>> -       by mwinf5d24 with ME
>> -       id tClC1f0024v5z3u03ClJDu; Sun, 09 Jan 2011 01:45:18 +0100
>> -From: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
>> -To: uclibc@uclibc.org
>> -Cc: Khem Raj<raj.khem@gmail.com>,
>> -       Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>,
>> -       Carmelo AMOROSO<carmelo.amoroso@st.com>
>> -Subject: [PATCH 7/7] ARM: remove EABI/OABI selection
>> -Date: Sun,  9 Jan 2011 01:45:10 +0100
>>
>> -Message-Id:<
1294533910-19305-8-git-send-email-yann.morin.1998@anciens.enib.fr>
>> -X-Mailer: git-send-email 1.7.1
>>
>> -In-Reply-To:<
1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
>>
>> -References:<
1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
>> -
>> -Rely on the compiler to be properly setup for the default ABI.
>> -
>> -When installing-headers, there are two cases:
>> -- NPTL: no issue, a cross-compiler is already expected
>> -- LinuxThreads: no issue, EABI/OABI has no impact on installed headers.
>> -
>> -Signed-off-by: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
>> -Cc: Khem Raj<raj.khem@gmail.com>
>> -Cc: Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>
>> -Cc: Carmelo AMOROSO<carmelo.amoroso@st.com>
>> ----
>> - extra/Configs/Config.arm               |   11 -----------
>> - libc/sysdeps/linux/arm/Makefile.arch   |    9 +++++++--
>> - libc/sysdeps/linux/arm/bits/huge_val.h |    4 ++--
>> - 3 files changed, 9 insertions(+), 15 deletions(-)
>> -
>> -Index: git/libc/sysdeps/linux/arm/Makefile.arch
>> -===================================================================
>> ---- git.orig/libc/sysdeps/linux/arm/Makefile.arch
>> -+++ git/libc/sysdeps/linux/arm/Makefile.arch
>> -@@ -24,7 +24,12 @@ ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
>> - CSRC += posix_fadvise.c posix_fadvise64.c
>> - endif
>> -
>> --ifeq ($(CONFIG_ARM_EABI),y)
>> -+# Is our compiler set up for EABI ?
>> -+IS_EABI:=$(shell $(CC) $(CFLAGS) -x c - -E -dM</dev/null 2>/dev/null \
>> -+                 |sed -r -e
>> '/^\#[[:space:]]*define[[:space:]]+__ARM_EABI__([[:space:]]+1)?$$/!d;
>> s/.+/y/;' \
>> -+          )
>> -+
>> -+ifeq ($(IS_EABI),y)
>> - CSRC += aeabi_assert.c aeabi_atexit.c aeabi_errno_addr.c \
>> -       aeabi_localeconv.c aeabi_memclr.c aeabi_memcpy.c \
>> -       aeabi_memmove.c aeabi_memset.c find_exidx.c
>> -@@ -37,7 +42,7 @@ else
>> - CSRC += syscall.c
>> - endif
>> -
>> --ifeq ($(CONFIG_ARM_EABI),y)
>> -+ifeq ($(IS_EABI),y)
>> - libc-static-y += $(ARCH_OUT)/aeabi_lcsts.o $(ARCH_OUT)/aeabi_math.o \
>> -       $(ARCH_OUT)/aeabi_sighandlers.o
>> - libc-nonshared-y += $(ARCH_OUT)/aeabi_lcsts.os
$(ARCH_OUT)/aeabi_math.os
>> \
>> -Index: git/libc/sysdeps/linux/arm/bits/huge_val.h
>> -===================================================================
>> ---- git.orig/libc/sysdeps/linux/arm/bits/huge_val.h
>> -+++ git/libc/sysdeps/linux/arm/bits/huge_val.h
>> -@@ -32,7 +32,7 @@
>> - # define HUGE_VAL (__extension__ 0x1.0p2047)
>> - #elif defined __GNUC__
>> -
>> --#ifndef __CONFIG_ARM_EABI__
>> -+#ifndef __ARM_EABI__
>> - # define HUGE_VAL \
>> -   (__extension__

>>    \
>> -    ((union { unsigned __l __attribute__((__mode__(__DI__))); double
__d;
>> })   \
>> -@@ -50,7 +50,7 @@
>> -
>> - typedef union { unsigned char __c[8]; double __d; } __huge_val_t;
>> -
>> --#ifndef __CONFIG_ARM_EABI__
>> -+#ifndef __ARM_EABI__
>> - # if __BYTE_ORDER == __BIG_ENDIAN
>> - #  define __HUGE_VAL_bytes    { 0, 0, 0, 0, 0x7f, 0xf0, 0, 0 }
>> - # endif
>> diff --git
>> a/meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch
>> deleted file mode 100644
>> index 920a669..0000000
>> ---
>> a/meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch
>> +++ /dev/null
>> @@ -1,215 +0,0 @@
>> -Delivered-To: raj.khem@gmail.com
>> -Received: by 10.90.86.4 with SMTP id j4cs313303agb;
>> -        Sat, 8 Jan 2011 16:45:18 -0800 (PST)
>> -Received: by 10.227.98.158 with SMTP id
>> q30mr1255804wbn.151.1294533917314;
>> -        Sat, 08 Jan 2011 16:45:17 -0800 (PST)
>> -Return-Path:<yann.morin.1998@anciens.enib.fr>
>> -Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr
>> [80.12.242.123])
>> -        by mx.google.com with ESMTP id
>> r3si33749838wbr.54.2011.01.08.16.45.16;
>> -        Sat, 08 Jan 2011 16:45:17 -0800 (PST)
>> -Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted
nor
>> denied by best guess record for domain of yann.morin.1998@anciens.enib.fr
)
>> client-ip=80.12.242.123;
>> -Authentication-Results: mx.google.com; spf=neutral (google.com:
>> 80.12.242.123 is neither permitted nor denied by best guess record for
>> domain of yann.morin.1998@anciens.enib.fr)
>> smtp.mail=yann.morin.1998@anciens.enib.fr
>> -Received: from roazhon.bzh.lan ([90.32.245.227])
>> -       by mwinf5d24 with ME
>> -       id tClC1f0024v5z3u03ClGDS; Sun, 09 Jan 2011 01:45:16 +0100
>> -From: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
>> -To: uclibc@uclibc.org
>> -Cc: Khem Raj<raj.khem@gmail.com>,
>> -       Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>,
>> -       Carmelo AMOROSO<carmelo.amoroso@st.com>
>> -Subject: [PATCH 3/7] ARM: remove sub-arch/variants selection from
>> menuconfig
>> -Date: Sun,  9 Jan 2011 01:45:06 +0100
>>
>> -Message-Id:<
1294533910-19305-4-git-send-email-yann.morin.1998@anciens.enib.fr>
>> -X-Mailer: git-send-email 1.7.1
>>
>> -In-Reply-To:<
1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
>>
>> -References:<
1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
>> -
>> -Rely on the compiler to be correctly set up to generate
>> -appropriate code for the target variant.
>> -
>> -This exposes the Thumb option, as it is no longer auto-selected.
>> -The "Use BX" no longer depends on supported CPU to be selected,
>> -so it now defaults to 'n' as it shall work by default on CPUs
>> -that do not have BX.
>> -
>> -Signed-off-by: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
>> -Cc: Khem Raj<raj.khem@gmail.com>
>> -Cc: Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>
>> -Cc: Carmelo AMOROSO<carmelo.amoroso@st.com>
>> ----
>> - Rules.mak                |   19 -------
>> - extra/Configs/Config.arm |  125
>> ++--------------------------------------------
>> - 2 files changed, 5 insertions(+), 139 deletions(-)
>> -
>> -diff --git a/Rules.mak b/Rules.mak
>> -index 2a16908..09741a6 100644
>> ---- a/Rules.mak
>> -+++ b/Rules.mak
>> -@@ -332,25 +332,6 @@ ifeq ($(TARGET_ARCH),arm)
>> -       OPTIMIZATION+=-fstrict-aliasing
>> -       CPU_CFLAGS-$(ARCH_LITTLE_ENDIAN)+=-mlittle-endian
>> -       CPU_CFLAGS-$(ARCH_BIG_ENDIAN)+=-mbig-endian
>> --      CPU_CFLAGS-$(CONFIG_GENERIC_ARM)+=
>> --      CPU_CFLAGS-$(CONFIG_ARM610)+=-mtune=arm610 -march=armv3
>> --      CPU_CFLAGS-$(CONFIG_ARM710)+=-mtune=arm710 -march=armv3
>> --      CPU_CFLAGS-$(CONFIG_ARM7TDMI)+=-mtune=arm7tdmi -march=armv4t
>> --      CPU_CFLAGS-$(CONFIG_ARM720T)+=-mtune=arm7tdmi -march=armv4t
>> --      CPU_CFLAGS-$(CONFIG_ARM920T)+=-mtune=arm9tdmi -march=armv4t
>> --      CPU_CFLAGS-$(CONFIG_ARM922T)+=-mtune=arm9tdmi -march=armv4t
>> --      CPU_CFLAGS-$(CONFIG_ARM926T)+=-mtune=arm9e -march=armv5te
>> --      CPU_CFLAGS-$(CONFIG_ARM10T)+=-mtune=arm10tdmi -march=armv5t
>> --      CPU_CFLAGS-$(CONFIG_ARM1136JF_S)+=-mtune=arm1136jf-s -march=armv6
>> --      CPU_CFLAGS-$(CONFIG_ARM1176JZ_S)+=-mtune=arm1176jz-s -march=armv6
>> --      CPU_CFLAGS-$(CONFIG_ARM1176JZF_S)+=-mtune=arm1176jzf-s
>> -march=armv6
>> --      CPU_CFLAGS-$(CONFIG_ARM_SA110)+=-mtune=strongarm110 -march=armv4
>> --      CPU_CFLAGS-$(CONFIG_ARM_SA1100)+=-mtune=strongarm1100
-march=armv4
>> --      CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=$(call
>> check_gcc,-mtune=xscale,-mtune=strongarm110)
>> --      CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=-march=armv5te -Wa,-mcpu=xscale
>> --      CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt
>> -mabi=iwmmxt
>> --      CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3
>> --      CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1
>> -       CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb
>> - endif
>> -
>> -diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm
>> -index c9c40d4..6c75a00 100644
>> ---- a/extra/Configs/Config.arm
>> -+++ b/extra/Configs/Config.arm
>> -@@ -30,129 +30,14 @@ config CONFIG_ARM_EABI
>> -
>> - endchoice
>> -
>> --choice
>> --      prompt "Target Processor Type"
>> --      default CONFIG_GENERIC_ARM
>> --      help
>> --        This is the processor type of your CPU. This information is
used
>> for
>> --        optimizing purposes.  To build a library that will run on all
>> ARMCPU
>> --        types (albeit not optimally fast), you can specify "Generic
Arm"
>> here.
>> --        If you pick anything other than "Generic Arm", there is no
>> guarantee
>> --        that uClibc will even run on anything other than the selected
>> --        processor type.
>> --
>> --        Here are the settings recommended for greatest speed:
>> --        - "Generic Arm" select this if your compiler is already setup
to
>> --          optimize things properly, or if you want to run on pretty
much
>> --          everything, or you just don't much care.
>> --        - For anything else, pick the ARM core type that best matches
>> the
>> --          cpu you will be using on your device.
>> --
>> --        If you don't know what to do, choose "Generic Arm".
>> --
>> --config CONFIG_GENERIC_ARM
>> --      bool "Generic Arm"
>> --
>> --config CONFIG_ARM610
>> --      bool "Arm 610"
>> --      select ARCH_HAS_MMU
>> --
>> --config CONFIG_ARM710
>> --      bool "Arm 710"
>> --      select ARCH_HAS_MMU
>> --
>> --config CONFIG_ARM7TDMI
>> --      bool "Arm 7TDMI"
>> --      select ARCH_HAS_NO_MMU
>> --      select HAS_THUMB
>> --
>> --config CONFIG_ARM720T
>> --      bool "Arm 720T"
>> --      select ARCH_HAS_MMU
>> --      select HAS_THUMB
>> --
>> --config CONFIG_ARM920T
>> --      bool "Arm 920T"
>> --      select ARCH_HAS_MMU
>> --      select HAS_THUMB
>> --
>> --config CONFIG_ARM922T
>> --      bool "Arm 922T"
>> --      select ARCH_HAS_MMU
>> --      select HAS_THUMB
>> --
>> --config CONFIG_ARM926T
>> --      bool "Arm 926T"
>> --      select ARCH_HAS_MMU
>> --      select HAS_THUMB
>> --
>> --config CONFIG_ARM10T
>> --      bool "Arm 10T"
>> --      select ARCH_HAS_MMU
>> --      select HAS_THUMB
>> --
>> --config CONFIG_ARM1136JF_S
>> --      bool "Arm 1136JF-S"
>> --      select ARCH_HAS_MMU
>> --      select HAS_THUMB
>> --
>> --config CONFIG_ARM1176JZ_S
>> --      bool "Arm 1176JZ-S"
>> --      select ARCH_HAS_MMU
>> --      select HAS_THUMB
>> --
>> --config CONFIG_ARM1176JZF_S
>> --      bool "Arm 1176JZF-S"
>> --      select ARCH_HAS_MMU
>> --      select HAS_THUMB
>> --
>> --config CONFIG_ARM_CORTEX_M3
>> --      bool "Arm Cortex-M3"
>> --      select ARCH_HAS_NO_MMU
>> --      select FORCE_THUMB
>> --
>> --config CONFIG_ARM_CORTEX_M1
>> --      bool "Arm Cortex-M1"
>> --      select ARCH_HAS_NO_MMU
>> --      select FORCE_THUMB
>> --
>> --config CONFIG_ARM_SA110
>> --      bool "Intel StrongArm SA-110"
>> --      select ARCH_HAS_MMU
>> --      select HAS_THUMB
>> --
>> --config CONFIG_ARM_SA1100
>> --      bool "Intel StrongArm SA-1100"
>> --      select ARCH_HAS_MMU
>> --      select HAS_THUMB
>> --
>> --config CONFIG_ARM_XSCALE
>> --      bool "Intel Xscale"
>> --      select ARCH_HAS_MMU
>> --      select HAS_THUMB
>> --
>> --config CONFIG_ARM_IWMMXT
>> --      bool "Intel Xscale With WMMX PXA27x"
>> --      select ARCH_HAS_MMU
>> --      select HAS_THUMB
>> --
>> --endchoice
>> --
>> --config HAS_THUMB
>> --      bool
>> --
>> --config FORCE_THUMB
>> --      bool
>> --      select HAS_THUMB
>> --      select COMPILE_IN_THUMB_MODE
>> --      select USE_BX
>> --
>> - config COMPILE_IN_THUMB_MODE
>> --      bool
>> -+      bool "Build using Thumb mode"
>> -+      select USE_BX
>> -+      help
>> -+        Say 'y' here to force building uClibc in thumb mode.
>> -+        Say 'n' to use your compiler's default mode.
>> -
>> - config USE_BX
>> -       bool "Use BX in function return"
>> --      default y
>> --      depends on HAS_THUMB
>> -       help
>> -         Use BX instruction for THUMB aware architectures.
>> ---
>> -1.7.1
>> -
>> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/rtld_no.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.32/rtld_no.patch
>> deleted file mode 100644
>> index 30cb7f6..0000000
>> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/rtld_no.patch
>> +++ /dev/null
>> @@ -1,215 +0,0 @@
>> -Patch is backported from
>> -http://lists.busybox.net/pipermail/uclibc/2011-March/045004.html
>> -
>> -Upstream-Status: Pending
>> -
>> -diff --git a/ldso/include/dl-elf.h b/ldso/include/dl-elf.h
>> -index 7fbb373..7102351 100644
>> ---- a/ldso/include/dl-elf.h
>> -+++ b/ldso/include/dl-elf.h
>> -@@ -25,16 +25,18 @@ static __inline__ void _dl_map_cache(void) { }
>> - static __inline__ void _dl_unmap_cache(void) { }
>> - #endif
>> -
>> -+#define DL_RESOLVE_SECURE             0x0001
>> -+#define DL_RESOLVE_NOLOAD             0x0002
>> -
>> - /* Function prototypes for non-static stuff in readelflib1.c */
>> - extern void _dl_parse_lazy_relocation_information(struct dyn_elf *rpnt,
>> -       unsigned long rel_addr, unsigned long rel_size);
>> - extern int _dl_parse_relocation_information(struct dyn_elf *rpnt,
>> -       unsigned long rel_addr, unsigned long rel_size);
>> --extern struct elf_resolve * _dl_load_shared_library(int secure,
>> -+extern struct elf_resolve * _dl_load_shared_library(int resolve_flags,
>> -       struct dyn_elf **rpnt, struct elf_resolve *tpnt, char
>> *full_libname,
>> -       int trace_loaded_objects);
>> --extern struct elf_resolve * _dl_load_elf_shared_library(int secure,
>> -+extern struct elf_resolve * _dl_load_elf_shared_library(int
>> resolve_flags,
>> -       struct dyn_elf **rpnt, char *libname);
>> - extern struct elf_resolve *_dl_check_if_named_library_is_loaded(const
>> char *full_libname,
>> -       int trace_loaded_objects);
>> -diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c
>> -index 2b2d429..6d35bf2 100644
>> ---- a/ldso/ldso/dl-elf.c
>> -+++ b/ldso/ldso/dl-elf.c
>> -@@ -132,7 +132,7 @@ _dl_protect_relro (struct elf_resolve *l)
>> - /* This function's behavior must exactly match that
>> -  * in uClibc/ldso/util/ldd.c */
>> - static struct elf_resolve *
>> --search_for_named_library(const char *name, int secure, const char
>> *path_list,
>> -+search_for_named_library(const char *name, int resolve_flags, const
char
>> *path_list,
>> -       struct dyn_elf **rpnt, const char *origin)
>> - {
>> -       char *mylibname;
>> -@@ -162,7 +162,7 @@ search_for_named_library(const char *name, int
>> secure, const char *path_list,
>> -
>> -               if (plen>= 7&&  _dl_memcmp(p, "$ORIGIN", 7) == 0) {
>> -                       int olen;
>> --                      if (secure&&  plen != 7)
>> -+                      if ((resolve_flags&  DL_RESOLVE_SECURE)&&  plen
!=
>> 7)
>> -                               continue;
>> -                       if (origin == NULL)
>> -                               continue;
>> -@@ -182,7 +182,7 @@ search_for_named_library(const char *name, int
>> secure, const char *path_list,
>> -               _dl_strcat(mylibname, "/");
>> -               _dl_strcat(mylibname, name);
>> -
>> --              tpnt = _dl_load_elf_shared_library(secure, rpnt,
>> mylibname);
>> -+              tpnt = _dl_load_elf_shared_library(resolve_flags, rpnt,
>> mylibname);
>> -               if (tpnt != NULL)
>> -                       return tpnt;
>> -       }
>> -@@ -194,7 +194,7 @@ search_for_named_library(const char *name, int
>> secure, const char *path_list,
>> - unsigned long _dl_error_number;
>> - unsigned long _dl_internal_error_number;
>> -
>> --struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf
>> **rpnt,
>> -+struct elf_resolve *_dl_load_shared_library(int resolve_flags, struct
>> dyn_elf **rpnt,
>> -       struct elf_resolve *tpnt, char *full_libname, int
attribute_unused
>> trace_loaded_objects)
>> - {
>> -       char *pnt;
>> -@@ -223,7 +223,7 @@ struct elf_resolve *_dl_load_shared_library(int
>> secure, struct dyn_elf **rpnt,
>> -
>> -       if (libname != full_libname) {
>> -               _dl_if_debug_dprint("\ttrying file='%s'\n",
full_libname);
>> --              tpnt1 = _dl_load_elf_shared_library(secure, rpnt,
>> full_libname);
>> -+              tpnt1 = _dl_load_elf_shared_library(resolve_flags, rpnt,
>> full_libname);
>> -               if (tpnt1) {
>> -                       return tpnt1;
>> -               }
>> -@@ -238,7 +238,7 @@ struct elf_resolve *_dl_load_shared_library(int
>> secure, struct dyn_elf **rpnt,
>> -       if (pnt) {
>> -               pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
>> -               _dl_if_debug_dprint("\tsearching RPATH='%s'\n", pnt);
>> --              if ((tpnt1 = search_for_named_library(libname, secure,
>> pnt, rpnt,
>> -+              if ((tpnt1 = search_for_named_library(libname,
>> resolve_flags, pnt, rpnt,
>> -                                                     tpnt->libname)) !=
>> NULL)
>> -                       return tpnt1;
>> -       }
>> -@@ -247,7 +247,7 @@ struct elf_resolve *_dl_load_shared_library(int
>> secure, struct dyn_elf **rpnt,
>> -       /* Check in LD_{ELF_}LIBRARY_PATH, if specified and allowed */
>> -       if (_dl_library_path) {
>> -               _dl_if_debug_dprint("\tsearching LD_LIBRARY_PATH='%s'\n",
>> _dl_library_path);
>> --              if ((tpnt1 = search_for_named_library(libname, secure,
>> _dl_library_path, rpnt, NULL)) != NULL)
>> -+              if ((tpnt1 = search_for_named_library(libname,
>> resolve_flags, _dl_library_path, rpnt, NULL)) != NULL)
>> -               {
>> -                       return tpnt1;
>> -               }
>> -@@ -261,7 +261,7 @@ struct elf_resolve *_dl_load_shared_library(int
>> secure, struct dyn_elf **rpnt,
>> -       if (pnt) {
>> -               pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
>> -               _dl_if_debug_dprint("\tsearching RUNPATH='%s'\n", pnt);
>> --              if ((tpnt1 = search_for_named_library(libname, secure,
>> pnt, rpnt, NULL)) != NULL)
>> -+              if ((tpnt1 = search_for_named_library(libname,
>> resolve_flags, pnt, rpnt, NULL)) != NULL)
>> -                       return tpnt1;
>> -       }
>> - #endif
>> -@@ -284,7 +284,7 @@ struct elf_resolve *_dl_load_shared_library(int
>> secure, struct dyn_elf **rpnt,
>> -                            || libent[i].flags == LIB_ELF_LIBC0
>> -                            || libent[i].flags == LIB_ELF_LIBC5)
>> -                       &&  _dl_strcmp(libname, strs +
libent[i].sooffset)
>> == 0
>> --                      &&  (tpnt1 = _dl_load_elf_shared_library(secure,
>> rpnt, strs + libent[i].liboffset))
>> -+                      &&  (tpnt1 =
>> _dl_load_elf_shared_library(resolve_flags, rpnt, strs +
>> libent[i].liboffset))
>> -                       ) {
>> -                               return tpnt1;
>> -                       }
>> -@@ -295,14 +295,14 @@ struct elf_resolve *_dl_load_shared_library(int
>> secure, struct dyn_elf **rpnt,
>> -       /* Look for libraries wherever the shared library loader
>> -        * was installed */
>> -       _dl_if_debug_dprint("\tsearching ldso dir='%s'\n", _dl_ldsopath);
>> --      tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath,
>> rpnt, NULL);
>> -+      tpnt1 = search_for_named_library(libname, resolve_flags,
>> _dl_ldsopath, rpnt, NULL);
>> -       if (tpnt1 != NULL)
>> -               return tpnt1;
>> -
>> -       /* Lastly, search the standard list of paths for the library.
>> -          This list must exactly match the list in
uClibc/ldso/util/ldd.c
>> */
>> -       _dl_if_debug_dprint("\tsearching full lib path list\n");
>> --      tpnt1 = search_for_named_library(libname, secure,
>> -+      tpnt1 = search_for_named_library(libname, resolve_flags,
>> -                                       UCLIBC_RUNTIME_PREFIX "lib:"
>> -                                       UCLIBC_RUNTIME_PREFIX "usr/lib"
>> - #ifndef __LDSO_CACHE_SUPPORT__
>> -@@ -329,7 +329,7 @@ goof:
>> -  * are required.
>> -  */
>> -
>> --struct elf_resolve *_dl_load_elf_shared_library(int secure,
>> -+struct elf_resolve *_dl_load_elf_shared_library(int resolve_flags,
>> -       struct dyn_elf **rpnt, char *libname)
>> - {
>> -       ElfW(Ehdr) *epnt;
>> -@@ -368,7 +368,7 @@ struct elf_resolve *_dl_load_elf_shared_library(int
>> secure,
>> -       }
>> -       /* If we are in secure mode (i.e. a setu/gid binary using
>> LD_PRELOAD),
>> -          we don't load the library if it isn't setuid. */
>> --      if (secure) {
>> -+      if (resolve_flags&  DL_RESOLVE_SECURE) {
>> -               if (!(st.st_mode&  S_ISUID)) {
>> -                       _dl_close(infile);
>> -                       return NULL;
>> -@@ -384,6 +384,10 @@ struct elf_resolve *_dl_load_elf_shared_library(int
>> secure,
>> -                       return tpnt;
>> -               }
>> -       }
>> -+      if (resolve_flags&  DL_RESOLVE_NOLOAD) {
>> -+              _dl_close(infile);
>> -+              return NULL;
>> -+      }
>> -       header = _dl_mmap((void *) 0, _dl_pagesize, PROT_READ |
>> PROT_WRITE,
>> -                       MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZE,
>> -1, 0);
>> -       if (_dl_mmap_check_error(header)) {
>> -diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c
>> -index 9423670..b71af34 100644
>> ---- a/ldso/ldso/ldso.c
>> -+++ b/ldso/ldso/ldso.c
>> -@@ -646,7 +646,9 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt,
>> DL_LOADADDR_TYPE load_addr,
>> -                       if (!_dl_secure || _dl_strchr(str, '/') == NULL)
{
>> -                               _dl_if_debug_dprint("\tfile='%s';  needed
>> by '%s'\n", str, _dl_progname);
>> -
>> --                              tpnt1 =
>> _dl_load_shared_library(_dl_secure,&rpnt, NULL, str,
trace_loaded_objects);
>> -+                              tpnt1 = _dl_load_shared_library(
>> -+                                      _dl_secure ? DL_RESOLVE_SECURE :
>> 0,
>> -+                                      &rpnt, NULL, str,
>> trace_loaded_objects);
>> -                               if (!tpnt1) {
>> - #ifdef __LDSO_LDD_SUPPORT__
>> -                                       if (trace_loaded_objects)
>> -diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c
>> -index 68cd579..edf38d2 100644
>> ---- a/ldso/libdl/libdl.c
>> -+++ b/ldso/libdl/libdl.c
>> -@@ -288,7 +288,7 @@ void *dlopen(const char *libname, int flag)
>> - #endif
>> -
>> -       /* A bit of sanity checking... */
>> --      if (!(flag&  (RTLD_LAZY|RTLD_NOW))) {
>> -+      if (!(flag&  (RTLD_LAZY|RTLD_NOW|RTLD_NOLOAD))) {
>> -               _dl_error_number = LD_BAD_HANDLE;
>> -               return NULL;
>> -       }
>> -@@ -358,8 +358,9 @@ void *dlopen(const char *libname, int flag)
>> -       /* Try to load the specified library */
>> -       _dl_if_debug_print("Trying to dlopen '%s', RTLD_GLOBAL:%d
>> RTLD_NOW:%d\n",
>> -                       (char*)libname, (flag&  RTLD_GLOBAL ? 1:0),
>> (now_flag&  RTLD_NOW ? 1:0));
>> --      tpnt = _dl_load_shared_library(0,&rpnt, tfrom, (char*)libname,
0);
>> -
>> -+      tpnt = _dl_load_shared_library((flag&  RTLD_NOLOAD) ?
>> DL_RESOLVE_NOLOAD : 0,
>> -+                                      &rpnt, tfrom, (char*)libname, 0);
>> -       if (tpnt == NULL) {
>> -               _dl_unmap_cache();
>> -               return NULL;
>> -diff --git a/libc/sysdeps/linux/common/bits/dlfcn.h
>> b/libc/sysdeps/linux/common/bits/dlfcn.h
>> -index 4bfbbff..47b42ad 100644
>> ---- a/libc/sysdeps/linux/common/bits/dlfcn.h
>> -+++ b/libc/sysdeps/linux/common/bits/dlfcn.h
>> -@@ -24,9 +24,9 @@
>> - /* The MODE argument to `dlopen' contains one of the following: */
>> - #define RTLD_LAZY     0x00001 /* Lazy function call binding.  */
>> - #define RTLD_NOW      0x00002 /* Immediate function call binding.  */
>> --#if 0 /* uClibc doesnt support these */
>> --#define       RTLD_BINDING_MASK   0x3 /* Mask of binding time value.
 */
>> -+#define RTLD_BINDING_MASK   0x3       /* Mask of binding time value.
 */
>> - #define RTLD_NOLOAD   0x00004 /* Do not load the object.  */
>> -+#if 0 /* uClibc doesnt support these */
>> - #define RTLD_DEEPBIND 0x00008 /* Use deep binding.  */
>> - #endif
>> diff --git
>> a/meta/recipes-core/uclibc/uclibc-0.9.32/select-force-thumb.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.32/select-force-thumb.patch
>> deleted file mode 100644
>> index b19408f..0000000
>> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/select-force-thumb.patch
>> +++ /dev/null
>> @@ -1,172 +0,0 @@
>> -Delivered-To: raj.khem@gmail.com
>> -Received: by 10.90.86.4 with SMTP id j4cs313301agb;
>> -        Sat, 8 Jan 2011 16:45:17 -0800 (PST)
>> -Received: by 10.216.186.82 with SMTP id
>> v60mr20017574wem.56.1294533916559;
>> -        Sat, 08 Jan 2011 16:45:16 -0800 (PST)
>> -Return-Path:<yann.morin.1998@anciens.enib.fr>
>> -Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr
>> [80.12.242.123])
>> -        by mx.google.com with ESMTP id
>> o13si33755824wee.56.2011.01.08.16.45.16;
>> -        Sat, 08 Jan 2011 16:45:16 -0800 (PST)
>> -Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted
nor
>> denied by best guess record for domain of yann.morin.1998@anciens.enib.fr
)
>> client-ip=80.12.242.123;
>> -Authentication-Results: mx.google.com; spf=neutral (google.com:
>> 80.12.242.123 is neither permitted nor denied by best guess record for
>> domain of yann.morin.1998@anciens.enib.fr)
>> smtp.mail=yann.morin.1998@anciens.enib.fr
>> -Received: from roazhon.bzh.lan ([90.32.245.227])
>> -       by mwinf5d24 with ME
>> -       id tClC1f0024v5z3u03ClFDL; Sun, 09 Jan 2011 01:45:16 +0100
>> -From: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
>> -To: uclibc@uclibc.org
>> -Cc: Khem Raj<raj.khem@gmail.com>,
>> -       Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>,
>> -       Carmelo AMOROSO<carmelo.amoroso@st.com>
>> -Subject: [PATCH 2/7] ARM: introduce blind options to select&  force
THUMB
>> mode
>> -Date: Sun,  9 Jan 2011 01:45:05 +0100
>>
>> -Message-Id:<
1294533910-19305-3-git-send-email-yann.morin.1998@anciens.enib.fr>
>> -X-Mailer: git-send-email 1.7.1
>>
>> -In-Reply-To:<
1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
>>
>> -References:<
1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
>> -
>> -Add three new blind options to set use of Thumb mode:
>> -- COMPILE_IN_THUMB_MODE
>> -  - if set, CFLAGS will contain -mthumb
>> -  - if unset, the compiler's default is used
>> -- HAS_THUMB
>> -  - CPUS with Thumb instruction set can select this
>> -  - use of BX depends on this
>> -- FORCE_THUMB
>> -  - CPUs that are Thumb-only must select this
>> -  - this selects: HAS_THUMB, COMPILE_IN_THUMB_MODE and USE_BX
>> -
>> -Also, remove leading space in Rules.mak.
>> -
>> -Signed-off-by: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
>> -Cc: Khem Raj<raj.khem@gmail.com>
>> -Cc: Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>
>> -Cc: Carmelo AMOROSO<carmelo.amoroso@st.com>
>> ----
>> - Rules.mak                |    7 ++++---
>> - extra/Configs/Config.arm |   31 ++++++++++++++++++++++++++++---
>> - 2 files changed, 32 insertions(+), 6 deletions(-)
>> -
>> -diff --git a/Rules.mak b/Rules.mak
>> -index eecdc64..2a16908 100644
>> ---- a/Rules.mak
>> -+++ b/Rules.mak
>> -@@ -348,9 +348,10 @@ ifeq ($(TARGET_ARCH),arm)
>> -       CPU_CFLAGS-$(CONFIG_ARM_SA1100)+=-mtune=strongarm1100
-march=armv4
>> -       CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=$(call
>> check_gcc,-mtune=xscale,-mtune=strongarm110)
>> -       CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=-march=armv5te -Wa,-mcpu=xscale
>> --      CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt
>> -mabi=iwmmxt
>> --      CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3 -mthumb
>> --      CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1 -mthumb
>> -+      CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt
>> -mabi=iwmmxt
>> -+      CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3
>> -+      CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1
>> -+      CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb
>> - endif
>> -
>> - ifeq ($(TARGET_ARCH),mips)
>> -diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm
>> -index 3b90e67..c9c40d4 100644
>> ---- a/extra/Configs/Config.arm
>> -+++ b/extra/Configs/Config.arm
>> -@@ -64,70 +64,95 @@ config CONFIG_ARM710
>> - config CONFIG_ARM7TDMI
>> -       bool "Arm 7TDMI"
>> -       select ARCH_HAS_NO_MMU
>> -+      select HAS_THUMB
>> -
>> - config CONFIG_ARM720T
>> -       bool "Arm 720T"
>> -       select ARCH_HAS_MMU
>> -+      select HAS_THUMB
>> -
>> - config CONFIG_ARM920T
>> -       bool "Arm 920T"
>> -       select ARCH_HAS_MMU
>> -+      select HAS_THUMB
>> -
>> - config CONFIG_ARM922T
>> -       bool "Arm 922T"
>> -       select ARCH_HAS_MMU
>> -+      select HAS_THUMB
>> -
>> - config CONFIG_ARM926T
>> -       bool "Arm 926T"
>> -       select ARCH_HAS_MMU
>> -+      select HAS_THUMB
>> -
>> - config CONFIG_ARM10T
>> -       bool "Arm 10T"
>> -       select ARCH_HAS_MMU
>> -+      select HAS_THUMB
>> -
>> - config CONFIG_ARM1136JF_S
>> -       bool "Arm 1136JF-S"
>> -       select ARCH_HAS_MMU
>> -+      select HAS_THUMB
>> -
>> - config CONFIG_ARM1176JZ_S
>> -       bool "Arm 1176JZ-S"
>> -       select ARCH_HAS_MMU
>> -+      select HAS_THUMB
>> -
>> - config CONFIG_ARM1176JZF_S
>> -       bool "Arm 1176JZF-S"
>> -       select ARCH_HAS_MMU
>> -+      select HAS_THUMB
>> -
>> - config CONFIG_ARM_CORTEX_M3
>> -       bool "Arm Cortex-M3"
>> -       select ARCH_HAS_NO_MMU
>> --      select USE_BX
>> -+      select FORCE_THUMB
>> -
>> - config CONFIG_ARM_CORTEX_M1
>> -       bool "Arm Cortex-M1"
>> -       select ARCH_HAS_NO_MMU
>> --      select USE_BX
>> -+      select FORCE_THUMB
>> -
>> - config CONFIG_ARM_SA110
>> -       bool "Intel StrongArm SA-110"
>> -       select ARCH_HAS_MMU
>> -+      select HAS_THUMB
>> -
>> - config CONFIG_ARM_SA1100
>> -       bool "Intel StrongArm SA-1100"
>> -       select ARCH_HAS_MMU
>> -+      select HAS_THUMB
>> -
>> - config CONFIG_ARM_XSCALE
>> -       bool "Intel Xscale"
>> -       select ARCH_HAS_MMU
>> -+      select HAS_THUMB
>> -
>> - config CONFIG_ARM_IWMMXT
>> -       bool "Intel Xscale With WMMX PXA27x"
>> -       select ARCH_HAS_MMU
>> -+      select HAS_THUMB
>> -
>> - endchoice
>> -
>> -+config HAS_THUMB
>> -+      bool
>> -+
>> -+config FORCE_THUMB
>> -+      bool
>> -+      select HAS_THUMB
>> -+      select COMPILE_IN_THUMB_MODE
>> -+      select USE_BX
>> -+
>> -+config COMPILE_IN_THUMB_MODE
>> -+      bool
>> -+
>> - config USE_BX
>> -       bool "Use BX in function return"
>> -       default y
>> --      depends on !CONFIG_GENERIC_ARM&&  !CONFIG_ARM610&&
 !CONFIG_ARM710
>> -+      depends on HAS_THUMB
>> -       help
>> -         Use BX instruction for THUMB aware architectures.
>> ---
>> -1.7.1
>> -
>> diff --git
a/meta/recipes-core/uclibc/uclibc-0.9.32/sync_file_range2.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.32/sync_file_range2.patch
>> deleted file mode 100644
>> index 4b85a43..0000000
>> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/sync_file_range2.patch
>> +++ /dev/null
>> @@ -1,47 +0,0 @@
>> -Some architectures like ppc, arm use aligned 64 bit inputs so a register
>> is not wasted
>> -this then uses __NR_sync_file_range2 syscall. Implement is
>> -
>> -Singed-off-by: Khem Raj<raj.khem@gmail.com>
>> -
>> -Upstream-Status: Pending
>> -
>> -Index: git/libc/sysdeps/linux/common/sync_file_range.c
>> -===================================================================
>> ---- git.orig/libc/sysdeps/linux/common/sync_file_range.c
2011-07-19
>> 14:23:35.000000000 -0700
>> -+++ git/libc/sysdeps/linux/common/sync_file_range.c    2011-07-19
>> 15:04:38.631808666 -0700
>> -@@ -11,7 +11,8 @@
>> - #if defined __USE_GNU
>> - #include<fcntl.h>
>> -
>> --#if defined __NR_sync_file_range&&  defined __UCLIBC_HAS_LFS__
>> -+#if defined __UCLIBC_HAS_LFS__
>> -+#if defined __NR_sync_file_range
>> - #define __NR___syscall_sync_file_range __NR_sync_file_range
>> - static __inline__ _syscall6(int, __syscall_sync_file_range, int, fd,
>> -               off_t, offset_hi, off_t, offset_lo,
>> -@@ -23,5 +24,23 @@
>> -               __LONG_LONG_PAIR((long)(nbytes>>  32), (long)(nbytes&
>>  0xffffffff)),
>> -               flags);
>> - }
>> --#endif
>> --#endif
>> -+#elif defined __NR_sync_file_range2
>> -+#define __NR___syscall_sync_file_range2 __NR_sync_file_range2
>> -+static __inline__ _syscall6(int, __syscall_sync_file_range2, int, fd,
>> -+              unsigned int, flags, off_t, offset_hi, off_t, offset_lo,
>> -+              off_t, nbytes_hi, off_t, nbytes_lo)
>> -+int sync_file_range(int fd, off64_t offset, off64_t nbytes, unsigned
int
>> flags)
>> -+{
>> -+      return __syscall_sync_file_range2(fd, flags,
>> -+              __LONG_LONG_PAIR((long)(offset>>  32), (long)(offset&
>>  0xffffffff)),
>> -+              __LONG_LONG_PAIR((long)(nbytes>>  32), (long)(nbytes&
>>  0xffffffff)));
>> -+}
>> -+#else
>> -+int sync_file_range(int fd, off64_t offset, off64_t nbytes, unsigned
int
>> flags)
>> -+{
>> -+      __set_errno (ENOSYS);
>> -+      return -1
>> -+}
>> -+#endif /* __NR_sync_file_range */
>> -+#endif /* __UCLIBC_HAS_LFS__ */
>> -+#endif /* __USE_GNU */
>> diff --git
>> a/meta/recipes-core/uclibc/uclibc-0.9.32/transform-eabi-oabi-choice.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.32/transform-eabi-oabi-choice.patch
>> deleted file mode 100644
>> index 82970ca..0000000
>> ---
>> a/meta/recipes-core/uclibc/uclibc-0.9.32/transform-eabi-oabi-choice.patch
>> +++ /dev/null
>> @@ -1,71 +0,0 @@
>> -Delivered-To: raj.khem@gmail.com
>> -Received: by 10.90.86.4 with SMTP id j4cs313305agb;
>> -        Sat, 8 Jan 2011 16:45:19 -0800 (PST)
>> -Received: by 10.216.153.210 with SMTP id
>> f60mr573848wek.114.1294533918335;
>> -        Sat, 08 Jan 2011 16:45:18 -0800 (PST)
>> -Return-Path:<yann.morin.1998@anciens.enib.fr>
>> -Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr
>> [80.12.242.123])
>> -        by mx.google.com with ESMTP id
>> n4si33737071wej.152.2011.01.08.16.45.17;
>> -        Sat, 08 Jan 2011 16:45:18 -0800 (PST)
>> -Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted
nor
>> denied by best guess record for domain of yann.morin.1998@anciens.enib.fr
)
>> client-ip=80.12.242.123;
>> -Authentication-Results: mx.google.com; spf=neutral (google.com:
>> 80.12.242.123 is neither permitted nor denied by best guess record for
>> domain of yann.morin.1998@anciens.enib.fr)
>> smtp.mail=yann.morin.1998@anciens.enib.fr
>> -Received: from roazhon.bzh.lan ([90.32.245.227])
>> -       by mwinf5d24 with ME
>> -       id tClC1f0024v5z3u03ClGDX; Sun, 09 Jan 2011 01:45:17 +0100
>> -From: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
>> -To: uclibc@uclibc.org
>> -Cc: Khem Raj<raj.khem@gmail.com>,
>> -       Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>,
>> -       Carmelo AMOROSO<carmelo.amoroso@st.com>
>> -Subject: [PATCH 4/7] ARM: transform the EABI/OABI choice into a boolean
>> -Date: Sun,  9 Jan 2011 01:45:07 +0100
>>
>> -Message-Id:<
1294533910-19305-5-git-send-email-yann.morin.1998@anciens.enib.fr>
>> -X-Mailer: git-send-email 1.7.1
>>
>> -In-Reply-To:<
1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
>>
>> -References:<
1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
>> -
>> -The CONFIG_ARM_OABI option is never used.
>> -
>> -Signed-off-by: "Yann E. MORIN"<yann.morin.1998@anciens.enib.fr>
>> -Cc: Khem Raj<raj.khem@gmail.com>
>> -Cc: Bernhard Reutner-Fischer<rep.dot.nop@gmail.com>
>> -Cc: Carmelo AMOROSO<carmelo.amoroso@st.com>
>> ----
>> - extra/Configs/Config.arm |   23 ++++++++---------------
>> - 1 files changed, 8 insertions(+), 15 deletions(-)
>> -
>> -Index: git/extra/Configs/Config.arm
>> -===================================================================
>> ---- git.orig/extra/Configs/Config.arm
>> -+++ git/extra/Configs/Config.arm
>> -@@ -12,23 +12,16 @@ config FORCE_OPTIONS_FOR_ARCH
>> -       default y
>> -       select ARCH_ANY_ENDIAN
>> -
>> --choice
>> --      prompt "Target ABI"
>> --      default CONFIG_ARM_EABI
>> -+config CONFIG_ARM_EABI
>> -+      bool "Build for EABI"
>> -       help
>> --        If you choose "EABI" here, functions and constants required by
>> the
>> --        ARM EABI will be built into the library.  You should choose
>> "EABI"
>> -+        If you say 'y' here, functions and constants required by the
>> -+        ARM EABI will be built into the library.  You should say 'y'
>> -         if your compiler uses the ARM EABI, in which case you will also
>> --        need a kernel supporting the EABI system call interface, or
>> "OABI"
>> --        for a compiler using the old Linux ABI.
>> --
>> --config CONFIG_ARM_OABI
>> --      bool "OABI"
>> --
>> --config CONFIG_ARM_EABI
>> --      bool "EABI"
>> -+        need a kernel supporting the EABI system call interface.
>> -
>> --endchoice
>> -+        If you say 'n' here, then the library will be built for the
>> -+        old Linux ABI.
>> -
>> - config COMPILE_IN_THUMB_MODE
>> -       bool "Build using Thumb mode"
>> diff --git
>> a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-arm-ftruncate64.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-arm-ftruncate64.patch
>> deleted file mode 100644
>> index 504d37b..0000000
>> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-arm-ftruncate64.patch
>> +++ /dev/null
>> @@ -1,13 +0,0 @@
>> -Index: uclibc-0.9.29/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
>> -===================================================================
>> ----
uclibc-0.9.29.orig/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
>> -+++ uclibc-0.9.29/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
>> -@@ -38,4 +38,8 @@
>> - /* define if target supports IEEE signed zero floats */
>> - #define __UCLIBC_HAVE_SIGNED_ZERO__
>> -
>> -+#ifdef __ARM_EABI__
>> -+# define __UCLIBC_TRUNCATE64_HAS_4_ARGS__
>> -+#endif
>> -+
>> - #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git
>> a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_scheduler_update.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_scheduler_update.patch
>> deleted file mode 100644
>> index 78401bd..0000000
>> ---
a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_scheduler_update.patch
>> +++ /dev/null
>> @@ -1,455 +0,0 @@
>> -From 2becc16ecbef71c496644d9dc6cbd7383d7cdca3 Mon Sep 17 00:00:00 2001
>> -From: Henning Heinold<heinold@inf.fu-berlin.de>
>> -Date: Sat, 4 Jun 2011 21:21:41 +0200
>> -Subject: [PATCH 1/2] libc: updates the linux scheduler functions, most
>> stuff
>> - was taken from the eglibc
>> -
>> -
>> -Signed-off-by: Henning Heinold<heinold@inf.fu-berlin.de>
>> ----
>> - include/sched.h                            |   52 ++++++++++++----
>> - libc/sysdeps/linux/common/Makefile.in      |    4 +-
>> - libc/sysdeps/linux/common/bits/sched.h     |   96
>> +++++++++++++++++++++++-----
>> - libc/sysdeps/linux/common/sched_cpualloc.c |   27 ++++++++
>> - libc/sysdeps/linux/common/sched_cpucount.c |   60 +++++++++++++++++
>> - libc/sysdeps/linux/common/sched_cpufree.c  |   27 ++++++++
>> - libc/sysdeps/linux/common/sched_getcpu.c   |   37 +++++++++++
>> - libc/sysdeps/linux/common/unshare.c        |   12 ++++
>> - 8 files changed, 286 insertions(+), 29 deletions(-)
>> - create mode 100644 libc/sysdeps/linux/common/sched_cpualloc.c
>> - create mode 100644 libc/sysdeps/linux/common/sched_cpucount.c
>> - create mode 100644 libc/sysdeps/linux/common/sched_cpufree.c
>> - create mode 100644 libc/sysdeps/linux/common/sched_getcpu.c
>> - create mode 100644 libc/sysdeps/linux/common/unshare.c
>> -
>> -diff --git a/include/sched.h b/include/sched.h
>> -index 0d110c3..e265b84 100644
>> ---- a/include/sched.h
>> -+++ b/include/sched.h
>> -@@ -1,5 +1,5 @@
>> - /* Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling
>> interface.
>> --   Copyright (C) 1996,1997,1999,2001-2003,2004 Free Software
Foundation,
>> Inc.
>> -+   Copyright (C) 1996,1997,1999,2001-2004,2007 Free Software
Foundation,
>> Inc.
>> -    This file is part of the GNU C Library.
>> -
>> -    The GNU C Library is free software; you can redistribute it and/or
>> -@@ -25,6 +25,9 @@
>> - /* Get type definitions.  */
>> - #include<bits/types.h>
>> -
>> -+#define __need_size_t
>> -+#include<stddef.h>
>> -+
>> - #define __need_timespec
>> - #include<time.h>
>> -
>> -@@ -65,11 +68,42 @@ extern int sched_rr_get_interval (__pid_t __pid,
>> struct timespec *__t) __THROW;
>> -
>> - #if defined __USE_GNU&&  defined __UCLIBC_LINUX_SPECIFIC__
>> - /* Access macros for `cpu_set'.  */
>> --#define CPU_SETSIZE __CPU_SETSIZE
>> --#define CPU_SET(cpu, cpusetp) __CPU_SET (cpu, cpusetp)
>> --#define CPU_CLR(cpu, cpusetp) __CPU_CLR (cpu, cpusetp)
>> --#define CPU_ISSET(cpu, cpusetp)       __CPU_ISSET (cpu, cpusetp)
>> --#define CPU_ZERO(cpusetp)     __CPU_ZERO (cpusetp)
>> -+# define CPU_SETSIZE __CPU_SETSIZE
>> -+# define CPU_SET(cpu, cpusetp)         __CPU_SET_S (cpu, sizeof
>> (cpu_set_t), cpusetp)
>> -+# define CPU_CLR(cpu, cpusetp)         __CPU_CLR_S (cpu, sizeof
>> (cpu_set_t), cpusetp)
>> -+# define CPU_ISSET(cpu, cpusetp) __CPU_ISSET_S (cpu, sizeof
(cpu_set_t),
>> \
>> -+                                              cpusetp)
>> -+# define CPU_ZERO(cpusetp)     __CPU_ZERO_S (sizeof (cpu_set_t),
>> cpusetp)
>> -+# define CPU_COUNT(cpusetp)    __CPU_COUNT_S (sizeof (cpu_set_t),
>> cpusetp)
>> -+
>> -+# define CPU_SET_S(cpu, setsize, cpusetp)   __CPU_SET_S (cpu, setsize,
>> cpusetp)
>> -+# define CPU_CLR_S(cpu, setsize, cpusetp)   __CPU_CLR_S (cpu, setsize,
>> cpusetp)
>> -+# define CPU_ISSET_S(cpu, setsize, cpusetp) __CPU_ISSET_S (cpu,
setsize,
>> \
>> -+                                                         cpusetp)
>> -+# define CPU_ZERO_S(setsize, cpusetp)     __CPU_ZERO_S (setsize,
>> cpusetp)
>> -+# define CPU_COUNT_S(setsize, cpusetp)            __CPU_COUNT_S
>> (setsize, cpusetp)
>> -+
>> -+# define CPU_EQUAL(cpusetp1, cpusetp2) \
>> -+  __CPU_EQUAL_S (sizeof (cpu_set_t), cpusetp1, cpusetp2)
>> -+# define CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \
>> -+  __CPU_EQUAL_S (setsize, cpusetp1, cpusetp2)
>> -+
>> -+# define CPU_AND(destset, srcset1, srcset2) \
>> -+  __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2,&)
>> -+# define CPU_OR(destset, srcset1, srcset2) \
>> -+  __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, |)
>> -+# define CPU_XOR(destset, srcset1, srcset2) \
>> -+  __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, ^)
>> -+# define CPU_AND_S(setsize, destset, srcset1, srcset2) \
>> -+  __CPU_OP_S (setsize, destset, srcset1, srcset2,&)
>> -+# define CPU_OR_S(setsize, destset, srcset1, srcset2) \
>> -+  __CPU_OP_S (setsize, destset, srcset1, srcset2, |)
>> -+# define CPU_XOR_S(setsize, destset, srcset1, srcset2) \
>> -+  __CPU_OP_S (setsize, destset, srcset1, srcset2, ^)
>> -+
>> -+# define CPU_ALLOC_SIZE(count) __CPU_ALLOC_SIZE (count)
>> -+# define CPU_ALLOC(count) __CPU_ALLOC (count)
>> -+# define CPU_FREE(cpuset) __CPU_FREE (cpuset)
>> -
>> -
>> - /* Set the CPU affinity for a task */
>> -@@ -79,12 +113,6 @@ extern int sched_setaffinity (__pid_t __pid, size_t
>> __cpusetsize,
>> - /* Get the CPU affinity for a task */
>> - extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
>> -                             cpu_set_t *__cpuset) __THROW;
>> --
>> --extern int __clone (int (*__fn) (void *__arg), void *__child_stack,
>> --                  int __flags, void *__arg, ...);
>> --extern int __clone2 (int (*__fn) (void *__arg), void
>> *__child_stack_base,
>> --                   size_t __child_stack_size, int __flags, void *__arg,
>> ...);
>> --
>> - #endif
>> -
>> - __END_DECLS
>> -diff --git a/libc/sysdeps/linux/common/Makefile.in
>> b/libc/sysdeps/linux/common/Makefile.in
>> -index 8f936ff..cb8c153 100644
>> ---- a/libc/sysdeps/linux/common/Makefile.in
>> -+++ b/libc/sysdeps/linux/common/Makefile.in
>> -@@ -22,9 +22,11 @@ CSRC-$(UCLIBC_LINUX_SPECIFIC) += capget.c capset.c
>> inotify.c ioperm.c iopl.c \
>> -       modify_ldt.c pipe2.c personality.c ppoll.c prctl.c \
>> -       readahead.c reboot.c \
>> -       remap_file_pages.c sched_getaffinity.c sched_setaffinity.c \
>> -+      sched_cpualloc.c sched_cpucount.c sched_cpufree.c \
>> -       sendfile64.c sendfile.c setfsgid.c setfsuid.c setresuid.c \
>> -       splice.c vmsplice.c tee.c signalfd.c swapoff.c swapon.c \
>> --      sync_file_range.c sysctl.c sysinfo.c timerfd.c uselib.c vhangup.c
>> -+      sync_file_range.c sysctl.c sysinfo.c timerfd.c unshare.c \
>> -+      uselib.c vhangup.c
>> - # NPTL needs these internally: madvise.c
>> - CSRC-$(findstring
>> y,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_THREADS_NATIVE)) += madvise.c
>> - ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
>> -diff --git a/libc/sysdeps/linux/common/bits/sched.h
>> b/libc/sysdeps/linux/common/bits/sched.h
>> -index b48a0c8..fea66a8 100644
>> ---- a/libc/sysdeps/linux/common/bits/sched.h
>> -+++ b/libc/sysdeps/linux/common/bits/sched.h
>> -@@ -1,6 +1,7 @@
>> - /* Definitions of constants and data structure for POSIX 1003.1b-1993
>> -    scheduling interface.
>> --   Copyright (C) 1996-1999,2001-2003,2005,2006 Free Software
Foundation,
>> Inc.
>> -+   Copyright (C) 1996-1999,2001-2003,2005,2006,2007,2008
>> -+   Free Software Foundation, Inc.
>> -    This file is part of the GNU C Library.
>> -
>> -    The GNU C Library is free software; you can redistribute it and/or
>> -@@ -58,7 +59,13 @@
>> -                                     force CLONE_PTRACE on this clone.
>>  */
>> - # define CLONE_CHILD_SETTID 0x01000000 /* Store TID in userlevel buffer
>> in
>> -                                         the child.  */
>> --# define CLONE_STOPPED        0x02000000 /* Start in stopped state.  */
>> -+# define CLONE_STOPPED 0x02000000 /* Start in stopped state.  */
>> -+# define CLONE_NEWUTS 0x04000000      /* New utsname group.  */
>> -+# define CLONE_NEWIPC 0x08000000      /* New ipcs.  */
>> -+# define CLONE_NEWUSER        0x10000000      /* New user namespace.
 */
>> -+# define CLONE_NEWPID 0x20000000      /* New pid namespace.  */
>> -+# define CLONE_NEWNET 0x40000000      /* New network namespace.  */
>> -+# define CLONE_IO     0x80000000      /* Clone I/O context.  */
>> - #endif
>> -
>> - /* The official definition.  */
>> -@@ -74,10 +81,11 @@ __BEGIN_DECLS
>> - extern int clone (int (*__fn) (void *__arg), void *__child_stack,
>> -                 int __flags, void *__arg, ...) __THROW;
>> -
>> --#if 0
>> - /* Unshare the specified resources.  */
>> - extern int unshare (int __flags) __THROW;
>> --#endif
>> -+
>> -+/* Get index of currently used CPU.  */
>> -+extern int sched_getcpu (void) __THROW;
>> - #endif
>> -
>> - __END_DECLS
>> -@@ -102,7 +110,7 @@ struct __sched_param
>> - # define __CPU_SETSIZE        1024
>> - # define __NCPUBITS   (8 * sizeof (__cpu_mask))
>> -
>> --/* Type for array elements in 'cpu_set'.  */
>> -+/* Type for array elements in 'cpu_set_t'.  */
>> - typedef unsigned long int __cpu_mask;
>> -
>> - /* Basic access functions.  */
>> -@@ -116,17 +124,73 @@ typedef struct
>> - } cpu_set_t;
>> -
>> - /* Access functions for CPU masks.  */
>> --# define __CPU_ZERO(cpusetp) \
>> -+# define __CPU_ZERO_S(setsize, cpusetp) \
>> -   do {

>>            \
>> --    unsigned int __i;
>>     \
>> --    cpu_set_t *__arr = (cpusetp);
>>     \
>> --    for (__i = 0; __i<  sizeof (cpu_set_t) / sizeof (__cpu_mask);
++__i)
>>      \
>> --      __arr->__bits[__i] = 0;
>>     \
>> -+    size_t __i;
>>             \
>> -+    size_t __imax = (setsize) / sizeof (__cpu_mask);

>>    \
>> -+    __cpu_mask *__bits = (cpusetp)->__bits;
>>     \
>> -+    for (__i = 0; __i<  __imax; ++__i)

>>            \
>> -+      __bits[__i] = 0;

>>            \
>> -   } while (0)
>> --# define __CPU_SET(cpu, cpusetp) \
>> --  ((cpusetp)->__bits[__CPUELT (cpu)] |= __CPUMASK (cpu))
>> --# define __CPU_CLR(cpu, cpusetp) \
>> --  ((cpusetp)->__bits[__CPUELT (cpu)]&= ~__CPUMASK (cpu))
>> --# define __CPU_ISSET(cpu, cpusetp) \
>> --  (((cpusetp)->__bits[__CPUELT (cpu)]&  __CPUMASK (cpu)) != 0)
>> -+# define __CPU_SET_S(cpu, setsize, cpusetp) \
>> -+  (__extension__

>>    \
>> -+   ({ size_t __cpu = (cpu);
>>     \
>> -+      __cpu<  8 * (setsize)
>>     \
>> -+      ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]
>>             \
>> -+       |= __CPUMASK (__cpu))

>>    \
>> -+      : 0; }))
>> -+# define __CPU_CLR_S(cpu, setsize, cpusetp) \
>> -+  (__extension__

>>    \
>> -+   ({ size_t __cpu = (cpu);
>>     \
>> -+      __cpu<  8 * (setsize)
>>     \
>> -+      ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]
>>             \
>> -+      &= ~__CPUMASK (__cpu))

>>    \
>> -+      : 0; }))
>> -+# define __CPU_ISSET_S(cpu, setsize, cpusetp) \
>> -+  (__extension__

>>    \
>> -+   ({ size_t __cpu = (cpu);
>>     \
>> -+      __cpu<  8 * (setsize)
>>     \
>> -+      ? ((((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]

>>    \
>> -+      &  __CPUMASK (__cpu))) != 0
>>     \
>> -+      : 0; }))
>> -+
>> -+# define __CPU_COUNT_S(setsize, cpusetp) \
>> -+  __sched_cpucount (setsize, cpusetp)
>> -+
>> -+# define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \
>> -+  (__extension__

>>    \
>> -+   ({ __cpu_mask *__arr1 = (cpusetp1)->__bits;

>>            \
>> -+      __cpu_mask *__arr2 = (cpusetp2)->__bits;

>>            \
>> -+      size_t __imax = (setsize) / sizeof (__cpu_mask);

>>            \
>> -+      size_t __i;
>>     \
>> -+      for (__i = 0; __i<  __imax; ++__i)

>>    \
>> -+      if (__arr1[__i] != __arr2[__i])
>>     \
>> -+        break;

>>    \
>> -+      __i == __imax; }))
>> -+
>> -+# define __CPU_OP_S(setsize, destset, srcset1, srcset2, op) \
>> -+  (__extension__

>>    \
>> -+   ({ cpu_set_t *__dest = (destset);

>>    \
>> -+      __cpu_mask *__arr1 = (srcset1)->__bits;
>>     \
>> -+      __cpu_mask *__arr2 = (srcset2)->__bits;
>>     \
>> -+      size_t __imax = (setsize) / sizeof (__cpu_mask);

>>            \
>> -+      size_t __i;
>>     \
>> -+      for (__i = 0; __i<  __imax; ++__i)

>>    \
>> -+      ((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op
__arr2[__i];
>>    \
>> -+      __dest; }))
>> -+
>> -+# define __CPU_ALLOC_SIZE(count) \
>> -+  ((((count) + __NCPUBITS - 1) / __NCPUBITS) * sizeof (__cpu_mask))
>> -+# define __CPU_ALLOC(count) __sched_cpualloc (count)
>> -+# define __CPU_FREE(cpuset) __sched_cpufree (cpuset)
>> -+
>> -+__BEGIN_DECLS
>> -+
>> -+extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
>> -+  __THROW;
>> -+extern cpu_set_t *__sched_cpualloc (size_t __count) __THROW __wur;
>> -+extern void __sched_cpufree (cpu_set_t *__set) __THROW;
>> -+
>> -+__END_DECLS
>> -+
>> - #endif
>> -diff --git a/libc/sysdeps/linux/common/sched_cpualloc.c
>> b/libc/sysdeps/linux/common/sched_cpualloc.c
>> -new file mode 100644
>> -index 0000000..2642a80
>> ---- /dev/null
>> -+++ b/libc/sysdeps/linux/common/sched_cpualloc.c
>> -@@ -0,0 +1,27 @@
>> -+/* Copyright (C) 2007 Free Software Foundation, Inc.
>> -+   This file is part of the GNU C Library.
>> -+
>> -+   The GNU C Library is free software; you can redistribute it and/or
>> -+   modify it under the terms of the GNU Lesser General Public
>> -+   License as published by the Free Software Foundation; either
>> -+   version 2.1 of the License, or (at your option) any later version.
>> -+
>> -+   The GNU C Library is distributed in the hope that it will be useful,
>> -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
>> -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
>> -+   Lesser General Public License for more details.
>> -+
>> -+   You should have received a copy of the GNU Lesser General Public
>> -+   License along with the GNU C Library; if not, write to the Free
>> -+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
>> -+   02111-1307 USA.  */
>> -+
>> -+#include<sched.h>
>> -+#include<stdlib.h>
>> -+
>> -+
>> -+cpu_set_t *
>> -+__sched_cpualloc (size_t count)
>> -+{
>> -+  return malloc (CPU_ALLOC_SIZE (count));
>> -+}
>> -diff --git a/libc/sysdeps/linux/common/sched_cpucount.c
>> b/libc/sysdeps/linux/common/sched_cpucount.c
>> -new file mode 100644
>> -index 0000000..331c0b8
>> ---- /dev/null
>> -+++ b/libc/sysdeps/linux/common/sched_cpucount.c
>> -@@ -0,0 +1,60 @@
>> -+/* Copyright (C) 2007 Free Software Foundation, Inc.
>> -+   This file is part of the GNU C Library.
>> -+
>> -+   The GNU C Library is free software; you can redistribute it and/or
>> -+   modify it under the terms of the GNU Lesser General Public
>> -+   License as published by the Free Software Foundation; either
>> -+   version 2.1 of the License, or (at your option) any later version.
>> -+
>> -+   The GNU C Library is distributed in the hope that it will be useful,
>> -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
>> -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
>> -+   Lesser General Public License for more details.
>> -+
>> -+   You should have received a copy of the GNU Lesser General Public
>> -+   License along with the GNU C Library; if not, write to the Free
>> -+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
>> -+   02111-1307 USA.  */
>> -+
>> -+#include<limits.h>
>> -+#include<sched.h>
>> -+
>> -+
>> -+int
>> -+__sched_cpucount (size_t setsize, const cpu_set_t *setp)
>> -+{
>> -+  int s = 0;
>> -+  const __cpu_mask *p = setp->__bits;
>> -+  const __cpu_mask *end =&setp->__bits[setsize / sizeof (__cpu_mask)];
>> -+
>> -+  while (p<  end)
>> -+    {
>> -+      __cpu_mask l = *p++;
>> -+
>> -+#ifdef POPCNT
>> -+      s += POPCNT (l);
>> -+#else
>> -+      if (l == 0)
>> -+      continue;
>> -+
>> -+# if LONG_BIT>  32
>> -+      l = (l&  0x5555555555555555ul) + ((l>>  1)&
>>  0x5555555555555555ul);
>> -+      l = (l&  0x3333333333333333ul) + ((l>>  2)&
>>  0x3333333333333333ul);
>> -+      l = (l&  0x0f0f0f0f0f0f0f0ful) + ((l>>  4)&
>>  0x0f0f0f0f0f0f0f0ful);
>> -+      l = (l&  0x00ff00ff00ff00fful) + ((l>>  8)&
>>  0x00ff00ff00ff00fful);
>> -+      l = (l&  0x0000ffff0000fffful) + ((l>>  16)&
>>  0x0000ffff0000fffful);
>> -+      l = (l&  0x00000000fffffffful) + ((l>>  32)&
>>  0x00000000fffffffful);
>> -+# else
>> -+      l = (l&  0x55555555ul) + ((l>>  1)&  0x55555555ul);
>> -+      l = (l&  0x33333333ul) + ((l>>  2)&  0x33333333ul);
>> -+      l = (l&  0x0f0f0f0ful) + ((l>>  4)&  0x0f0f0f0ful);
>> -+      l = (l&  0x00ff00fful) + ((l>>  8)&  0x00ff00fful);
>> -+      l = (l&  0x0000fffful) + ((l>>  16)&  0x0000fffful);
>> -+# endif
>> -+
>> -+      s += l;
>> -+#endif
>> -+    }
>> -+
>> -+  return s;
>> -+}
>> -diff --git a/libc/sysdeps/linux/common/sched_cpufree.c
>> b/libc/sysdeps/linux/common/sched_cpufree.c
>> -new file mode 100644
>> -index 0000000..dd4c613
>> ---- /dev/null
>> -+++ b/libc/sysdeps/linux/common/sched_cpufree.c
>> -@@ -0,0 +1,27 @@
>> -+/* Copyright (C) 2007 Free Software Foundation, Inc.
>> -+   This file is part of the GNU C Library.
>> -+
>> -+   The GNU C Library is free software; you can redistribute it and/or
>> -+   modify it under the terms of the GNU Lesser General Public
>> -+   License as published by the Free Software Foundation; either
>> -+   version 2.1 of the License, or (at your option) any later version.
>> -+
>> -+   The GNU C Library is distributed in the hope that it will be useful,
>> -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
>> -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
>> -+   Lesser General Public License for more details.
>> -+
>> -+   You should have received a copy of the GNU Lesser General Public
>> -+   License along with the GNU C Library; if not, write to the Free
>> -+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
>> -+   02111-1307 USA.  */
>> -+
>> -+#include<sched.h>
>> -+#include<stdlib.h>
>> -+
>> -+
>> -+void
>> -+__sched_cpufree (cpu_set_t *set)
>> -+{
>> -+  free (set);
>> -+}
>> -diff --git a/libc/sysdeps/linux/common/sched_getcpu.c
>> b/libc/sysdeps/linux/common/sched_getcpu.c
>> -new file mode 100644
>> -index 0000000..b193d65
>> ---- /dev/null
>> -+++ b/libc/sysdeps/linux/common/sched_getcpu.c
>> -@@ -0,0 +1,37 @@
>> -+/* Copyright (C) 2007 Free Software Foundation, Inc.
>> -+   This file is part of the GNU C Library.
>> -+
>> -+   The GNU C Library is free software; you can redistribute it and/or
>> -+   modify it under the terms of the GNU Lesser General Public
>> -+   License as published by the Free Software Foundation; either
>> -+   version 2.1 of the License, or (at your option) any later version.
>> -+
>> -+   The GNU C Library is distributed in the hope that it will be useful,
>> -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
>> -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
>> -+   Lesser General Public License for more details.
>> -+
>> -+   You should have received a copy of the GNU Lesser General Public
>> -+   License along with the GNU C Library; if not, write to the Free
>> -+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
>> -+   02111-1307 USA.  */
>> -+
>> -+#include<stdlib.h>
>> -+#include<errno.h>
>> -+#include<sched.h>
>> -+#include<sysdep.h>
>> -+
>> -+
>> -+int
>> -+sched_getcpu (void)
>> -+{
>> -+#ifdef __NR_getcpu
>> -+  unsigned int cpu;
>> -+  int r = INLINE_SYSCALL (getcpu, 3,&cpu, NULL, NULL);
>> -+
>> -+  return r == -1 ? r : cpu;
>> -+#else
>> -+  __set_errno (ENOSYS);
>> -+  return -1;
>> -+#endif
>> -+}
>> -diff --git a/libc/sysdeps/linux/common/unshare.c
>> b/libc/sysdeps/linux/common/unshare.c
>> -new file mode 100644
>> -index 0000000..485bf88
>> ---- /dev/null
>> -+++ b/libc/sysdeps/linux/common/unshare.c
>> -@@ -0,0 +1,12 @@
>> -+/* vi: set sw=4 ts=4: */
>> -+/*
>> -+ * unshare() for uClibc
>> -+ *
>> -+ * Copyright (C) 2011 Henning Heinold<heinold@inf.fu-berlin.de>
>> -+ *
>> -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this
>> tarball.
>> -+ */
>> -+
>> -+#include<sys/syscall.h>
>> -+#include<sched.h>
>> -+_syscall1(int, unshare, int, flags)
>> ---
>> -1.7.5.3
>> -
>> diff --git
>>
a/meta/recipes-core/uclibc/uclibc-0.9.33/0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch
>>
b/meta/recipes-core/uclibc/uclibc-0.9.33/0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch
>> new file mode 100644
>> index 0000000..2f0c191
>> --- /dev/null
>> +++
>>
b/meta/recipes-core/uclibc/uclibc-0.9.33/0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch
>> @@ -0,0 +1,32 @@
>> +From 6c3919a6d4a8686772e2a302bf951548ee24a8c1 Mon Sep 17 00:00:00 2001
>> +From: Khem Raj<raj.khem@gmail.com>
>> +Date: Fri, 3 Feb 2012 10:57:44 -0800
>> +Subject: [PATCH] Declare __err and pass it to INTERNAL_SYSCALL_NCS so
>> + subsequent macros can use it
>> +
>> +Signed-off-by: Khem Raj<raj.khem@gmail.com>
>> +---
>> + libc/sysdeps/linux/common/bits/syscalls-common.h |    4 ++--
>> + 1 files changed, 2 insertions(+), 2 deletions(-)
>> +
>> +
>> +Upstream-Status: Pending
>> +
>> +diff --git a/libc/sysdeps/linux/common/bits/syscalls-common.h
>> b/libc/sysdeps/linux/common/bits/syscalls-common.h
>> +index faebd1b..0f5a929 100644
>> +--- a/libc/sysdeps/linux/common/bits/syscalls-common.h
>> ++++ b/libc/sysdeps/linux/common/bits/syscalls-common.h
>> +@@ -59,8 +59,8 @@
>> + #ifndef INLINE_SYSCALL_NOERR_NCS
>> + # define INLINE_SYSCALL_NOERR_NCS(name, nr, args...)                  \
>> + ({                                                                    \
>> +-      /*INTERNAL_SYSCALL_DECL(__err);*/
>>       \
>> +-      long __res = INTERNAL_SYSCALL_NCS(name, /*__err*/, nr, args);   \
>> ++      INTERNAL_SYSCALL_DECL(__err);                                   \
>> ++      long __res = INTERNAL_SYSCALL_NCS(name, __err, nr, args);       \
>> +       __res;                                                          \
>> + })
>> + #endif
>> +--
>> +1.7.5.4
>> +
>> diff --git
>>
a/meta/recipes-core/uclibc/uclibc-0.9.33/0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch
>>
b/meta/recipes-core/uclibc/uclibc-0.9.33/0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch
>> new file mode 100644
>> index 0000000..da4ffef
>> --- /dev/null
>> +++
>>
b/meta/recipes-core/uclibc/uclibc-0.9.33/0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch
>> @@ -0,0 +1,177 @@
>> +From effbfd8e8a7b883671b24fc9759b135b48dbfaca Mon Sep 17 00:00:00 2001
>> +From: Khem Raj<raj.khem@gmail.com>
>> +Date: Fri, 3 Feb 2012 20:06:55 -0800
>> +Subject: [PATCH] lstat/stat/fstat: Use 64bit version of syscall if
>> available
>> +
>> +This is needed for stat'ing loop devices>  255
>> +since otherwise kernel returns EOVERFLOW becasue
>> +it needs st_rdev/st_dev to be larger than 16bits but
>> +in kernel it uses __old_kernel_stat for stat
>> +syscall which has st_rdev/st_dev as unsigned short
>> +
>> +Add a testcase
>> +
>> +Signed-off-by: Khem Raj<raj.khem@gmail.com>
>> +---
>> + libc/sysdeps/linux/common/fstat.c |   18 ++++++++++++++----
>> + libc/sysdeps/linux/common/lstat.c |   19 ++++++++++++++-----
>> + libc/sysdeps/linux/common/stat.c  |   18 ++++++++++++++----
>> + test/stat/stat-loop256.c          |   32
>> ++++++++++++++++++++++++++++++++
>> + 4 files changed, 74 insertions(+), 13 deletions(-)
>> + create mode 100644 test/stat/stat-loop256.c
>> +
>> +diff --git a/libc/sysdeps/linux/common/fstat.c
>> b/libc/sysdeps/linux/common/fstat.c
>> +index acc639b..4726a68 100644
>> +--- a/libc/sysdeps/linux/common/fstat.c
>> ++++ b/libc/sysdeps/linux/common/fstat.c
>> +@@ -12,18 +12,28 @@
>> + #include<sys/stat.h>
>> + #include "xstatconv.h"
>> +
>> +-#define __NR___syscall_fstat __NR_fstat
>> +-static __inline__ _syscall2(int, __syscall_fstat, int, fd, struct
>> kernel_stat *, buf)
>> +-
>> + int fstat(int fd, struct stat *buf)
>> + {
>> +       int result;
>> ++#ifdef __NR_fstat64
>> ++      /* normal stat call has limited values for various stat elements
>> ++       * e.g. uid device major/minor etc.
>> ++       * so we use 64 variant if available
>> ++       * in order to get newer versions of stat elements
>> ++       */
>> ++      struct kernel_stat64 kbuf;
>> ++      result = INLINE_SYSCALL(fstat64, 2, fd,&kbuf);
>> ++      if (result == 0) {
>> ++              __xstat32_conv(&kbuf, buf);
>> ++      }
>> ++#else
>> +       struct kernel_stat kbuf;
>> +
>> +-      result = __syscall_fstat(fd,&kbuf);
>> ++      result = INLINE_SYSCALL(fstat, 2, fd,&kbuf);
>> +       if (result == 0) {
>> +               __xstat_conv(&kbuf, buf);
>> +       }
>> ++#endif
>> +       return result;
>> + }
>> + libc_hidden_def(fstat)
>> +diff --git a/libc/sysdeps/linux/common/lstat.c
>> b/libc/sysdeps/linux/common/lstat.c
>> +index aa77447..db72d1f 100644
>> +--- a/libc/sysdeps/linux/common/lstat.c
>> ++++ b/libc/sysdeps/linux/common/lstat.c
>> +@@ -12,19 +12,28 @@
>> + #include<sys/stat.h>
>> + #include "xstatconv.h"
>> +
>> +-#define __NR___syscall_lstat __NR_lstat
>> +-static __inline__ _syscall2(int, __syscall_lstat,
>> +-              const char *, file_name, struct kernel_stat *, buf)
>> +-
>> + int lstat(const char *file_name, struct stat *buf)
>> + {
>> +       int result;
>> ++#ifdef __NR_lstat64
>> ++      /* normal stat call has limited values for various stat elements
>> ++       * e.g. uid device major/minor etc.
>> ++       * so we use 64 variant if available
>> ++       * in order to get newer versions of stat elements
>> ++       */
>> ++      struct kernel_stat64 kbuf;
>> ++      result = INLINE_SYSCALL(lstat64, 2, file_name,&kbuf);
>> ++      if (result == 0) {
>> ++              __xstat32_conv(&kbuf, buf);
>> ++      }
>> ++#else
>> +       struct kernel_stat kbuf;
>> +
>> +-      result = __syscall_lstat(file_name,&kbuf);
>> ++      result = INLINE_SYSCALL(lstat, 2, file_name,&kbuf);
>> +       if (result == 0) {
>> +               __xstat_conv(&kbuf, buf);
>> +       }
>> ++#endif
>> +       return result;
>> + }
>> + libc_hidden_def(lstat)
>> +diff --git a/libc/sysdeps/linux/common/stat.c
>> b/libc/sysdeps/linux/common/stat.c
>> +index a6ab291..829f35a 100644
>> +--- a/libc/sysdeps/linux/common/stat.c
>> ++++ b/libc/sysdeps/linux/common/stat.c
>> +@@ -12,20 +12,30 @@
>> + #include<sys/stat.h>
>> + #include "xstatconv.h"
>> +
>> +-#define __NR___syscall_stat __NR_stat
>> + #undef stat
>> +-static __inline__ _syscall2(int, __syscall_stat,
>> +-              const char *, file_name, struct kernel_stat *, buf)
>> +
>> + int stat(const char *file_name, struct stat *buf)
>> + {
>> +       int result;
>> ++#ifdef __NR_stat64
>> ++      /* normal stat call has limited values for various stat elements
>> ++       * e.g. uid device major/minor etc.
>> ++       * so we use 64 variant if available
>> ++       * in order to get newer versions of stat elements
>> ++       */
>> ++      struct kernel_stat64 kbuf;
>> ++      result = INLINE_SYSCALL(stat64, 2, file_name,&kbuf);
>> ++      if (result == 0) {
>> ++              __xstat32_conv(&kbuf, buf);
>> ++      }
>> ++#else
>> +       struct kernel_stat kbuf;
>> +
>> +-      result = __syscall_stat(file_name,&kbuf);
>> ++      result = INLINE_SYSCALL(stat, 2, file_name,&kbuf);
>> +       if (result == 0) {
>> +               __xstat_conv(&kbuf, buf);
>> +       }
>> ++#endif
>> +       return result;
>> + }
>> + libc_hidden_def(stat)
>> +diff --git a/test/stat/stat-loop256.c b/test/stat/stat-loop256.c
>> +new file mode 100644
>> +index 0000000..14284c1
>> +--- /dev/null
>> ++++ b/test/stat/stat-loop256.c
>> +@@ -0,0 +1,32 @@
>> ++#include<stdio.h>
>> ++#include<unistd.h>
>> ++#include<stdlib.h>
>> ++#include<sys/stat.h>
>> ++int main()
>> ++{
>> ++    struct stat statbuf;
>> ++    int ret = 0;
>> ++    char* loop255 = "/dev/loop255";
>> ++    char* loop256 = "/dev/loop256";
>> ++    mode_t mode = 0660;
>> ++    mknod(loop255, mode, 0x7ff);
>> ++    mknod(loop256, mode, 0x100700);
>> ++    ret = stat(loop255,&statbuf);
>> ++    if(ret<  0) {
>> ++      printf("stat: Cant stat %s\n",loop255);
>> ++      unlink(loop255);
>> ++      exit(1);
>> ++    }
>> ++    ret = stat(loop256,&statbuf);
>> ++    if(ret<  0) {
>> ++        printf("stat: Cant stat %s\n",loop256);
>> ++      unlink(loop255);
>> ++      unlink(loop256);
>> ++        exit(1);
>> ++    }
>> ++
>> ++    unlink(loop255);
>> ++    unlink(loop256);
>> ++    exit(0);
>> ++}
>> ++
>> +--
>> +1.7.5.4
>> +
>> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/argp-headers.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.33/argp-headers.patch
>> similarity index 99%
>> rename from meta/recipes-core/uclibc/uclibc-0.9.32/argp-headers.patch
>> rename to meta/recipes-core/uclibc/uclibc-0.9.33/argp-headers.patch
>> index 7fd148f..b31b991 100644
>> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/argp-headers.patch
>> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/argp-headers.patch
>> @@ -8,6 +8,8 @@ Signed-off-by: Salvatore Cro<salvatore.cro at st.com>
>>   create mode 100644 include/argp.h
>>   create mode 100644 libc/argp/argp-fmtstream.h
>>
>> +Upstream-Status: Pending
>> +
>>  Index: git/include/argp.h
>>  ===================================================================
>>  --- /dev/null
>> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/argp-support.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.33/argp-support.patch
>> similarity index 99%
>> rename from meta/recipes-core/uclibc/uclibc-0.9.32/argp-support.patch
>> rename to meta/recipes-core/uclibc/uclibc-0.9.33/argp-support.patch
>> index 04a3c78..3e9680f 100644
>> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/argp-support.patch
>> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/argp-support.patch
>> @@ -13,6 +13,9 @@ it doesn't need to link libuargp.so explicitely.
>>  Signed-off-by: Salvatore Cro<salvatore.cro at st.com>
>>  Signed-off-by: Filippo Arcidiacono<filippo.arcidiacono at st.com>
>>  Signed-off-by: Carmelo Amoroso<carmelo.amoroso at st.com>
>> +
>> +Upstream-Status: Pending
>> +
>>  ---
>>   Makefile.in                                 |    8 +
>>   Makerules                                   |    8 +-
>> diff --git
>> a/meta/recipes-core/uclibc/uclibc-0.9.32/compile-arm-fork-with-O2.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.33/compile-arm-fork-with-O2.patch
>> similarity index 97%
>> rename from
>> meta/recipes-core/uclibc/uclibc-0.9.32/compile-arm-fork-with-O2.patch
>> rename to
>> meta/recipes-core/uclibc/uclibc-0.9.33/compile-arm-fork-with-O2.patch
>> index 429f27d..15ee0ca 100644
>> ---
>> a/meta/recipes-core/uclibc/uclibc-0.9.32/compile-arm-fork-with-O2.patch
>> +++
>> b/meta/recipes-core/uclibc/uclibc-0.9.33/compile-arm-fork-with-O2.patch
>> @@ -1,5 +1,5 @@
>>  When compiling in thumb mode for arm with -Os gcc gives up since it can
>> not find registers
>> -to spill. So we use -O2 option for compiling fork.c It may be
addressable
>> is gcc.
>> +to spill. So we use -O2 option for compiling fork.c It may be
addressable
>> in gcc.
>>
>>  Signed-off-by: Khem Raj<raj.khem@gmail.com>
>>
>> diff --git
>> a/meta/recipes-core/uclibc/uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch
>> new file mode 100644
>> index 0000000..4e900f3
>> --- /dev/null
>> +++
b/meta/recipes-core/uclibc/uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch
>> @@ -0,0 +1,25 @@
>> +Add definition of MSG_WAITFORONE and MSG_CMSG_CLOEXEC
>> +
>> +Upstream-Status: Pending
>> +
>> +Index: git/libc/sysdeps/linux/common/bits/socket.h
>> +===================================================================
>> +--- git.orig/libc/sysdeps/linux/common/bits/socket.h   2012-01-26
>> 23:23:21.537456132 -0800
>> ++++ git/libc/sysdeps/linux/common/bits/socket.h        2012-01-26
>> 23:25:10.125461388 -0800
>> +@@ -235,8 +235,15 @@
>> + #define       MSG_ERRQUEUE    MSG_ERRQUEUE
>> +     MSG_NOSIGNAL      = 0x4000, /* Do not generate SIGPIPE.  */
>> + #define       MSG_NOSIGNAL    MSG_NOSIGNAL
>> +-    MSG_MORE          = 0x8000  /* Sender will send more.  */
>> ++    MSG_MORE          = 0x8000,  /* Sender will send more.  */
>> + #define       MSG_MORE        MSG_MORE
>> ++    MSG_WAITFORONE      = 0x10000, /* Wait for at least one packet to
>> return.*/
>> ++#define MSG_WAITFORONE  MSG_WAITFORONE
>> ++
>> ++    MSG_CMSG_CLOEXEC    = 0x40000000    /* Set close_on_exit for file
>> ++                                           descriptor received through
>> ++                                           SCM_RIGHTS.  */
>> ++#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
>> +   };
>> +
>> +
>> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch
>> new file mode 100644
>> index 0000000..481f23b
>> --- /dev/null
>> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch
>> @@ -0,0 +1,37 @@
>> +Implement dup3()
>> +
>> +Upstream-Status: Pending
>> +
>> +Index: git/libc/sysdeps/linux/common/dup3.c
>> +===================================================================
>> +--- /dev/null  1970-01-01 00:00:00.000000000 +0000
>> ++++ git/libc/sysdeps/linux/common/dup3.c       2012-01-27
>> 07:40:52.802900849 -0800
>> +@@ -0,0 +1,15 @@
>> ++/* vi: set sw=4 ts=4: */
>> ++/*
>> ++ * dup3() for uClibc
>> ++ *
>> ++ * Copyright (C) 2000-2006 Erik Andersen<andersen@uclibc.org>
>> ++ *
>> ++ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this
>> tarball.
>> ++ */
>> ++
>> ++#include<sys/syscall.h>
>> ++#include<unistd.h>
>> ++
>> ++
>> ++_syscall3(int, dup3, int, oldfd, int, newfd, int, flags)
>> ++libc_hidden_def(dup3)
>> +Index: git/include/unistd.h
>> +===================================================================
>> +--- git.orig/include/unistd.h  2012-01-27 01:19:17.521792781 -0800
>> ++++ git/include/unistd.h       2012-01-27 07:40:03.106898447 -0800
>> +@@ -512,6 +512,8 @@
>> + /* Duplicate FD to FD2, closing FD2 and making it open on the same
file.
>>  */
>> + extern int dup2 (int __fd, int __fd2) __THROW;
>> + libc_hidden_proto(dup2)
>> ++extern int dup3 (int __fd, int __fd2, int __flags) __THROW;
>> ++libc_hidden_proto(dup3)
>> +
>> + /* NULL-terminated array of "NAME=VALUE" environment variables.  */
>> + extern char **__environ;
>> diff --git
>>
a/meta/recipes-core/uclibc/uclibc-0.9.32/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
>>
b/meta/recipes-core/uclibc/uclibc-0.9.33/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
>> similarity index 86%
>> rename from
>>
meta/recipes-core/uclibc/uclibc-0.9.32/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
>> rename to
>>
meta/recipes-core/uclibc/uclibc-0.9.33/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
>> index cfa68ce..d44acca 100644
>> ---
>>
a/meta/recipes-core/uclibc/uclibc-0.9.32/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
>> +++
>>
b/meta/recipes-core/uclibc/uclibc-0.9.33/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch
>> @@ -1,3 +1,9 @@
>> +resolver code should always be in arm mode
>> +
>> +Signed-off-by: Khem Raj<raj.khem@gmail.com>
>> +
>> +Upstream-Status: Pending
>> +
>>  Index: uClibc/ldso/ldso/arm/resolve.S
>>  ===================================================================
>>  --- uClibc.orig/ldso/ldso/arm/resolve.S       2009-03-20
>> 12:03:32.000000000 -0700
>> diff --git
>>
a/meta/recipes-core/uclibc/uclibc-0.9.33/libc_symbols_include_bits_uclibc_config.patch
>>
b/meta/recipes-core/uclibc/uclibc-0.9.33/libc_symbols_include_bits_uclibc_config.patch
>> new file mode 100644
>> index 0000000..8064115
>> --- /dev/null
>> +++
>>
b/meta/recipes-core/uclibc/uclibc-0.9.33/libc_symbols_include_bits_uclibc_config.patch
>> @@ -0,0 +1,19 @@
>> +Index: git/include/libc-symbols.h
>> +===================================================================
>> +--- git.orig/include/libc-symbols.h    2011-07-05 17:04:41.171219323
>> -0700
>> ++++ git/include/libc-symbols.h 2011-07-05 22:50:36.851661478 -0700
>> +@@ -48,10 +48,12 @@
>> +
>> +    */
>> +
>> +-#include<bits/uClibc_arch_features.h>
>> +-
>> + /* Enable declarations of GNU extensions, since we are compiling them.
>>  */
>> + #define _GNU_SOURCE   1
>> ++#define __need_uClibc_config_h
>> ++#include<bits/uClibc_config.h>
>> ++#undef __need_uClibc_config_h
>> ++#include<bits/uClibc_arch_features.h>
>> +
>> + /* Prepare for the case that `__builtin_expect' is not available.  */
>> + #if defined __GNUC__&&  __GNUC__ == 2&&  __GNUC_MINOR__<  96
>> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/mips/uClibc.machine
>> b/meta/recipes-core/uclibc/uclibc-0.9.33/mips/uClibc.machine
>> similarity index 100%
>> rename from meta/recipes-core/uclibc/uclibc-0.9.32/mips/uClibc.machine
>> rename to meta/recipes-core/uclibc/uclibc-0.9.33/mips/uClibc.machine
>> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/orign_path.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.33/orign_path.patch
>> similarity index 64%
>> rename from meta/recipes-core/uclibc/uclibc-0.9.32/orign_path.patch
>> rename to meta/recipes-core/uclibc/uclibc-0.9.33/orign_path.patch
>> index 631951e..c9c15a3 100644
>> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/orign_path.patch
>> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/orign_path.patch
>> @@ -3,16 +3,16 @@
>> http://lists.busybox.net/pipermail/uclibc/2011-March/045003.html
>>
>>  Upstream-Status: Pending
>>
>> -diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c
>> -index 505247e..2b2d429 100644
>> ---- a/ldso/ldso/dl-elf.c
>> -+++ b/ldso/ldso/dl-elf.c
>> -@@ -133,53 +133,60 @@ _dl_protect_relro (struct elf_resolve *l)
>> +Index: git/ldso/ldso/dl-elf.c
>> +===================================================================
>> +--- git.orig/ldso/ldso/dl-elf.c        2012-01-23 19:18:58.000000000
>> -0800
>> ++++ git/ldso/ldso/dl-elf.c     2012-01-23 21:52:06.144646590 -0800
>> +@@ -133,53 +133,60 @@
>>    * in uClibc/ldso/util/ldd.c */
>>   static struct elf_resolve *
>> - search_for_named_library(const char *name, int secure, const char
>> *path_list,
>> + search_for_named_library(const char *name, unsigned rflags, const char
>> *path_list,
>>  -     struct dyn_elf **rpnt)
>> -+      struct dyn_elf **rpnt, const char *origin)
>> ++      struct dyn_elf **rpnt, const char* origin)
>>   {
>>  -     char *path, *path_n, *mylibname;
>>  +     char *mylibname;
>> @@ -47,18 +47,6 @@ index 505247e..2b2d429 100644
>>  -             if (*path == 0) {
>>  -                     *path = ':';
>>  -                     done = 1;
>> --              }
>> --              if (*path == ':') {
>> --                      *path = 0;
>> --                      if (*path_n)
>> --                              _dl_strcpy(mylibname, path_n);
>> --                      else
>> --                              _dl_strcpy(mylibname, "."); /* Assume
>> current dir if empty path */
>> --                      _dl_strcat(mylibname, "/");
>> --                      _dl_strcat(mylibname, name);
>> --                      if ((tpnt = _dl_load_elf_shared_library(secure,
>> rpnt, mylibname)) != NULL)
>> --                              return tpnt;
>> --                      path_n = path+1;
>>  +     for (p = path_list; p != NULL; p = pn) {
>>  +             pn = _dl_strchr(p + 1, ':');
>>  +             if (pn != NULL) {
>> @@ -69,7 +57,7 @@ index 505247e..2b2d429 100644
>>  +
>>  +             if (plen>= 7&&  _dl_memcmp(p, "$ORIGIN", 7) == 0) {
>>  +                     int olen;
>> -+                      if (secure&&  plen != 7)
>> ++                      if (rflags&&  plen != 7)
>>  +                             continue;
>>  +                     if (origin == NULL)
>>  +                             continue;
>> @@ -86,12 +74,24 @@ index 505247e..2b2d429 100644
>>  +             } else {
>>  +                     _dl_strcpy(mylibname, ".");
>>                }
>> +-              if (*path == ':') {
>> +-                      *path = 0;
>> +-                      if (*path_n)
>> +-                              _dl_strcpy(mylibname, path_n);
>> +-                      else
>> +-                              _dl_strcpy(mylibname, "."); /* Assume
>> current dir if empty path */
>> +-                      _dl_strcat(mylibname, "/");
>> +-                      _dl_strcat(mylibname, name);
>> +-                      if ((tpnt = _dl_load_elf_shared_library(rflags,
>> rpnt, mylibname)) != NULL)
>> +-                              return tpnt;
>> +-                      path_n = path+1;
>> +-              }
>>  -             path++;
>>  -     } while (!done);
>>  +             _dl_strcat(mylibname, "/");
>>  +             _dl_strcat(mylibname, name);
>>  +
>> -+              tpnt = _dl_load_elf_shared_library(secure, rpnt,
>> mylibname);
>> ++              tpnt = _dl_load_elf_shared_library(rflags, rpnt,
>> mylibname);
>>  +             if (tpnt != NULL)
>>  +                     return tpnt;
>>  +     }
>> @@ -99,44 +99,46 @@ index 505247e..2b2d429 100644
>>        return NULL;
>>   }
>>
>> -@@ -231,7 +238,8 @@ struct elf_resolve *_dl_load_shared_library(int
>> secure, struct dyn_elf **rpnt,
>> +@@ -231,8 +238,10 @@
>>        if (pnt) {
>>                pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
>>                _dl_if_debug_dprint("\tsearching RPATH='%s'\n", pnt);
>> --              if ((tpnt1 = search_for_named_library(libname, secure,
>> pnt, rpnt)) != NULL)
>> -+              if ((tpnt1 = search_for_named_library(libname, secure,
>> pnt, rpnt,
>> +-              if ((tpnt1 = search_for_named_library(libname, rflags,
>> pnt, rpnt)) != NULL)
>> ++              if ((tpnt1 = search_for_named_library(libname, rflags,
>> pnt, rpnt,
>>  +                                                   tpnt->libname)) !=
>> NULL)
>>                        return tpnt1;
>> ++
>>        }
>>   #endif
>> -@@ -239,7 +247,7 @@ struct elf_resolve *_dl_load_shared_library(int
>> secure, struct dyn_elf **rpnt,
>> +
>> +@@ -240,7 +249,7 @@
>>        /* Check in LD_{ELF_}LIBRARY_PATH, if specified and allowed */
>>        if (_dl_library_path) {
>>                _dl_if_debug_dprint("\tsearching LD_LIBRARY_PATH='%s'\n",
>> _dl_library_path);
>> --              if ((tpnt1 = search_for_named_library(libname, secure,
>> _dl_library_path, rpnt)) != NULL)
>> -+              if ((tpnt1 = search_for_named_library(libname, secure,
>> _dl_library_path, rpnt, NULL)) != NULL)
>> +-              if ((tpnt1 = search_for_named_library(libname, rflags,
>> _dl_library_path, rpnt)) != NULL)
>> ++              if ((tpnt1 = search_for_named_library(libname, rflags,
>> _dl_library_path, rpnt, NULL)) != NULL)
>>                {
>>                        return tpnt1;
>>                }
>> -@@ -253,7 +261,7 @@ struct elf_resolve *_dl_load_shared_library(int
>> secure, struct dyn_elf **rpnt,
>> +@@ -254,7 +263,7 @@
>>        if (pnt) {
>>                pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
>>                _dl_if_debug_dprint("\tsearching RUNPATH='%s'\n", pnt);
>> --              if ((tpnt1 = search_for_named_library(libname, secure,
>> pnt, rpnt)) != NULL)
>> -+              if ((tpnt1 = search_for_named_library(libname, secure,
>> pnt, rpnt, NULL)) != NULL)
>> +-              if ((tpnt1 = search_for_named_library(libname, rflags,
>> pnt, rpnt)) != NULL)
>> ++              if ((tpnt1 = search_for_named_library(libname, rflags,
>> pnt, rpnt, NULL)) != NULL)
>>                        return tpnt1;
>>        }
>>   #endif
>> -@@ -287,7 +295,7 @@ struct elf_resolve *_dl_load_shared_library(int
>> secure, struct dyn_elf **rpnt,
>> +@@ -288,7 +297,7 @@
>>        /* Look for libraries wherever the shared library loader
>>         * was installed */
>>        _dl_if_debug_dprint("\tsearching ldso dir='%s'\n", _dl_ldsopath);
>> --      tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath,
>> rpnt);
>> -+      tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath,
>> rpnt, NULL);
>> +-      tpnt1 = search_for_named_library(libname, rflags, _dl_ldsopath,
>> rpnt);
>> ++      tpnt1 = search_for_named_library(libname, rflags, _dl_ldsopath,
>> rpnt, NULL);
>>        if (tpnt1 != NULL)
>>                return tpnt1;
>> -
>> -@@ -300,7 +308,7 @@ struct elf_resolve *_dl_load_shared_library(int
>> secure, struct dyn_elf **rpnt,
>> + #endif
>> +@@ -301,7 +310,7 @@
>>   #ifndef __LDSO_CACHE_SUPPORT__
>>                                        ":" UCLIBC_RUNTIME_PREFIX
>> "usr/X11R6/lib"
>>   #endif
>> @@ -145,12 +147,12 @@ index 505247e..2b2d429 100644
>>        if (tpnt1 != NULL)
>>                return tpnt1;
>>
>> -diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c
>> -index 7ee9257..9423670 100644
>> ---- a/ldso/ldso/ldso.c
>> -+++ b/ldso/ldso/ldso.c
>> -@@ -272,6 +272,20 @@ static void __attribute__ ((destructor))
>> __attribute_used__ _dl_fini(void)
>> -       }
>> +Index: git/ldso/ldso/ldso.c
>> +===================================================================
>> +--- git.orig/ldso/ldso/ldso.c  2012-01-23 19:18:58.000000000 -0800
>> ++++ git/ldso/ldso/ldso.c       2012-01-23 21:34:11.152594621 -0800
>> +@@ -407,6 +407,20 @@
>> +       return p - list;
>>   }
>>
>>  +static void _dl_setup_progname(const char *argv0)
>> @@ -167,10 +169,10 @@ index 7ee9257..9423670 100644
>>  +     }
>>  +}
>>  +
>> - void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE
>> load_addr,
>> -                         ElfW(auxv_t) auxvt[AT_EGID + 1], char **envp,
>> -                         char **argv
>> -@@ -321,9 +335,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt,
>> DL_LOADADDR_TYPE load_addr,
>> + void *_dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE
>> load_addr,
>> +                         ElfW(auxv_t) auxvt[AT_EGID + 1], char **envp,
>> char **argv
>> +                         DL_GET_READY_TO_RUN_EXTRA_PARMS)
>> +@@ -458,9 +472,7 @@
>>         * been fixed up by now.  Still no function calls outside of this
>>         * library, since the dynamic resolver is not yet ready.
>>         */
>> @@ -179,5 +181,5 @@ index 7ee9257..9423670 100644
>>  -     }
>>  +     _dl_setup_progname(argv[0]);
>>
>> + #ifndef __LDSO_STANDALONE_SUPPORT__
>>        if (_start == (void *) auxvt[AT_ENTRY].a_un.a_val) {
>> -               _dl_dprintf(_dl_debug_file, "Standalone execution is not
>> supported yet\n");
>> diff --git
>> a/meta/recipes-core/uclibc/uclibc-0.9.32/powerpc_copysignl.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.33/powerpc_copysignl.patch
>> similarity index 96%
>> rename from
meta/recipes-core/uclibc/uclibc-0.9.32/powerpc_copysignl.patch
>> rename to meta/recipes-core/uclibc/uclibc-0.9.33/powerpc_copysignl.patch
>> index 339ce7f..3fa10af 100644
>> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/powerpc_copysignl.patch
>> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/powerpc_copysignl.patch
>> @@ -1,3 +1,9 @@
>> +Add ppc copysignl implementation
>> +
>> +Upstream-Status: Pending
>> +
>> +Signed-off-by: Khem Raj<raj.khem@gmail.com>
>> +
>>  Index: git/libc/sysdeps/linux/powerpc/Makefile.arch
>>  ===================================================================
>>  --- git.orig/libc/sysdeps/linux/powerpc/Makefile.arch
>> diff --git
>>
a/meta/recipes-core/uclibc/uclibc-0.9.32/remove_attribute_optimize_Os.patch
>>
b/meta/recipes-core/uclibc/uclibc-0.9.33/remove_attribute_optimize_Os.patch
>> similarity index 93%
>> rename from
>> meta/recipes-core/uclibc/uclibc-0.9.32/remove_attribute_optimize_Os.patch
>> rename to
>> meta/recipes-core/uclibc/uclibc-0.9.33/remove_attribute_optimize_Os.patch
>> index 1930383..bee251c 100644
>> ---
>>
a/meta/recipes-core/uclibc/uclibc-0.9.32/remove_attribute_optimize_Os.patch
>> +++
>>
b/meta/recipes-core/uclibc/uclibc-0.9.33/remove_attribute_optimize_Os.patch
>> @@ -1,15 +1,8 @@
>> -Index: git/include/features.h
>> -===================================================================
>> ---- git.orig/include/features.h
>> -+++ git/include/features.h
>> -@@ -186,7 +186,6 @@
>> - # define __need_uClibc_config_h
>> - # include<bits/uClibc_config.h>
>> - # undef __need_uClibc_config_h
>> --
>> - /* For uClibc, always optimize for size -- this should disable
>> -  * a lot of expensive inlining...
>> -  * TODO: this is wrong! __OPTIMIZE_SIZE__ is an indicator of
>> +Dont support localised optimizations this helps to have a global -O
level
>> +
>> +Signed-off-by: Khem Raj<raj.khem@gmail.com>
>> +Upstream-Status: Pending
>> +
>>  Index: git/libpthread/nptl/pthread_mutex_timedlock.c
>>  ===================================================================
>>  --- git.orig/libpthread/nptl/pthread_mutex_timedlock.c
>> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/uClibc.distro
>> b/meta/recipes-core/uclibc/uclibc-0.9.33/uClibc.distro
>> similarity index 96%
>> rename from meta/recipes-core/uclibc/uclibc-0.9.32/uClibc.distro
>> rename to meta/recipes-core/uclibc/uclibc-0.9.33/uClibc.distro
>> index 5638d47..c33bf8e 100644
>> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/uClibc.distro
>> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/uClibc.distro
>> @@ -181,4 +181,10 @@ UCLIBC_HAS_FLOATS=y
>>
>>  # needed by systemd
>>  UCLIBC_HAS_UTMPX=y
>> -
>> +UCLIBC_LINUX_MODULE_26=y
>> +UCLIBC_HAS_RESOLVER_SUPPORT=y
>> +# needed for LTP
>> +UCLIBC_SUSV4_LEGACY=y
>> +UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
>> +DO_XSI_MATH=y
>> +UCLIBC_SV4_DEPRECATED=y
>> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/uClibc.machine
>> b/meta/recipes-core/uclibc/uclibc-0.9.33/uClibc.machine
>> similarity index 100%
>> rename from meta/recipes-core/uclibc/uclibc-0.9.32/uClibc.machine
>> rename to meta/recipes-core/uclibc/uclibc-0.9.33/uClibc.machine
>> diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-execvpe.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.33/uclibc-execvpe.patch
>> similarity index 99%
>> rename from meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-execvpe.patch
>> rename to meta/recipes-core/uclibc/uclibc-0.9.33/uclibc-execvpe.patch
>> index cd90a09..fe191fc 100644
>> --- a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-execvpe.patch
>> +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/uclibc-execvpe.patch
>> @@ -12,6 +12,9 @@ Signed-off-by: Henning Heinold<heinold@inf.fu-berlin.de
>
>>   3 files changed, 46 insertions(+), 5 deletions(-)
>>   create mode 100644 libc/unistd/execvpe.c
>>
>> +
>> +Upstream-Status: Pending
>> +
>>  diff --git a/include/unistd.h b/include/unistd.h
>>  index 9568790..070e4f2 100644
>>  --- a/include/unistd.h
>> diff --git
>> a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_enable_log2_test.patch
>> b/meta/recipes-core/uclibc/uclibc-0.9.33/uclibc_enable_log2_test.patch
>> similarity index 81%
>> rename from
>> meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_enable_log2_test.patch
>> rename to
>> meta/recipes-core/uclibc/uclibc-0.9.33/uclibc_enable_log2_test.patch
>> index f8f3a7d..37a5988 100644
>> ---
a/meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_enable_log2_test.patch
>> +++
b/meta/recipes-core/uclibc/uclibc-0.9.33/uclibc_enable_log2_test.patch
>> @@ -1,3 +1,8 @@
>> +uclibc now has log2 so enable the tests
>> +
>> +Signed-off-by: Khem Raj<raj.khem@gmail.com>
>> +Upstream-Status: Pending
>> +
>>  Index: uClibc/test/math/libm-test.inc
>>  ===================================================================
>>  --- uClibc/test/math/libm-test.inc    (revision 23784)
>> diff --git a/meta/recipes-core/uclibc/uclibc-initial_0.9.32.bb
>> b/meta/recipes-core/uclibc/uclibc-initial_0.9.33.bb
>> similarity index 100%
>> rename from meta/recipes-core/uclibc/uclibc-initial_0.9.32.bb
>> rename to meta/recipes-core/uclibc/uclibc-initial_0.9.33.bb
>> diff --git a/meta/recipes-core/uclibc/uclibc_0.9.32.bb
>> b/meta/recipes-core/uclibc/uclibc_0.9.33.bb
>> similarity index 45%
>> rename from meta/recipes-core/uclibc/uclibc_0.9.32.bb
>> rename to meta/recipes-core/uclibc/uclibc_0.9.33.bb
>> index 235b436..b559fd4 100644
>> --- a/meta/recipes-core/uclibc/uclibc_0.9.32.bb
>> +++ b/meta/recipes-core/uclibc/uclibc_0.9.33.bb
>> @@ -1,34 +1,26 @@
>> -SRCREV="9152c4d67c763fde5712e2d181d92c0d7e1e2ab9"
>> +SRCREV="1548ee3ca582f3732136e71613c87c16230f71cc"
>>
>>  require uclibc.inc
>> -PR = "${INC_PR}.3"
>> +
>> +PR = "${INC_PR}.0"
>>  PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
>>
>>  SRC_URI = "git://uclibc.org/uClibc.git;branch=${PV};protocol=git<http://uclibc.org/uClibc.git;branch=$%7BPV%7D;protocol=git>\
>>        file://uClibc.machine \
>>        file://uClibc.distro \
>> -       file://uclibc-arm-ftruncate64.patch \
>>        file://uclibc_enable_log2_test.patch \
>>        file://ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch \
>> -       file://select-force-thumb.patch \
>> -       file://remove-sub-arch-variants.patch \
>> -       file://transform-eabi-oabi-choice.patch \
>> -       file://include-arm-asm.h.patch \
>> -       file://detect-bx-availibility.patch \
>> -       file://remove-eabi-oabi-selection.patch \
>>        file://powerpc_copysignl.patch \
>>        file://argp-support.patch \
>>        file://argp-headers.patch \
>>        file://remove_attribute_optimize_Os.patch \
>>        file://compile-arm-fork-with-O2.patch \
>> -       file://epoll-asm-fix.patch \
>> -       file://orign_path.patch \
>> -       file://rtld_no.patch \
>> -
>> file://0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch \
>> -
>> file://0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch \
>>        file://uclibc-execvpe.patch \
>> -       file://uclibc_scheduler_update.patch \
>> -       file://sync_file_range2.patch \
>> -       file://mount.h-update.patch \
>> +       file://orign_path.patch \
>> +       file://dup3.patch \
>> +       file://define-MSG_CMSG_CLOEXEC.patch \
>> +
>> file://0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch \
>> +
>> file://0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch \
>>        "
>> +
>>  S = "${WORKDIR}/git"

[-- Attachment #2: Type: text/html, Size: 169765 bytes --]

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-07 15:59       ` Saul Wold
@ 2012-02-07 23:12         ` Khem Raj
  2012-02-08  0:19           ` Saul Wold
  0 siblings, 1 reply; 70+ messages in thread
From: Khem Raj @ 2012-02-07 23:12 UTC (permalink / raw)
  To: Saul Wold; +Cc: Patches and discussions about the oe-core layer

On (07/02/12 07:59), Saul Wold wrote:
> On 02/07/2012 07:31 AM, Khem Raj wrote:
> >On Tue, Feb 7, 2012 at 12:08 AM, Saul Wold<sgw@linux.intel.com>  wrote:
> >>| /bin/grep: /intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la:
> >>No such file or directory
> >
> >thanks ok I did not catch it with sato image build. which package is
> >failing with this
> >error.
> >
> pixman, gconf, polkit are the 3 I saw doing a world build.

I havent been able to reproduce it with eglibc I tried bitbake gconf
pixman polkit it all liked well. Might be my machine is just nice to me
but that said when I get to the culprit it mostly will be the package
who is using .la in weird way since zlib already ships a .pc file it
should have used that one instead

> 
> Sau!

-- 
-Khem



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 10/20] pseudo: Wrap renameat and opendir
  2012-02-07 16:43       ` Saul Wold
  2012-02-07 18:10         ` Khem Raj
@ 2012-02-07 23:21         ` Mark Hatle
  2012-02-08  2:00           ` Khem Raj
  1 sibling, 1 reply; 70+ messages in thread
From: Mark Hatle @ 2012-02-07 23:21 UTC (permalink / raw)
  To: openembedded-core; +Cc: Wold, Saul

The pseudo upstream has been updated.  We should like just update the recipe to 
use git commit: 	9461b2a88ba672c533a331f95dd5ba7eba683c77

--Mark

On 2/7/12 11:43 AM, Saul Wold wrote:
> On 02/07/2012 08:31 AM, Khem Raj wrote:
>> On Tue, Feb 7, 2012 at 8:21 AM, Saul Wold<sgw@linux.intel.com>   wrote:
>>> On 02/05/2012 10:40 PM, Khem Raj wrote:
>>>>
>>>> Signed-off-by: Khem Raj<raj.khem@gmail.com>
>>>> ---
>>>>    meta/recipes-devtools/pseudo/pseudo/opendir.patch  |   92 ++++++++
>>>>    meta/recipes-devtools/pseudo/pseudo/renameat.patch |  227
>>>> ++++++++++++++++++++
>>>>    meta/recipes-devtools/pseudo/pseudo_1.2.bb         |    6 +-
>>>>    3 files changed, 323 insertions(+), 2 deletions(-)
>>>>    create mode 100644 meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>>>    create mode 100644 meta/recipes-devtools/pseudo/pseudo/renameat.patch
>>>>
>>>> diff --git a/meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>>> b/meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>>> new file mode 100644
>>>> index 0000000..d20f717
>>>> --- /dev/null
>>>> +++ b/meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>>> @@ -0,0 +1,92 @@
>>>> +commit 162f2692c399b93311652201a940fdaf9c9e6924
>>>> +Author: Peter Seebach<peter.seebach@windriver.com>
>>>> +Date:   Thu Feb 2 11:45:42 2012 -0600
>>>> +
>>>> +    Make opendir/closedir stash and forget directory names.
>>>> +
>>>> +    The dirfd(DIR *) interface allows you to get the fd for a DIR *,
>>>> +    meaning you can use it with openat(), meaning you can need its
>>>> +    path.  This causes a segfault.  Also gonna fix the base_path
>>>> +    code not to segfault in that case, but first fix the underlying
>>>> +    problem.
>>>> +
>>>
>>>
>>> Missing Upstream-Status: and Signed-off-by (yes I know we have an email
>>> header).
>>
>> they are backports
>>
> Please update the patch!
>
> Thanks
> 	Sau!
>
>>>
>>> Thanks
>>>          Sau!
>>>
>>>> +diff --git a/ChangeLog.txt b/ChangeLog.txt
>>>> +index 4de488c..9625b38 100644
>>>> +--- a/ChangeLog.txt
>>>> ++++ b/ChangeLog.txt
>>>> +@@ -1,3 +1,7 @@
>>>> ++2012-02-02:
>>>> ++      * (seebs) stash dir name for DIR * from opendir using dirfd.
>>>> ++      * (seebs) add closedir.
>>>> ++
>>>> + 2011-11-02:
>>>> +       * (seebs) Call this 1.2 because the UNLOAD change is moderately
>>>> +         significant, and so's the clone change.
>>>> +diff --git a/ports/unix/guts/closedir.c b/ports/unix/guts/closedir.c
>>>> +new file mode 100644
>>>> +index 0000000..1085361
>>>> +--- /dev/null
>>>> ++++ b/ports/unix/guts/closedir.c
>>>> +@@ -0,0 +1,20 @@
>>>> ++/*
>>>> ++ * Copyright (c) 2012 Wind River Systems; see
>>>> ++ * guts/COPYRIGHT for information.
>>>> ++ *
>>>> ++ * static int
>>>> ++ * wrap_closedir(DIR *dirp) {
>>>> ++ *    int rc = -1;
>>>> ++ */
>>>> ++      if (!dirp) {
>>>> ++              errno = EFAULT;
>>>> ++              return -1;
>>>> ++      }
>>>> ++
>>>> ++      int fd = dirfd(dirp);
>>>> ++      pseudo_client_op(OP_CLOSE, 0, fd, -1, 0, 0);
>>>> ++      rc = real_closedir(dirp);
>>>> ++
>>>> ++/*    return rc;
>>>> ++ * }
>>>> ++ */
>>>> +diff --git a/ports/unix/guts/opendir.c b/ports/unix/guts/opendir.c
>>>> +index 8eaa71f..e69717e 100644
>>>> +--- a/ports/unix/guts/opendir.c
>>>> ++++ b/ports/unix/guts/opendir.c
>>>> +@@ -6,8 +6,25 @@
>>>> +  * wrap_opendir(const char *path) {
>>>> +  *    DIR * rc = NULL;
>>>> +  */
>>>> ++      struct stat buf;
>>>> ++      int save_errno;
>>>> +
>>>> +       rc = real_opendir(path);
>>>> ++      if (rc) {
>>>> ++              int fd;
>>>> ++              save_errno = errno;
>>>> ++              fd = dirfd(rc);
>>>> ++              if (real_fstat(fd,&buf) == -1) {
>>>>
>>>> ++                      pseudo_debug(1, "diropen (fd %d) succeeded, but
>>>> fstat failed (%s).\n",
>>>> ++                              fd, strerror(errno));
>>>> ++                      pseudo_client_op_plain(OP_OPEN, PSA_READ, fd, -1,
>>>> path, 0);
>>>> ++              } else {
>>>> ++                      pseudo_client_op_plain(OP_OPEN, PSA_READ, fd, -1,
>>>> path,&buf);
>>>> ++              }
>>>> ++
>>>> ++
>>>> ++              errno = save_errno;
>>>> ++      }
>>>> +
>>>> + /*    return rc;
>>>> +  * }
>>>> +diff --git a/ports/unix/wrapfuncs.in b/ports/unix/wrapfuncs.in
>>>> +index e06e404..32250c4 100644
>>>> +--- a/ports/unix/wrapfuncs.in
>>>> ++++ b/ports/unix/wrapfuncs.in
>>>> +@@ -21,6 +21,7 @@ long pathconf(const char *path, int name);
>>>> + char *realpath(const char *name, char *resolved_name); /*
>>>> version="GLIBC_2.3" */
>>>> + int remove(const char *path); /* flags=AT_SYMLINK_NOFOLLOW */
>>>> + DIR *opendir(const char *path);
>>>> ++int closedir(DIR *dirp);
>>>> + char *tempnam(const char *template, const char *pfx);
>>>> + char *tmpnam(char *s);
>>>> + int truncate(const char *path, off_t length);
>>>> diff --git a/meta/recipes-devtools/pseudo/pseudo/renameat.patch
>>>> b/meta/recipes-devtools/pseudo/pseudo/renameat.patch
>>>> new file mode 100644
>>>> index 0000000..74c8585
>>>> --- /dev/null
>>>> +++ b/meta/recipes-devtools/pseudo/pseudo/renameat.patch
>>>> @@ -0,0 +1,227 @@
>>>> +commit 795f2b44b7f692151556782f142a4a6e7d45d892
>>>> +Author: Peter Seebach<peter.seebach@windriver.com>
>>>> +Date:   Thu Feb 2 15:49:21 2012 -0600
>>>> +
>>>> +    Implement renameat()
>>>> +
>>>> +    After three long years, someone tried to use this.  This was
>>>> impossibly
>>>> +    hard back when pseudo was written, because there was only one dirfd
>>>> +    provided for.  Thing is, now, the canonicalization happens in
>>>> wrapfuncs,
>>>> +    so a small tweak to makewrappers to recognize that oldpath should use
>>>> +    olddirfd if it exists is enough to get us fully canonicalized paths
>>>> +    when needed.
>>>> +
>>>> +    Also fix the crash if base_path gets called with an fd for which we
>>>> have
>>>> +    no path.
>>>> +
>>>> +diff --git a/ChangeLog.txt b/ChangeLog.txt
>>>> +index 9625b38..25bd463 100644
>>>> +--- a/ChangeLog.txt
>>>> ++++ b/ChangeLog.txt
>>>> +@@ -1,6 +1,9 @@
>>>> + 2012-02-02:
>>>> +       * (seebs) stash dir name for DIR * from opendir using dirfd.
>>>> +       * (seebs) add closedir.
>>>> ++      * (seebs) add initial pass at renameat()
>>>> ++      * (seebs) in base_path, don't try to strlen the result if
>>>> ++        fd_path() returns NULL.
>>>> +
>>>> + 2011-11-02:
>>>> +       * (seebs) Call this 1.2 because the UNLOAD change is moderately
>>>> +diff --git a/makewrappers b/makewrappers
>>>> +index 20bbf2b..bf344d6 100755
>>>> +--- a/makewrappers
>>>> ++++ b/makewrappers
>>>> +@@ -211,12 +211,13 @@ class Function:
>>>> +         self.flags = '0'
>>>> +         self.port = port
>>>> +         self.directory = ''
>>>> +-      self.version = 'NULL'
>>>> ++        self.version = 'NULL'
>>>> +         # On Darwin, some functions are SECRETLY converted to
>>>> foo$INODE64
>>>> +         # when called.  So we have to look those up for real_*
>>>> +         self.inode64 = None
>>>> +         self.real_func = None
>>>> +         self.paths_to_munge = []
>>>> ++        self.dirfds = {}
>>>> +         self.hand_wrapped = None
>>>> +         # used for the copyright date when creating stub functions
>>>> +         self.date = datetime.date.today().year
>>>> +@@ -239,6 +240,7 @@ class Function:
>>>> +         # * If the arg has a name ending in 'path', we will canonicalize
>>>> it.
>>>> +         # * If the arg is named 'dirfd' or 'flags', it becomes the
>>>> default
>>>> +         #   values for the dirfd and flags arguments when
>>>> canonicalizing.
>>>> ++        # * If the name ends in dirfd, we do the same fancy stuff.
>>>> +         # * Note that the "comments" field (/* ... */ after the decl)
>>>> can
>>>> +         #   override the dirfd/flags values.
>>>> +         self.args = ArgumentList(bits.group(2))
>>>> +@@ -246,7 +248,9 @@ class Function:
>>>> +             # ignore varargs, they never get these special treatments
>>>> +             if arg.vararg:
>>>> +                 pass
>>>> +-            elif arg.name == 'dirfd':
>>>> ++            elif arg.name[-5:] == 'dirfd':
>>>> ++                if len(arg.name)>     5:
>>>> ++                    self.dirfds[arg.name[:-5]] = True
>>>> +                 self.dirfd = 'dirfd'
>>>> +             elif arg.name == 'flags':
>>>> +                 self.flags = 'flags'
>>>> +@@ -325,9 +329,13 @@ class Function:
>>>> +         """create/allocate canonical paths"""
>>>> +         alloc_paths = []
>>>> +         for path in self.paths_to_munge:
>>>> ++            prefix = path[:-4]
>>>> ++          if not prefix in self.dirfds:
>>>> ++                prefix = ''
>>>> ++            print "for path %s: prefix<%s>" % ( path, prefix )
>>>> +             alloc_paths.append(
>>>> +-                "%s = pseudo_root_path(__func__, __LINE__, %s, %s, %s);"
>>>> %
>>>> +-                (path, self.dirfd, path, self.flags))
>>>> ++                "%s = pseudo_root_path(__func__, __LINE__, %s%s, %s,
>>>> %s);" %
>>>> ++                (path, prefix, self.dirfd, path, self.flags))
>>>> +         return "\n\t\t\t".join(alloc_paths)
>>>> +
>>>> +     def free_paths(self):
>>>> +diff --git a/ports/unix/guts/renameat.c b/ports/unix/guts/renameat.c
>>>> +index c8203b7..f13cd1e 100644
>>>> +--- a/ports/unix/guts/renameat.c
>>>> ++++ b/ports/unix/guts/renameat.c
>>>> +@@ -1,15 +1,111 @@
>>>> + /*
>>>> +- * Copyright (c) 2008-2010 Wind River Systems; see
>>>> ++ * Copyright (c) 2008-2012 Wind River Systems; see
>>>> +  * guts/COPYRIGHT for information.
>>>> +  *
>>>> +  * static int
>>>> +  * wrap_renameat(int olddirfd, const char *oldpath, int newdirfd, const
>>>> char *newpath) {
>>>> +  *    int rc = -1;
>>>> +  */
>>>> ++      pseudo_msg_t *msg;
>>>> ++      struct stat oldbuf, newbuf;
>>>> ++      int oldrc, newrc;
>>>> ++      int save_errno;
>>>> ++      int old_db_entry = 0;
>>>> +
>>>> +-      pseudo_diag("help! unimplemented renameat [%s ->     %s].\n",
>>>> oldpath, newpath);
>>>> ++      pseudo_debug(2, "renameat: %d,%s->%d,%s\n",
>>>> ++              olddirfd, oldpath ? oldpath : "<nil>",
>>>> ++              newdirfd, newpath ? newpath : "<nil>");
>>>> ++
>>>> ++#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
>>>> ++      if (olddirfd != AT_FDCWD || newdirfd != AT_FDCWD) {
>>>> ++              errno = ENOSYS;
>>>> ++              return -1;
>>>> ++      }
>>>> ++#endif
>>>> ++
>>>> ++      if (!oldpath || !newpath) {
>>>> ++              errno = EFAULT;
>>>> ++              return -1;
>>>> ++      }
>>>> ++
>>>> ++      save_errno = errno;
>>>> ++
>>>> ++#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
>>>> ++      newrc = real_lstat(newpath,&newbuf);
>>>> ++      oldrc = real_lstat(oldpath,&oldbuf);
>>>> ++#else
>>>> ++      oldrc = real___fxstatat(_STAT_VER, olddirfd, oldpath,&oldbuf,
>>>> AT_SYMLINK_NOFOLLOW);
>>>> ++      newrc = real___fxstatat(_STAT_VER, newdirfd, newpath,&newbuf,
>>>> AT_SYMLINK_NOFOLLOW);
>>>>
>>>> ++#endif
>>>> ++
>>>> ++      errno = save_errno;
>>>> ++
>>>> ++      /* newpath must be removed. */
>>>> ++      /* as with unlink, we have to mark that the file may get deleted
>>>> */
>>>> ++      msg = pseudo_client_op_plain(OP_MAY_UNLINK, 0, -1, newdirfd,
>>>> newpath, newrc ? NULL :&newbuf);
>>>> ++      if (msg&&     msg->result == RESULT_SUCCEED)
>>>>
>>>> ++              old_db_entry = 1;
>>>> +       rc = real_renameat(olddirfd, oldpath, newdirfd, newpath);
>>>> ++      save_errno = errno;
>>>> ++      if (old_db_entry) {
>>>> ++              if (rc == -1) {
>>>> ++                      /* since we failed, that wasn't really unlinked --
>>>> put
>>>> ++                       * it back.
>>>> ++                       */
>>>> ++                      pseudo_client_op_plain(OP_CANCEL_UNLINK, 0, -1,
>>>> newdirfd, newpath,&newbuf);
>>>> ++              } else {
>>>> ++                      /* confirm that the file was removed */
>>>> ++                      pseudo_client_op_plain(OP_DID_UNLINK, 0, -1,
>>>> newdirfd, newpath,&newbuf);
>>>> ++              }
>>>> ++      }
>>>> ++      if (rc == -1) {
>>>> ++              /* and we're done. */
>>>> ++              errno = save_errno;
>>>> ++              return rc;
>>>> ++      }
>>>> ++      save_errno = errno;
>>>> ++      /* nothing to do for a "rename" of a link to itself */
>>>> ++      if (newrc != -1&&     oldrc != -1&&
>>>> ++          newbuf.st_dev == oldbuf.st_dev&&
>>>> ++          newbuf.st_ino == oldbuf.st_ino) {
>>>> ++              return rc;
>>>> ++        }
>>>> ++
>>>> ++      /* rename(3) is not mv(1).  rename(file, dir) fails; you must
>>>> provide
>>>> ++       * the corrected path yourself.  You can rename over a directory
>>>> only
>>>> ++       * if the source is a directory.  Symlinks are simply removed.
>>>> ++       *
>>>> ++       * If we got here, the real rename call succeeded.  That means
>>>> newpath
>>>> ++       * has been unlinked and oldpath has been linked to it.
>>>> ++       *
>>>> ++       * There are a ton of special cases to error check.  I don't check
>>>> ++       * for any of them, because in every such case, the underlying
>>>> rename
>>>> ++       * failed, and there is nothing to do.
>>>> ++       * The only tricky part is that, because we used to ignore
>>>> symlinks,
>>>> ++       * we may have to rename or remove directory trees even though in
>>>> ++       * theory rename can never destroy a directory tree.
>>>> ++       */
>>>> ++      if (!old_db_entry) {
>>>> ++              /* create an entry under the old name, which will then be
>>>> ++               * renamed; this way, children would get renamed too, if
>>>> there
>>>> ++               * were any.
>>>> ++               */
>>>> ++              if (newrc == 0) {
>>>> ++                      if (newbuf.st_dev != oldbuf.st_dev) {
>>>> ++                              oldbuf.st_dev = newbuf.st_dev;
>>>> ++                              oldbuf.st_ino = newbuf.st_ino;
>>>> ++                      }
>>>> ++              }
>>>> ++              pseudo_debug(1, "creating new '%s' [%llu] to rename\n",
>>>> ++                      oldpath, (unsigned long long) oldbuf.st_ino);
>>>> ++              pseudo_client_op_plain(OP_LINK, 0, -1, olddirfd,
>>>> oldpath,&oldbuf);
>>>> ++      }
>>>> ++      /* special case: use 'fd' for olddirfd, because
>>>> ++       * we know it has no other meaning for RENAME
>>>> ++       */
>>>> ++      pseudo_client_op_plain(OP_RENAME, 0, olddirfd, newdirfd,
>>>> newpath,&oldbuf, oldpath);
>>>>
>>>> +
>>>> ++      errno = save_errno;
>>>> + /*    return rc;
>>>> +  * }
>>>> +  */
>>>> +diff --git a/pseudo_client.c b/pseudo_client.c
>>>> +index 48607c2..4a30420 100644
>>>> +--- a/pseudo_client.c
>>>> ++++ b/pseudo_client.c
>>>> +@@ -988,6 +988,8 @@ base_path(int dirfd, const char *path, int
>>>> leave_last) {
>>>> +               if (dirfd != -1&&     dirfd != AT_FDCWD) {
>>>>
>>>> +                       if (dirfd>= 0) {
>>>> +                               basepath = fd_path(dirfd);
>>>> ++                      }
>>>> ++                      if (basepath) {
>>>> +                               baselen = strlen(basepath);
>>>> +                       } else {
>>>> +                               pseudo_diag("got *at() syscall for unknown
>>>> directory, fd %d\n", dirfd);
>>>> +@@ -1128,7 +1130,10 @@ pseudo_client_op(pseudo_op_t op, int access, int
>>>> fd, int dirfd, const char *path
>>>> +       if (path) {
>>>> +               pseudo_debug(2, " %s", path);
>>>> +       }
>>>> +-      if (fd != -1) {
>>>> ++      /* for OP_RENAME in renameat, "fd" is also used for the
>>>> ++       * second dirfd.
>>>> ++       */
>>>> ++      if (fd != -1&&     op != OP_RENAME) {
>>>>
>>>> +               pseudo_debug(2, " [fd %d]", fd);
>>>> +       }
>>>> +       if (buf) {
>>>> diff --git a/meta/recipes-devtools/pseudo/pseudo_1.2.bb
>>>> b/meta/recipes-devtools/pseudo/pseudo_1.2.bb
>>>> index f2ebc22..04bcbce 100644
>>>> --- a/meta/recipes-devtools/pseudo/pseudo_1.2.bb
>>>> +++ b/meta/recipes-devtools/pseudo/pseudo_1.2.bb
>>>> @@ -1,10 +1,12 @@
>>>>    require pseudo.inc
>>>>
>>>> -PR = "r4"
>>>> +PR = "r5"
>>>>
>>>>    SRC_URI =
>>>> "http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2 \
>>>>               file://oe-config.patch \
>>>> -           file://static_sqlite.patch"
>>>> +           file://static_sqlite.patch \
>>>> +           file://opendir.patch \
>>>> +           file://renameat.patch"
>>>>
>>>>    SRC_URI[md5sum] = "a2819084bab7e991f06626d02cf55048"
>>>>    SRC_URI[sha256sum] =
>>>> "4749a22df687f44d24c26e97170d4781a1bd52d5ee092364a40877e4d96ff058"
>>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core




^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-07 23:12         ` Khem Raj
@ 2012-02-08  0:19           ` Saul Wold
  2012-02-08  2:06             ` Khem Raj
  0 siblings, 1 reply; 70+ messages in thread
From: Saul Wold @ 2012-02-08  0:19 UTC (permalink / raw)
  To: Khem Raj; +Cc: Patches and discussions about the oe-core layer

On 02/07/2012 03:12 PM, Khem Raj wrote:
> On (07/02/12 07:59), Saul Wold wrote:
>> On 02/07/2012 07:31 AM, Khem Raj wrote:
>>> On Tue, Feb 7, 2012 at 12:08 AM, Saul Wold<sgw@linux.intel.com>   wrote:
>>>> | /bin/grep: /intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la:
>>>> No such file or directory
>>>
>>> thanks ok I did not catch it with sato image build. which package is
>>> failing with this
>>> error.
>>>
>> pixman, gconf, polkit are the 3 I saw doing a world build.
>
> I havent been able to reproduce it with eglibc I tried bitbake gconf
> pixman polkit it all liked well. Might be my machine is just nice to me
> but that said when I get to the culprit it mostly will be the package
> who is using .la in weird way since zlib already ships a .pc file it
> should have used that one instead
>
Khem,

Can you verify if you have a .la file in you sysroot?

tmp/work/i586-poky-linux/zlib-1.2.5-r3/package/usr/lib:
libz.a  libz.la  libz.so  libz.so.1  libz.so.1.2.5  pkgconfig

tmp/work/i586-poky-linux/zlib-1.2.6-r0/package/usr/lib:
libz.a  libz.so  libz.so.1  libz.so.1.2.6  pkgconfig

Very reproducible on my machine:

| i586-poky-linux-libtool: link: cannot find the library 
`/intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la' or 
unhandled argument `=/usr/lib/libz.la'
| make[2]: *** [trap-crasher] Error 1
| make[2]: *** Waiting for unfinished jobs....
| i586-poky-linux-libtool: link: cannot find the library 
`/intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la' or 
unhandled argument `=/usr/lib/libz.la'
| make[2]: *** [fetch-test] Error 1
| i586-poky-linux-libtool: link: cannot find the library 
`/intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la' or 
unhandled argument `=/usr/lib/libz.la'
| make[2]: *** [region-test] Error 1
| i586-poky-linux-libtool: link: cannot find the library 
`/intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la' or 
unhandled argument `=/usr/lib/libz.la'
| make[2]: *** [pdf-op-test] Error 1
| i586-poky-linux-libtool: link: cannot find the library 
`/intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la' or 
unhERROR: Function failed: do_compile (see 
/intel/poky/builds/world/tmp/work/i586-poky-linux/pixman-1_0.24.2-r0/temp/log.do_compile.13548 
for further information)
| andled argument `=/usr/lib/libz.la'
| make[2]: *** [oob-test] Error 1
| i586-poky-linux-libtool: link: cannot find the library 
`/intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la' or 
unhandled argument `=/usr/lib/libz.la'
| make[2]: *** [alpha-loop] Error 1
| i586-poky-linux-libtool: link: cannot find the library 
`/intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la' or 
unhandled argument `=/usr/lib/libz.la'
| make[2]: *** [a1-trap-test] Error 1
| i586-poky-linux-libtool: link: cannot find the library 
`/intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la' or 
unhandled argument `=/usr/lib/libz.la'
| make[2]: *** [region-translate-test] Error 1
| i586-poky-linux-libtool: link: cannot find the library 
`/intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la' or 
unhandled argument `=/usr/lib/libz.la'
| make[2]: *** [scaling-helpers-test] Error 1
| i586-poky-linux-libtool: link: cannot find the library 
`/intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la' or 
unhandled argument `=/usr/lib/libz.la'
| make[2]: *** [scaling-crash-test] Error 1
| i586-poky-linux-libtool: link: cannot find the library 
`/intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la' or 
unhandled argument `=/usr/lib/libz.la'
| make[2]: *** [gradient-crash-test] Error 1
| i586-poky-linux-libtool: link: cannot find the library 
`/intel/poky/builds/world/tmp/sysroots/qemux86/usr/lib/libz.la' or 
unhandled argument `=/usr/lib/libz.la'
| make[2]: *** [region-contains-test] Error 1
| make[2]: Leaving directory 
`/intel/poky/builds/world/tmp/work/i586-poky-linux/pixman-1_0.24.2-r0/pixman-0.24.2/test'
| make[1]: *** [all-recursive] Error 1
| make[1]: Leaving directory 
`/intel/poky/builds/world/tmp/work/i586-poky-linux/pixman-1_0.24.2-r0/pixman-0.24.2'
| make: *** [all] Error 2
| ERROR: oe_runmake failed
NOTE: package pixman-1_0.24.2-r0: task do_compile: Failed


Sau!



>>
>> Sau!
>



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 10/20] pseudo: Wrap renameat and opendir
  2012-02-07 23:21         ` Mark Hatle
@ 2012-02-08  2:00           ` Khem Raj
  0 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-08  2:00 UTC (permalink / raw)
  To: Mark Hatle; +Cc: Wold, Saul, openembedded-core

On Tue, Feb 7, 2012 at 3:21 PM, Mark Hatle <mark.hatle@windriver.com> wrote:
> The pseudo upstream has been updated.  We should like just update the recipe
> to use git commit:         9461b2a88ba672c533a331f95dd5ba7eba683c77
>

yes that is for git recipe we still need patches for 1.2 recipe and
default is to use 1.2

> --Mark
>
>
> On 2/7/12 11:43 AM, Saul Wold wrote:
>>
>> On 02/07/2012 08:31 AM, Khem Raj wrote:
>>>
>>> On Tue, Feb 7, 2012 at 8:21 AM, Saul Wold<sgw@linux.intel.com>   wrote:
>>>>
>>>> On 02/05/2012 10:40 PM, Khem Raj wrote:
>>>>>
>>>>>
>>>>> Signed-off-by: Khem Raj<raj.khem@gmail.com>
>>>>> ---
>>>>>   meta/recipes-devtools/pseudo/pseudo/opendir.patch  |   92 ++++++++
>>>>>   meta/recipes-devtools/pseudo/pseudo/renameat.patch |  227
>>>>> ++++++++++++++++++++
>>>>>   meta/recipes-devtools/pseudo/pseudo_1.2.bb         |    6 +-
>>>>>   3 files changed, 323 insertions(+), 2 deletions(-)
>>>>>   create mode 100644 meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>>>>   create mode 100644 meta/recipes-devtools/pseudo/pseudo/renameat.patch
>>>>>
>>>>> diff --git a/meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>>>> b/meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>>>> new file mode 100644
>>>>> index 0000000..d20f717
>>>>> --- /dev/null
>>>>> +++ b/meta/recipes-devtools/pseudo/pseudo/opendir.patch
>>>>> @@ -0,0 +1,92 @@
>>>>> +commit 162f2692c399b93311652201a940fdaf9c9e6924
>>>>> +Author: Peter Seebach<peter.seebach@windriver.com>
>>>>> +Date:   Thu Feb 2 11:45:42 2012 -0600
>>>>> +
>>>>> +    Make opendir/closedir stash and forget directory names.
>>>>> +
>>>>> +    The dirfd(DIR *) interface allows you to get the fd for a DIR *,
>>>>> +    meaning you can use it with openat(), meaning you can need its
>>>>> +    path.  This causes a segfault.  Also gonna fix the base_path
>>>>> +    code not to segfault in that case, but first fix the underlying
>>>>> +    problem.
>>>>> +
>>>>
>>>>
>>>>
>>>> Missing Upstream-Status: and Signed-off-by (yes I know we have an email
>>>> header).
>>>
>>>
>>> they are backports
>>>
>> Please update the patch!
>>
>> Thanks
>>        Sau!
>>
>>>>
>>>> Thanks
>>>>         Sau!
>>>>
>>>>> +diff --git a/ChangeLog.txt b/ChangeLog.txt
>>>>> +index 4de488c..9625b38 100644
>>>>> +--- a/ChangeLog.txt
>>>>> ++++ b/ChangeLog.txt
>>>>> +@@ -1,3 +1,7 @@
>>>>> ++2012-02-02:
>>>>> ++      * (seebs) stash dir name for DIR * from opendir using dirfd.
>>>>> ++      * (seebs) add closedir.
>>>>> ++
>>>>> + 2011-11-02:
>>>>> +       * (seebs) Call this 1.2 because the UNLOAD change is moderately
>>>>> +         significant, and so's the clone change.
>>>>> +diff --git a/ports/unix/guts/closedir.c b/ports/unix/guts/closedir.c
>>>>> +new file mode 100644
>>>>> +index 0000000..1085361
>>>>> +--- /dev/null
>>>>> ++++ b/ports/unix/guts/closedir.c
>>>>> +@@ -0,0 +1,20 @@
>>>>> ++/*
>>>>> ++ * Copyright (c) 2012 Wind River Systems; see
>>>>> ++ * guts/COPYRIGHT for information.
>>>>> ++ *
>>>>> ++ * static int
>>>>> ++ * wrap_closedir(DIR *dirp) {
>>>>> ++ *    int rc = -1;
>>>>> ++ */
>>>>> ++      if (!dirp) {
>>>>> ++              errno = EFAULT;
>>>>> ++              return -1;
>>>>> ++      }
>>>>> ++
>>>>> ++      int fd = dirfd(dirp);
>>>>> ++      pseudo_client_op(OP_CLOSE, 0, fd, -1, 0, 0);
>>>>> ++      rc = real_closedir(dirp);
>>>>> ++
>>>>> ++/*    return rc;
>>>>> ++ * }
>>>>> ++ */
>>>>> +diff --git a/ports/unix/guts/opendir.c b/ports/unix/guts/opendir.c
>>>>> +index 8eaa71f..e69717e 100644
>>>>> +--- a/ports/unix/guts/opendir.c
>>>>> ++++ b/ports/unix/guts/opendir.c
>>>>> +@@ -6,8 +6,25 @@
>>>>> +  * wrap_opendir(const char *path) {
>>>>> +  *    DIR * rc = NULL;
>>>>> +  */
>>>>> ++      struct stat buf;
>>>>> ++      int save_errno;
>>>>> +
>>>>> +       rc = real_opendir(path);
>>>>> ++      if (rc) {
>>>>> ++              int fd;
>>>>> ++              save_errno = errno;
>>>>> ++              fd = dirfd(rc);
>>>>> ++              if (real_fstat(fd,&buf) == -1) {
>>>>>
>>>>> ++                      pseudo_debug(1, "diropen (fd %d) succeeded, but
>>>>> fstat failed (%s).\n",
>>>>> ++                              fd, strerror(errno));
>>>>> ++                      pseudo_client_op_plain(OP_OPEN, PSA_READ, fd,
>>>>> -1,
>>>>> path, 0);
>>>>> ++              } else {
>>>>> ++                      pseudo_client_op_plain(OP_OPEN, PSA_READ, fd,
>>>>> -1,
>>>>> path,&buf);
>>>>> ++              }
>>>>> ++
>>>>> ++
>>>>> ++              errno = save_errno;
>>>>> ++      }
>>>>> +
>>>>> + /*    return rc;
>>>>> +  * }
>>>>> +diff --git a/ports/unix/wrapfuncs.in b/ports/unix/wrapfuncs.in
>>>>> +index e06e404..32250c4 100644
>>>>> +--- a/ports/unix/wrapfuncs.in
>>>>> ++++ b/ports/unix/wrapfuncs.in
>>>>> +@@ -21,6 +21,7 @@ long pathconf(const char *path, int name);
>>>>> + char *realpath(const char *name, char *resolved_name); /*
>>>>> version="GLIBC_2.3" */
>>>>> + int remove(const char *path); /* flags=AT_SYMLINK_NOFOLLOW */
>>>>> + DIR *opendir(const char *path);
>>>>> ++int closedir(DIR *dirp);
>>>>> + char *tempnam(const char *template, const char *pfx);
>>>>> + char *tmpnam(char *s);
>>>>> + int truncate(const char *path, off_t length);
>>>>> diff --git a/meta/recipes-devtools/pseudo/pseudo/renameat.patch
>>>>> b/meta/recipes-devtools/pseudo/pseudo/renameat.patch
>>>>> new file mode 100644
>>>>> index 0000000..74c8585
>>>>> --- /dev/null
>>>>> +++ b/meta/recipes-devtools/pseudo/pseudo/renameat.patch
>>>>> @@ -0,0 +1,227 @@
>>>>> +commit 795f2b44b7f692151556782f142a4a6e7d45d892
>>>>> +Author: Peter Seebach<peter.seebach@windriver.com>
>>>>> +Date:   Thu Feb 2 15:49:21 2012 -0600
>>>>> +
>>>>> +    Implement renameat()
>>>>> +
>>>>> +    After three long years, someone tried to use this.  This was
>>>>> impossibly
>>>>> +    hard back when pseudo was written, because there was only one
>>>>> dirfd
>>>>> +    provided for.  Thing is, now, the canonicalization happens in
>>>>> wrapfuncs,
>>>>> +    so a small tweak to makewrappers to recognize that oldpath should
>>>>> use
>>>>> +    olddirfd if it exists is enough to get us fully canonicalized
>>>>> paths
>>>>> +    when needed.
>>>>> +
>>>>> +    Also fix the crash if base_path gets called with an fd for which
>>>>> we
>>>>> have
>>>>> +    no path.
>>>>> +
>>>>> +diff --git a/ChangeLog.txt b/ChangeLog.txt
>>>>> +index 9625b38..25bd463 100644
>>>>> +--- a/ChangeLog.txt
>>>>> ++++ b/ChangeLog.txt
>>>>> +@@ -1,6 +1,9 @@
>>>>> + 2012-02-02:
>>>>> +       * (seebs) stash dir name for DIR * from opendir using dirfd.
>>>>> +       * (seebs) add closedir.
>>>>> ++      * (seebs) add initial pass at renameat()
>>>>> ++      * (seebs) in base_path, don't try to strlen the result if
>>>>> ++        fd_path() returns NULL.
>>>>> +
>>>>> + 2011-11-02:
>>>>> +       * (seebs) Call this 1.2 because the UNLOAD change is moderately
>>>>> +diff --git a/makewrappers b/makewrappers
>>>>> +index 20bbf2b..bf344d6 100755
>>>>> +--- a/makewrappers
>>>>> ++++ b/makewrappers
>>>>> +@@ -211,12 +211,13 @@ class Function:
>>>>> +         self.flags = '0'
>>>>> +         self.port = port
>>>>> +         self.directory = ''
>>>>> +-      self.version = 'NULL'
>>>>> ++        self.version = 'NULL'
>>>>> +         # On Darwin, some functions are SECRETLY converted to
>>>>> foo$INODE64
>>>>> +         # when called.  So we have to look those up for real_*
>>>>> +         self.inode64 = None
>>>>> +         self.real_func = None
>>>>> +         self.paths_to_munge = []
>>>>> ++        self.dirfds = {}
>>>>> +         self.hand_wrapped = None
>>>>> +         # used for the copyright date when creating stub functions
>>>>> +         self.date = datetime.date.today().year
>>>>> +@@ -239,6 +240,7 @@ class Function:
>>>>> +         # * If the arg has a name ending in 'path', we will
>>>>> canonicalize
>>>>> it.
>>>>> +         # * If the arg is named 'dirfd' or 'flags', it becomes the
>>>>> default
>>>>> +         #   values for the dirfd and flags arguments when
>>>>> canonicalizing.
>>>>> ++        # * If the name ends in dirfd, we do the same fancy stuff.
>>>>> +         # * Note that the "comments" field (/* ... */ after the decl)
>>>>> can
>>>>> +         #   override the dirfd/flags values.
>>>>> +         self.args = ArgumentList(bits.group(2))
>>>>> +@@ -246,7 +248,9 @@ class Function:
>>>>> +             # ignore varargs, they never get these special treatments
>>>>> +             if arg.vararg:
>>>>> +                 pass
>>>>> +-            elif arg.name == 'dirfd':
>>>>> ++            elif arg.name[-5:] == 'dirfd':
>>>>> ++                if len(arg.name)>     5:
>>>>> ++                    self.dirfds[arg.name[:-5]] = True
>>>>> +                 self.dirfd = 'dirfd'
>>>>> +             elif arg.name == 'flags':
>>>>> +                 self.flags = 'flags'
>>>>> +@@ -325,9 +329,13 @@ class Function:
>>>>> +         """create/allocate canonical paths"""
>>>>> +         alloc_paths = []
>>>>> +         for path in self.paths_to_munge:
>>>>> ++            prefix = path[:-4]
>>>>> ++          if not prefix in self.dirfds:
>>>>> ++                prefix = ''
>>>>> ++            print "for path %s: prefix<%s>" % ( path, prefix )
>>>>> +             alloc_paths.append(
>>>>> +-                "%s = pseudo_root_path(__func__, __LINE__, %s, %s,
>>>>> %s);"
>>>>> %
>>>>> +-                (path, self.dirfd, path, self.flags))
>>>>> ++                "%s = pseudo_root_path(__func__, __LINE__, %s%s, %s,
>>>>> %s);" %
>>>>> ++                (path, prefix, self.dirfd, path, self.flags))
>>>>> +         return "\n\t\t\t".join(alloc_paths)
>>>>> +
>>>>> +     def free_paths(self):
>>>>> +diff --git a/ports/unix/guts/renameat.c b/ports/unix/guts/renameat.c
>>>>> +index c8203b7..f13cd1e 100644
>>>>> +--- a/ports/unix/guts/renameat.c
>>>>> ++++ b/ports/unix/guts/renameat.c
>>>>> +@@ -1,15 +1,111 @@
>>>>> + /*
>>>>> +- * Copyright (c) 2008-2010 Wind River Systems; see
>>>>> ++ * Copyright (c) 2008-2012 Wind River Systems; see
>>>>> +  * guts/COPYRIGHT for information.
>>>>> +  *
>>>>> +  * static int
>>>>> +  * wrap_renameat(int olddirfd, const char *oldpath, int newdirfd,
>>>>> const
>>>>> char *newpath) {
>>>>> +  *    int rc = -1;
>>>>> +  */
>>>>> ++      pseudo_msg_t *msg;
>>>>> ++      struct stat oldbuf, newbuf;
>>>>> ++      int oldrc, newrc;
>>>>> ++      int save_errno;
>>>>> ++      int old_db_entry = 0;
>>>>> +
>>>>> +-      pseudo_diag("help! unimplemented renameat [%s ->     %s].\n",
>>>>> oldpath, newpath);
>>>>> ++      pseudo_debug(2, "renameat: %d,%s->%d,%s\n",
>>>>> ++              olddirfd, oldpath ? oldpath : "<nil>",
>>>>> ++              newdirfd, newpath ? newpath : "<nil>");
>>>>> ++
>>>>> ++#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
>>>>> ++      if (olddirfd != AT_FDCWD || newdirfd != AT_FDCWD) {
>>>>> ++              errno = ENOSYS;
>>>>> ++              return -1;
>>>>> ++      }
>>>>> ++#endif
>>>>> ++
>>>>> ++      if (!oldpath || !newpath) {
>>>>> ++              errno = EFAULT;
>>>>> ++              return -1;
>>>>> ++      }
>>>>> ++
>>>>> ++      save_errno = errno;
>>>>> ++
>>>>> ++#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
>>>>> ++      newrc = real_lstat(newpath,&newbuf);
>>>>> ++      oldrc = real_lstat(oldpath,&oldbuf);
>>>>> ++#else
>>>>> ++      oldrc = real___fxstatat(_STAT_VER, olddirfd, oldpath,&oldbuf,
>>>>> AT_SYMLINK_NOFOLLOW);
>>>>> ++      newrc = real___fxstatat(_STAT_VER, newdirfd, newpath,&newbuf,
>>>>> AT_SYMLINK_NOFOLLOW);
>>>>>
>>>>> ++#endif
>>>>> ++
>>>>> ++      errno = save_errno;
>>>>> ++
>>>>> ++      /* newpath must be removed. */
>>>>> ++      /* as with unlink, we have to mark that the file may get
>>>>> deleted
>>>>> */
>>>>> ++      msg = pseudo_client_op_plain(OP_MAY_UNLINK, 0, -1, newdirfd,
>>>>> newpath, newrc ? NULL :&newbuf);
>>>>> ++      if (msg&&     msg->result == RESULT_SUCCEED)
>>>>>
>>>>> ++              old_db_entry = 1;
>>>>> +       rc = real_renameat(olddirfd, oldpath, newdirfd, newpath);
>>>>> ++      save_errno = errno;
>>>>> ++      if (old_db_entry) {
>>>>> ++              if (rc == -1) {
>>>>> ++                      /* since we failed, that wasn't really unlinked
>>>>> --
>>>>> put
>>>>> ++                       * it back.
>>>>> ++                       */
>>>>> ++                      pseudo_client_op_plain(OP_CANCEL_UNLINK, 0, -1,
>>>>> newdirfd, newpath,&newbuf);
>>>>> ++              } else {
>>>>> ++                      /* confirm that the file was removed */
>>>>> ++                      pseudo_client_op_plain(OP_DID_UNLINK, 0, -1,
>>>>> newdirfd, newpath,&newbuf);
>>>>> ++              }
>>>>> ++      }
>>>>> ++      if (rc == -1) {
>>>>> ++              /* and we're done. */
>>>>> ++              errno = save_errno;
>>>>> ++              return rc;
>>>>> ++      }
>>>>> ++      save_errno = errno;
>>>>> ++      /* nothing to do for a "rename" of a link to itself */
>>>>> ++      if (newrc != -1&&     oldrc != -1&&
>>>>> ++          newbuf.st_dev == oldbuf.st_dev&&
>>>>> ++          newbuf.st_ino == oldbuf.st_ino) {
>>>>> ++              return rc;
>>>>> ++        }
>>>>> ++
>>>>> ++      /* rename(3) is not mv(1).  rename(file, dir) fails; you must
>>>>> provide
>>>>> ++       * the corrected path yourself.  You can rename over a
>>>>> directory
>>>>> only
>>>>> ++       * if the source is a directory.  Symlinks are simply removed.
>>>>> ++       *
>>>>> ++       * If we got here, the real rename call succeeded.  That means
>>>>> newpath
>>>>> ++       * has been unlinked and oldpath has been linked to it.
>>>>> ++       *
>>>>> ++       * There are a ton of special cases to error check.  I don't
>>>>> check
>>>>> ++       * for any of them, because in every such case, the underlying
>>>>> rename
>>>>> ++       * failed, and there is nothing to do.
>>>>> ++       * The only tricky part is that, because we used to ignore
>>>>> symlinks,
>>>>> ++       * we may have to rename or remove directory trees even though
>>>>> in
>>>>> ++       * theory rename can never destroy a directory tree.
>>>>> ++       */
>>>>> ++      if (!old_db_entry) {
>>>>> ++              /* create an entry under the old name, which will then
>>>>> be
>>>>> ++               * renamed; this way, children would get renamed too,
>>>>> if
>>>>> there
>>>>> ++               * were any.
>>>>> ++               */
>>>>> ++              if (newrc == 0) {
>>>>> ++                      if (newbuf.st_dev != oldbuf.st_dev) {
>>>>> ++                              oldbuf.st_dev = newbuf.st_dev;
>>>>> ++                              oldbuf.st_ino = newbuf.st_ino;
>>>>> ++                      }
>>>>> ++              }
>>>>> ++              pseudo_debug(1, "creating new '%s' [%llu] to rename\n",
>>>>> ++                      oldpath, (unsigned long long) oldbuf.st_ino);
>>>>> ++              pseudo_client_op_plain(OP_LINK, 0, -1, olddirfd,
>>>>> oldpath,&oldbuf);
>>>>> ++      }
>>>>> ++      /* special case: use 'fd' for olddirfd, because
>>>>> ++       * we know it has no other meaning for RENAME
>>>>> ++       */
>>>>> ++      pseudo_client_op_plain(OP_RENAME, 0, olddirfd, newdirfd,
>>>>> newpath,&oldbuf, oldpath);
>>>>>
>>>>> +
>>>>> ++      errno = save_errno;
>>>>> + /*    return rc;
>>>>> +  * }
>>>>> +  */
>>>>> +diff --git a/pseudo_client.c b/pseudo_client.c
>>>>> +index 48607c2..4a30420 100644
>>>>> +--- a/pseudo_client.c
>>>>> ++++ b/pseudo_client.c
>>>>> +@@ -988,6 +988,8 @@ base_path(int dirfd, const char *path, int
>>>>> leave_last) {
>>>>> +               if (dirfd != -1&&     dirfd != AT_FDCWD) {
>>>>>
>>>>> +                       if (dirfd>= 0) {
>>>>> +                               basepath = fd_path(dirfd);
>>>>> ++                      }
>>>>> ++                      if (basepath) {
>>>>> +                               baselen = strlen(basepath);
>>>>> +                       } else {
>>>>> +                               pseudo_diag("got *at() syscall for
>>>>> unknown
>>>>> directory, fd %d\n", dirfd);
>>>>> +@@ -1128,7 +1130,10 @@ pseudo_client_op(pseudo_op_t op, int access,
>>>>> int
>>>>> fd, int dirfd, const char *path
>>>>> +       if (path) {
>>>>> +               pseudo_debug(2, " %s", path);
>>>>> +       }
>>>>> +-      if (fd != -1) {
>>>>> ++      /* for OP_RENAME in renameat, "fd" is also used for the
>>>>> ++       * second dirfd.
>>>>> ++       */
>>>>> ++      if (fd != -1&&     op != OP_RENAME) {
>>>>>
>>>>> +               pseudo_debug(2, " [fd %d]", fd);
>>>>> +       }
>>>>> +       if (buf) {
>>>>> diff --git a/meta/recipes-devtools/pseudo/pseudo_1.2.bb
>>>>> b/meta/recipes-devtools/pseudo/pseudo_1.2.bb
>>>>> index f2ebc22..04bcbce 100644
>>>>> --- a/meta/recipes-devtools/pseudo/pseudo_1.2.bb
>>>>> +++ b/meta/recipes-devtools/pseudo/pseudo_1.2.bb
>>>>> @@ -1,10 +1,12 @@
>>>>>   require pseudo.inc
>>>>>
>>>>> -PR = "r4"
>>>>> +PR = "r5"
>>>>>
>>>>>   SRC_URI =
>>>>> "http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2 \
>>>>>              file://oe-config.patch \
>>>>> -           file://static_sqlite.patch"
>>>>> +           file://static_sqlite.patch \
>>>>> +           file://opendir.patch \
>>>>> +           file://renameat.patch"
>>>>>
>>>>>   SRC_URI[md5sum] = "a2819084bab7e991f06626d02cf55048"
>>>>>   SRC_URI[sha256sum] =
>>>>> "4749a22df687f44d24c26e97170d4781a1bd52d5ee092364a40877e4d96ff058"
>>>
>>>
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-08  0:19           ` Saul Wold
@ 2012-02-08  2:06             ` Khem Raj
  2012-02-11  5:05               ` Steve Sakoman
  0 siblings, 1 reply; 70+ messages in thread
From: Khem Raj @ 2012-02-08  2:06 UTC (permalink / raw)
  To: Saul Wold; +Cc: Patches and discussions about the oe-core layer

On Tue, Feb 7, 2012 at 4:19 PM, Saul Wold <sgw@linux.intel.com> wrote:
>
> Can you verify if you have a .la file in you sysroot?


No its not there and thats the point we probably should learn to live
with out it
actually one of radical ideas I have is to get rid of all .la files in
OE completely
right now python modules e.g.  have them and thats wrong since they never use it
and there are other packages like that.



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune
  2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
                   ` (19 preceding siblings ...)
  2012-02-06  6:40 ` [PATCH 20/20] mirrors.bbclass: Add yp.org and oe.org to fallback mirrors Khem Raj
@ 2012-02-08  4:12 ` Saul Wold
  2012-02-20 12:11   ` Koen Kooi
  20 siblings, 1 reply; 70+ messages in thread
From: Saul Wold @ 2012-02-08  4:12 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 02/05/2012 10:40 PM, Khem Raj wrote:
> I have added few more patches on top
>
> Renaming POKY to CORE-IMAGE
> Adding yp.org as fallback mirror for oe-core
> build fixes needed to get going on ubuntu 12.04
>
> All qemu core-image-sato builds (from scratch) and boots on both eglibc/uclibc
> with this set
>
> The following changes since commit 18d9fcfc4bc4b01f73e89f3b988c9d3d543c7705:
>
>    libzypp: add missing runtime dependences on gzip and gnupg (2012-02-03 17:23:28 +0000)
>
> are available in the git repository at:
>    git://git.openembedded.org/openembedded-core-contrib kraj/misc
>    http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/misc
>
> Khem Raj (20):
>    task-core-tools: Divide it into 3 recipes
>    Enable options needed for ltp to compile

Merged into OE-core

>    arm/tune: Correct the logic which added thumb-interwork to OVERRIDES
>    tunearch/arm: Differentiate between thumb code generation and thumb
>      capability
>    tune-thumb.inc: Delete
>    uclibc: Get the thumb features from tune flags

Further review is needed on these

>    kmod: Add recipes
>    module-init-tools: Delete
>    image.bbclass,kernel.bbclass: Use kmod-native instead of
>      module-init-tools-cross
Withdrawn for now

>    pseudo: Wrap renameat and opendir
Merged

>    uclibc: Upgrade recipes from 0.9.32 ->  0.9.33
Pending (has patch updates now, in my next pull set)

>    zlib: Upgrade 1.2.5 ->  1.2.6
Pending build issue with zlib.la

>    runqemu-internal: qemuarm can handle 256M
>    gconf,consolekit: Avoid polkit when compiling with uclibc
>    python: Fix build failure of python-elementtree on x86_64
>    libdrm: Fix build failure unearthed by uclibc
>    classes,recipes: Replace POKY_* with CORE_IMAGE_*
>    libx11: Backport _XGetRequest API
>    gcc-cross-testing: Fix evaluation of user and target name
>    mirrors.bbclass: Add yp.org and oe.org to fallback mirrors
>
Mergeed the last set

Thanks
	Sau!


>   meta/classes/core-image.bbclass                    |    8 +-
>   meta/classes/image.bbclass                         |    2 +-
>   meta/classes/kernel.bbclass                        |    9 +-
>   meta/classes/mirrors.bbclass                       |   21 +-
>   .../conf/distro/include/distro_tracking_fields.inc |   26 +-
>   meta/conf/distro/include/tcmode-default.inc        |    2 +-
>   .../conf/machine/include/arm/feature-arm-thumb.inc |   20 +-
>   meta/conf/machine/include/tune-strongarm1100.inc   |    4 +-
>   meta/conf/machine/include/tune-thumb.inc           |   32 --
>   meta/conf/multilib.conf                            |    4 +-
>   meta/recipes-core/images/core-image-minimal.bb     |    2 +-
>   meta/recipes-core/images/self-hosted-image.bb      |    2 +-
>   meta/recipes-core/tasks/task-core-tools-debug.bb   |   26 ++
>   ...sk-core-tools.bb =>  task-core-tools-profile.bb} |   81 +---
>   .../recipes-core/tasks/task-core-tools-testapps.bb |   46 ++
>   ...rch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch |   29 --
>   ...fd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch |   33 --
>   .../uclibc-0.9.32/detect-bx-availibility.patch     |   75 ----
>   .../uclibc/uclibc-0.9.32/epoll-asm-fix.patch       |   25 --
>   .../uclibc/uclibc-0.9.32/include-arm-asm.h.patch   |   65 ---
>   .../uclibc/uclibc-0.9.32/mount.h-update.patch      |   85 ----
>   .../uclibc-0.9.32/remove-eabi-oabi-selection.patch |   91 ----
>   .../uclibc-0.9.32/remove-sub-arch-variants.patch   |  215 ---------
>   .../uclibc/uclibc-0.9.32/rtld_no.patch             |  215 ---------
>   .../uclibc/uclibc-0.9.32/select-force-thumb.patch  |  172 --------
>   .../uclibc/uclibc-0.9.32/sync_file_range2.patch    |   47 --
>   .../uclibc-0.9.32/transform-eabi-oabi-choice.patch |   71 ---
>   .../uclibc-0.9.32/uclibc-arm-ftruncate64.patch     |   13 -
>   .../uclibc-0.9.32/uclibc_scheduler_update.patch    |  455 --------------------
>   ...rr-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch |   32 ++
>   ...fstat-Use-64bit-version-of-syscall-if-ava.patch |  177 ++++++++
>   .../argp-headers.patch                             |    2 +
>   .../argp-support.patch                             |    3 +
>   .../compile-arm-fork-with-O2.patch                 |    2 +-
>   .../uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch    |   25 ++
>   meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch  |   37 ++
>   ...so_use_arm_dl_linux_resolve_in_thumb_mode.patch |    6 +
>   .../libc_symbols_include_bits_uclibc_config.patch  |   19 +
>   .../mips/uClibc.machine                            |    0
>   .../orign_path.patch                               |   94 ++--
>   .../powerpc_copysignl.patch                        |    6 +
>   .../remove_attribute_optimize_Os.patch             |   17 +-
>   .../{uclibc-0.9.32 =>  uclibc-0.9.33}/uClibc.distro |    8 +-
>   .../uClibc.machine                                 |    0
>   .../uclibc-execvpe.patch                           |    3 +
>   .../uclibc_enable_log2_test.patch                  |    5 +
>   meta/recipes-core/uclibc/uclibc-config.inc         |    4 +-
>   meta/recipes-core/uclibc/uclibc-git/uClibc.distro  |    5 +
>   ...-initial_0.9.32.bb =>  uclibc-initial_0.9.33.bb} |    0
>   meta/recipes-core/uclibc/uclibc.inc                |    1 -
>   .../uclibc/{uclibc_0.9.32.bb =>  uclibc_0.9.33.bb}  |   26 +-
>   meta/recipes-core/zlib/files/Makefile.am           |    9 -
>   meta/recipes-core/zlib/files/configure.ac          |   48 --
>   .../zlib/zlib-1.2.5/fix.inverted.LFS.logic.patch   |   20 -
>   meta/recipes-core/zlib/zlib_1.2.5.bb               |   41 --
>   meta/recipes-core/zlib/zlib_1.2.6.bb               |   26 ++
>   meta/recipes-devtools/gcc/gcc-cross.inc            |    6 +-
>   meta/recipes-devtools/pseudo/pseudo/opendir.patch  |   92 ++++
>   meta/recipes-devtools/pseudo/pseudo/renameat.patch |  227 ++++++++++
>   meta/recipes-devtools/pseudo/pseudo_1.2.bb         |    6 +-
>   .../python/python/host_include_contamination.patch |   27 ++
>   meta/recipes-devtools/python/python_2.7.2.bb       |    3 +-
>   meta/recipes-extended/images/core-image-basic.bb   |    2 +-
>   meta/recipes-extended/images/core-image-lsb-dev.bb |    2 +-
>   meta/recipes-extended/images/core-image-lsb-sdk.bb |    2 +-
>   meta/recipes-extended/images/core-image-lsb.bb     |    2 +-
>   meta/recipes-gnome/gnome/gconf_3.2.3.bb            |    9 +-
>   .../drm/libdrm/GNU_SOURCE_definition.patch         |   30 ++
>   meta/recipes-graphics/drm/libdrm_2.4.30.bb         |    6 +-
>   meta/recipes-graphics/images/core-image-clutter.bb |    2 +-
>   .../images/core-image-gtk-directfb.bb              |    2 +-
>   ...quest-as-substitute-for-GetReq-GetReqExtr.patch |  137 ++++++
>   meta/recipes-graphics/xorg-lib/libx11_1.4.4.bb     |    3 +
>   meta/recipes-kernel/kmod/kmod-native_git.bb        |   14 +
>   meta/recipes-kernel/kmod/kmod.inc                  |   31 ++
>   meta/recipes-kernel/kmod/kmod/depmod-search.conf   |    6 +
>   meta/recipes-kernel/kmod/kmod_git.bb               |   62 +++
>   .../module-init-tools/files/disable_man.patch      |   25 --
>   .../files/grab_module_memset.patch                 |   21 -
>   .../files/modutils_extension.patch                 |   25 --
>   .../module-init-tools-cross_3.16.bb                |   10 -
>   .../module-init-tools/module-init-tools.inc        |   24 -
>   .../module-init-tools/module-init-tools_3.16.bb    |   42 --
>   .../files/PD.patch                                 |    0
>   .../files/modutils.sh                              |    0
>   .../modutils-initscripts.bb                        |    0
>   meta/recipes-qt/images/qt4e-demo-image.bb          |    2 +-
>   .../recipes-support/consolekit/consolekit_0.4.5.bb |   11 +-
>   scripts/runqemu-internal                           |   13 +-
>   89 files changed, 1257 insertions(+), 2079 deletions(-)
>   delete mode 100644 meta/conf/machine/include/tune-thumb.inc
>   create mode 100644 meta/recipes-core/tasks/task-core-tools-debug.bb
>   rename meta/recipes-core/tasks/{task-core-tools.bb =>  task-core-tools-profile.bb} (48%)
>   create mode 100644 meta/recipes-core/tasks/task-core-tools-testapps.bb
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/detect-bx-availibility.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/epoll-asm-fix.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/include-arm-asm.h.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/mount.h-update.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/remove-eabi-oabi-selection.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/rtld_no.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/select-force-thumb.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/sync_file_range2.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/transform-eabi-oabi-choice.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/uclibc-arm-ftruncate64.patch
>   delete mode 100644 meta/recipes-core/uclibc/uclibc-0.9.32/uclibc_scheduler_update.patch
>   create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/0001-Declare-__err-and-pass-it-to-INTERNAL_SYSCALL_NCS-so.patch
>   create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/0001-lstat-stat-fstat-Use-64bit-version-of-syscall-if-ava.patch
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/argp-headers.patch (99%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/argp-support.patch (99%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/compile-arm-fork-with-O2.patch (97%)
>   create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch
>   create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/dup3.patch
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch (86%)
>   create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/libc_symbols_include_bits_uclibc_config.patch
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/mips/uClibc.machine (100%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/orign_path.patch (64%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/powerpc_copysignl.patch (96%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/remove_attribute_optimize_Os.patch (93%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/uClibc.distro (96%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/uClibc.machine (100%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/uclibc-execvpe.patch (99%)
>   rename meta/recipes-core/uclibc/{uclibc-0.9.32 =>  uclibc-0.9.33}/uclibc_enable_log2_test.patch (81%)
>   rename meta/recipes-core/uclibc/{uclibc-initial_0.9.32.bb =>  uclibc-initial_0.9.33.bb} (100%)
>   rename meta/recipes-core/uclibc/{uclibc_0.9.32.bb =>  uclibc_0.9.33.bb} (45%)
>   delete mode 100644 meta/recipes-core/zlib/files/Makefile.am
>   delete mode 100644 meta/recipes-core/zlib/files/configure.ac
>   delete mode 100644 meta/recipes-core/zlib/zlib-1.2.5/fix.inverted.LFS.logic.patch
>   delete mode 100644 meta/recipes-core/zlib/zlib_1.2.5.bb
>   create mode 100644 meta/recipes-core/zlib/zlib_1.2.6.bb
>   create mode 100644 meta/recipes-devtools/pseudo/pseudo/opendir.patch
>   create mode 100644 meta/recipes-devtools/pseudo/pseudo/renameat.patch
>   create mode 100644 meta/recipes-devtools/python/python/host_include_contamination.patch
>   create mode 100644 meta/recipes-graphics/drm/libdrm/GNU_SOURCE_definition.patch
>   create mode 100644 meta/recipes-graphics/xorg-lib/libx11-1.4.4/0001-Add-_XGetRequest-as-substitute-for-GetReq-GetReqExtr.patch
>   create mode 100644 meta/recipes-kernel/kmod/kmod-native_git.bb
>   create mode 100644 meta/recipes-kernel/kmod/kmod.inc
>   create mode 100644 meta/recipes-kernel/kmod/kmod/depmod-search.conf
>   create mode 100644 meta/recipes-kernel/kmod/kmod_git.bb
>   delete mode 100644 meta/recipes-kernel/module-init-tools/files/disable_man.patch
>   delete mode 100644 meta/recipes-kernel/module-init-tools/files/grab_module_memset.patch
>   delete mode 100644 meta/recipes-kernel/module-init-tools/files/modutils_extension.patch
>   delete mode 100644 meta/recipes-kernel/module-init-tools/module-init-tools-cross_3.16.bb
>   delete mode 100644 meta/recipes-kernel/module-init-tools/module-init-tools.inc
>   delete mode 100644 meta/recipes-kernel/module-init-tools/module-init-tools_3.16.bb
>   rename meta/recipes-kernel/{module-init-tools =>  modutils-initscripts}/files/PD.patch (100%)
>   rename meta/recipes-kernel/{module-init-tools =>  modutils-initscripts}/files/modutils.sh (100%)
>   rename meta/recipes-kernel/{module-init-tools =>  modutils-initscripts}/modutils-initscripts.bb (100%)
>



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-08  2:06             ` Khem Raj
@ 2012-02-11  5:05               ` Steve Sakoman
  2012-02-11  5:09                 ` Koen Kooi
  0 siblings, 1 reply; 70+ messages in thread
From: Steve Sakoman @ 2012-02-11  5:05 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Tue, Feb 7, 2012 at 6:06 PM, Khem Raj <raj.khem@gmail.com> wrote:
> On Tue, Feb 7, 2012 at 4:19 PM, Saul Wold <sgw@linux.intel.com> wrote:
>>
>> Can you verify if you have a .la file in you sysroot?
>
>
> No its not there and thats the point we probably should learn to live
> with out it
> actually one of radical ideas I have is to get rid of all .la files in
> OE completely
> right now python modules e.g.  have them and thats wrong since they never use it
> and there are other packages like that.

FWIW, after a pull of oe-core today that included the zlib update I am
getting similar failures on meta/recipes-gnome/gtk+/gtk+_2.24.8.bb:

| /bin/grep: /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la:
No such file or directory
| /bin/sed: can't read
/media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la: No such
file or directory
| arm-poky-linux-gnueabi-libtool: link:
`/media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la' is not a
valid libtool archive
| make[4]: *** [libgdk-x11-2.0.la] Error 1

Steve



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-11  5:05               ` Steve Sakoman
@ 2012-02-11  5:09                 ` Koen Kooi
  2012-02-11  8:15                   ` Khem Raj
  2012-02-13  7:48                   ` Martin Jansa
  0 siblings, 2 replies; 70+ messages in thread
From: Koen Kooi @ 2012-02-11  5:09 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer


Op 11 feb. 2012, om 06:05 heeft Steve Sakoman het volgende geschreven:

> On Tue, Feb 7, 2012 at 6:06 PM, Khem Raj <raj.khem@gmail.com> wrote:
>> On Tue, Feb 7, 2012 at 4:19 PM, Saul Wold <sgw@linux.intel.com> wrote:
>>> 
>>> Can you verify if you have a .la file in you sysroot?
>> 
>> 
>> No its not there and thats the point we probably should learn to live
>> with out it
>> actually one of radical ideas I have is to get rid of all .la files in
>> OE completely
>> right now python modules e.g.  have them and thats wrong since they never use it
>> and there are other packages like that.
> 
> FWIW, after a pull of oe-core today that included the zlib update I am
> getting similar failures on meta/recipes-gnome/gtk+/gtk+_2.24.8.bb:
> 
> | /bin/grep: /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la:
> No such file or directory
> | /bin/sed: can't read
> /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la: No such
> file or directory
> | arm-poky-linux-gnueabi-libtool: link:
> `/media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la' is not a
> valid libtool archive
> | make[4]: *** [libgdk-x11-2.0.la] Error 1


It works if you -c cleansstate on a bunch of recipes, pango, cairo, fontconfig, gtk+, etc


^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-11  5:09                 ` Koen Kooi
@ 2012-02-11  8:15                   ` Khem Raj
  2012-02-11  8:19                     ` Khem Raj
  2012-02-11  8:26                     ` Koen Kooi
  2012-02-13  7:48                   ` Martin Jansa
  1 sibling, 2 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-11  8:15 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Fri, Feb 10, 2012 at 9:09 PM, Koen Kooi <koen@dominion.thruhere.net> wrote:
>
> Op 11 feb. 2012, om 06:05 heeft Steve Sakoman het volgende geschreven:
>
>> On Tue, Feb 7, 2012 at 6:06 PM, Khem Raj <raj.khem@gmail.com> wrote:
>>> On Tue, Feb 7, 2012 at 4:19 PM, Saul Wold <sgw@linux.intel.com> wrote:
>>>>
>>>> Can you verify if you have a .la file in you sysroot?
>>>
>>>
>>> No its not there and thats the point we probably should learn to live
>>> with out it
>>> actually one of radical ideas I have is to get rid of all .la files in
>>> OE completely
>>> right now python modules e.g.  have them and thats wrong since they never use it
>>> and there are other packages like that.
>>
>> FWIW, after a pull of oe-core today that included the zlib update I am
>> getting similar failures on meta/recipes-gnome/gtk+/gtk+_2.24.8.bb:
>>
>> | /bin/grep: /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la:
>> No such file or directory
>> | /bin/sed: can't read
>> /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la: No such
>> file or directory
>> | arm-poky-linux-gnueabi-libtool: link:
>> `/media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la' is not a
>> valid libtool archive
>> | make[4]: *** [libgdk-x11-2.0.la] Error 1
>
>
> It works if you -c cleansstate on a bunch of recipes, pango, cairo, fontconfig, gtk+, etc

yeah libtool is very hard to get rid of see how many of files in your
sysroot has zlib.la added to other .la files. You need to clean all
those

I wrote a small script which grepped oe-core for occurrence of all
zlib.la in *.la files in sysroot
and then dumps the ipks content to figure out which package provided
that .la then bumped PRs of those recipes which were providing those
ipks.
unfortunately this script was in tmdir and got deleted.
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-11  8:15                   ` Khem Raj
@ 2012-02-11  8:19                     ` Khem Raj
  2012-02-11  8:26                     ` Koen Kooi
  1 sibling, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-11  8:19 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Sat, Feb 11, 2012 at 12:15 AM, Khem Raj <raj.khem@gmail.com> wrote:
> On Fri, Feb 10, 2012 at 9:09 PM, Koen Kooi <koen@dominion.thruhere.net> wrote:
>>
>> Op 11 feb. 2012, om 06:05 heeft Steve Sakoman het volgende geschreven:
>>
>>> On Tue, Feb 7, 2012 at 6:06 PM, Khem Raj <raj.khem@gmail.com> wrote:
>>>> On Tue, Feb 7, 2012 at 4:19 PM, Saul Wold <sgw@linux.intel.com> wrote:
>>>>>
>>>>> Can you verify if you have a .la file in you sysroot?
>>>>
>>>>
>>>> No its not there and thats the point we probably should learn to live
>>>> with out it
>>>> actually one of radical ideas I have is to get rid of all .la files in
>>>> OE completely
>>>> right now python modules e.g.  have them and thats wrong since they never use it
>>>> and there are other packages like that.
>>>
>>> FWIW, after a pull of oe-core today that included the zlib update I am
>>> getting similar failures on meta/recipes-gnome/gtk+/gtk+_2.24.8.bb:
>>>
>>> | /bin/grep: /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la:
>>> No such file or directory
>>> | /bin/sed: can't read
>>> /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la: No such
>>> file or directory
>>> | arm-poky-linux-gnueabi-libtool: link:
>>> `/media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la' is not a
>>> valid libtool archive
>>> | make[4]: *** [libgdk-x11-2.0.la] Error 1
>>
>>
>> It works if you -c cleansstate on a bunch of recipes, pango, cairo, fontconfig, gtk+, etc
>
> yeah libtool is very hard to get rid of see how many of files in your
> sysroot has zlib.la added to other .la files. You need to clean all
> those
>
> I wrote a small script which grepped oe-core for occurrence of all
> zlib.la in *.la files in sysroot
> and then dumps the ipks content to figure out which package provided
> that .la then bumped PRs of those recipes which were providing those
> ipks.
> unfortunately this script was in tmdir and got deleted.

ah screen saved a snapshot here is the script

sysroot=/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemux86
deploy="/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/deploy/ipk/i586
/home/kraj/work/angstrom/sources/
openembedded-core/build/tmp-eglibc/deploy/ipk/qemux86"

las=$(find $sysroot -name *.la|xargs grep -Hns libz.la | cut -d':' -f 1)
for f in $las
do
    ff=`basename $f`
        for fff in $(find $deploy -name '*.ipk')
        do
            dpkg-deb -c $fff | grep $ff >& /dev/null
            if [ $? = 0 ]
            then
                ls $fff
                break
            fi
        done
done



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-11  8:15                   ` Khem Raj
  2012-02-11  8:19                     ` Khem Raj
@ 2012-02-11  8:26                     ` Koen Kooi
  1 sibling, 0 replies; 70+ messages in thread
From: Koen Kooi @ 2012-02-11  8:26 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer
  Cc: Patches and discussions about the oe-core layer



Op 11 feb. 2012 om 09:15 heeft Khem Raj <raj.khem@gmail.com> het volgende geschreven:

> On Fri, Feb 10, 2012 at 9:09 PM, Koen Kooi <koen@dominion.thruhere.net> wrote:
>> 
>> Op 11 feb. 2012, om 06:05 heeft Steve Sakoman het volgende geschreven:
>> 
>>> On Tue, Feb 7, 2012 at 6:06 PM, Khem Raj <raj.khem@gmail.com> wrote:
>>>> On Tue, Feb 7, 2012 at 4:19 PM, Saul Wold <sgw@linux.intel.com> wrote:
>>>>> 
>>>>> Can you verify if you have a .la file in you sysroot?
>>>> 
>>>> 
>>>> No its not there and thats the point we probably should learn to live
>>>> with out it
>>>> actually one of radical ideas I have is to get rid of all .la files in
>>>> OE completely
>>>> right now python modules e.g.  have them and thats wrong since they never use it
>>>> and there are other packages like that.
>>> 
>>> FWIW, after a pull of oe-core today that included the zlib update I am
>>> getting similar failures on meta/recipes-gnome/gtk+/gtk+_2.24.8.bb:
>>> 
>>> | /bin/grep: /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la:
>>> No such file or directory
>>> | /bin/sed: can't read
>>> /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la: No such
>>> file or directory
>>> | arm-poky-linux-gnueabi-libtool: link:
>>> `/media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la' is not a
>>> valid libtool archive
>>> | make[4]: *** [libgdk-x11-2.0.la] Error 1
>> 
>> 
>> It works if you -c cleansstate on a bunch of recipes, pango, cairo, fontconfig, gtk+, etc
> 
> yeah libtool is very hard to get rid of see how many of files in your
> sysroot has zlib.la added to other .la files. You need to clean all
> those
> 
> I wrote a small script which grepped oe-core for occurrence of all
> zlib.la in *.la files in sysroot
> and then dumps the ipks content to figure out which package provided
> that .la then bumped PRs of those recipes which were providing those
> ipks.
> unfortunately this script was in tmdir and got deleted.

rpmdebs Will break during do_rootfs, no time to look into that, ipk works



>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-11  5:09                 ` Koen Kooi
  2012-02-11  8:15                   ` Khem Raj
@ 2012-02-13  7:48                   ` Martin Jansa
  2012-02-13 13:23                     ` Steve Sakoman
  1 sibling, 1 reply; 70+ messages in thread
From: Martin Jansa @ 2012-02-13  7:48 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 2262 bytes --]

On Sat, Feb 11, 2012 at 06:09:52AM +0100, Koen Kooi wrote:
> 
> Op 11 feb. 2012, om 06:05 heeft Steve Sakoman het volgende geschreven:
> 
> > On Tue, Feb 7, 2012 at 6:06 PM, Khem Raj <raj.khem@gmail.com> wrote:
> >> On Tue, Feb 7, 2012 at 4:19 PM, Saul Wold <sgw@linux.intel.com> wrote:
> >>> 
> >>> Can you verify if you have a .la file in you sysroot?
> >> 
> >> 
> >> No its not there and thats the point we probably should learn to live
> >> with out it
> >> actually one of radical ideas I have is to get rid of all .la files in
> >> OE completely
> >> right now python modules e.g.  have them and thats wrong since they never use it
> >> and there are other packages like that.
> > 
> > FWIW, after a pull of oe-core today that included the zlib update I am
> > getting similar failures on meta/recipes-gnome/gtk+/gtk+_2.24.8.bb:
> > 
> > | /bin/grep: /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la:
> > No such file or directory
> > | /bin/sed: can't read
> > /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la: No such
> > file or directory
> > | arm-poky-linux-gnueabi-libtool: link:
> > `/media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la' is not a
> > valid libtool archive
> > | make[4]: *** [libgdk-x11-2.0.la] Error 1
> 
> 
> It works if you -c cleansstate on a bunch of recipes, pango, cairo, fontconfig, gtk+, etc

list for me

evas ecore fsogsmd pidgin elementary fsodeviced fsoaudiod subversion
python-evas libsoup-2.4 libeflvala efreet fsotdld poppler fsosystemd 
fsousaged fsonetworkd gtk+ python-gst emotion mysql5 libfsotransport
libfsobasics gd libgsm0710mux gst-plugins-base iksemel fsodatad
webkit-gtk fsodatad epdf librsvg curl libsexy libfsosystem orbit2
libfso-glib pango eeze libshr-glib farsight2 id3lib gst-plugins-good 
gst-plugins-ugly libnice libgpewidget matchbox-panel-2 edbus vte ethumb
glib-networking libgisi libfsoresource edje libfsoframework gconf file
libglade json-glib ethumb libcroco gnome-keyring libsdl-image neon
qt4-x11-free python-pygobject msmcomm-specs gnome-keyring libphone-ui
shr-wizard matchbox-keyboard matchbox-panel-2

And this isn't even on fully built feed :/.

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-13  7:48                   ` Martin Jansa
@ 2012-02-13 13:23                     ` Steve Sakoman
  2012-02-13 13:33                       ` Martin Jansa
                                         ` (3 more replies)
  0 siblings, 4 replies; 70+ messages in thread
From: Steve Sakoman @ 2012-02-13 13:23 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Sun, Feb 12, 2012 at 11:48 PM, Martin Jansa <martin.jansa@gmail.com> wrote:
> On Sat, Feb 11, 2012 at 06:09:52AM +0100, Koen Kooi wrote:
>>
>> Op 11 feb. 2012, om 06:05 heeft Steve Sakoman het volgende geschreven:
>>
>> > On Tue, Feb 7, 2012 at 6:06 PM, Khem Raj <raj.khem@gmail.com> wrote:
>> >> On Tue, Feb 7, 2012 at 4:19 PM, Saul Wold <sgw@linux.intel.com> wrote:
>> >>>
>> >>> Can you verify if you have a .la file in you sysroot?
>> >>
>> >>
>> >> No its not there and thats the point we probably should learn to live
>> >> with out it
>> >> actually one of radical ideas I have is to get rid of all .la files in
>> >> OE completely
>> >> right now python modules e.g.  have them and thats wrong since they never use it
>> >> and there are other packages like that.
>> >
>> > FWIW, after a pull of oe-core today that included the zlib update I am
>> > getting similar failures on meta/recipes-gnome/gtk+/gtk+_2.24.8.bb:
>> >
>> > | /bin/grep: /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la:
>> > No such file or directory
>> > | /bin/sed: can't read
>> > /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la: No such
>> > file or directory
>> > | arm-poky-linux-gnueabi-libtool: link:
>> > `/media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la' is not a
>> > valid libtool archive
>> > | make[4]: *** [libgdk-x11-2.0.la] Error 1
>>
>>
>> It works if you -c cleansstate on a bunch of recipes, pango, cairo, fontconfig, gtk+, etc
>
> list for me
>
> evas ecore fsogsmd pidgin elementary fsodeviced fsoaudiod subversion
> python-evas libsoup-2.4 libeflvala efreet fsotdld poppler fsosystemd
> fsousaged fsonetworkd gtk+ python-gst emotion mysql5 libfsotransport
> libfsobasics gd libgsm0710mux gst-plugins-base iksemel fsodatad
> webkit-gtk fsodatad epdf librsvg curl libsexy libfsosystem orbit2
> libfso-glib pango eeze libshr-glib farsight2 id3lib gst-plugins-good
> gst-plugins-ugly libnice libgpewidget matchbox-panel-2 edbus vte ethumb
> glib-networking libgisi libfsoresource edje libfsoframework gconf file
> libglade json-glib ethumb libcroco gnome-keyring libsdl-image neon
> qt4-x11-free python-pygobject msmcomm-specs gnome-keyring libphone-ui
> shr-wizard matchbox-keyboard matchbox-panel-2
>
> And this isn't even on fully built feed :/.

Indeed!  I gave up on trying to determine an exhaustive list and just
blew away tmp and sstate and rebuilt everything -- including package
repositories :-(

We need to find a way to prevent or warn of disruptive changes like
this zlib patch.  For those of us trying to make a living using Yocto,
losing a day of productivity to things like this really stings.

Steve



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-13 13:23                     ` Steve Sakoman
@ 2012-02-13 13:33                       ` Martin Jansa
  2012-02-13 13:42                       ` Koen Kooi
                                         ` (2 subsequent siblings)
  3 siblings, 0 replies; 70+ messages in thread
From: Martin Jansa @ 2012-02-13 13:33 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 3219 bytes --]

On Mon, Feb 13, 2012 at 05:23:18AM -0800, Steve Sakoman wrote:
> On Sun, Feb 12, 2012 at 11:48 PM, Martin Jansa <martin.jansa@gmail.com> wrote:
> > On Sat, Feb 11, 2012 at 06:09:52AM +0100, Koen Kooi wrote:
> >>
> >> Op 11 feb. 2012, om 06:05 heeft Steve Sakoman het volgende geschreven:
> >>
> >> > On Tue, Feb 7, 2012 at 6:06 PM, Khem Raj <raj.khem@gmail.com> wrote:
> >> >> On Tue, Feb 7, 2012 at 4:19 PM, Saul Wold <sgw@linux.intel.com> wrote:
> >> >>>
> >> >>> Can you verify if you have a .la file in you sysroot?
> >> >>
> >> >>
> >> >> No its not there and thats the point we probably should learn to live
> >> >> with out it
> >> >> actually one of radical ideas I have is to get rid of all .la files in
> >> >> OE completely
> >> >> right now python modules e.g.  have them and thats wrong since they never use it
> >> >> and there are other packages like that.
> >> >
> >> > FWIW, after a pull of oe-core today that included the zlib update I am
> >> > getting similar failures on meta/recipes-gnome/gtk+/gtk+_2.24.8.bb:
> >> >
> >> > | /bin/grep: /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la:
> >> > No such file or directory
> >> > | /bin/sed: can't read
> >> > /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la: No such
> >> > file or directory
> >> > | arm-poky-linux-gnueabi-libtool: link:
> >> > `/media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la' is not a
> >> > valid libtool archive
> >> > | make[4]: *** [libgdk-x11-2.0.la] Error 1
> >>
> >>
> >> It works if you -c cleansstate on a bunch of recipes, pango, cairo, fontconfig, gtk+, etc
> >
> > list for me
> >
> > evas ecore fsogsmd pidgin elementary fsodeviced fsoaudiod subversion
> > python-evas libsoup-2.4 libeflvala efreet fsotdld poppler fsosystemd
> > fsousaged fsonetworkd gtk+ python-gst emotion mysql5 libfsotransport
> > libfsobasics gd libgsm0710mux gst-plugins-base iksemel fsodatad
> > webkit-gtk fsodatad epdf librsvg curl libsexy libfsosystem orbit2
> > libfso-glib pango eeze libshr-glib farsight2 id3lib gst-plugins-good
> > gst-plugins-ugly libnice libgpewidget matchbox-panel-2 edbus vte ethumb
> > glib-networking libgisi libfsoresource edje libfsoframework gconf file
> > libglade json-glib ethumb libcroco gnome-keyring libsdl-image neon
> > qt4-x11-free python-pygobject msmcomm-specs gnome-keyring libphone-ui
> > shr-wizard matchbox-keyboard matchbox-panel-2
> >
> > And this isn't even on fully built feed :/.
> 
> Indeed!  I gave up on trying to determine an exhaustive list and just
> blew away tmp and sstate and rebuilt everything -- including package
> repositories :-(
> 
> We need to find a way to prevent or warn of disruptive changes like
> this zlib patch.  For those of us trying to make a living using Yocto,
> losing a day of productivity to things like this really stings.

I have 131 items in my list now, will send PR bumps today.

> Steve
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-13 13:23                     ` Steve Sakoman
  2012-02-13 13:33                       ` Martin Jansa
@ 2012-02-13 13:42                       ` Koen Kooi
  2012-02-14  4:52                         ` Lu, Lianhao
  2012-02-13 15:39                       ` Phil Blundell
  2012-02-21 23:01                       ` Richard Purdie
  3 siblings, 1 reply; 70+ messages in thread
From: Koen Kooi @ 2012-02-13 13:42 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer


Op 13 feb. 2012, om 05:23 heeft Steve Sakoman het volgende geschreven:

> On Sun, Feb 12, 2012 at 11:48 PM, Martin Jansa <martin.jansa@gmail.com> wrote:
>> On Sat, Feb 11, 2012 at 06:09:52AM +0100, Koen Kooi wrote:
>>> 
>>> Op 11 feb. 2012, om 06:05 heeft Steve Sakoman het volgende geschreven:
>>> 
>>>> On Tue, Feb 7, 2012 at 6:06 PM, Khem Raj <raj.khem@gmail.com> wrote:
>>>>> On Tue, Feb 7, 2012 at 4:19 PM, Saul Wold <sgw@linux.intel.com> wrote:
>>>>>> 
>>>>>> Can you verify if you have a .la file in you sysroot?
>>>>> 
>>>>> 
>>>>> No its not there and thats the point we probably should learn to live
>>>>> with out it
>>>>> actually one of radical ideas I have is to get rid of all .la files in
>>>>> OE completely
>>>>> right now python modules e.g.  have them and thats wrong since they never use it
>>>>> and there are other packages like that.
>>>> 
>>>> FWIW, after a pull of oe-core today that included the zlib update I am
>>>> getting similar failures on meta/recipes-gnome/gtk+/gtk+_2.24.8.bb:
>>>> 
>>>> | /bin/grep: /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la:
>>>> No such file or directory
>>>> | /bin/sed: can't read
>>>> /media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la: No such
>>>> file or directory
>>>> | arm-poky-linux-gnueabi-libtool: link:
>>>> `/media/Work/yocto/tmp/sysroots/omap3-multi/usr/lib/libz.la' is not a
>>>> valid libtool archive
>>>> | make[4]: *** [libgdk-x11-2.0.la] Error 1
>>> 
>>> 
>>> It works if you -c cleansstate on a bunch of recipes, pango, cairo, fontconfig, gtk+, etc
>> 
>> list for me
>> 
>> evas ecore fsogsmd pidgin elementary fsodeviced fsoaudiod subversion
>> python-evas libsoup-2.4 libeflvala efreet fsotdld poppler fsosystemd
>> fsousaged fsonetworkd gtk+ python-gst emotion mysql5 libfsotransport
>> libfsobasics gd libgsm0710mux gst-plugins-base iksemel fsodatad
>> webkit-gtk fsodatad epdf librsvg curl libsexy libfsosystem orbit2
>> libfso-glib pango eeze libshr-glib farsight2 id3lib gst-plugins-good
>> gst-plugins-ugly libnice libgpewidget matchbox-panel-2 edbus vte ethumb
>> glib-networking libgisi libfsoresource edje libfsoframework gconf file
>> libglade json-glib ethumb libcroco gnome-keyring libsdl-image neon
>> qt4-x11-free python-pygobject msmcomm-specs gnome-keyring libphone-ui
>> shr-wizard matchbox-keyboard matchbox-panel-2
>> 
>> And this isn't even on fully built feed :/.
> 
> Indeed!  I gave up on trying to determine an exhaustive list and just
> blew away tmp and sstate and rebuilt everything -- including package
> repositories :-(
> 
> We need to find a way to prevent or warn of disruptive changes like
> this zlib patch.  For those of us trying to make a living using Yocto,
> losing a day of productivity to things like this really stings.

A while ago there were 2 weeks with absolutely no breakage which I really liked. Then people can back from their xmas holidays....


^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-13 13:23                     ` Steve Sakoman
  2012-02-13 13:33                       ` Martin Jansa
  2012-02-13 13:42                       ` Koen Kooi
@ 2012-02-13 15:39                       ` Phil Blundell
  2012-02-13 17:09                         ` Khem Raj
  2012-02-21 23:04                         ` Richard Purdie
  2012-02-21 23:01                       ` Richard Purdie
  3 siblings, 2 replies; 70+ messages in thread
From: Phil Blundell @ 2012-02-13 15:39 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Mon, 2012-02-13 at 05:23 -0800, Steve Sakoman wrote:
> We need to find a way to prevent or warn of disruptive changes like
> this zlib patch.

Aren't these sorts of things meant to get tested on the Yocto
autobuilder before being merged?  I thought that was how it was supposed
to work.

p.





^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-13 15:39                       ` Phil Blundell
@ 2012-02-13 17:09                         ` Khem Raj
  2012-02-21 23:04                         ` Richard Purdie
  1 sibling, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-13 17:09 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Mon, Feb 13, 2012 at 7:39 AM, Phil Blundell <philb@gnu.org> wrote:
> On Mon, 2012-02-13 at 05:23 -0800, Steve Sakoman wrote:
>> We need to find a way to prevent or warn of disruptive changes like
>> this zlib patch.
>
> Aren't these sorts of things meant to get tested on the Yocto
> autobuilder before being merged?  I thought that was how it was supposed
> to work.
>

The patch takes care of packages in oe-core but essentially
relied upon layers to consider the update and I also posted a script
that would help in identifying
recipes which need updates.



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-13 13:42                       ` Koen Kooi
@ 2012-02-14  4:52                         ` Lu, Lianhao
  2012-02-14  6:24                           ` Khem Raj
  2012-02-14  6:53                           ` Martin Jansa
  0 siblings, 2 replies; 70+ messages in thread
From: Lu, Lianhao @ 2012-02-14  4:52 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

>>>> 
>>>> It works if you -c cleansstate on a bunch of recipes, pango, cairo, fontconfig, gtk+, etc
>>> 

I tried rpm-native after "-c cleansstate", but it still asks for libz.la? Anyone has the clue?

Best Regards,
Lianhao





^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-14  4:52                         ` Lu, Lianhao
@ 2012-02-14  6:24                           ` Khem Raj
  2012-02-14  9:26                             ` Phil Blundell
  2012-02-14  6:53                           ` Martin Jansa
  1 sibling, 1 reply; 70+ messages in thread
From: Khem Raj @ 2012-02-14  6:24 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Mon, Feb 13, 2012 at 8:52 PM, Lu, Lianhao <lianhao.lu@intel.com> wrote:
>>>>>
>>>>> It works if you -c cleansstate on a bunch of recipes, pango, cairo, fontconfig, gtk+, etc
>>>>
>
> I tried rpm-native after "-c cleansstate", but it still asks for libz.la? Anyone has the clue?

try to find which native .la files have libz,la in deps
and rebuild them too

>
> Best Regards,
> Lianhao
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-14  4:52                         ` Lu, Lianhao
  2012-02-14  6:24                           ` Khem Raj
@ 2012-02-14  6:53                           ` Martin Jansa
  2012-02-14 14:24                             ` Koen Kooi
  1 sibling, 1 reply; 70+ messages in thread
From: Martin Jansa @ 2012-02-14  6:53 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 995 bytes --]

On Tue, Feb 14, 2012 at 04:52:30AM +0000, Lu, Lianhao wrote:
> >>>> 
> >>>> It works if you -c cleansstate on a bunch of recipes, pango, cairo, fontconfig, gtk+, etc
> >>> 
> 
> I tried rpm-native after "-c cleansstate", but it still asks for libz.la? Anyone has the clue?

one .la still with libz.la in dependency tree is enough to pollute all
.la files even when they get rebuild thanks to PR bump.

That's why I sent another wider round of PR bumps to oe-core and also to
all layers (oe-core, meta-openembedded/*, meta-smartphone/*) I'm using at once, 
because ie libsoup-2.4 from meta-efl wasn't PR bumped and was still pulling 
libz.la to all .la files depending on libsoup :/.

And even my wider PR bump round isn't 100% complete for everybody,
because it's based on sysroot popultated by my builds and you can have
different .la files there (from different recipe versions or different
layers).

Cheers,

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-14  6:24                           ` Khem Raj
@ 2012-02-14  9:26                             ` Phil Blundell
  0 siblings, 0 replies; 70+ messages in thread
From: Phil Blundell @ 2012-02-14  9:26 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Mon, 2012-02-13 at 22:24 -0800, Khem Raj wrote:
> On Mon, Feb 13, 2012 at 8:52 PM, Lu, Lianhao <lianhao.lu@intel.com> wrote:
> >>>>>
> >>>>> It works if you -c cleansstate on a bunch of recipes, pango, cairo, fontconfig, gtk+, etc
> >>>>
> >
> > I tried rpm-native after "-c cleansstate", but it still asks for libz.la? Anyone has the clue?
> 
> try to find which native .la files have libz,la in deps
> and rebuild them too

Can we not just put libz.la back in zlib?  Having to spend hours hunting
out and rebuilding things, and/or bumping PR on half the .bb files in
the repository, seems like an unsatisfactory state of affairs.  As far
as I know the presence of libz.la wasn't previously causing us any
trouble so I'm not entirely clear why heroic measures are justified in
trying to get rid of it.

p.





^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-14  6:53                           ` Martin Jansa
@ 2012-02-14 14:24                             ` Koen Kooi
  0 siblings, 0 replies; 70+ messages in thread
From: Koen Kooi @ 2012-02-14 14:24 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer


Op 13 feb. 2012, om 22:53 heeft Martin Jansa het volgende geschreven:

> On Tue, Feb 14, 2012 at 04:52:30AM +0000, Lu, Lianhao wrote:
>>>>>> 
>>>>>> It works if you -c cleansstate on a bunch of recipes, pango, cairo, fontconfig, gtk+, etc
>>>>> 
>> 
>> I tried rpm-native after "-c cleansstate", but it still asks for libz.la? Anyone has the clue?
> 
> one .la still with libz.la in dependency tree is enough to pollute all
> .la files even when they get rebuild thanks to PR bump.
> 
> That's why I sent another wider round of PR bumps to oe-core and also to
> all layers (oe-core, meta-openembedded/*, meta-smartphone/*) I'm using at once, 
> because ie libsoup-2.4 from meta-efl wasn't PR bumped and was still pulling 
> libz.la to all .la files depending on libsoup :/.
> 
> And even my wider PR bump round isn't 100% complete for everybody,
> because it's based on sysroot popultated by my builds and you can have
> different .la files there (from different recipe versions or different
> layers).


Saul and I discussed this yesterday and we also suspect using --as-needed in LDFLAGS limits the impact of this problem. But still, PR bumps are needed to keep the -dev packages in the feeds working.

regards,

Koen


^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune
  2012-02-08  4:12 ` [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Saul Wold
@ 2012-02-20 12:11   ` Koen Kooi
  2012-02-20 16:57     ` Khem Raj
  0 siblings, 1 reply; 70+ messages in thread
From: Koen Kooi @ 2012-02-20 12:11 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer


Op 8 feb. 2012, om 05:12 heeft Saul Wold het volgende geschreven:

> On 02/05/2012 10:40 PM, Khem Raj wrote:
>> 
> 
>>   kmod: Add recipes
>>   module-init-tools: Delete
>>   image.bbclass,kernel.bbclass: Use kmod-native instead of
>>     module-init-tools-cross
> Withdrawn for now

Khem, Saul, any news on a new patchset for kmod? 

regards,

Koen



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune
  2012-02-20 12:11   ` Koen Kooi
@ 2012-02-20 16:57     ` Khem Raj
  0 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-02-20 16:57 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Mon, Feb 20, 2012 at 4:11 AM, Koen Kooi <koen@dominion.thruhere.net> wrote:
>
> Op 8 feb. 2012, om 05:12 heeft Saul Wold het volgende geschreven:
>
>> On 02/05/2012 10:40 PM, Khem Raj wrote:
>>>
>>
>>>   kmod: Add recipes
>>>   module-init-tools: Delete
>>>   image.bbclass,kernel.bbclass: Use kmod-native instead of
>>>     module-init-tools-cross
>> Withdrawn for now
>
> Khem, Saul, any news on a new patchset for kmod?

The top three patches on
http://git.openembedded.org/openembedded-core-contrib/log/?h=kraj/misc
is what I have latest there is some work left to do. in packaging area
e.g. stuff going into / instead of /usr is not perfect
since libkmod is going into /usr and rest to / but

>
> regards,
>
> Koen
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-13 13:23                     ` Steve Sakoman
                                         ` (2 preceding siblings ...)
  2012-02-13 15:39                       ` Phil Blundell
@ 2012-02-21 23:01                       ` Richard Purdie
  2012-02-22  8:03                         ` Koen Kooi
  3 siblings, 1 reply; 70+ messages in thread
From: Richard Purdie @ 2012-02-21 23:01 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Mon, 2012-02-13 at 05:23 -0800, Steve Sakoman wrote:
> Indeed!  I gave up on trying to determine an exhaustive list and just
> blew away tmp and sstate and rebuilt everything -- including package
> repositories :-(
> 
> We need to find a way to prevent or warn of disruptive changes like
> this zlib patch.  For those of us trying to make a living using Yocto,
> losing a day of productivity to things like this really stings.

I agree this change sucked and showed us we have some real issues. I
will point out that if we had been using the basichash signature
generator, it would likely have picked up this change and rebuild all
the appropriate pieces.

This illustrates why we do really need to switch to the basichash
dependency model even if some things are going to rebuild a bit more
often as humans make bad judges of what needs rebuilding...

Cheers,

Richard




^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-13 15:39                       ` Phil Blundell
  2012-02-13 17:09                         ` Khem Raj
@ 2012-02-21 23:04                         ` Richard Purdie
  1 sibling, 0 replies; 70+ messages in thread
From: Richard Purdie @ 2012-02-21 23:04 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Mon, 2012-02-13 at 15:39 +0000, Phil Blundell wrote:
> On Mon, 2012-02-13 at 05:23 -0800, Steve Sakoman wrote:
> > We need to find a way to prevent or warn of disruptive changes like
> > this zlib patch.
> 
> Aren't these sorts of things meant to get tested on the Yocto
> autobuilder before being merged?  I thought that was how it was supposed
> to work.

It was tested, there were some issues, it was thought they were
relatively easily resolved, that turned out not to be the case.

I get put under immense pressure to merge patches 'yesterday'. Please
keep this kind of issue in mind next time you ask me to hurry up and
merge something ;-). We've been able to catch a lot of things but its
the ones that slip through that people notice :/.

Cheers,

Richard





^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-21 23:01                       ` Richard Purdie
@ 2012-02-22  8:03                         ` Koen Kooi
  2012-02-22 11:08                           ` Richard Purdie
  0 siblings, 1 reply; 70+ messages in thread
From: Koen Kooi @ 2012-02-22  8:03 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer


Op 22 feb. 2012, om 00:01 heeft Richard Purdie het volgende geschreven:

> On Mon, 2012-02-13 at 05:23 -0800, Steve Sakoman wrote:
>> Indeed!  I gave up on trying to determine an exhaustive list and just
>> blew away tmp and sstate and rebuilt everything -- including package
>> repositories :-(
>> 
>> We need to find a way to prevent or warn of disruptive changes like
>> this zlib patch.  For those of us trying to make a living using Yocto,
>> losing a day of productivity to things like this really stings.
> 
> I agree this change sucked and showed us we have some real issues. I
> will point out that if we had been using the basichash signature
> generator, it would likely have picked up this change and rebuild all
> the appropriate pieces.

Rebuild yes, but not fix all the -dev packages in the feeds.

regards,

Koen



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6
  2012-02-22  8:03                         ` Koen Kooi
@ 2012-02-22 11:08                           ` Richard Purdie
  0 siblings, 0 replies; 70+ messages in thread
From: Richard Purdie @ 2012-02-22 11:08 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Wed, 2012-02-22 at 09:03 +0100, Koen Kooi wrote:
> Op 22 feb. 2012, om 00:01 heeft Richard Purdie het volgende geschreven:
> 
> > On Mon, 2012-02-13 at 05:23 -0800, Steve Sakoman wrote:
> >> Indeed!  I gave up on trying to determine an exhaustive list and just
> >> blew away tmp and sstate and rebuilt everything -- including package
> >> repositories :-(
> >> 
> >> We need to find a way to prevent or warn of disruptive changes like
> >> this zlib patch.  For those of us trying to make a living using Yocto,
> >> losing a day of productivity to things like this really stings.
> > 
> > I agree this change sucked and showed us we have some real issues. I
> > will point out that if we had been using the basichash signature
> > generator, it would likely have picked up this change and rebuild all
> > the appropriate pieces.
> 
> Rebuild yes, but not fix all the -dev packages in the feeds.

The PR service using the hash changes would have allowed that though...

Cheers,

Richard




^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 07/20] kmod: Add recipes
  2012-02-06  6:40 ` [PATCH 07/20] kmod: Add recipes Khem Raj
@ 2012-05-03 21:05   ` Darren Hart
  2012-05-03 22:02     ` Khem Raj
  0 siblings, 1 reply; 70+ messages in thread
From: Darren Hart @ 2012-05-03 21:05 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer



On 02/05/2012 10:40 PM, Khem Raj wrote:
> kmod is replacement for module-init-tools
> 
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  meta/recipes-kernel/kmod/kmod-native_git.bb      |   14 +++++
>  meta/recipes-kernel/kmod/kmod.inc                |   31 +++++++++++
>  meta/recipes-kernel/kmod/kmod/depmod-search.conf |    6 ++
>  meta/recipes-kernel/kmod/kmod_git.bb             |   62 ++++++++++++++++++++++
>  4 files changed, 113 insertions(+), 0 deletions(-)
>  create mode 100644 meta/recipes-kernel/kmod/kmod-native_git.bb
>  create mode 100644 meta/recipes-kernel/kmod/kmod.inc
>  create mode 100644 meta/recipes-kernel/kmod/kmod/depmod-search.conf
>  create mode 100644 meta/recipes-kernel/kmod/kmod_git.bb
> 
> diff --git a/meta/recipes-kernel/kmod/kmod-native_git.bb b/meta/recipes-kernel/kmod/kmod-native_git.bb
> new file mode 100644
> index 0000000..96de8b8
> --- /dev/null
> +++ b/meta/recipes-kernel/kmod/kmod-native_git.bb
> @@ -0,0 +1,14 @@
> +# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
> +# Released under the MIT license (see COPYING.MIT for the terms)
> +
> +require kmod.inc
> +inherit native
> +
> +PR = "${INC_PR}.0"
> +
> +do_install_append (){
> +	for tool in depmod insmod lsmod modinfo modprobe rmmod
> +	do
> +		ln -s kmod ${D}${bindir}/$tool
> +	done

Do we have to ensure to disable module tools in busybox to avoid
conflict here?

I had a few other questions, but managed to resolve them by the time I
finished reading. It looks good with only the one concern above.

Reviewed-by: Darren Hart <dvhart@liunx.intel.com>

> +}
> diff --git a/meta/recipes-kernel/kmod/kmod.inc b/meta/recipes-kernel/kmod/kmod.inc
> new file mode 100644
> index 0000000..ea0247e
> --- /dev/null
> +++ b/meta/recipes-kernel/kmod/kmod.inc
> @@ -0,0 +1,31 @@
> +# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
> +# Released under the MIT license (see COPYING.MIT for the terms)
> +
> +DESCRIPTION = "kmod is a set of tools to handle common tasks with Linux kernel modules like \
> +insert, remove, list, check properties, resolve dependencies and aliases."
> +HOMEPAGE = "http://packages.profusion.mobi/kmod/"
> +LICENSE = "GPL-2.0+ & LGPL-2.1+"
> +LICENSE_libkmod = "LGPL-2.1+"
> +SECTION = "base"
> +PV = "4+gitr${SRCREV}"
> +INC_PR = "r0"
> +DEPENDS += "gnome-doc-utils-native"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
> +                    file://libkmod/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
> +                   "
> +inherit autotools
> +
> +SRC_URI = "git://git.profusion.mobi/kmod.git;protocol=git;branch=master \
> +           file://depmod-search.conf \
> +          "
> +
> +SRCREV = "a2c7d3e8b058a2013aa8da5986d1d11fa13d6fd7"
> +
> +S = "${WORKDIR}/git"
> +
> +EXTRA_AUTORECONF += "--install --symlink"
> +EXTRA_OECONF +="--enable-debug --enable-logging --enable-tools"
> +
> +do_configure_prepend () {
> +        gtkdocize --docdir ${S}/libkmod/docs || touch ${S}/libkmod/docs/gtk-doc.make
> +}
> diff --git a/meta/recipes-kernel/kmod/kmod/depmod-search.conf b/meta/recipes-kernel/kmod/kmod/depmod-search.conf
> new file mode 100644
> index 0000000..527c0bb
> --- /dev/null
> +++ b/meta/recipes-kernel/kmod/kmod/depmod-search.conf
> @@ -0,0 +1,6 @@
> +#
> +# /etc/depmod.d/depmod.conf
> +#
> +
> +search updates extramodules built-in
> +
> diff --git a/meta/recipes-kernel/kmod/kmod_git.bb b/meta/recipes-kernel/kmod/kmod_git.bb
> new file mode 100644
> index 0000000..eaab47b
> --- /dev/null
> +++ b/meta/recipes-kernel/kmod/kmod_git.bb
> @@ -0,0 +1,62 @@
> +# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
> +# Released under the MIT license (see COPYING.MIT for the terms)
> +
> +require kmod.inc
> +
> +PR = "${INC_PR}.0"
> +
> +PROVIDES_${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
> +RPROVIDES_${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
> +CONFLICTS_${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
> +
> +# autotools set prefix to /usr, however we want them in /bin and /sbin
> +bindir = "${base_bindir}"
> +sbindir = "${base_sbindir}"
> +libdir = "${base_libdir}"
> +
> +SRC_URI += " \
> +            file://depmod-search.conf \
> +           "
> +
> +do_install_append () {
> +        install -dm755 ${D}${base_bindir}
> +        install -dm755 ${D}${base_sbindir}
> +        # add symlinks to kmod
> +        ln -s ..${base_bindir}/kmod ${D}${base_bindir}/lsmod.kmod
> +        for tool in {ins,rm,dep}mod mod{info,probe}; do
> +                ln -s ..${base_bindir}/kmod ${D}${base_sbindir}/${tool}.kmod
> +        done
> +        # configuration directories
> +        install -dm755 ${D}${base_libdir}/depmod.d
> +        install -dm755 ${D}${base_libdir}/modprobe.d
> +        install -dm755 ${D}${sysconfdir}/depmod.d
> +        install -dm755 ${D}${sysconfdir}/modprobe.d
> +
> +        # install depmod.d file for search/ dir
> +        install -Dm644 "${WORKDIR}/depmod-search.conf" "${D}${base_libdir}/depmod.d/search.conf"
> +}
> +
> +pkg_postinst_kmod() {
> +        for f in sbin/insmod sbin/modprobe sbin/rmmod sbin/modinfo; do
> +                bn=`basename $f`
> +                update-alternatives --install /$f $bn /$f.kmod 60
> +        done
> +        update-alternatives --install /bin/lsmod bin-lsmod /bin/lsmod.kmod 60
> +        update-alternatives --install /sbin/lsmod lsmod /bin/lsmod.kmod 60
> +        update-alternatives --install /sbin/depmod depmod /sbin/depmod.kmod 60
> +}
> +
> +pkg_prerm_kmod() {
> +        for f in sbin/insmod sbin/modprobe sbin/rmmod sbin/modinfo; do
> +                bn=`basename $f`
> +                update-alternatives --remove $bn /$f.kmod
> +        done
> +        update-alternatives --remove bin-lsmod /bin/lsmod.kmod
> +        update-alternatives --remove lsmod /bin/lsmod.kmod
> +        update-alternatives --remove depmod /sbin/depmod.kmod
> +}
> +
> +PACKAGES =+ "libkmod"
> +
> +FILES_libkmod = "${base_libdir}/libkmod*${SOLIBS}"
> +FILES_${PN} += "${base_libdir}/depmod.d ${base_libdir}/modprobe.d"

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 08/20] module-init-tools: Delete
  2012-02-06  6:40 ` [PATCH 08/20] module-init-tools: Delete Khem Raj
@ 2012-05-03 21:07   ` Darren Hart
  2012-05-03 21:45     ` Khem Raj
  0 siblings, 1 reply; 70+ messages in thread
From: Darren Hart @ 2012-05-03 21:07 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 02/05/2012 10:40 PM, Khem Raj wrote:
> Since its provided by kmod

Perhaps we should wait on deleting this until we've run with kmod as the
default for a while?

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 09/20] image.bbclass, kernel.bbclass: Use kmod-native instead of module-init-tools-cross
  2012-02-06  6:40 ` [PATCH 09/20] image.bbclass, kernel.bbclass: Use kmod-native instead of module-init-tools-cross Khem Raj
@ 2012-05-03 21:09   ` Darren Hart
  2012-05-03 21:48     ` Khem Raj
  0 siblings, 1 reply; 70+ messages in thread
From: Darren Hart @ 2012-05-03 21:09 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

Some comments regarding implementation are needed here. For example, why
is HOST_PREFIX no longer necessary?

On 02/05/2012 10:40 PM, Khem Raj wrote:
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  meta/classes/image.bbclass  |    2 +-
>  meta/classes/kernel.bbclass |    9 ++++-----
>  2 files changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
> index 3034725..adb9b39 100644
> --- a/meta/classes/image.bbclass
> +++ b/meta/classes/image.bbclass
> @@ -173,7 +173,7 @@ fakeroot do_rootfs () {
>  		KERNEL_VERSION=`cat ${STAGING_KERNEL_DIR}/kernel-abiversion`
>  
>  		mkdir -p ${IMAGE_ROOTFS}/lib/modules/$KERNEL_VERSION
> -		${TARGET_PREFIX}depmod -a -b ${IMAGE_ROOTFS} -F ${STAGING_KERNEL_DIR}/System.map-$KERNEL_VERSION $KERNEL_VERSION
> +		depmod -a -b ${IMAGE_ROOTFS} -F ${STAGING_KERNEL_DIR}/System.map-$KERNEL_VERSION $KERNEL_VERSION
>  	fi
>  
>  	${IMAGE_PREPROCESS_COMMAND}
> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
> index ec5d65e..be54f8e 100644
> --- a/meta/classes/kernel.bbclass
> +++ b/meta/classes/kernel.bbclass
> @@ -1,7 +1,7 @@
>  inherit linux-kernel-base module_strip
>  
>  PROVIDES += "virtual/kernel"
> -DEPENDS += "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}depmod virtual/${TARGET_PREFIX}gcc${KERNEL_CCSUFFIX} update-modules"
> +DEPENDS += "virtual/${TARGET_PREFIX}gcc kmod-native virtual/${TARGET_PREFIX}gcc${KERNEL_CCSUFFIX} update-modules"
>  
>  # we include gcc above, we dont need virtual/libc
>  INHIBIT_DEFAULT_DEPS = "1"
> @@ -259,7 +259,7 @@ if [ ! -e "$D/lib/modules/${KERNEL_VERSION}" ]; then
>  	mkdir -p $D/lib/modules/${KERNEL_VERSION}
>  fi
>  if [ -n "$D" ]; then
> -	${HOST_PREFIX}depmod -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
> +	depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
>  else
>  	depmod -a
>  fi
> @@ -267,7 +267,7 @@ fi
>  
>  pkg_postinst_modules () {
>  if [ -n "$D" ]; then
> -	${HOST_PREFIX}depmod -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
> +	depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
>  else
>  	depmod -a
>  	update-modules || true
> @@ -339,9 +339,8 @@ python populate_packages_prepend () {
>  		if m:
>  			kernelver_stripped = m.group(1)
>  		path = d.getVar("PATH", 1)
> -		host_prefix = d.getVar("HOST_PREFIX", 1) or ""
>  
> -		cmd = "PATH=\"%s\" %sdepmod -n -a -r -b %s -F %s/boot/System.map-%s %s" % (path, host_prefix, dvar, dvar, kernelver, kernelver_stripped)
> +		cmd = "PATH=\"%s\" depmod -n -a -b %s -F %s/boot/System.map-%s %s" % (path, dvar, dvar, kernelver, kernelver_stripped)
>  		f = os.popen(cmd, 'r')
>  
>  		deps = {}

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 08/20] module-init-tools: Delete
  2012-05-03 21:07   ` Darren Hart
@ 2012-05-03 21:45     ` Khem Raj
  0 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-05-03 21:45 UTC (permalink / raw)
  To: Darren Hart; +Cc: Patches and discussions about the oe-core layer

On Thu, May 3, 2012 at 2:07 PM, Darren Hart <dvhart@linux.intel.com> wrote:
> On 02/05/2012 10:40 PM, Khem Raj wrote:
>> Since its provided by kmod
>
> Perhaps we should wait on deleting this until we've run with kmod as the
> default for a while?

Fine with me.

>
> --
> Darren Hart
> Intel Open Source Technology Center
> Yocto Project - Linux Kernel



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 09/20] image.bbclass, kernel.bbclass: Use kmod-native instead of module-init-tools-cross
  2012-05-03 21:09   ` Darren Hart
@ 2012-05-03 21:48     ` Khem Raj
  0 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-05-03 21:48 UTC (permalink / raw)
  To: Darren Hart; +Cc: Patches and discussions about the oe-core layer

On Thu, May 3, 2012 at 2:09 PM, Darren Hart <dvhart@linux.intel.com> wrote:
> Some comments regarding implementation are needed here. For example, why
> is HOST_PREFIX no longer necessary?

Its no longer treated like a cross-tool like we did before. so depmod is really
treated as a host tool since it does not do anything target specific

>
> On 02/05/2012 10:40 PM, Khem Raj wrote:
>> Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> ---
>>  meta/classes/image.bbclass  |    2 +-
>>  meta/classes/kernel.bbclass |    9 ++++-----
>>  2 files changed, 5 insertions(+), 6 deletions(-)
>>
>> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
>> index 3034725..adb9b39 100644
>> --- a/meta/classes/image.bbclass
>> +++ b/meta/classes/image.bbclass
>> @@ -173,7 +173,7 @@ fakeroot do_rootfs () {
>>               KERNEL_VERSION=`cat ${STAGING_KERNEL_DIR}/kernel-abiversion`
>>
>>               mkdir -p ${IMAGE_ROOTFS}/lib/modules/$KERNEL_VERSION
>> -             ${TARGET_PREFIX}depmod -a -b ${IMAGE_ROOTFS} -F ${STAGING_KERNEL_DIR}/System.map-$KERNEL_VERSION $KERNEL_VERSION
>> +             depmod -a -b ${IMAGE_ROOTFS} -F ${STAGING_KERNEL_DIR}/System.map-$KERNEL_VERSION $KERNEL_VERSION
>>       fi
>>
>>       ${IMAGE_PREPROCESS_COMMAND}
>> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
>> index ec5d65e..be54f8e 100644
>> --- a/meta/classes/kernel.bbclass
>> +++ b/meta/classes/kernel.bbclass
>> @@ -1,7 +1,7 @@
>>  inherit linux-kernel-base module_strip
>>
>>  PROVIDES += "virtual/kernel"
>> -DEPENDS += "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}depmod virtual/${TARGET_PREFIX}gcc${KERNEL_CCSUFFIX} update-modules"
>> +DEPENDS += "virtual/${TARGET_PREFIX}gcc kmod-native virtual/${TARGET_PREFIX}gcc${KERNEL_CCSUFFIX} update-modules"
>>
>>  # we include gcc above, we dont need virtual/libc
>>  INHIBIT_DEFAULT_DEPS = "1"
>> @@ -259,7 +259,7 @@ if [ ! -e "$D/lib/modules/${KERNEL_VERSION}" ]; then
>>       mkdir -p $D/lib/modules/${KERNEL_VERSION}
>>  fi
>>  if [ -n "$D" ]; then
>> -     ${HOST_PREFIX}depmod -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
>> +     depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
>>  else
>>       depmod -a
>>  fi
>> @@ -267,7 +267,7 @@ fi
>>
>>  pkg_postinst_modules () {
>>  if [ -n "$D" ]; then
>> -     ${HOST_PREFIX}depmod -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
>> +     depmod -a -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
>>  else
>>       depmod -a
>>       update-modules || true
>> @@ -339,9 +339,8 @@ python populate_packages_prepend () {
>>               if m:
>>                       kernelver_stripped = m.group(1)
>>               path = d.getVar("PATH", 1)
>> -             host_prefix = d.getVar("HOST_PREFIX", 1) or ""
>>
>> -             cmd = "PATH=\"%s\" %sdepmod -n -a -r -b %s -F %s/boot/System.map-%s %s" % (path, host_prefix, dvar, dvar, kernelver, kernelver_stripped)
>> +             cmd = "PATH=\"%s\" depmod -n -a -b %s -F %s/boot/System.map-%s %s" % (path, dvar, dvar, kernelver, kernelver_stripped)
>>               f = os.popen(cmd, 'r')
>>
>>               deps = {}
>
> --
> Darren Hart
> Intel Open Source Technology Center
> Yocto Project - Linux Kernel



^ permalink raw reply	[flat|nested] 70+ messages in thread

* Re: [PATCH 07/20] kmod: Add recipes
  2012-05-03 21:05   ` Darren Hart
@ 2012-05-03 22:02     ` Khem Raj
  0 siblings, 0 replies; 70+ messages in thread
From: Khem Raj @ 2012-05-03 22:02 UTC (permalink / raw)
  To: Darren Hart; +Cc: Patches and discussions about the oe-core layer

On Thu, May 3, 2012 at 2:05 PM, Darren Hart <dvhart@linux.intel.com> wrote:
>
>
> On 02/05/2012 10:40 PM, Khem Raj wrote:
>> kmod is replacement for module-init-tools
>>
>> Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> ---
>>  meta/recipes-kernel/kmod/kmod-native_git.bb      |   14 +++++
>>  meta/recipes-kernel/kmod/kmod.inc                |   31 +++++++++++
>>  meta/recipes-kernel/kmod/kmod/depmod-search.conf |    6 ++
>>  meta/recipes-kernel/kmod/kmod_git.bb             |   62 ++++++++++++++++++++++
>>  4 files changed, 113 insertions(+), 0 deletions(-)
>>  create mode 100644 meta/recipes-kernel/kmod/kmod-native_git.bb
>>  create mode 100644 meta/recipes-kernel/kmod/kmod.inc
>>  create mode 100644 meta/recipes-kernel/kmod/kmod/depmod-search.conf
>>  create mode 100644 meta/recipes-kernel/kmod/kmod_git.bb
>>
>> diff --git a/meta/recipes-kernel/kmod/kmod-native_git.bb b/meta/recipes-kernel/kmod/kmod-native_git.bb
>> new file mode 100644
>> index 0000000..96de8b8
>> --- /dev/null
>> +++ b/meta/recipes-kernel/kmod/kmod-native_git.bb
>> @@ -0,0 +1,14 @@
>> +# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
>> +# Released under the MIT license (see COPYING.MIT for the terms)
>> +
>> +require kmod.inc
>> +inherit native
>> +
>> +PR = "${INC_PR}.0"
>> +
>> +do_install_append (){
>> +     for tool in depmod insmod lsmod modinfo modprobe rmmod
>> +     do
>> +             ln -s kmod ${D}${bindir}/$tool
>> +     done
>
> Do we have to ensure to disable module tools in busybox to avoid
> conflict here?
>

hmm I guess this could be made as a virtual choice. It was not there
so I did not do it.

> I had a few other questions, but managed to resolve them by the time I
> finished reading. It looks good with only the one concern above.



^ permalink raw reply	[flat|nested] 70+ messages in thread

end of thread, other threads:[~2012-05-03 22:12 UTC | newest]

Thread overview: 70+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-06  6:40 [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Khem Raj
2012-02-06  6:40 ` [PATCH 01/20] task-core-tools: Divide it into 3 recipes Khem Raj
2012-02-06  6:40 ` [PATCH 02/20] Enable options needed for ltp to compile Khem Raj
2012-02-06  6:40 ` [PATCH 03/20] arm/tune: Correct the logic which added thumb-interwork to OVERRIDES Khem Raj
2012-02-06  6:40 ` [PATCH 04/20] tunearch/arm: Differentiate between thumb code generation and thumb capability Khem Raj
2012-02-06  6:40 ` [PATCH 05/20] tune-thumb.inc: Delete Khem Raj
2012-02-06  6:40 ` [PATCH 06/20] uclibc: Get the thumb features from tune flags Khem Raj
2012-02-06  6:40 ` [PATCH 07/20] kmod: Add recipes Khem Raj
2012-05-03 21:05   ` Darren Hart
2012-05-03 22:02     ` Khem Raj
2012-02-06  6:40 ` [PATCH 08/20] module-init-tools: Delete Khem Raj
2012-05-03 21:07   ` Darren Hart
2012-05-03 21:45     ` Khem Raj
2012-02-06  6:40 ` [PATCH 09/20] image.bbclass, kernel.bbclass: Use kmod-native instead of module-init-tools-cross Khem Raj
2012-05-03 21:09   ` Darren Hart
2012-05-03 21:48     ` Khem Raj
2012-02-06  6:40 ` [PATCH 10/20] pseudo: Wrap renameat and opendir Khem Raj
2012-02-07 16:21   ` Saul Wold
2012-02-07 16:31     ` Khem Raj
2012-02-07 16:43       ` Saul Wold
2012-02-07 18:10         ` Khem Raj
2012-02-07 23:21         ` Mark Hatle
2012-02-08  2:00           ` Khem Raj
2012-02-06  6:40 ` [PATCH 11/20] uclibc: Upgrade recipes from 0.9.32 -> 0.9.33 Khem Raj
2012-02-07 19:02   ` Saul Wold
2012-02-07 22:26     ` Khem Raj
2012-02-06  6:40 ` [PATCH 12/20] zlib: Upgrade 1.2.5 -> 1.2.6 Khem Raj
2012-02-07  8:08   ` Saul Wold
2012-02-07 15:31     ` Khem Raj
2012-02-07 15:59       ` Saul Wold
2012-02-07 23:12         ` Khem Raj
2012-02-08  0:19           ` Saul Wold
2012-02-08  2:06             ` Khem Raj
2012-02-11  5:05               ` Steve Sakoman
2012-02-11  5:09                 ` Koen Kooi
2012-02-11  8:15                   ` Khem Raj
2012-02-11  8:19                     ` Khem Raj
2012-02-11  8:26                     ` Koen Kooi
2012-02-13  7:48                   ` Martin Jansa
2012-02-13 13:23                     ` Steve Sakoman
2012-02-13 13:33                       ` Martin Jansa
2012-02-13 13:42                       ` Koen Kooi
2012-02-14  4:52                         ` Lu, Lianhao
2012-02-14  6:24                           ` Khem Raj
2012-02-14  9:26                             ` Phil Blundell
2012-02-14  6:53                           ` Martin Jansa
2012-02-14 14:24                             ` Koen Kooi
2012-02-13 15:39                       ` Phil Blundell
2012-02-13 17:09                         ` Khem Raj
2012-02-21 23:04                         ` Richard Purdie
2012-02-21 23:01                       ` Richard Purdie
2012-02-22  8:03                         ` Koen Kooi
2012-02-22 11:08                           ` Richard Purdie
2012-02-06  6:40 ` [PATCH 13/20] runqemu-internal: qemuarm can handle 256M Khem Raj
2012-02-06  6:40 ` [PATCH 14/20] gconf, consolekit: Avoid polkit when compiling with uclibc Khem Raj
2012-02-06  6:40 ` [PATCH 15/20] python: Fix build failure of python-elementtree on x86_64 Khem Raj
2012-02-06  6:40 ` [PATCH 16/20] libdrm: Fix build failure unearthed by uclibc Khem Raj
2012-02-06  6:40 ` [PATCH 17/20] classes, recipes: Replace POKY_* with CORE_IMAGE_* Khem Raj
2012-02-06  6:40 ` [PATCH 18/20] libx11: Backport _XGetRequest API Khem Raj
2012-02-06  6:40 ` [PATCH 19/20] gcc-cross-testing: Fix evaluation of user and target name Khem Raj
2012-02-07 17:21   ` Saul Wold
2012-02-07 18:07     ` Khem Raj
2012-02-07 17:49   ` Otavio Salvador
2012-02-07 18:18     ` Khem Raj
2012-02-06  6:40 ` [PATCH 20/20] mirrors.bbclass: Add yp.org and oe.org to fallback mirrors Khem Raj
2012-02-07 17:49   ` Saul Wold
2012-02-07 18:04     ` Khem Raj
2012-02-08  4:12 ` [PATCH V2 00/20] uclibc upgrade, initial kmod and thumb tune Saul Wold
2012-02-20 12:11   ` Koen Kooi
2012-02-20 16:57     ` Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.