All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/14] eglibc 2.16
@ 2012-07-05 14:35 Khem Raj
  2012-07-05 14:35 ` [PATCH 01/14] mirrors: Add debian archive snapshot mirrors to search list Khem Raj
                   ` (15 more replies)
  0 siblings, 16 replies; 25+ messages in thread
From: Khem Raj @ 2012-07-05 14:35 UTC (permalink / raw)
  To: openembedded-core

This patch adds eglibc 2.16 recipes. I was able to build world
on x86 except perf which was failing with 2.15 as well.

I have also build and run core-image-sato on all qemus

I did not remove 2.15 to allow some soak in time.

The following changes since commit 5beb7176d361d4bfa279bbfab5a17b8fe4fa3b73:

  netbase: update to ver. 5.0 (2012-07-05 14:18:19 +0100)

are available in the git repository at:

  git://git.openembedded.org/openembedded-core-contrib kraj/eglibc-2.16
  http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/eglibc-2.16

Khem Raj (14):
  mirrors: Add debian archive snapshot mirrors to search list
  gdb: Replace struct siginfo with proper siginfo_t
  busybox: Include sys/resource.h for rusage definition
  coreutils: Fix build with eglibc 2.16
  diffutils: Fix build with eglibc 2.16
  udev: Fix build with eglibc 2.16
  gettext,m4,augeas,gnutls: Account for removal of gets in eglibc 2.16
  bison: Fix for gets being removed from eglibc 2.16
  grub,guile,cpio,tar,wget: Fix gnulib for absense of gets in eglibc
  boost: Upgrade recipe to 1.50.0
  puzzles: Fix checksums
  valgrind: Fix build with eglibc 2.16
  libpam: Fix build with eglibc 2.16
  eglibc: Add recipes for 2.16 release

 meta/classes/mirrors.bbclass                       |    4 +-
 meta/recipes-bsp/grub/grub-1.99/remove-gets.patch  |   20 +
 meta/recipes-bsp/grub/grub_1.99.bb                 |    3 +-
 .../busybox/busybox-1.19.4/sys_resource.patch      |   18 +
 meta/recipes-core/busybox/busybox_1.19.4.bb        |    3 +-
 .../coreutils/coreutils-8.14/remove-gets.patch     |   23 +
 meta/recipes-core/coreutils/coreutils_8.14.bb      |    3 +-
 .../eglibc/cross-localedef-native_2.16.bb          |   44 ++
 .../eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch    |  108 ++++
 .../eglibc/eglibc-2.16/IO-acquire-lock-fix.patch   |   17 +
 .../eglibc-svn-arm-lowlevellock-include-tls.patch  |   21 +
 .../eglibc_fix_findidx_parameters.patch            |   38 ++
 .../eglibc/eglibc-2.16/generate-supported.mk       |   11 +
 .../eglibc/eglibc-2.16/initgroups_keys.patch       |   20 +
 .../eglibc/eglibc-2.16/ld-search-order.patch       |   56 ++
 .../eglibc/eglibc-2.16/mips-rld-map-check.patch    |   26 +
 .../eglibc/eglibc-2.16/multilib_readlib.patch      |   17 +
 .../recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch |  538 ++++++++++++++++++++
 .../eglibc/eglibc-2.16/ppc-sqrt_finite.patch       |  112 ++++
 .../eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch |  123 +++++
 .../eglibc/eglibc-2.16/rpc-bootstrap.patch         |   63 +++
 .../eglibc-2.16/use-sysroot-cxx-headers.patch      |   42 ++
 meta/recipes-core/eglibc/eglibc-initial_2.16.bb    |    6 +
 meta/recipes-core/eglibc/eglibc-locale_2.16.bb     |    1 +
 meta/recipes-core/eglibc/eglibc_2.16.bb            |  146 ++++++
 .../gettext/gettext-0.18.1.1/remove_gets.patch     |   58 +++
 meta/recipes-core/gettext/gettext_0.18.1.1.bb      |    3 +-
 meta/recipes-core/udev/udev/include_resource.patch |   31 ++
 meta/recipes-core/udev/udev_164.bb                 |    7 +-
 .../recipes-devtools/bison/bison/remove-gets.patch |   20 +
 meta/recipes-devtools/bison/bison_2.5.bb           |    6 +-
 meta/recipes-devtools/gdb/gdb-common.inc           |    2 +-
 meta/recipes-devtools/gdb/gdb.inc                  |    1 +
 meta/recipes-devtools/gdb/gdb/siginfo_t.patch      |  403 +++++++++++++++
 .../recipes-devtools/guile/files/remove-gets.patch |   23 +
 meta/recipes-devtools/guile/guile_2.0.5.bb         |    3 +-
 meta/recipes-devtools/m4/m4-1.4.16.inc             |    6 +-
 meta/recipes-devtools/m4/m4/remove-gets.patch      |   21 +
 .../valgrind-3.7.0/configure-with-glibc-2.16.patch |   32 ++
 meta/recipes-devtools/valgrind/valgrind_3.7.0.bb   |    6 +-
 .../augeas/augeas/remove-gets.patch                |   20 +
 meta/recipes-extended/augeas/augeas_0.10.0.bb      |    4 +-
 .../cpio/cpio-2.11/remove-gets.patch               |   20 +
 meta/recipes-extended/cpio/cpio_2.11.bb            |    5 +-
 .../diffutils/diffutils-3.2/remove-gets.patch      |   22 +
 meta/recipes-extended/diffutils/diffutils_3.2.bb   |    6 +-
 .../pam/libpam/include-sys-resource.patch          |   12 +
 meta/recipes-extended/pam/libpam_1.1.5.bb          |    6 +-
 .../tar/tar-1.26/remove-gets.patch                 |   20 +
 meta/recipes-extended/tar/tar_1.26.bb              |    5 +-
 .../wget/wget-1.13.4/remove-gets.patch             |   23 +
 meta/recipes-extended/wget/wget_1.13.4.bb          |    3 +-
 meta/recipes-sato/puzzles/puzzles_r9561.bb         |    5 +-
 .../boost/{boost_1.49.0.bb => boost_1.50.0.bb}     |    5 +-
 .../gnutls/gnutls/remove-gets.patch                |   41 ++
 meta/recipes-support/gnutls/gnutls_2.12.20.bb      |    3 +-
 56 files changed, 2254 insertions(+), 31 deletions(-)
 create mode 100644 meta/recipes-bsp/grub/grub-1.99/remove-gets.patch
 create mode 100644 meta/recipes-core/busybox/busybox-1.19.4/sys_resource.patch
 create mode 100644 meta/recipes-core/coreutils/coreutils-8.14/remove-gets.patch
 create mode 100644 meta/recipes-core/eglibc/cross-localedef-native_2.16.bb
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/IO-acquire-lock-fix.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/eglibc-svn-arm-lowlevellock-include-tls.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/eglibc_fix_findidx_parameters.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/etc/ld.so.conf
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/generate-supported.mk
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/initgroups_keys.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ld-search-order.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/mips-rld-map-check.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/multilib_readlib.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt_finite.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/rpc-bootstrap.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/use-sysroot-cxx-headers.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-initial_2.16.bb
 create mode 100644 meta/recipes-core/eglibc/eglibc-locale_2.16.bb
 create mode 100644 meta/recipes-core/eglibc/eglibc_2.16.bb
 create mode 100644 meta/recipes-core/gettext/gettext-0.18.1.1/remove_gets.patch
 create mode 100644 meta/recipes-core/udev/udev/include_resource.patch
 create mode 100644 meta/recipes-devtools/bison/bison/remove-gets.patch
 create mode 100644 meta/recipes-devtools/gdb/gdb/siginfo_t.patch
 create mode 100644 meta/recipes-devtools/guile/files/remove-gets.patch
 create mode 100644 meta/recipes-devtools/m4/m4/remove-gets.patch
 create mode 100644 meta/recipes-devtools/valgrind/valgrind-3.7.0/configure-with-glibc-2.16.patch
 create mode 100644 meta/recipes-extended/augeas/augeas/remove-gets.patch
 create mode 100644 meta/recipes-extended/cpio/cpio-2.11/remove-gets.patch
 create mode 100644 meta/recipes-extended/diffutils/diffutils-3.2/remove-gets.patch
 create mode 100644 meta/recipes-extended/pam/libpam/include-sys-resource.patch
 create mode 100644 meta/recipes-extended/tar/tar-1.26/remove-gets.patch
 create mode 100644 meta/recipes-extended/wget/wget-1.13.4/remove-gets.patch
 rename meta/recipes-support/boost/{boost_1.49.0.bb => boost_1.50.0.bb} (53%)
 create mode 100644 meta/recipes-support/gnutls/gnutls/remove-gets.patch

-- 
1.7.9.5




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

* [PATCH 01/14] mirrors: Add debian archive snapshot mirrors to search list
  2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
@ 2012-07-05 14:35 ` Khem Raj
  2012-07-05 14:35 ` [PATCH 02/14] gdb: Replace struct siginfo with proper siginfo_t Khem Raj
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 25+ messages in thread
From: Khem Raj @ 2012-07-05 14:35 UTC (permalink / raw)
  To: openembedded-core

I ran across this problem when apt 0.7.14 was not fetchable
from regular debian mirrors and existing snapshot mirror
did not have it either since we did not use proper syntax
so it was not hitting that.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/classes/mirrors.bbclass |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/meta/classes/mirrors.bbclass b/meta/classes/mirrors.bbclass
index 86ccd7a..1a9a531 100644
--- a/meta/classes/mirrors.bbclass
+++ b/meta/classes/mirrors.bbclass
@@ -1,5 +1,7 @@
 MIRRORS += "\
-${DEBIAN_MIRROR}/main	http://snapshot.debian.org/archive/debian-archive/20120328T092752Z/debian/pool/ \n \
+${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian-archive/20120328T092752Z/debian/pool \n \
+${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian-archive/20110127T084257Z/debian/pool \n \
+${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian-archive/20090802T004153Z/debian/pool \n \
 ${DEBIAN_MIRROR}	ftp://ftp.de.debian.org/debian/pool \n \
 ${DEBIAN_MIRROR}	ftp://ftp.au.debian.org/debian/pool \n \
 ${DEBIAN_MIRROR}	ftp://ftp.cl.debian.org/debian/pool \n \
-- 
1.7.9.5




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

* [PATCH 02/14] gdb: Replace struct siginfo with proper siginfo_t
  2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
  2012-07-05 14:35 ` [PATCH 01/14] mirrors: Add debian archive snapshot mirrors to search list Khem Raj
@ 2012-07-05 14:35 ` Khem Raj
  2012-07-05 14:35 ` [PATCH 03/14] busybox: Include sys/resource.h for rusage definition Khem Raj
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 25+ messages in thread
From: Khem Raj @ 2012-07-05 14:35 UTC (permalink / raw)
  To: openembedded-core

Fixes errors like

/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/work/armv5te-oe-linux-gnueabi/gdb-7.4.1-r0.0/gdb-7.4.1/gdb/linux-nat.h:79:18:
error: field 'siginfo' has incomplete type

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-devtools/gdb/gdb-common.inc      |    2 +-
 meta/recipes-devtools/gdb/gdb.inc             |    1 +
 meta/recipes-devtools/gdb/gdb/siginfo_t.patch |  403 +++++++++++++++++++++++++
 3 files changed, 405 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-devtools/gdb/gdb/siginfo_t.patch

diff --git a/meta/recipes-devtools/gdb/gdb-common.inc b/meta/recipes-devtools/gdb/gdb-common.inc
index be4d77a..348bdee 100644
--- a/meta/recipes-devtools/gdb/gdb-common.inc
+++ b/meta/recipes-devtools/gdb/gdb-common.inc
@@ -12,7 +12,7 @@ LTTNGUST_mips64 = ""
 LTTNGUST_mips64el = ""
 LTTNGUST_sh4 = ""
 
-INC_PR = "r0"
+INC_PR = "r1"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
 		file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674 \
diff --git a/meta/recipes-devtools/gdb/gdb.inc b/meta/recipes-devtools/gdb/gdb.inc
index a620eca..c1ad83a 100644
--- a/meta/recipes-devtools/gdb/gdb.inc
+++ b/meta/recipes-devtools/gdb/gdb.inc
@@ -5,6 +5,7 @@ inherit gettext
 SRC_URI += "file://kill_arm_map_symbols.patch \
             file://gdbserver-cflags-last.diff;striplevel=0 \
 	    file://renesas-sh-native-support.patch \
+	    file://siginfo_t.patch \
            "
 #LDFLAGS_append = " -s"
 #export CFLAGS_append=" -L${STAGING_LIBDIR}"
diff --git a/meta/recipes-devtools/gdb/gdb/siginfo_t.patch b/meta/recipes-devtools/gdb/gdb/siginfo_t.patch
new file mode 100644
index 0000000..465645d
--- /dev/null
+++ b/meta/recipes-devtools/gdb/gdb/siginfo_t.patch
@@ -0,0 +1,403 @@
+POSIX says you get "siginto_t" *not* "struct siginfo
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: gdb-7.4.1/gdb/alpha-linux-tdep.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/alpha-linux-tdep.c	2012-01-05 20:43:04.000000000 -0800
++++ gdb-7.4.1/gdb/alpha-linux-tdep.c	2012-07-03 10:12:30.154227388 -0700
+@@ -114,7 +114,7 @@
+   /* __NR_rt_sigreturn has a couple of structures on the stack.  This is:
+ 
+ 	struct rt_sigframe {
+-	  struct siginfo info;
++	  siginfo_t info;
+ 	  struct ucontext uc;
+         };
+ 
+Index: gdb-7.4.1/gdb/amd64-linux-nat.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/amd64-linux-nat.c	2012-01-05 20:43:04.000000000 -0800
++++ gdb-7.4.1/gdb/amd64-linux-nat.c	2012-07-03 10:12:30.154227388 -0700
+@@ -671,13 +671,13 @@
+    INF.  */
+ 
+ static int
+-amd64_linux_siginfo_fixup (struct siginfo *native, gdb_byte *inf, int direction)
++amd64_linux_siginfo_fixup (siginfo_t *native, gdb_byte *inf, int direction)
+ {
+   /* Is the inferior 32-bit?  If so, then do fixup the siginfo
+      object.  */
+   if (gdbarch_addr_bit (get_frame_arch (get_current_frame ())) == 32)
+     {
+-      gdb_assert (sizeof (struct siginfo) == sizeof (compat_siginfo_t));
++      gdb_assert (sizeof (siginfo_t) == sizeof (compat_siginfo_t));
+ 
+       if (direction == 0)
+ 	compat_siginfo_from_siginfo ((struct compat_siginfo *) inf, native);
+Index: gdb-7.4.1/gdb/arm-linux-nat.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/arm-linux-nat.c	2012-01-05 20:43:04.000000000 -0800
++++ gdb-7.4.1/gdb/arm-linux-nat.c	2012-07-03 10:12:30.154227388 -0700
+@@ -1137,7 +1137,7 @@
+ static int
+ arm_linux_stopped_data_address (struct target_ops *target, CORE_ADDR *addr_p)
+ {
+-  struct siginfo *siginfo_p = linux_nat_get_siginfo (inferior_ptid);
++  siginfo_t *siginfo_p = linux_nat_get_siginfo (inferior_ptid);
+   int slot = siginfo_p->si_errno;
+ 
+   /* This must be a hardware breakpoint.  */
+Index: gdb-7.4.1/gdb/arm-linux-tdep.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/arm-linux-tdep.c	2012-01-05 20:43:04.000000000 -0800
++++ gdb-7.4.1/gdb/arm-linux-tdep.c	2012-07-03 10:12:30.154227388 -0700
+@@ -301,7 +301,7 @@
+ 
+ /* There are three elements in an rt_sigframe before the ucontext:
+    pinfo, puc, and info.  The first two are pointers and the third
+-   is a struct siginfo, with size 128 bytes.  We could follow puc
++   is a siginfo_t, with size 128 bytes.  We could follow puc
+    to the ucontext, but it's simpler to skip the whole thing.  */
+ #define ARM_OLD_RT_SIGFRAME_SIGINFO 0x8
+ #define ARM_OLD_RT_SIGFRAME_UCONTEXT 0x88
+Index: gdb-7.4.1/gdb/frv-linux-tdep.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/frv-linux-tdep.c	2012-01-05 20:43:12.000000000 -0800
++++ gdb-7.4.1/gdb/frv-linux-tdep.c	2012-07-03 10:12:30.154227388 -0700
+@@ -94,9 +94,9 @@
+       {
+ 	      void (*pretcode)(void);
+ 	      int sig;
+-	      struct siginfo *pinfo;
++	      siginfo_t *pinfo;
+ 	      void *puc;
+-	      struct siginfo info;
++	      siginfo_t info;
+ 	      struct ucontext uc;
+ 	      uint32_t retcode[2];
+       };
+Index: gdb-7.4.1/gdb/gdbserver/linux-arm-low.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/gdbserver/linux-arm-low.c	2012-01-05 20:43:37.000000000 -0800
++++ gdb-7.4.1/gdb/gdbserver/linux-arm-low.c	2012-07-03 10:12:30.154227388 -0700
+@@ -631,7 +631,7 @@
+ arm_stopped_by_watchpoint (void)
+ {
+   struct lwp_info *lwp = get_thread_lwp (current_inferior);
+-  struct siginfo siginfo;
++  siginfo_t siginfo;
+ 
+   /* We must be able to set hardware watchpoints.  */
+   if (arm_linux_get_hw_watchpoint_count () == 0)
+Index: gdb-7.4.1/gdb/gdbserver/linux-low.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/gdbserver/linux-low.c	2012-01-05 20:43:37.000000000 -0800
++++ gdb-7.4.1/gdb/gdbserver/linux-low.c	2012-07-03 10:12:30.154227388 -0700
+@@ -4522,7 +4522,7 @@
+    layout of the inferiors' architecture.  */
+ 
+ static void
+-siginfo_fixup (struct siginfo *siginfo, void *inf_siginfo, int direction)
++siginfo_fixup (siginfo_t *siginfo, void *inf_siginfo, int direction)
+ {
+   int done = 0;
+ 
+@@ -4534,9 +4534,9 @@
+   if (!done)
+     {
+       if (direction == 1)
+-	memcpy (siginfo, inf_siginfo, sizeof (struct siginfo));
++	memcpy (siginfo, inf_siginfo, sizeof (siginfo_t));
+       else
+-	memcpy (inf_siginfo, siginfo, sizeof (struct siginfo));
++	memcpy (inf_siginfo, siginfo, sizeof (siginfo_t));
+     }
+ }
+ 
+@@ -4545,8 +4545,8 @@
+ 		    unsigned const char *writebuf, CORE_ADDR offset, int len)
+ {
+   int pid;
+-  struct siginfo siginfo;
+-  char inf_siginfo[sizeof (struct siginfo)];
++  siginfo_t siginfo;
++  char inf_siginfo[sizeof (siginfo_t)];
+ 
+   if (current_inferior == NULL)
+     return -1;
+Index: gdb-7.4.1/gdb/gdbserver/linux-low.h
+===================================================================
+--- gdb-7.4.1.orig/gdb/gdbserver/linux-low.h	2012-01-05 20:43:37.000000000 -0800
++++ gdb-7.4.1/gdb/gdbserver/linux-low.h	2012-07-03 10:20:28.554250548 -0700
+@@ -22,6 +22,7 @@
+ #endif
+ 
+ #include "gdb_proc_service.h"
++#include <signal.h>
+ 
+ #ifdef HAVE_LINUX_REGSETS
+ typedef void (*regset_fill_func) (struct regcache *, void *);
+@@ -46,8 +47,6 @@
+ extern struct regset_info target_regsets[];
+ #endif
+ 
+-struct siginfo;
+-
+ struct process_info_private
+ {
+   /* Arch-specific additions.  */
+@@ -103,7 +102,7 @@
+      Returns true if any conversion was done; false otherwise.
+      If DIRECTION is 1, then copy from INF to NATIVE.
+      If DIRECTION is 0, copy from NATIVE to INF.  */
+-  int (*siginfo_fixup) (struct siginfo *native, void *inf, int direction);
++  int (*siginfo_fixup) (siginfo_t *native, void *inf, int direction);
+ 
+   /* Hook to call when a new process is created or attached to.
+      If extra per-process architecture-specific data is needed,
+Index: gdb-7.4.1/gdb/gdbserver/linux-x86-low.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/gdbserver/linux-x86-low.c	2012-01-05 20:43:37.000000000 -0800
++++ gdb-7.4.1/gdb/gdbserver/linux-x86-low.c	2012-07-03 10:12:30.154227388 -0700
+@@ -906,13 +906,13 @@
+    INF.  */
+ 
+ static int
+-x86_siginfo_fixup (struct siginfo *native, void *inf, int direction)
++x86_siginfo_fixup (siginfo_t *native, void *inf, int direction)
+ {
+ #ifdef __x86_64__
+   /* Is the inferior 32-bit?  If so, then fixup the siginfo object.  */
+   if (register_size (0) == 4)
+     {
+-      if (sizeof (struct siginfo) != sizeof (compat_siginfo_t))
++      if (sizeof (siginfo_t) != sizeof (compat_siginfo_t))
+ 	fatal ("unexpected difference in siginfo");
+ 
+       if (direction == 0)
+Index: gdb-7.4.1/gdb/hppa-linux-tdep.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/hppa-linux-tdep.c	2012-01-05 20:43:15.000000000 -0800
++++ gdb-7.4.1/gdb/hppa-linux-tdep.c	2012-07-03 10:12:30.158227388 -0700
+@@ -181,10 +181,10 @@
+     }
+ 
+   /* sp + sfoffs[try] points to a struct rt_sigframe, which contains
+-     a struct siginfo and a struct ucontext.  struct ucontext contains
++     a siginfo_t and a struct ucontext.  struct ucontext contains
+      a struct sigcontext.  Return an offset to this sigcontext here.  Too 
+      bad we cannot include system specific headers :-(.
+-     sizeof(struct siginfo) == 128
++     sizeof(siginfo_t) == 128
+      offsetof(struct ucontext, uc_mcontext) == 24.  */
+   return sp + sfoffs[try] + 128 + 24;
+ }
+Index: gdb-7.4.1/gdb/ia64-linux-nat.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/ia64-linux-nat.c	2012-01-05 20:43:16.000000000 -0800
++++ gdb-7.4.1/gdb/ia64-linux-nat.c	2012-07-03 10:12:30.158227388 -0700
+@@ -637,7 +637,7 @@
+ ia64_linux_stopped_data_address (struct target_ops *ops, CORE_ADDR *addr_p)
+ {
+   CORE_ADDR psr;
+-  struct siginfo *siginfo_p;
++  siginfo_t *siginfo_p;
+   struct regcache *regcache = get_current_regcache ();
+ 
+   siginfo_p = linux_nat_get_siginfo (inferior_ptid);
+Index: gdb-7.4.1/gdb/linux-nat.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/linux-nat.c	2012-01-05 20:43:19.000000000 -0800
++++ gdb-7.4.1/gdb/linux-nat.c	2012-07-03 10:12:30.158227388 -0700
+@@ -179,7 +179,7 @@
+ /* The method to call, if any, when the siginfo object needs to be
+    converted between the layout returned by ptrace, and the layout in
+    the architecture of the inferior.  */
+-static int (*linux_nat_siginfo_fixup) (struct siginfo *,
++static int (*linux_nat_siginfo_fixup) (siginfo_t *,
+ 				       gdb_byte *,
+ 				       int);
+ 
+@@ -4138,7 +4138,7 @@
+    layout of the inferiors' architecture.  */
+ 
+ static void
+-siginfo_fixup (struct siginfo *siginfo, gdb_byte *inf_siginfo, int direction)
++siginfo_fixup (siginfo_t *siginfo, gdb_byte *inf_siginfo, int direction)
+ {
+   int done = 0;
+ 
+@@ -4150,9 +4150,9 @@
+   if (!done)
+     {
+       if (direction == 1)
+-	memcpy (siginfo, inf_siginfo, sizeof (struct siginfo));
++	memcpy (siginfo, inf_siginfo, sizeof (siginfo_t));
+       else
+-	memcpy (inf_siginfo, siginfo, sizeof (struct siginfo));
++	memcpy (inf_siginfo, siginfo, sizeof (siginfo_t));
+     }
+ }
+ 
+@@ -4162,8 +4162,8 @@
+ 		    const gdb_byte *writebuf, ULONGEST offset, LONGEST len)
+ {
+   int pid;
+-  struct siginfo siginfo;
+-  gdb_byte inf_siginfo[sizeof (struct siginfo)];
++  siginfo_t siginfo;
++  gdb_byte inf_siginfo[sizeof (siginfo_t)];
+ 
+   gdb_assert (object == TARGET_OBJECT_SIGNAL_INFO);
+   gdb_assert (readbuf || writebuf);
+@@ -5852,7 +5852,7 @@
+    inferior.  */
+ void
+ linux_nat_set_siginfo_fixup (struct target_ops *t,
+-			     int (*siginfo_fixup) (struct siginfo *,
++			     int (*siginfo_fixup) (siginfo_t *,
+ 						   gdb_byte *,
+ 						   int))
+ {
+@@ -5861,7 +5861,7 @@
+ }
+ 
+ /* Return the saved siginfo associated with PTID.  */
+-struct siginfo *
++siginfo_t *
+ linux_nat_get_siginfo (ptid_t ptid)
+ {
+   struct lwp_info *lp = find_lwp_pid (ptid);
+Index: gdb-7.4.1/gdb/linux-nat.h
+===================================================================
+--- gdb-7.4.1.orig/gdb/linux-nat.h	2012-01-05 20:43:19.000000000 -0800
++++ gdb-7.4.1/gdb/linux-nat.h	2012-07-03 10:12:30.158227388 -0700
+@@ -76,7 +76,7 @@
+ 
+   /* Non-zero si_signo if this LWP stopped with a trap.  si_addr may
+      be the address of a hardware watchpoint.  */
+-  struct siginfo siginfo;
++  siginfo_t siginfo;
+ 
+   /* STOPPED_BY_WATCHPOINT is non-zero if this LWP stopped with a data
+      watchpoint trap.  */
+@@ -171,7 +171,7 @@
+    that ptrace returns, and the layout in the architecture of the
+    inferior.  */
+ void linux_nat_set_siginfo_fixup (struct target_ops *,
+-				  int (*) (struct siginfo *,
++				  int (*) (siginfo_t *,
+ 					   gdb_byte *,
+ 					   int));
+ 
+@@ -180,7 +180,7 @@
+ void linux_nat_switch_fork (ptid_t new_ptid);
+ 
+ /* Return the saved siginfo associated with PTID.  */
+-struct siginfo *linux_nat_get_siginfo (ptid_t ptid);
++siginfo_t *linux_nat_get_siginfo (ptid_t ptid);
+ 
+ /* Compute and return the processor core of a given thread.  */
+ int linux_nat_core_of_thread_1 (ptid_t ptid);
+Index: gdb-7.4.1/gdb/linux-tdep.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/linux-tdep.c	2012-01-05 20:43:19.000000000 -0800
++++ gdb-7.4.1/gdb/linux-tdep.c	2012-07-03 10:12:30.158227388 -0700
+@@ -150,7 +150,7 @@
+   append_composite_type_field (type, "si_fd", int_type);
+   append_composite_type_field (sifields_type, "_sigpoll", type);
+ 
+-  /* struct siginfo */
++  /* siginfo_t */
+   siginfo_type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
+   TYPE_NAME (siginfo_type) = xstrdup ("siginfo");
+   append_composite_type_field (siginfo_type, "si_signo", int_type);
+Index: gdb-7.4.1/gdb/mips-linux-tdep.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/mips-linux-tdep.c	2012-01-05 20:43:20.000000000 -0800
++++ gdb-7.4.1/gdb/mips-linux-tdep.c	2012-07-03 10:12:30.158227388 -0700
+@@ -905,7 +905,7 @@
+    struct rt_sigframe {
+      u32 rs_ass[4];            [argument save space for o32]
+      u32 rs_code[2]            [signal trampoline or fill]
+-     struct siginfo rs_info;
++     siginfo_t rs_info;
+      struct ucontext rs_uc;
+    };
+ 
+@@ -1033,7 +1033,7 @@
+   struct rt_sigframe_n32 {
+     u32 rs_ass[4];                  [ argument save space for o32 ]
+     u32 rs_code[2];                 [ signal trampoline or fill ]
+-    struct siginfo rs_info;
++    siginfo_t rs_info;
+     struct ucontextn32 rs_uc;
+   };
+ 
+@@ -1048,7 +1048,7 @@
+   struct rt_sigframe {
+     u32 rs_ass[4];                  [ argument save space for o32 ]
+     u32 rs_code[2];                 [ signal trampoline ]
+-    struct siginfo rs_info;
++    siginfo_t rs_info;
+     struct ucontext rs_uc;
+   };
+ 
+Index: gdb-7.4.1/gdb/mn10300-linux-tdep.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/mn10300-linux-tdep.c	2012-01-05 20:43:20.000000000 -0800
++++ gdb-7.4.1/gdb/mn10300-linux-tdep.c	2012-07-03 10:12:30.158227388 -0700
+@@ -528,9 +528,9 @@
+ {
+ 	void (*pretcode)(void);
+ 	int sig;
+-	struct siginfo *pinfo;
++	siginfo_t *pinfo;
+ 	void *puc;
+-	struct siginfo info;
++	siginfo_t info;
+ 	struct ucontext uc;
+ 	struct fpucontext fpuctx;
+ 	char retcode[8];
+Index: gdb-7.4.1/gdb/ppc-linux-nat.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/ppc-linux-nat.c	2012-01-05 20:43:22.000000000 -0800
++++ gdb-7.4.1/gdb/ppc-linux-nat.c	2012-07-03 10:12:30.158227388 -0700
+@@ -2213,7 +2213,7 @@
+ static int
+ ppc_linux_stopped_data_address (struct target_ops *target, CORE_ADDR *addr_p)
+ {
+-  struct siginfo *siginfo_p;
++  siginfo_t *siginfo_p;
+ 
+   siginfo_p = linux_nat_get_siginfo (inferior_ptid);
+ 
+Index: gdb-7.4.1/gdb/procfs.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/procfs.c	2012-01-05 20:43:25.000000000 -0800
++++ gdb-7.4.1/gdb/procfs.c	2012-07-03 10:12:30.158227388 -0700
+@@ -262,7 +262,7 @@
+ #ifdef HAVE_PR_SIGINFO64_T
+ typedef pr_siginfo64_t gdb_siginfo_t;
+ #else
+-typedef struct siginfo gdb_siginfo_t;
++typedef siginfo_t gdb_siginfo_t;
+ #endif
+ 
+ /* On mips-irix, praddset and prdelset are defined in such a way that
+Index: gdb-7.4.1/gdb/tic6x-linux-tdep.c
+===================================================================
+--- gdb-7.4.1.orig/gdb/tic6x-linux-tdep.c	2012-01-05 20:54:31.000000000 -0800
++++ gdb-7.4.1/gdb/tic6x-linux-tdep.c	2012-07-03 10:12:30.158227388 -0700
+@@ -34,7 +34,7 @@
+ 
+ /* The offset from rt_sigframe pointer to SP register.  */
+ #define TIC6X_SP_RT_SIGFRAME 8
+-/* Size of struct siginfo info.  */
++/* Size of siginfo_t info.  */
+ #define TIC6X_SIGINFO_SIZE 128
+ /* Size of type stack_t, which contains three fields of type void*, int, and
+    size_t respectively.  */
-- 
1.7.9.5




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

* [PATCH 03/14] busybox: Include sys/resource.h for rusage definition
  2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
  2012-07-05 14:35 ` [PATCH 01/14] mirrors: Add debian archive snapshot mirrors to search list Khem Raj
  2012-07-05 14:35 ` [PATCH 02/14] gdb: Replace struct siginfo with proper siginfo_t Khem Raj
@ 2012-07-05 14:35 ` Khem Raj
  2012-07-05 14:35 ` [PATCH 04/14] coreutils: Fix build with eglibc 2.16 Khem Raj
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 25+ messages in thread
From: Khem Raj @ 2012-07-05 14:35 UTC (permalink / raw)
  To: openembedded-core

Seen with eglibc 2.16

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../busybox/busybox-1.19.4/sys_resource.patch      |   18 ++++++++++++++++++
 meta/recipes-core/busybox/busybox_1.19.4.bb        |    3 ++-
 2 files changed, 20 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-core/busybox/busybox-1.19.4/sys_resource.patch

diff --git a/meta/recipes-core/busybox/busybox-1.19.4/sys_resource.patch b/meta/recipes-core/busybox/busybox-1.19.4/sys_resource.patch
new file mode 100644
index 0000000..a72aca0
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox-1.19.4/sys_resource.patch
@@ -0,0 +1,18 @@
+rusage needs this include with eglibc 2.16
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+
+Index: busybox-1.19.4/include/libbb.h
+===================================================================
+--- busybox-1.19.4.orig/include/libbb.h	2012-07-02 21:41:52.692047712 -0700
++++ busybox-1.19.4/include/libbb.h	2012-07-02 21:42:24.204049228 -0700
+@@ -46,6 +46,7 @@
+ #include <termios.h>
+ #include <time.h>
+ #include <sys/param.h>
++#include <sys/resource.h>
+ #ifdef HAVE_MNTENT_H
+ # include <mntent.h>
+ #endif
diff --git a/meta/recipes-core/busybox/busybox_1.19.4.bb b/meta/recipes-core/busybox/busybox_1.19.4.bb
index de331ad..4271c67 100644
--- a/meta/recipes-core/busybox/busybox_1.19.4.bb
+++ b/meta/recipes-core/busybox/busybox_1.19.4.bb
@@ -1,5 +1,5 @@
 require busybox.inc
-PR = "r8"
+PR = "r9"
 
 SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
            file://B921600.patch \
@@ -8,6 +8,7 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
            file://run-parts.in.usr-bin.patch \
            file://watch.in.usr-bin.patch \
            file://busybox-udhcpc-no_deconfig.patch \
+           file://sys_resource.patch \
            file://find-touchscreen.sh \
            file://busybox-cron \
            file://busybox-httpd \
-- 
1.7.9.5




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

* [PATCH 04/14] coreutils: Fix build with eglibc 2.16
  2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
                   ` (2 preceding siblings ...)
  2012-07-05 14:35 ` [PATCH 03/14] busybox: Include sys/resource.h for rusage definition Khem Raj
@ 2012-07-05 14:35 ` Khem Raj
  2012-07-05 14:35 ` [PATCH 05/14] diffutils: " Khem Raj
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 25+ messages in thread
From: Khem Raj @ 2012-07-05 14:35 UTC (permalink / raw)
  To: openembedded-core

eglibc 2.16 has removed gets so we account for that

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../coreutils/coreutils-8.14/remove-gets.patch     |   23 ++++++++++++++++++++
 meta/recipes-core/coreutils/coreutils_8.14.bb      |    3 ++-
 2 files changed, 25 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-core/coreutils/coreutils-8.14/remove-gets.patch

diff --git a/meta/recipes-core/coreutils/coreutils-8.14/remove-gets.patch b/meta/recipes-core/coreutils/coreutils-8.14/remove-gets.patch
new file mode 100644
index 0000000..4f61c92
--- /dev/null
+++ b/meta/recipes-core/coreutils/coreutils-8.14/remove-gets.patch
@@ -0,0 +1,23 @@
+use gets iff its defined. eglibc 2.16 removed gets
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: coreutils-8.14/lib/stdio.in.h
+===================================================================
+--- coreutils-8.14.orig/lib/stdio.in.h	2011-09-24 04:20:48.000000000 -0700
++++ coreutils-8.14/lib/stdio.in.h	2012-07-03 10:36:19.886296576 -0700
+@@ -713,11 +713,13 @@
+ _GL_CXXALIAS_SYS (gets, char *, (char *s));
+ #  undef gets
+ # endif
++# if defined gets
+ _GL_CXXALIASWARN (gets);
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++# endif
+ #endif
+ 
+ 
diff --git a/meta/recipes-core/coreutils/coreutils_8.14.bb b/meta/recipes-core/coreutils/coreutils_8.14.bb
index 214bedb..9a714a9 100644
--- a/meta/recipes-core/coreutils/coreutils_8.14.bb
+++ b/meta/recipes-core/coreutils/coreutils_8.14.bb
@@ -7,7 +7,7 @@ BUGTRACKER = "http://debbugs.gnu.org/coreutils"
 LICENSE = "GPLv3+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504\
                     file://src/ls.c;startline=5;endline=16;md5=e1a509558876db58fb6667ba140137ad"
-PR = "r4"
+PR = "r5"
 DEPENDS = "gmp libcap"
 DEPENDS_virtclass-native = ""
 
@@ -15,6 +15,7 @@ inherit autotools gettext
 
 SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \
            file://remove-usr-local-lib-from-m4.patch \
+           file://remove-gets.patch \
           "
 SRC_URI[md5sum] = "bcb135ce553493a45aba01b39eb3920a"
 SRC_URI[sha256sum] = "0d120817c19292edb19e92ae6b8eac9020e03d51e0af9cb116cf82b65d18b02d"
-- 
1.7.9.5




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

* [PATCH 05/14] diffutils: Fix build with eglibc 2.16
  2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
                   ` (3 preceding siblings ...)
  2012-07-05 14:35 ` [PATCH 04/14] coreutils: Fix build with eglibc 2.16 Khem Raj
@ 2012-07-05 14:35 ` Khem Raj
  2012-07-05 14:35 ` [PATCH 06/14] udev: " Khem Raj
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 25+ messages in thread
From: Khem Raj @ 2012-07-05 14:35 UTC (permalink / raw)
  To: openembedded-core

eglibc 2.16 has removed gets so we account for that

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../diffutils/diffutils-3.2/remove-gets.patch      |   22 ++++++++++++++++++++
 meta/recipes-extended/diffutils/diffutils_3.2.bb   |    6 ++++--
 2 files changed, 26 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-extended/diffutils/diffutils-3.2/remove-gets.patch

diff --git a/meta/recipes-extended/diffutils/diffutils-3.2/remove-gets.patch b/meta/recipes-extended/diffutils/diffutils-3.2/remove-gets.patch
new file mode 100644
index 0000000..58ed62d
--- /dev/null
+++ b/meta/recipes-extended/diffutils/diffutils-3.2/remove-gets.patch
@@ -0,0 +1,22 @@
+check for gets before using it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+Index: diffutils-3.2/lib/stdio.in.h
+===================================================================
+--- diffutils-3.2.orig/lib/stdio.in.h	2011-08-28 04:57:28.000000000 -0700
++++ diffutils-3.2/lib/stdio.in.h	2012-07-03 10:45:07.518322117 -0700
+@@ -693,11 +693,13 @@
+ _GL_CXXALIAS_SYS (gets, char *, (char *s));
+ #  undef gets
+ # endif
++# if defined gets
+ _GL_CXXALIASWARN (gets);
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++# endif
+ #endif
+ 
+ 
diff --git a/meta/recipes-extended/diffutils/diffutils_3.2.bb b/meta/recipes-extended/diffutils/diffutils_3.2.bb
index 174866c..c46863d 100644
--- a/meta/recipes-extended/diffutils/diffutils_3.2.bb
+++ b/meta/recipes-extended/diffutils/diffutils_3.2.bb
@@ -5,9 +5,11 @@ SECTION = "base"
 LICENSE = "GPLv3+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
-PR = "r0"
+PR = "r1"
 
-SRC_URI = "${GNU_MIRROR}/diffutils/diffutils-${PV}.tar.gz"
+SRC_URI = "${GNU_MIRROR}/diffutils/diffutils-${PV}.tar.gz \
+           file://remove-gets.patch \
+          "
 
 inherit autotools update-alternatives gettext
 
-- 
1.7.9.5




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

* [PATCH 06/14] udev: Fix build with eglibc 2.16
  2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
                   ` (4 preceding siblings ...)
  2012-07-05 14:35 ` [PATCH 05/14] diffutils: " Khem Raj
@ 2012-07-05 14:35 ` Khem Raj
  2012-07-05 14:35 ` [PATCH 07/14] gettext, m4, augeas, gnutls: Account for removal of gets in " Khem Raj
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 25+ messages in thread
From: Khem Raj @ 2012-07-05 14:35 UTC (permalink / raw)
  To: openembedded-core

Include sys/resource.h to get definition of
PRIO_PROCESS

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-core/udev/udev/include_resource.patch |   31 ++++++++++++++++++++
 meta/recipes-core/udev/udev_164.bb                 |    7 +++--
 2 files changed, 35 insertions(+), 3 deletions(-)
 create mode 100644 meta/recipes-core/udev/udev/include_resource.patch

diff --git a/meta/recipes-core/udev/udev/include_resource.patch b/meta/recipes-core/udev/udev/include_resource.patch
new file mode 100644
index 0000000..a46ce59
--- /dev/null
+++ b/meta/recipes-core/udev/udev/include_resource.patch
@@ -0,0 +1,31 @@
+Fixes errors like below with eglibc 2.16
+
+libudev/libudev-util-private.c:348:16: error: 'PRIO_PROCESS' undeclared (first use in this function)
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: udev-164/libudev/libudev-util-private.c
+===================================================================
+--- udev-164.orig/libudev/libudev-util-private.c	2010-08-03 02:42:26.000000000 -0700
++++ udev-164/libudev/libudev-util-private.c	2012-07-03 10:53:35.082346684 -0700
+@@ -21,6 +21,7 @@
+ #include <grp.h>
+ #include <sys/wait.h>
+ #include <sys/param.h>
++#include <sys/resource.h>
+ 
+ #include "libudev.h"
+ #include "libudev-private.h"
+Index: udev-164/udev/udevd.c
+===================================================================
+--- udev-164.orig/udev/udevd.c	2010-10-13 04:08:29.000000000 -0700
++++ udev-164/udev/udevd.c	2012-07-03 10:53:19.214345914 -0700
+@@ -43,6 +43,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/inotify.h>
+ #include <sys/utsname.h>
++#include <sys/resource.h>
+ 
+ #include "udev.h"
+ #include "sd-daemon.h"
diff --git a/meta/recipes-core/udev/udev_164.bb b/meta/recipes-core/udev/udev_164.bb
index c5813ec..2a8dd83 100644
--- a/meta/recipes-core/udev/udev_164.bb
+++ b/meta/recipes-core/udev/udev_164.bb
@@ -1,8 +1,9 @@
 include udev.inc
 
-PR = "r13"
-
-SRC_URI += "file://udev-166-v4l1-1.patch"
+PR = "r14"
 
+SRC_URI += "file://udev-166-v4l1-1.patch \
+            file://include_resource.patch \
+           "
 SRC_URI[md5sum] = "fddac2d54761ea34865af9467377ca9f"
 SRC_URI[sha256sum] = "c12e66280b5e1465f6587a8cfa47d7405c4caa7e52ce5dd13478d04f6ec05e5c"
-- 
1.7.9.5




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

* [PATCH 07/14] gettext, m4, augeas, gnutls: Account for removal of gets in eglibc 2.16
  2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
                   ` (5 preceding siblings ...)
  2012-07-05 14:35 ` [PATCH 06/14] udev: " Khem Raj
@ 2012-07-05 14:35 ` Khem Raj
  2012-07-05 14:35 ` [PATCH 08/14] bison: Fix for gets being removed from " Khem Raj
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 25+ messages in thread
From: Khem Raj @ 2012-07-05 14:35 UTC (permalink / raw)
  To: openembedded-core

These recipes use gnulib which needs this change to use gets
when its defined and not otherwise. Until that change goes into
gnulib and then all these package upgrade gnulib in their sourcebase
we patch them

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../gettext/gettext-0.18.1.1/remove_gets.patch     |   58 ++++++++++++++++++++
 meta/recipes-core/gettext/gettext_0.18.1.1.bb      |    3 +-
 meta/recipes-devtools/m4/m4-1.4.16.inc             |    6 +-
 meta/recipes-devtools/m4/m4/remove-gets.patch      |   21 +++++++
 .../augeas/augeas/remove-gets.patch                |   20 +++++++
 meta/recipes-extended/augeas/augeas_0.10.0.bb      |    4 +-
 .../gnutls/gnutls/remove-gets.patch                |   41 ++++++++++++++
 meta/recipes-support/gnutls/gnutls_2.12.20.bb      |    3 +-
 8 files changed, 151 insertions(+), 5 deletions(-)
 create mode 100644 meta/recipes-core/gettext/gettext-0.18.1.1/remove_gets.patch
 create mode 100644 meta/recipes-devtools/m4/m4/remove-gets.patch
 create mode 100644 meta/recipes-extended/augeas/augeas/remove-gets.patch
 create mode 100644 meta/recipes-support/gnutls/gnutls/remove-gets.patch

diff --git a/meta/recipes-core/gettext/gettext-0.18.1.1/remove_gets.patch b/meta/recipes-core/gettext/gettext-0.18.1.1/remove_gets.patch
new file mode 100644
index 0000000..3d3c400
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-0.18.1.1/remove_gets.patch
@@ -0,0 +1,58 @@
+eglibc 2.16 has removed gets so we need to check for it
+being there before using it.
+
+
+From glibc stdio.h
+
+The function has been officially removed in ISO C11.  This opportunity
+   is used to also remove it from the GNU feature list.  It is now only
+   available when explicitly using an old ISO C, Unix, or POSIX standard.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+Index: gettext-0.18.1.1/gettext-runtime/gnulib-lib/stdio.in.h
+===================================================================
+--- gettext-0.18.1.1.orig/gettext-runtime/gnulib-lib/stdio.in.h	2010-05-17 12:56:12.000000000 -0700
++++ gettext-0.18.1.1/gettext-runtime/gnulib-lib/stdio.in.h	2012-07-02 22:42:21.292223316 -0700
+@@ -140,8 +140,10 @@
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
++#if defined gets
+ #undef gets
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++#endif
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
+Index: gettext-0.18.1.1/gettext-tools/gnulib-lib/stdio.in.h
+===================================================================
+--- gettext-0.18.1.1.orig/gettext-tools/gnulib-lib/stdio.in.h	2010-05-24 02:42:46.000000000 -0700
++++ gettext-0.18.1.1/gettext-tools/gnulib-lib/stdio.in.h	2012-07-02 23:02:33.476281979 -0700
+@@ -140,8 +140,10 @@
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
++#if defined gets
+ #undef gets
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++#endif
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
+Index: gettext-0.18.1.1/gettext-tools/libgettextpo/stdio.in.h
+===================================================================
+--- gettext-0.18.1.1.orig/gettext-tools/libgettextpo/stdio.in.h	2010-05-17 12:58:03.000000000 -0700
++++ gettext-0.18.1.1/gettext-tools/libgettextpo/stdio.in.h	2012-07-02 23:01:57.440280253 -0700
+@@ -140,8 +140,10 @@
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
++#if defined gets
+ #undef gets
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++#endif
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
diff --git a/meta/recipes-core/gettext/gettext_0.18.1.1.bb b/meta/recipes-core/gettext/gettext_0.18.1.1.bb
index d9512fe..09a9465 100644
--- a/meta/recipes-core/gettext/gettext_0.18.1.1.bb
+++ b/meta/recipes-core/gettext/gettext_0.18.1.1.bb
@@ -5,7 +5,7 @@ SECTION = "libs"
 LICENSE = "GPLv3+ & LGPL-2.1+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
-PR = "r14"
+PR = "r15"
 DEPENDS = "libxml2-native gettext-native virtual/libiconv ncurses expat"
 DEPENDS_virtclass-native = "libxml2-native gettext-minimal-native"
 PROVIDES = "virtual/libintl virtual/gettext"
@@ -13,6 +13,7 @@ PROVIDES_virtclass-native = "virtual/gettext-native"
 RCONFLICTS_${PN} = "proxy-libintl"
 SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
 	   file://parallel.patch \
+	   file://remove_gets.patch \
           "
 
 SRC_URI_append_libc-uclibc = " file://wchar-uclibc.patch \
diff --git a/meta/recipes-devtools/m4/m4-1.4.16.inc b/meta/recipes-devtools/m4/m4-1.4.16.inc
index 1669775..01016d6 100644
--- a/meta/recipes-devtools/m4/m4-1.4.16.inc
+++ b/meta/recipes-devtools/m4/m4-1.4.16.inc
@@ -5,8 +5,10 @@ LICENSE = "GPLv3"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504\
 	            file://examples/COPYING;md5=fbc986d45b3dae6725c29870dd6b669d"
 
-PR = "r3"
-SRC_URI += "file://ac_config_links.patch"
+PR = "r4"
+SRC_URI += "file://ac_config_links.patch \
+            file://remove-gets.patch \
+           "
 
 SRC_URI[md5sum] = "a5dfb4f2b7370e9d34293d23fd09b280"
 SRC_URI[sha256sum] = "e9176a35bb13a1b08482359aa554ee8072794f58f00e4827bf0e06b570c827da"
diff --git a/meta/recipes-devtools/m4/m4/remove-gets.patch b/meta/recipes-devtools/m4/m4/remove-gets.patch
new file mode 100644
index 0000000..9c396d9
--- /dev/null
+++ b/meta/recipes-devtools/m4/m4/remove-gets.patch
@@ -0,0 +1,21 @@
+eglibc has remove gets starting 2.16
+therefore check for its being there before 
+undefining it.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Index: m4-1.4.16/lib/stdio.in.h
+===================================================================
+--- m4-1.4.16.orig/lib/stdio.in.h	2011-03-01 08:39:29.000000000 -0800
++++ m4-1.4.16/lib/stdio.in.h	2012-07-03 08:32:08.145935928 -0700
+@@ -161,8 +161,10 @@
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
++#if defined gets
+ #undef gets
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++#endif
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
diff --git a/meta/recipes-extended/augeas/augeas/remove-gets.patch b/meta/recipes-extended/augeas/augeas/remove-gets.patch
new file mode 100644
index 0000000..bd6e92c
--- /dev/null
+++ b/meta/recipes-extended/augeas/augeas/remove-gets.patch
@@ -0,0 +1,20 @@
+eglibc 2.16 has remove gets so check for it to be there before using it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+Index: augeas-0.10.0/gnulib/lib/stdio.in.h
+===================================================================
+--- augeas-0.10.0.orig/gnulib/lib/stdio.in.h	2011-03-03 17:07:59.000000000 -0800
++++ augeas-0.10.0/gnulib/lib/stdio.in.h	2012-07-03 19:46:42.871894833 -0700
+@@ -161,8 +161,10 @@
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
++#if defined gets
+ #undef gets
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++#endif
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
diff --git a/meta/recipes-extended/augeas/augeas_0.10.0.bb b/meta/recipes-extended/augeas/augeas_0.10.0.bb
index 1a08707..0840428 100644
--- a/meta/recipes-extended/augeas/augeas_0.10.0.bb
+++ b/meta/recipes-extended/augeas/augeas_0.10.0.bb
@@ -1,6 +1,8 @@
 require augeas.inc
 
-PR = "r2"
+SRC_URI += "file://remove-gets.patch \
+           "
+PR = "r3"
 
 SRC_URI[md5sum] = "fe1834e90a066c3208ac0214622c7352"
 SRC_URI[sha256sum] = "ec111af06186216930176ebe5ecccdf7bf528528aee9acde1d5d70088484afca"
diff --git a/meta/recipes-support/gnutls/gnutls/remove-gets.patch b/meta/recipes-support/gnutls/gnutls/remove-gets.patch
new file mode 100644
index 0000000..8b7df62
--- /dev/null
+++ b/meta/recipes-support/gnutls/gnutls/remove-gets.patch
@@ -0,0 +1,41 @@
+eglibc 2.16 has removed gets completely
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+Index: gnutls-2.12.20/gl/stdio.in.h
+===================================================================
+--- gnutls-2.12.20.orig/gl/stdio.in.h	2012-03-01 07:47:48.000000000 -0800
++++ gnutls-2.12.20/gl/stdio.in.h	2012-07-03 18:17:57.191637189 -0700
+@@ -710,11 +710,13 @@
+ _GL_CXXALIAS_SYS (gets, char *, (char *s));
+ #  undef gets
+ # endif
++# if defined gets
+ _GL_CXXALIASWARN (gets);
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++# endif
+ #endif
+ 
+ 
+Index: gnutls-2.12.20/lib/gl/stdio.in.h
+===================================================================
+--- gnutls-2.12.20.orig/lib/gl/stdio.in.h	2012-03-01 07:53:13.000000000 -0800
++++ gnutls-2.12.20/lib/gl/stdio.in.h	2012-07-03 18:18:56.351639640 -0700
+@@ -710,11 +710,13 @@
+ _GL_CXXALIAS_SYS (gets, char *, (char *s));
+ #  undef gets
+ # endif
++# if defined gets
+ _GL_CXXALIASWARN (gets);
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++# endif
+ #endif
+ 
+ 
diff --git a/meta/recipes-support/gnutls/gnutls_2.12.20.bb b/meta/recipes-support/gnutls/gnutls_2.12.20.bb
index 248c90f..a48a8b5 100644
--- a/meta/recipes-support/gnutls/gnutls_2.12.20.bb
+++ b/meta/recipes-support/gnutls/gnutls_2.12.20.bb
@@ -1,10 +1,11 @@
 require gnutls.inc
 
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
 
 SRC_URI += "file://gnutls-openssl.patch \
             file://correct_rpl_gettimeofday_signature.patch \
             file://configure-fix.patch \
+            file://remove-gets.patch \
            "
 
 SRC_URI[md5sum] = "f1dea97da5d4dcdbc675720c9aad9ee3"
-- 
1.7.9.5




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

* [PATCH 08/14] bison: Fix for gets being removed from eglibc 2.16
  2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
                   ` (6 preceding siblings ...)
  2012-07-05 14:35 ` [PATCH 07/14] gettext, m4, augeas, gnutls: Account for removal of gets in " Khem Raj
@ 2012-07-05 14:35 ` Khem Raj
  2012-07-05 14:35 ` [PATCH 09/14] grub, guile, cpio, tar, wget: Fix gnulib for absense of gets in eglibc Khem Raj
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 25+ messages in thread
From: Khem Raj @ 2012-07-05 14:35 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../recipes-devtools/bison/bison/remove-gets.patch |   20 ++++++++++++++++++++
 meta/recipes-devtools/bison/bison_2.5.bb           |    6 ++++--
 2 files changed, 24 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-devtools/bison/bison/remove-gets.patch

diff --git a/meta/recipes-devtools/bison/bison/remove-gets.patch b/meta/recipes-devtools/bison/bison/remove-gets.patch
new file mode 100644
index 0000000..2dfa00f
--- /dev/null
+++ b/meta/recipes-devtools/bison/bison/remove-gets.patch
@@ -0,0 +1,20 @@
+gets has been removed from eglibc 2.16
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+Index: bison-2.5/lib/stdio.in.h
+===================================================================
+--- bison-2.5.orig/lib/stdio.in.h	2012-07-04 09:09:48.336532195 -0700
++++ bison-2.5/lib/stdio.in.h	2012-07-04 09:10:22.868533884 -0700
+@@ -180,8 +180,10 @@
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
++#if defined gets
+ #undef gets
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++#endif
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
diff --git a/meta/recipes-devtools/bison/bison_2.5.bb b/meta/recipes-devtools/bison/bison_2.5.bb
index fc3bb6d..687f06a 100644
--- a/meta/recipes-devtools/bison/bison_2.5.bb
+++ b/meta/recipes-devtools/bison/bison_2.5.bb
@@ -9,14 +9,16 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 SECTION = "devel"
 DEPENDS = "bison-native flex-native"
 
-PR = "r1"
+PR = "r2"
 
 BASE_SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.gz \
 	   file://m4.patch \
 	  "
 
 SRC_URI = "${BASE_SRC_URI} \
-        file://fix_cross_manpage_building.patch "
+           file://fix_cross_manpage_building.patch \
+           file://remove-gets.patch \
+          "
 
 SRC_URI[md5sum] = "687e1dcd29452789d34eaeea4c25abe4"
 SRC_URI[sha256sum] = "722def46e4a19a5b7a579ef30db1965f86c37c1a20a5f0113743a2e4399f7c99"
-- 
1.7.9.5




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

* [PATCH 09/14] grub, guile, cpio, tar, wget: Fix gnulib for absense of gets in eglibc
  2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
                   ` (7 preceding siblings ...)
  2012-07-05 14:35 ` [PATCH 08/14] bison: Fix for gets being removed from " Khem Raj
@ 2012-07-05 14:35 ` Khem Raj
  2012-07-05 14:35 ` [PATCH 10/14] boost: Upgrade recipe to 1.50.0 Khem Raj
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 25+ messages in thread
From: Khem Raj @ 2012-07-05 14:35 UTC (permalink / raw)
  To: openembedded-core

eglibc 2.16 does not export gets anymore

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-bsp/grub/grub-1.99/remove-gets.patch  |   20 +++++++++++++++++
 meta/recipes-bsp/grub/grub_1.99.bb                 |    3 ++-
 .../recipes-devtools/guile/files/remove-gets.patch |   23 ++++++++++++++++++++
 meta/recipes-devtools/guile/guile_2.0.5.bb         |    3 ++-
 .../cpio/cpio-2.11/remove-gets.patch               |   20 +++++++++++++++++
 meta/recipes-extended/cpio/cpio_2.11.bb            |    5 ++++-
 .../tar/tar-1.26/remove-gets.patch                 |   20 +++++++++++++++++
 meta/recipes-extended/tar/tar_1.26.bb              |    5 ++++-
 .../wget/wget-1.13.4/remove-gets.patch             |   23 ++++++++++++++++++++
 meta/recipes-extended/wget/wget_1.13.4.bb          |    3 ++-
 10 files changed, 120 insertions(+), 5 deletions(-)
 create mode 100644 meta/recipes-bsp/grub/grub-1.99/remove-gets.patch
 create mode 100644 meta/recipes-devtools/guile/files/remove-gets.patch
 create mode 100644 meta/recipes-extended/cpio/cpio-2.11/remove-gets.patch
 create mode 100644 meta/recipes-extended/tar/tar-1.26/remove-gets.patch
 create mode 100644 meta/recipes-extended/wget/wget-1.13.4/remove-gets.patch

diff --git a/meta/recipes-bsp/grub/grub-1.99/remove-gets.patch b/meta/recipes-bsp/grub/grub-1.99/remove-gets.patch
new file mode 100644
index 0000000..463f784
--- /dev/null
+++ b/meta/recipes-bsp/grub/grub-1.99/remove-gets.patch
@@ -0,0 +1,20 @@
+ISO C11 removes the specification of gets() from the C language, eglibc 2.16+ removed it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+Index: grub-1.99/grub-core/gnulib/stdio.in.h
+===================================================================
+--- grub-1.99.orig/grub-core/gnulib/stdio.in.h	2010-12-01 06:45:43.000000000 -0800
++++ grub-1.99/grub-core/gnulib/stdio.in.h	2012-07-04 12:25:02.057099107 -0700
+@@ -140,8 +140,10 @@
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
++#if defined gets
+ #undef gets
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++#endif
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
diff --git a/meta/recipes-bsp/grub/grub_1.99.bb b/meta/recipes-bsp/grub/grub_1.99.bb
index 0d49f23..775c6aa 100644
--- a/meta/recipes-bsp/grub/grub_1.99.bb
+++ b/meta/recipes-bsp/grub/grub_1.99.bb
@@ -13,7 +13,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
 DEPENDS = "autogen-native"
 RDEPENDS_${PN} = "diffutils freetype"
-PR = "r8"
+PR = "r9"
 
 SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
           file://grub-install.in.patch \
@@ -23,6 +23,7 @@ SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
           file://grub-1.99-gcc-4.7.0-uninitialized-var-errors.patch \
           file://grub-1.99-gcc-4.7.0-strict-aliasing-errors.patch \
           file://grub-1.99-fix-enable_execute_stack-check.patch \
+          file://remove-gets.patch \
           file://40_custom"
 
 SRC_URI[md5sum] = "ca9f2a2d571b57fc5c53212d1d22e2b5"
diff --git a/meta/recipes-devtools/guile/files/remove-gets.patch b/meta/recipes-devtools/guile/files/remove-gets.patch
new file mode 100644
index 0000000..6d3605f
--- /dev/null
+++ b/meta/recipes-devtools/guile/files/remove-gets.patch
@@ -0,0 +1,23 @@
+ISO C11 removes the specification of gets() from the C language, eglibc 2.16+ removed it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+Index: guile-2.0.5/lib/stdio.in.h
+===================================================================
+--- guile-2.0.5.orig/lib/stdio.in.h	2012-01-24 03:06:06.000000000 -0800
++++ guile-2.0.5/lib/stdio.in.h	2012-07-04 12:28:15.617108481 -0700
+@@ -711,11 +711,13 @@
+ _GL_CXXALIAS_SYS (gets, char *, (char *s));
+ #  undef gets
+ # endif
++# if defined gets
+ _GL_CXXALIASWARN (gets);
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++# endif
+ #endif
+ 
+ 
diff --git a/meta/recipes-devtools/guile/guile_2.0.5.bb b/meta/recipes-devtools/guile/guile_2.0.5.bb
index cf222a6..fc94a41 100644
--- a/meta/recipes-devtools/guile/guile_2.0.5.bb
+++ b/meta/recipes-devtools/guile/guile_2.0.5.bb
@@ -20,6 +20,7 @@ SRC_URI = "${GNU_MIRROR}/guile/guile-${PV}.tar.gz \
            file://guile_2.0.5_fix_sed_error.patch \
            file://guile_2.0.5_disable_goops_optimizations.patch \
            file://guile_2.0.5_fix_cross_compilation.patch \
+           file://remove-gets.patch \
            "
 
 #           file://debian/0001-Change-guile-to-guile-X.Y-for-info-pages.patch
@@ -28,7 +29,7 @@ SRC_URI = "${GNU_MIRROR}/guile/guile-${PV}.tar.gz \
 SRC_URI[md5sum] = "bcf70d54b44c99cb9acd3f63c5486b4b"
 SRC_URI[sha256sum] = "2a026ea6cdbc51ca71bcd9787839debfa45ac5db1e26dc00b30ca9b128b10956"
 
-PR = "r1"
+PR = "r2"
 
 inherit autotools gettext
 BBCLASSEXTEND = "native"
diff --git a/meta/recipes-extended/cpio/cpio-2.11/remove-gets.patch b/meta/recipes-extended/cpio/cpio-2.11/remove-gets.patch
new file mode 100644
index 0000000..b4d113d
--- /dev/null
+++ b/meta/recipes-extended/cpio/cpio-2.11/remove-gets.patch
@@ -0,0 +1,20 @@
+ISO C11 removes the specification of gets() from the C language, eglibc 2.16+ removed it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+Index: cpio-2.11/gnu/stdio.in.h
+===================================================================
+--- cpio-2.11.orig/gnu/stdio.in.h	2012-07-04 12:13:43.133066247 -0700
++++ cpio-2.11/gnu/stdio.in.h	2012-07-04 12:14:10.189067564 -0700
+@@ -138,8 +138,10 @@
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
++#if defined gets
+ #undef gets
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++#endif
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
diff --git a/meta/recipes-extended/cpio/cpio_2.11.bb b/meta/recipes-extended/cpio/cpio_2.11.bb
index 73a3444..9b37dcd 100644
--- a/meta/recipes-extended/cpio/cpio_2.11.bb
+++ b/meta/recipes-extended/cpio/cpio_2.11.bb
@@ -3,7 +3,10 @@ include cpio_v2.inc
 LICENSE = "GPLv3"
 LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
 
-PR = "r2"
+PR = "r3"
+
+SRC_URI += "file://remove-gets.patch \
+           "
 
 SRC_URI[md5sum] = "1112bb6c45863468b5496ba128792f6c"
 SRC_URI[sha256sum] = "601b1d774cd6e4cd39416203c91ec59dbd65dd27d79d75e1a9b89497ea643978"
diff --git a/meta/recipes-extended/tar/tar-1.26/remove-gets.patch b/meta/recipes-extended/tar/tar-1.26/remove-gets.patch
new file mode 100644
index 0000000..2429d42
--- /dev/null
+++ b/meta/recipes-extended/tar/tar-1.26/remove-gets.patch
@@ -0,0 +1,20 @@
+ISO C11 removes the specification of gets() from the C language, eglibc 2.16+ removed it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+Index: tar-1.26/gnu/stdio.in.h
+===================================================================
+--- tar-1.26.orig/gnu/stdio.in.h	2011-03-12 01:14:33.000000000 -0800
++++ tar-1.26/gnu/stdio.in.h	2012-07-04 12:18:58.997081535 -0700
+@@ -163,8 +163,10 @@
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
++#if defined gets
+ #undef gets
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++#endif
+ 
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
diff --git a/meta/recipes-extended/tar/tar_1.26.bb b/meta/recipes-extended/tar/tar_1.26.bb
index 9c06d7e..4c8ab2c 100644
--- a/meta/recipes-extended/tar/tar_1.26.bb
+++ b/meta/recipes-extended/tar/tar_1.26.bb
@@ -3,7 +3,10 @@ require tar.inc
 LICENSE = "GPLv3"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
-PR = "r2"
+PR = "r3"
+
+SRC_URI += "file://remove-gets.patch \
+           "
 
 SRC_URI[md5sum] = "2cee42a2ff4f1cd4f9298eeeb2264519"
 SRC_URI[sha256sum] = "5a5369f464502a598e938029c310d4b3abd51e6bb8dfd045663e61c8ea9f6d41"
diff --git a/meta/recipes-extended/wget/wget-1.13.4/remove-gets.patch b/meta/recipes-extended/wget/wget-1.13.4/remove-gets.patch
new file mode 100644
index 0000000..ed1d019
--- /dev/null
+++ b/meta/recipes-extended/wget/wget-1.13.4/remove-gets.patch
@@ -0,0 +1,23 @@
+ISO C11 removes the specification of gets() from the C language, eglibc 2.16+ removed it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+Index: wget-1.13.4/lib/stdio.in.h
+===================================================================
+--- wget-1.13.4.orig/lib/stdio.in.h	2011-09-13 01:15:14.000000000 -0700
++++ wget-1.13.4/lib/stdio.in.h	2012-07-04 12:22:45.749092515 -0700
+@@ -693,11 +693,13 @@
+ _GL_CXXALIAS_SYS (gets, char *, (char *s));
+ #  undef gets
+ # endif
++# if defined gets
+ _GL_CXXALIASWARN (gets);
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++# endif
+ #endif
+ 
+ 
diff --git a/meta/recipes-extended/wget/wget_1.13.4.bb b/meta/recipes-extended/wget/wget_1.13.4.bb
index e20ff48..9a9441e 100644
--- a/meta/recipes-extended/wget/wget_1.13.4.bb
+++ b/meta/recipes-extended/wget/wget_1.13.4.bb
@@ -1,7 +1,8 @@
-PR = "${INC_PR}.2"
+PR = "${INC_PR}.3"
 
 SRC_URI = "${GNU_MIRROR}/wget/wget-${PV}.tar.gz \
            file://fix_makefile.patch \
+           file://remove-gets.patch \
           "
 SRC_URI[md5sum] = "1df489976a118b9cbe1b03502adbfc27"
 SRC_URI[sha256sum] = "24c7710bc9f220ce23d8a9e0f5673b0efc1cace62db6de0239b5863ecc934dcd"
-- 
1.7.9.5




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

* [PATCH 10/14] boost: Upgrade recipe to 1.50.0
  2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
                   ` (8 preceding siblings ...)
  2012-07-05 14:35 ` [PATCH 09/14] grub, guile, cpio, tar, wget: Fix gnulib for absense of gets in eglibc Khem Raj
@ 2012-07-05 14:35 ` Khem Raj
  2012-07-05 14:35 ` [PATCH 11/14] puzzles: Fix checksums Khem Raj
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 25+ messages in thread
From: Khem Raj @ 2012-07-05 14:35 UTC (permalink / raw)
  To: openembedded-core

1.49.0 is not buildable with eglibc 2.16 since
it exposes a define TIME_UTC which is also used
in boost until 1.50.0 when it was renamed to
TIME_UTC_ so instead of porting needed patches
we upgrade boost to latest release

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../boost/{boost_1.49.0.bb => boost_1.50.0.bb}     |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
 rename meta/recipes-support/boost/{boost_1.49.0.bb => boost_1.50.0.bb} (53%)

diff --git a/meta/recipes-support/boost/boost_1.49.0.bb b/meta/recipes-support/boost/boost_1.50.0.bb
similarity index 53%
rename from meta/recipes-support/boost/boost_1.49.0.bb
rename to meta/recipes-support/boost/boost_1.50.0.bb
index 71fdc48..78ebf1e 100644
--- a/meta/recipes-support/boost/boost_1.49.0.bb
+++ b/meta/recipes-support/boost/boost_1.50.0.bb
@@ -5,6 +5,5 @@ LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
 PR = "${INC_PR}.0"
 
 SRC_URI += "file://arm-intrinsics.patch"
-
-SRC_URI[md5sum] = "0d202cb811f934282dea64856a175698"
-SRC_URI[sha256sum] = "dd748a7f5507a7e7af74f452e1c52a64e651ed1f7263fce438a06641d2180d3c"
+SRC_URI[md5sum] = "52dd00be775e689f55a987baebccc462"
+SRC_URI[sha256sum] = "c9ace2b8c81fa6703d1d17c7e478de3bc51101c5adbdeb3f6cb72cf3045a8529"
-- 
1.7.9.5




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

* [PATCH 11/14] puzzles: Fix checksums
  2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
                   ` (9 preceding siblings ...)
  2012-07-05 14:35 ` [PATCH 10/14] boost: Upgrade recipe to 1.50.0 Khem Raj
@ 2012-07-05 14:35 ` Khem Raj
  2012-07-05 14:35 ` [PATCH 12/14] valgrind: Fix build with eglibc 2.16 Khem Raj
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 25+ messages in thread
From: Khem Raj @ 2012-07-05 14:35 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-sato/puzzles/puzzles_r9561.bb |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/meta/recipes-sato/puzzles/puzzles_r9561.bb b/meta/recipes-sato/puzzles/puzzles_r9561.bb
index 83fabdf..e51a18f 100644
--- a/meta/recipes-sato/puzzles/puzzles_r9561.bb
+++ b/meta/recipes-sato/puzzles/puzzles_r9561.bb
@@ -11,9 +11,8 @@ LIC_FILES_CHKSUM = "file://LICENCE;md5=453de74d749439762ef4814f7bee1fec"
 # Upstream updates puzzles.tar.gz for the new release, so checksums seem to be changing regularly right now
 #SRC_URI = "svn://ixion.tartarus.org/main;module=puzzles;rev=${MOD_PV}"
 SRC_URI = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${PV}.tar.gz"
-SRC_URI[md5sum] = "c86695aebfc95efe1d6241863849101b"
-SRC_URI[sha256sum] = "2c20a45189387e3de8804a58bdb4e47ac4bb0f890001a509dfbdc015b5a84b95"
-
+SRC_URI[md5sum] = "4ffd5eaead1ffba8b865c83b93fb4709"
+SRC_URI[sha256sum] = "35e79befa04c61df850384ff6c07b4d154412240b81f637275de383cb7d542d0"
 
 S = "${WORKDIR}/${BPN}-${PV}"
 
-- 
1.7.9.5




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

* [PATCH 12/14] valgrind: Fix build with eglibc 2.16
  2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
                   ` (10 preceding siblings ...)
  2012-07-05 14:35 ` [PATCH 11/14] puzzles: Fix checksums Khem Raj
@ 2012-07-05 14:35 ` Khem Raj
  2012-07-05 14:35 ` [PATCH 13/14] libpam: " Khem Raj
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 25+ messages in thread
From: Khem Raj @ 2012-07-05 14:35 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../valgrind-3.7.0/configure-with-glibc-2.16.patch |   32 ++++++++++++++++++++
 meta/recipes-devtools/valgrind/valgrind_3.7.0.bb   |    6 ++--
 2 files changed, 36 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-devtools/valgrind/valgrind-3.7.0/configure-with-glibc-2.16.patch

diff --git a/meta/recipes-devtools/valgrind/valgrind-3.7.0/configure-with-glibc-2.16.patch b/meta/recipes-devtools/valgrind/valgrind-3.7.0/configure-with-glibc-2.16.patch
new file mode 100644
index 0000000..c622637
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind-3.7.0/configure-with-glibc-2.16.patch
@@ -0,0 +1,32 @@
+Add case for glibc 2.16 and correct error message to denote support until 2.16
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+Index: valgrind-3.7.0/configure.in
+===================================================================
+--- valgrind-3.7.0.orig/configure.in	2012-07-04 12:57:10.557192441 -0700
++++ valgrind-3.7.0/configure.in	2012-07-04 12:57:58.785194776 -0700
+@@ -788,6 +788,13 @@
+ 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
++     2.16)
++	AC_MSG_RESULT(2.16 family)
++	AC_DEFINE([GLIBC_2_16], 1, [Define to 1 if you're using glibc 2.16.x])
++	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	;;
+      darwin)
+ 	AC_MSG_RESULT(Darwin)
+ 	AC_DEFINE([DARWIN_LIBC], 1, [Define to 1 if you're using Darwin])
+@@ -801,7 +808,7 @@
+ 
+      *)
+ 	AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}])
+-	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.14])
++	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.16])
+ 	AC_MSG_ERROR([or Darwin libc])
+ 	;;
+ esac
diff --git a/meta/recipes-devtools/valgrind/valgrind_3.7.0.bb b/meta/recipes-devtools/valgrind/valgrind_3.7.0.bb
index 6b54472..97b135c 100644
--- a/meta/recipes-devtools/valgrind/valgrind_3.7.0.bb
+++ b/meta/recipes-devtools/valgrind/valgrind_3.7.0.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c46082167a314d785d012a244748d803 \
 
 X11DEPENDS = "virtual/libx11"
 DEPENDS = "${@base_contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)}"
-PR = "r4"
+PR = "r5"
 
 SRC_URI = "http://www.valgrind.org/downloads/valgrind-${PV}.tar.bz2 \
 	   file://fix_issue_caused_by_ccache.patch \
@@ -17,7 +17,9 @@ SRC_URI = "http://www.valgrind.org/downloads/valgrind-${PV}.tar.bz2 \
            file://fixed-perl-path.patch \
            file://fix_for_automake_1.11.2.patch \
            file://configure-fix.patch \
-           file://Added-support-for-PPC-instructions-mfatbu-mfatbl.patch"
+           file://Added-support-for-PPC-instructions-mfatbu-mfatbl.patch \
+           file://configure-with-glibc-2.16.patch \
+          "
 
 SRC_URI[md5sum] = "a855fda56edf05614f099dca316d1775"
 SRC_URI[sha256sum] = "5d62c0330f1481fe2c593249192fa68ff454c19c34343978cc9ce91aa324cbf6"
-- 
1.7.9.5




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

* [PATCH 13/14] libpam: Fix build with eglibc 2.16
  2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
                   ` (11 preceding siblings ...)
  2012-07-05 14:35 ` [PATCH 12/14] valgrind: Fix build with eglibc 2.16 Khem Raj
@ 2012-07-05 14:35 ` Khem Raj
  2012-07-17 17:40   ` Saul Wold
  2012-07-05 14:35 ` [PATCH 14/14] eglibc: Add recipes for 2.16 release Khem Raj
                   ` (2 subsequent siblings)
  15 siblings, 1 reply; 25+ messages in thread
From: Khem Raj @ 2012-07-05 14:35 UTC (permalink / raw)
  To: openembedded-core

pam_unix_acct.c: In function '_unix_run_verify_binary':
pam_unix_acct.c:97:19: error: storage size of 'rlim' isn't known
pam_unix_acct.c:106:19: error: 'RLIMIT_NOFILE' undeclared (first use in
this function)
pam_unix_acct.c:106:19: note: each undeclared identifier is reported
only once for each function it appears in

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../pam/libpam/include-sys-resource.patch          |   12 ++++++++++++
 meta/recipes-extended/pam/libpam_1.1.5.bb          |    6 ++++--
 2 files changed, 16 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-extended/pam/libpam/include-sys-resource.patch

diff --git a/meta/recipes-extended/pam/libpam/include-sys-resource.patch b/meta/recipes-extended/pam/libpam/include-sys-resource.patch
new file mode 100644
index 0000000..0108a88
--- /dev/null
+++ b/meta/recipes-extended/pam/libpam/include-sys-resource.patch
@@ -0,0 +1,12 @@
+Index: Linux-PAM-1.1.5/modules/pam_unix/pam_unix_acct.c
+===================================================================
+--- Linux-PAM-1.1.5.orig/modules/pam_unix/pam_unix_acct.c	2012-07-04 12:37:44.881136025 -0700
++++ Linux-PAM-1.1.5/modules/pam_unix/pam_unix_acct.c	2012-07-04 12:38:00.601136785 -0700
+@@ -47,6 +47,7 @@
+ #include <time.h>		/* for time() */
+ #include <errno.h>
+ #include <sys/wait.h>
++#include <sys/resource.h>
+ 
+ #include <security/_pam_macros.h>
+ 
diff --git a/meta/recipes-extended/pam/libpam_1.1.5.bb b/meta/recipes-extended/pam/libpam_1.1.5.bb
index 08ce1d1..275e5d8 100644
--- a/meta/recipes-extended/pam/libpam_1.1.5.bb
+++ b/meta/recipes-extended/pam/libpam_1.1.5.bb
@@ -9,12 +9,14 @@ SECTION = "base"
 LICENSE = "GPLv2+ | BSD"
 LIC_FILES_CHKSUM = "file://COPYING;md5=ca0395de9a86191a078b8b79302e3083"
 
-PR = "r3"
+PR = "r4"
 
 SRC_URI = "https://fedorahosted.org/releases/l/i/linux-pam/Linux-PAM-${PV}.tar.bz2 \
            file://99_pam \
            file://pam.d/* \
-           file://libpam-xtests.patch"
+           file://libpam-xtests.patch \
+           file://include-sys-resource.patch \
+          "
 
 SRC_URI_append_libc-uclibc = " file://pam-no-innetgr.patch"
 
-- 
1.7.9.5




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

* [PATCH 14/14] eglibc: Add recipes for 2.16 release
  2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
                   ` (12 preceding siblings ...)
  2012-07-05 14:35 ` [PATCH 13/14] libpam: " Khem Raj
@ 2012-07-05 14:35 ` Khem Raj
  2012-07-06  2:27   ` Saul Wold
  2012-07-05 20:23 ` [PATCH 00/14] eglibc 2.16 Martin Jansa
  2012-07-17 14:59 ` Saul Wold
  15 siblings, 1 reply; 25+ messages in thread
From: Khem Raj @ 2012-07-05 14:35 UTC (permalink / raw)
  To: openembedded-core

Drop the patches that were either applied
or fixed differenly in 2.16

Add patches to fix ppc spe patches to match
eglibc 2.16

Fix CPPFLAGS to contain correct includepaths
so autoconf cache is generated correctly

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../eglibc/cross-localedef-native_2.16.bb          |   44 ++
 .../eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch    |  108 ++++
 .../eglibc/eglibc-2.16/IO-acquire-lock-fix.patch   |   17 +
 .../eglibc-svn-arm-lowlevellock-include-tls.patch  |   21 +
 .../eglibc_fix_findidx_parameters.patch            |   38 ++
 .../eglibc/eglibc-2.16/generate-supported.mk       |   11 +
 .../eglibc/eglibc-2.16/initgroups_keys.patch       |   20 +
 .../eglibc/eglibc-2.16/ld-search-order.patch       |   56 ++
 .../eglibc/eglibc-2.16/mips-rld-map-check.patch    |   26 +
 .../eglibc/eglibc-2.16/multilib_readlib.patch      |   17 +
 .../recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch |  538 ++++++++++++++++++++
 .../eglibc/eglibc-2.16/ppc-sqrt_finite.patch       |  112 ++++
 .../eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch |  123 +++++
 .../eglibc/eglibc-2.16/rpc-bootstrap.patch         |   63 +++
 .../eglibc-2.16/use-sysroot-cxx-headers.patch      |   42 ++
 meta/recipes-core/eglibc/eglibc-initial_2.16.bb    |    6 +
 meta/recipes-core/eglibc/eglibc-locale_2.16.bb     |    1 +
 meta/recipes-core/eglibc/eglibc_2.16.bb            |  146 ++++++
 18 files changed, 1389 insertions(+)
 create mode 100644 meta/recipes-core/eglibc/cross-localedef-native_2.16.bb
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/IO-acquire-lock-fix.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/eglibc-svn-arm-lowlevellock-include-tls.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/eglibc_fix_findidx_parameters.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/etc/ld.so.conf
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/generate-supported.mk
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/initgroups_keys.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ld-search-order.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/mips-rld-map-check.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/multilib_readlib.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt_finite.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/rpc-bootstrap.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/use-sysroot-cxx-headers.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-initial_2.16.bb
 create mode 100644 meta/recipes-core/eglibc/eglibc-locale_2.16.bb
 create mode 100644 meta/recipes-core/eglibc/eglibc_2.16.bb

diff --git a/meta/recipes-core/eglibc/cross-localedef-native_2.16.bb b/meta/recipes-core/eglibc/cross-localedef-native_2.16.bb
new file mode 100644
index 0000000..88c701e
--- /dev/null
+++ b/meta/recipes-core/eglibc/cross-localedef-native_2.16.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "Cross locale generation tool for eglibc"
+HOMEPAGE = "http://www.eglibc.org/home"
+SECTION = "libs"
+LICENSE = "LGPL-2.1"
+
+LIC_DIR = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
+LIC_FILES_CHKSUM = "file://${LIC_DIR}/LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9\
+      file://${LIC_DIR}/COPYING;md5=393a5ca445f6965873eca0259a17f833 \
+      file://${LIC_DIR}/posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
+      file://${LIC_DIR}/COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff "
+
+
+inherit native
+inherit autotools
+
+PR = "r0"
+SRCREV="19383"
+EGLIBC_BRANCH="eglibc-2_16"
+SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http "
+S = "${WORKDIR}/${EGLIBC_BRANCH}/localedef"
+
+do_unpack_append() {
+	bb.build.exec_func('do_move_ports', d)
+}
+
+do_move_ports() {
+        if test -d ${WORKDIR}/${EGLIBC_BRANCH}/ports ; then
+	    rm -rf ${WORKDIR}/libc/ports
+	    mv ${WORKDIR}/${EGLIBC_BRANCH}/ports ${WORKDIR}/libc/
+	fi
+}
+
+EXTRA_OECONF = "--with-glibc=${WORKDIR}/${EGLIBC_BRANCH}/libc"
+CFLAGS += "-DNOT_IN_libc=1"
+
+do_configure () {
+	./configure ${EXTRA_OECONF}
+}
+
+
+do_install() {
+	install -d ${D}${bindir} 
+	install -m 0755 ${S}/localedef ${D}${bindir}/cross-localedef
+}
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch b/meta/recipes-core/eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch
new file mode 100644
index 0000000..b899562
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch
@@ -0,0 +1,108 @@
+Its controlled by __OPTION_EGLIBC_RTLD_DEBUG
+so we should use GLRO_dl_debug_mask
+
+Singed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+Index: libc/elf/dl-open.c
+===================================================================
+--- libc.orig/elf/dl-open.c	2012-03-09 08:54:34.691443995 -0800
++++ libc/elf/dl-open.c	2012-03-09 08:55:31.275446730 -0800
+@@ -154,7 +154,7 @@
+ 	  ns->_ns_main_searchlist->r_list[new_nlist++] = map;
+ 
+ 	  /* We modify the global scope.  Report this.  */
+-	  if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0))
++	  if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0))
+ 	    _dl_debug_printf ("\nadd %s [%lu] to global scope\n",
+ 			      map->l_name, map->l_ns);
+ 	}
+@@ -294,7 +294,7 @@
+   _dl_debug_state ();
+ 
+   /* Print scope information.  */
+-  if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0))
++  if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0))
+     _dl_show_scope (new, 0);
+ 
+   /* Only do lazy relocation if `LD_BIND_NOW' is not set.  */
+@@ -438,7 +438,7 @@
+ 	}
+ 
+       /* Print scope information.  */
+-      if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0))
++      if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0))
+ 	_dl_show_scope (imap, from_scope);
+     }
+ 
+Index: libc/ports/sysdeps/mips/dl-lookup.c
+===================================================================
+--- libc.orig/ports/sysdeps/mips/dl-lookup.c	2012-03-09 08:54:34.707443996 -0800
++++ libc/ports/sysdeps/mips/dl-lookup.c	2012-03-09 09:02:36.903467324 -0800
+@@ -111,7 +111,7 @@
+ 	continue;
+ 
+       /* Print some debugging info if wanted.  */
+-      if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SYMBOLS, 0))
++      if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SYMBOLS, 0))
+ 	_dl_debug_printf ("symbol=%s;  lookup in file=%s [%lu]\n",
+ 			  undef_name,
+ 			  map->l_name[0] ? map->l_name : rtld_progname,
+@@ -432,7 +432,7 @@
+ 		     hash table.  */
+ 		  if (__builtin_expect (tab->size, 0))
+ 		    {
+-		      assert (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK);
++		      assert (GLRO_dl_debug_mask & DL_DEBUG_PRELINK);
+ 		      __rtld_lock_unlock_recursive (tab->lock);
+ 		      goto success;
+ 		    }
+@@ -681,7 +681,7 @@
+ 	}
+ 
+       /* Display information if we are debugging.  */
+-      if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
++      if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_FILES, 0))
+ 	_dl_debug_printf ("\
+ \nfile=%s [%lu];  needed by %s [%lu] (relocation dependency)\n\n",
+ 			  map->l_name[0] ? map->l_name : rtld_progname,
+@@ -860,7 +860,7 @@
+   if (__builtin_expect (current_value.m->l_used == 0, 0))
+     current_value.m->l_used = 1;
+ 
+-  if (__builtin_expect (GLRO(dl_debug_mask)
++  if (__builtin_expect (GLRO_dl_debug_mask
+ 			& (DL_DEBUG_BINDINGS|DL_DEBUG_PRELINK), 0))
+     _dl_debug_bindings (undef_name, undef_map, ref,
+ 			&current_value, version, type_class, protected);
+@@ -925,7 +925,7 @@
+ {
+   const char *reference_name = undef_map->l_name;
+ 
+-  if (GLRO(dl_debug_mask) & DL_DEBUG_BINDINGS)
++  if (GLRO_dl_debug_mask & DL_DEBUG_BINDINGS)
+     {
+       _dl_debug_printf ("binding file %s [%lu] to %s [%lu]: %s symbol `%s'",
+ 			(reference_name[0]
+@@ -941,7 +941,7 @@
+ 	_dl_debug_printf_c ("\n");
+     }
+ #ifdef SHARED
+-  if (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK)
++  if (GLRO_dl_debug_mask & DL_DEBUG_PRELINK)
+     {
+       int conflict = 0;
+       struct sym_val val = { NULL, NULL };
+Index: libc/elf/rtld.c
+===================================================================
+--- libc.orig/elf/rtld.c	2012-03-09 09:01:35.159464344 -0800
++++ libc/elf/rtld.c	2012-03-09 09:01:56.247465364 -0800
+@@ -2198,7 +2198,7 @@
+   GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
+ 
+   /* Print scope information.  */
+-  if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0))
++  if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0))
+     {
+       _dl_debug_printf ("\nInitial object scopes\n");
+ 
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/IO-acquire-lock-fix.patch b/meta/recipes-core/eglibc/eglibc-2.16/IO-acquire-lock-fix.patch
new file mode 100644
index 0000000..cf58035
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/IO-acquire-lock-fix.patch
@@ -0,0 +1,17 @@
+import http://sourceware.org/ml/libc-ports/2007-12/msg00000.html
+
+Upstream-Status: Pending
+
+Index: libc/bits/stdio-lock.h
+===================================================================
+--- libc.orig/bits/stdio-lock.h	2009-10-28 14:34:19.000000000 -0700
++++ libc/bits/stdio-lock.h	2009-10-28 14:34:54.000000000 -0700
+@@ -50,6 +50,8 @@ __libc_lock_define_recursive (typedef, _
+   _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp));      \
+   _IO_flockfile (_fp)
+ 
++# define _IO_acquire_lock_clear_flags2(_fp) _IO_acquire_lock (_fp)
++
+ # define _IO_release_lock(_fp) \
+   _IO_funlockfile (_fp);						      \
+   _IO_cleanup_region_end (0)
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/eglibc-svn-arm-lowlevellock-include-tls.patch b/meta/recipes-core/eglibc/eglibc-2.16/eglibc-svn-arm-lowlevellock-include-tls.patch
new file mode 100644
index 0000000..4313aa5
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/eglibc-svn-arm-lowlevellock-include-tls.patch
@@ -0,0 +1,21 @@
+In file included from ../nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c:21:
+../nptl/sysdeps/unix/sysv/linux/lowlevellock.c: In function '__lll_lock_wait_private':
+../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: warning: implicit declaration of function 'THREAD_GETMEM'
+../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: 'THREAD_SELF' undeclared (first use in this function)
+../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: (Each undeclared identifier is reported only once
+../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: for each function it appears in.)
+../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: 'header' undeclared (first use in this function)
+make[4]: *** [/var/tmp/portage/sys-libs/glibc-2.7-r1/work/build-default-armv4l-unknown-linux-gnu-nptl/nptl/rtld-libc-lowlevellock.os] Error 1
+
+Upstream-Status: Pending
+
+--- libc/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h.orig
++++ libc/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
+@@ -25,6 +25,7 @@
+ #include <atomic.h>
+ #include <sysdep.h>
+ #include <kernel-features.h>
++#include <tls.h>
+ 
+ #define FUTEX_WAIT		0
+ #define FUTEX_WAKE		1
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/eglibc_fix_findidx_parameters.patch b/meta/recipes-core/eglibc/eglibc-2.16/eglibc_fix_findidx_parameters.patch
new file mode 100644
index 0000000..bbf4605
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/eglibc_fix_findidx_parameters.patch
@@ -0,0 +1,38 @@
+Upstream-Status: backport
+
+Imported patch from: http://www.eglibc.org/archives/patches/msg01124.html
+
+Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+2012/05/09
+
+Index: libc/posix/xregex.c
+===================================================================
+--- libc.orig/posix/xregex.c
++++ libc/posix/xregex.c
+@@ -2943,7 +2943,7 @@ PREFIX(regex_compile) (const char *ARG_P
+ 				  _NL_CURRENT (LC_COLLATE,
+ 					       _NL_COLLATE_INDIRECTWC);
+ 
+-				idx = findidx ((const wint_t**)&cp);
++				idx = findidx ((const wint_t**)&cp, -1);
+ 				if (idx == 0 || cp < (wint_t*) str + c1)
+ 				  /* This is no valid character.  */
+ 				  FREE_STACK_RETURN (REG_ECOLLATE);
+@@ -3392,7 +3392,7 @@ PREFIX(regex_compile) (const char *ARG_P
+ 			    indirect = (const int32_t *)
+ 			      _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB);
+ 
+-			    idx = findidx (&cp);
++			    idx = findidx (&cp, -1);
+ 			    if (idx == 0 || cp < str + c1)
+ 			      /* This is no valid character.  */
+ 			      FREE_STACK_RETURN (REG_ECOLLATE);
+@@ -6363,7 +6363,7 @@ byte_re_match_2_internal (struct re_patt
+ 		      }
+ 		    str_buf[i] = TRANSLATE(*(d+i));
+ 		    str_buf[i+1] = '\0'; /* sentinel */
+-		    idx2 = findidx ((const wint_t**)&cp);
++		    idx2 = findidx ((const wint_t**)&cp, -1);
+ 		  }
+ 
+ 		/* Update d, however d will be incremented at
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/etc/ld.so.conf b/meta/recipes-core/eglibc/eglibc-2.16/etc/ld.so.conf
new file mode 100644
index 0000000..e69de29
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/generate-supported.mk b/meta/recipes-core/eglibc/eglibc-2.16/generate-supported.mk
new file mode 100644
index 0000000..d2a28c2
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/generate-supported.mk
@@ -0,0 +1,11 @@
+#!/usr/bin/make
+
+include $(IN)
+
+all:
+	rm -f $(OUT)
+	touch $(OUT)
+	for locale in $(SUPPORTED-LOCALES); do \
+		[ $$locale = true ] && continue; \
+		echo $$locale | sed 's,/, ,' >> $(OUT); \
+	done
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/initgroups_keys.patch b/meta/recipes-core/eglibc/eglibc-2.16/initgroups_keys.patch
new file mode 100644
index 0000000..be29856
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/initgroups_keys.patch
@@ -0,0 +1,20 @@
+This is needed since initgroups belongs to NET group
+so when NET is disabled in eglibc build then it reports
+as undefined symbol
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: libc/nss/getent.c
+===================================================================
+--- libc.orig/nss/getent.c	2012-03-09 09:41:57.099581559 -0800
++++ libc/nss/getent.c	2012-03-09 09:42:13.095582334 -0800
+@@ -898,7 +898,7 @@
+ D(group)
+ D(gshadow)
+ DN(hosts)
+-D(initgroups)
++DN(initgroups)
+ DN(netgroup)
+ DN(networks)
+ D(passwd)
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/ld-search-order.patch b/meta/recipes-core/eglibc/eglibc-2.16/ld-search-order.patch
new file mode 100644
index 0000000..40ae6d3
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/ld-search-order.patch
@@ -0,0 +1,56 @@
+Upstream-Status: Inappropriate [embedded specific]
+
+The default lib search path order is:
+
+  1) LD_LIBRARY_PATH
+  2) RPATH from the binary
+  3) ld.so.cache
+  4) default search paths embedded in the linker
+
+For nativesdk binaries which are being used alongside binaries on a host system, we 
+need the search paths to firstly search the shipped nativesdk libs but then also
+cover the host system. For example we want the host system's libGL and this may be
+in a non-standard location like /usr/lib/mesa. The only place the location is know 
+about is in the ld.so.cache of the host system.
+
+Since nativesdk has a simple structure and doesn't need to use a cache itself, we 
+repurpose the cache for use as a last resort in finding host system binaries. This 
+means we need to switch the order of 3 and 4 above to make this work effectively.
+
+RP 14/10/2010
+
+Index: libc/elf/dl-load.c
+===================================================================
+--- libc.orig/elf/dl-load.c
++++ libc/elf/dl-load.c
+@@ -2107,6 +2107,15 @@ _dl_map_object (struct link_map *loader,
+ 			&loader->l_runpath_dirs, &realname, &fb, loader,
+ 			LA_SER_RUNPATH, &found_other_class);
+ 
++      /* try the default path.  */
++      if (fd == -1
++	  && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL
++	      || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1))
++	  && rtld_search_dirs.dirs != (void *) -1)
++	fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs,
++			&realname, &fb, l, LA_SER_DEFAULT, &found_other_class);
++
++      /* Finally try ld.so.cache */
+       if (fd == -1
+ 	  && (__builtin_expect (! (mode & __RTLD_SECURE), 1)
+ 	      || ! INTUSE(__libc_enable_secure)))
+@@ -2169,14 +2178,6 @@ _dl_map_object (struct link_map *loader,
+ 	    }
+ 	}
+ 
+-      /* Finally, try the default path.  */
+-      if (fd == -1
+-	  && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL
+-	      || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1))
+-	  && rtld_search_dirs.dirs != (void *) -1)
+-	fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs,
+-			&realname, &fb, l, LA_SER_DEFAULT, &found_other_class);
+-
+       /* Add another newline when we are tracing the library loading.  */
+       if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_LIBS, 0))
+ 	_dl_debug_printf ("\n");
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/mips-rld-map-check.patch b/meta/recipes-core/eglibc/eglibc-2.16/mips-rld-map-check.patch
new file mode 100644
index 0000000..9b646fe
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/mips-rld-map-check.patch
@@ -0,0 +1,26 @@
+
+On mips target, binutils currently sets DT_MIPS_RLD_MAP to 0 in dynamic
+section if a --version-script sets _RLD_MAP to local. This is apparently
+a binutils bug, but libc shouldn't segfault in this case.
+
+see also: http://sourceware.org/bugilla/show_bug.cgi?id=11615
+
+Upstream-Status: Pending
+
+9/19/2010 - added by Qing He <qing.he@intel.com>
+
+
+---
+diff -ru glibc-2.10.1.orig/ports/sysdeps/mips/dl-machine.h glibc-2.10.1/ports/sysdeps/mips/dl-machine.h
+--- glibc-2.10.1.orig/ports/sysdeps/mips/dl-machine.h	2009-05-16 16:36:20.000000000 +0800
++++ glibc-2.10.1/ports/sysdeps/mips/dl-machine.h	2010-09-19 09:11:53.000000000 +0800
+@@ -70,7 +70,8 @@
+ /* If there is a DT_MIPS_RLD_MAP entry in the dynamic section, fill it in
+    with the run-time address of the r_debug structure  */
+ #define ELF_MACHINE_DEBUG_SETUP(l,r) \
+-do { if ((l)->l_info[DT_MIPS (RLD_MAP)]) \
++do { if ((l)->l_info[DT_MIPS (RLD_MAP)] && \
++         (l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) \
+        *(ElfW(Addr) *)((l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) = \
+        (ElfW(Addr)) (r); \
+    } while (0)
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/multilib_readlib.patch b/meta/recipes-core/eglibc/eglibc-2.16/multilib_readlib.patch
new file mode 100644
index 0000000..1542b1b
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/multilib_readlib.patch
@@ -0,0 +1,17 @@
+Upstream-Status: Inappropriate [embedded specific]
+
+Replace the OECORE_KNOWN_INTERPRETER_NAMES with the value of 
+variable EGLIBC_KNOWN_INTERPRETER_NAMES.
+
+Lianhao Lu, 08/01/2011
+
+--- libc/elf/readlib.c.orig	2011-08-12 17:05:51.864470837 +0800
++++ libc/elf/readlib.c	2011-08-12 17:06:39.346942074 +0800
+@@ -52,6 +52,7 @@
+ #ifdef SYSDEP_KNOWN_INTERPRETER_NAMES
+   SYSDEP_KNOWN_INTERPRETER_NAMES
+ #endif
++  OECORE_KNOWN_INTERPRETER_NAMES
+ };
+ 
+ static struct known_names known_libs[] =
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch b/meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch
new file mode 100644
index 0000000..203040c
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch
@@ -0,0 +1,538 @@
+Upstream-Status: Pending
+
+2011-03-22  Joseph Myers  <joseph@codesourcery.com>
+
+        Merge from SG++ 2.11:
+
+        2010-10-05  Nathan Froyd  <froydnj@codesourcery.com>
+
+        Issue #9382
+
+        * sysdeps/powerpc/powerpc32/603e/: New directory.
+        * sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/: New directory.
+        * sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/: New directory.
+        * sysdeps/unix/sysv/linux/powerpc/powerpc32/7400/: New directory.
+        * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c: Update.
+        * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c: Update.
+        * sysdeps/powerpc/powerpc64/e5500/fpu/Implies: New file.
+
+Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
+===================================================================
+--- /dev/null
++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
+@@ -0,0 +1,134 @@
++/* Double-precision floating point square root.
++   Copyright (C) 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
++   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 <math.h>
++#include <math_private.h>
++#include <fenv_libc.h>
++#include <inttypes.h>
++
++#include <sysdep.h>
++#include <ldsodefs.h>
++
++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
++static const float two108 = 3.245185536584267269e+32;
++static const float twom54 = 5.551115123125782702e-17;
++static const float half = 0.5;
++
++/* The method is based on the descriptions in:
++
++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
++
++   We find the actual square root and half of its reciprocal
++   simultaneously.  */
++
++#ifdef __STDC__
++double
++__ieee754_sqrt (double b)
++#else
++double
++__ieee754_sqrt (b)
++     double b;
++#endif
++{
++  if (__builtin_expect (b > 0, 1))
++    {
++      double y, g, h, d, r;
++      ieee_double_shape_type u;
++
++      if (__builtin_expect (b != a_inf.value, 1))
++        {
++          fenv_t fe;
++
++          fe = fegetenv_register ();
++
++          u.value = b;
++
++          relax_fenv_state ();
++
++          __asm__ ("frsqrte %[estimate], %[x]\n"
++                   : [estimate] "=f" (y) : [x] "f" (b));
++
++          /* Following Muller et al, page 168, equation 5.20.
++
++             h goes to 1/(2*sqrt(b))
++             g goes to sqrt(b).
++
++             We need three iterations to get within 1ulp.  */
++
++          /* Indicate that these can be performed prior to the branch.  GCC
++             insists on sinking them below the branch, however; it seems like
++             they'd be better before the branch so that we can cover any latency
++             from storing the argument and loading its high word.  Oh well.  */
++
++          g = b * y;
++          h = 0.5 * y;
++  
++          /* Handle small numbers by scaling.  */
++          if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
++            return __ieee754_sqrt (b * two108) * twom54;
++
++#define FMADD(a_, c_, b_)                                               \
++          ({ double __r;                                                \
++          __asm__ ("fmadd %[r], %[a], %[c], %[b]\n"                     \
++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++          __r;})
++#define FNMSUB(a_, c_, b_)                                          \
++          ({ double __r;                                                \
++          __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                     \
++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++          __r;})
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          /* g is now +/- 1ulp, or exactly equal to, the square root of b.  */
++
++          /* Final refinement.  */
++          d = FNMSUB (g, g, b);
++
++          fesetenv_register (fe);
++          return FMADD (d, h, g);
++        }
++    }
++  else if (b < 0)
++    {
++      /* For some reason, some PowerPC32 processors don't implement
++         FE_INVALID_SQRT.  */
++#ifdef FE_INVALID_SQRT
++      feraiseexcept (FE_INVALID_SQRT);
++
++      fenv_union_t u = { .fenv = fegetenv_register () };
++      if ((u.l[1] & FE_INVALID) == 0)
++#endif
++	feraiseexcept (FE_INVALID);
++      b = a_nan.value;
++    }
++  return f_wash (b);
++}
+Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
+===================================================================
+--- /dev/null
++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
+@@ -0,0 +1,101 @@
++/* Single-precision floating point square root.
++   Copyright (C) 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
++   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 <math.h>
++#include <math_private.h>
++#include <fenv_libc.h>
++#include <inttypes.h>
++
++#include <sysdep.h>
++#include <ldsodefs.h>
++
++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
++static const float threehalf = 1.5;
++
++/* The method is based on the descriptions in:
++
++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
++
++   We find the reciprocal square root and use that to compute the actual
++   square root.  */
++
++#ifdef __STDC__
++float
++__ieee754_sqrtf (float b)
++#else
++float
++__ieee754_sqrtf (b)
++     float b;
++#endif
++{
++  if (__builtin_expect (b > 0, 1))
++    {
++#define FMSUB(a_, c_, b_)                                               \
++      ({ double __r;                                                    \
++        __asm__ ("fmsub %[r], %[a], %[c], %[b]\n"                       \
++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++        __r;})
++#define FNMSUB(a_, c_, b_)                                              \
++      ({ double __r;                                                    \
++        __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                      \
++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++        __r;})
++
++      if (__builtin_expect (b != a_inf.value, 1))
++        {
++          double y, x;
++          fenv_t fe;
++
++          fe = fegetenv_register ();
++
++          relax_fenv_state ();
++
++          /* Compute y = 1.5 * b - b.  Uses fewer constants than y = 0.5 * b.  */
++          y = FMSUB (threehalf, b, b);
++
++          /* Initial estimate.  */
++          __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
++
++          /* Iterate.  x_{n+1} = x_n * (1.5 - y * (x_n * x_n)).  */
++          x = x * FNMSUB (y, x * x, threehalf);
++          x = x * FNMSUB (y, x * x, threehalf);
++          x = x * FNMSUB (y, x * x, threehalf);
++
++          /* All done.  */
++          fesetenv_register (fe);
++          return x * b;
++        }
++    }
++  else if (b < 0)
++    {
++      /* For some reason, some PowerPC32 processors don't implement
++         FE_INVALID_SQRT.  */
++#ifdef FE_INVALID_SQRT
++      feraiseexcept (FE_INVALID_SQRT);
++
++      fenv_union_t u = { .fenv = fegetenv_register () };
++      if ((u.l[1] & FE_INVALID) == 0)
++#endif
++	feraiseexcept (FE_INVALID);
++      b = a_nan.value;
++    }
++  return f_washf (b);
++}
+Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
+===================================================================
+--- /dev/null
++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
+@@ -0,0 +1,134 @@
++/* Double-precision floating point square root.
++   Copyright (C) 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
++   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 <math.h>
++#include <math_private.h>
++#include <fenv_libc.h>
++#include <inttypes.h>
++
++#include <sysdep.h>
++#include <ldsodefs.h>
++
++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
++static const float two108 = 3.245185536584267269e+32;
++static const float twom54 = 5.551115123125782702e-17;
++static const float half = 0.5;
++
++/* The method is based on the descriptions in:
++
++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
++
++   We find the actual square root and half of its reciprocal
++   simultaneously.  */
++
++#ifdef __STDC__
++double
++__ieee754_sqrt (double b)
++#else
++double
++__ieee754_sqrt (b)
++     double b;
++#endif
++{
++  if (__builtin_expect (b > 0, 1))
++    {
++      double y, g, h, d, r;
++      ieee_double_shape_type u;
++
++      if (__builtin_expect (b != a_inf.value, 1))
++        {
++          fenv_t fe;
++
++          fe = fegetenv_register ();
++
++          u.value = b;
++
++          relax_fenv_state ();
++
++          __asm__ ("frsqrte %[estimate], %[x]\n"
++                   : [estimate] "=f" (y) : [x] "f" (b));
++
++          /* Following Muller et al, page 168, equation 5.20.
++
++             h goes to 1/(2*sqrt(b))
++             g goes to sqrt(b).
++
++             We need three iterations to get within 1ulp.  */
++
++          /* Indicate that these can be performed prior to the branch.  GCC
++             insists on sinking them below the branch, however; it seems like
++             they'd be better before the branch so that we can cover any latency
++             from storing the argument and loading its high word.  Oh well.  */
++
++          g = b * y;
++          h = 0.5 * y;
++  
++          /* Handle small numbers by scaling.  */
++          if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
++            return __ieee754_sqrt (b * two108) * twom54;
++
++#define FMADD(a_, c_, b_)                                               \
++          ({ double __r;                                                \
++          __asm__ ("fmadd %[r], %[a], %[c], %[b]\n"                     \
++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++          __r;})
++#define FNMSUB(a_, c_, b_)                                          \
++          ({ double __r;                                                \
++          __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                     \
++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++          __r;})
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          r = FNMSUB (g, h, half);
++          g = FMADD (g, r, g);
++          h = FMADD (h, r, h);
++
++          /* g is now +/- 1ulp, or exactly equal to, the square root of b.  */
++
++          /* Final refinement.  */
++          d = FNMSUB (g, g, b);
++
++          fesetenv_register (fe);
++          return FMADD (d, h, g);
++        }
++    }
++  else if (b < 0)
++    {
++      /* For some reason, some PowerPC32 processors don't implement
++         FE_INVALID_SQRT.  */
++#ifdef FE_INVALID_SQRT
++      feraiseexcept (FE_INVALID_SQRT);
++
++      fenv_union_t u = { .fenv = fegetenv_register () };
++      if ((u.l[1] & FE_INVALID) == 0)
++#endif
++	feraiseexcept (FE_INVALID);
++      b = a_nan.value;
++    }
++  return f_wash (b);
++}
+Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
+===================================================================
+--- /dev/null
++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
+@@ -0,0 +1,101 @@
++/* Single-precision floating point square root.
++   Copyright (C) 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
++   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 <math.h>
++#include <math_private.h>
++#include <fenv_libc.h>
++#include <inttypes.h>
++
++#include <sysdep.h>
++#include <ldsodefs.h>
++
++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
++static const float threehalf = 1.5;
++
++/* The method is based on the descriptions in:
++
++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
++
++   We find the reciprocal square root and use that to compute the actual
++   square root.  */
++
++#ifdef __STDC__
++float
++__ieee754_sqrtf (float b)
++#else
++float
++__ieee754_sqrtf (b)
++     float b;
++#endif
++{
++  if (__builtin_expect (b > 0, 1))
++    {
++#define FMSUB(a_, c_, b_)                                               \
++      ({ double __r;                                                    \
++        __asm__ ("fmsub %[r], %[a], %[c], %[b]\n"                       \
++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++        __r;})
++#define FNMSUB(a_, c_, b_)                                              \
++      ({ double __r;                                                    \
++        __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                      \
++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
++        __r;})
++
++      if (__builtin_expect (b != a_inf.value, 1))
++        {
++          double y, x;
++          fenv_t fe;
++
++          fe = fegetenv_register ();
++
++          relax_fenv_state ();
++
++          /* Compute y = 1.5 * b - b.  Uses fewer constants than y = 0.5 * b.  */
++          y = FMSUB (threehalf, b, b);
++
++          /* Initial estimate.  */
++          __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
++
++          /* Iterate.  x_{n+1} = x_n * (1.5 - y * (x_n * x_n)).  */
++          x = x * FNMSUB (y, x * x, threehalf);
++          x = x * FNMSUB (y, x * x, threehalf);
++          x = x * FNMSUB (y, x * x, threehalf);
++
++          /* All done.  */
++          fesetenv_register (fe);
++          return x * b;
++        }
++    }
++  else if (b < 0)
++    {
++      /* For some reason, some PowerPC32 processors don't implement
++         FE_INVALID_SQRT.  */
++#ifdef FE_INVALID_SQRT
++      feraiseexcept (FE_INVALID_SQRT);
++
++      fenv_union_t u = { .fenv = fegetenv_register () };
++      if ((u.l[1] & FE_INVALID) == 0)
++#endif
++	feraiseexcept (FE_INVALID);
++      b = a_nan.value;
++    }
++  return f_washf (b);
++}
+Index: libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies
+===================================================================
+--- /dev/null
++++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies
+@@ -0,0 +1 @@
++powerpc/powerpc32/603e/fpu
+Index: libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/7400/fpu/Implies
+===================================================================
+--- /dev/null
++++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/7400/fpu/Implies
+@@ -0,0 +1 @@
++powerpc/powerpc32/603e/fpu
+Index: libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies
+===================================================================
+--- /dev/null
++++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies
+@@ -0,0 +1 @@
++powerpc/powerpc32/603e/fpu
+Index: libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies
+===================================================================
+--- /dev/null
++++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies
+@@ -0,0 +1 @@
++powerpc/powerpc64/e5500/fpu
+Index: libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies
+===================================================================
+--- /dev/null
++++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies
+@@ -0,0 +1 @@
++powerpc/powerpc32/603e/fpu
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt_finite.patch b/meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt_finite.patch
new file mode 100644
index 0000000..5289051
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt_finite.patch
@@ -0,0 +1,112 @@
+on ppc fixes the errors like below
+| ./.libs/libpulsecore-1.1.so: undefined reference to `__sqrt_finite'
+| collect2: ld returned 1 exit status
+
+Upstream-Status: Pending
+
+ChangeLog
+
+2012-01-06  Khem Raj  <raj.khem@gmail.com>
+
+	* sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c: Add __*_finite alias.
+	Remove cruft.
+	* sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c: Ditto.
+	* sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c: Ditto.
+	* sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c: Ditto.
+ 
+Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c	2012-01-06 18:07:42.296909187 -0800
++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c	2012-01-06 18:09:22.572914856 -0800
+@@ -39,14 +39,8 @@
+    We find the actual square root and half of its reciprocal
+    simultaneously.  */
+ 
+-#ifdef __STDC__
+ double
+ __ieee754_sqrt (double b)
+-#else
+-double
+-__ieee754_sqrt (b)
+-     double b;
+-#endif
+ {
+   if (__builtin_expect (b > 0, 1))
+     {
+@@ -132,3 +126,4 @@
+     }
+   return f_wash (b);
+ }
++strong_alias (__ieee754_sqrt, __sqrt_finite)
+Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c	2012-01-06 18:10:37.068917644 -0800
++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c	2012-01-06 18:11:33.408920635 -0800
+@@ -37,14 +37,8 @@
+    We find the reciprocal square root and use that to compute the actual
+    square root.  */
+ 
+-#ifdef __STDC__
+ float
+ __ieee754_sqrtf (float b)
+-#else
+-float
+-__ieee754_sqrtf (b)
+-     float b;
+-#endif
+ {
+   if (__builtin_expect (b > 0, 1))
+     {
+@@ -99,3 +93,4 @@
+     }
+   return f_washf (b);
+ }
++strong_alias (__ieee754_sqrtf, __sqrtf_finite)
+Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c	2012-01-06 18:11:51.460925644 -0800
++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c	2012-01-06 18:12:39.344924405 -0800
+@@ -39,14 +39,8 @@
+    We find the actual square root and half of its reciprocal
+    simultaneously.  */
+ 
+-#ifdef __STDC__
+ double
+ __ieee754_sqrt (double b)
+-#else
+-double
+-__ieee754_sqrt (b)
+-     double b;
+-#endif
+ {
+   if (__builtin_expect (b > 0, 1))
+     {
+@@ -132,3 +126,4 @@
+     }
+   return f_wash (b);
+ }
++strong_alias (__ieee754_sqrt, __sqrt_finite)
+Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c	2012-01-06 18:13:00.892924586 -0800
++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c	2012-01-06 18:15:27.992931106 -0800
+@@ -37,14 +37,8 @@
+    We find the reciprocal square root and use that to compute the actual
+    square root.  */
+ 
+-#ifdef __STDC__
+ float
+ __ieee754_sqrtf (float b)
+-#else
+-float
+-__ieee754_sqrtf (b)
+-     float b;
+-#endif
+ {
+   if (__builtin_expect (b > 0, 1))
+     {
+@@ -99,3 +93,4 @@
+     }
+   return f_washf (b);
+ }
++strong_alias (__ieee754_sqrtf, __sqrtf_finite)
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch b/meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch
new file mode 100644
index 0000000..9a932ff
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch
@@ -0,0 +1,123 @@
+ __ieee754_sqrt{,f} are now inline functions and call out __slow versions
+
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c	2012-07-03 22:36:01.172386436 -0700
++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c	2012-07-03 23:04:37.396469515 -0700
+@@ -40,7 +40,7 @@
+    simultaneously.  */
+ 
+ double
+-__ieee754_sqrt (double b)
++__slow_ieee754_sqrt (double b)
+ {
+   if (__builtin_expect (b > 0, 1))
+     {
+@@ -77,7 +77,7 @@
+   
+           /* Handle small numbers by scaling.  */
+           if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
+-            return __ieee754_sqrt (b * two108) * twom54;
++            return __slow_ieee754_sqrt (b * two108) * twom54;
+ 
+ #define FMADD(a_, c_, b_)                                               \
+           ({ double __r;                                                \
+@@ -126,4 +126,12 @@
+     }
+   return f_wash (b);
+ }
++
++#undef __ieee754_sqrt
++double
++__ieee754_sqrt (double x)
++{
++   return __slow_ieee754_sqrt (x);
++}
++
+ strong_alias (__ieee754_sqrt, __sqrt_finite)
+Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c	2012-07-03 22:36:01.172386436 -0700
++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c	2012-07-03 23:07:06.260476775 -0700
+@@ -38,7 +38,7 @@
+    square root.  */
+ 
+ float
+-__ieee754_sqrtf (float b)
++__slow_ieee754_sqrtf (float b)
+ {
+   if (__builtin_expect (b > 0, 1))
+     {
+@@ -93,4 +93,10 @@
+     }
+   return f_washf (b);
+ }
++#undef __ieee754_sqrtf
++float
++__ieee754_sqrtf (float x)
++{
++  return __slow_ieee754_sqrtf (x);
++}
+ strong_alias (__ieee754_sqrtf, __sqrtf_finite)
+Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c	2012-07-03 22:36:01.176386435 -0700
++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c	2012-07-03 23:14:16.328497458 -0700
+@@ -40,7 +40,7 @@
+    simultaneously.  */
+ 
+ double
+-__ieee754_sqrt (double b)
++__slow_ieee754_sqrt (double b)
+ {
+   if (__builtin_expect (b > 0, 1))
+     {
+@@ -77,7 +77,7 @@
+   
+           /* Handle small numbers by scaling.  */
+           if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
+-            return __ieee754_sqrt (b * two108) * twom54;
++            return __slow_ieee754_sqrt (b * two108) * twom54;
+ 
+ #define FMADD(a_, c_, b_)                                               \
+           ({ double __r;                                                \
+@@ -126,4 +126,12 @@
+     }
+   return f_wash (b);
+ }
++
++#undef __ieee754_sqrt
++double
++__ieee754_sqrt (double x)
++{
++  return __slow_ieee754_sqrt (x);
++}
++
+ strong_alias (__ieee754_sqrt, __sqrt_finite)
+Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
+===================================================================
+--- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c	2012-07-03 22:36:01.176386435 -0700
++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c	2012-07-03 23:13:52.732496373 -0700
+@@ -38,7 +38,7 @@
+    square root.  */
+ 
+ float
+-__ieee754_sqrtf (float b)
++__slow_ieee754_sqrtf (float b)
+ {
+   if (__builtin_expect (b > 0, 1))
+     {
+@@ -93,4 +93,10 @@
+     }
+   return f_washf (b);
+ }
++#undef __ieee754_sqrtf
++float
++__ieee754_sqrtf (float x)
++{
++  return __slow_ieee754_sqrtf (x);
++}
+ strong_alias (__ieee754_sqrtf, __sqrtf_finite)
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/rpc-bootstrap.patch b/meta/recipes-core/eglibc/eglibc-2.16/rpc-bootstrap.patch
new file mode 100644
index 0000000..130a816
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/rpc-bootstrap.patch
@@ -0,0 +1,63 @@
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+
+From libc-alpha-return-31199-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org Tue Jul 03 19:54:27 2012
+Return-Path: <libc-alpha-return-31199-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org>
+Delivered-To: listarch-libc-alpha at sources dot redhat dot com
+Received: (qmail 20151 invoked by alias); 3 Jul 2012 19:54:25 -0000
+Received: (qmail 20139 invoked by uid 22791); 3 Jul 2012 19:54:23 -0000
+X-SWARE-Spam-Status: No, hits=-4.8 required=5.0
+	tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,T_RP_MATCHES_RCVD
+X-Spam-Check-By: sourceware.org
+From: Mike Frysinger <vapier at gentoo dot org>
+To: libc-alpha at sourceware dot org
+Subject: [PATCH] sunrpc: fix rpc bootstrap builds
+Date: Tue,  3 Jul 2012 15:54:11 -0400
+Message-Id: <1341345251-31730-1-git-send-email-vapier@gentoo.org>
+Mailing-List: contact libc-alpha-help at sourceware dot org; run by ezmlm
+Precedence: bulk
+List-Id: <libc-alpha.sourceware.org>
+List-Subscribe: <mailto:libc-alpha-subscribe at sourceware dot org>
+List-Archive: <http://sourceware.org/ml/libc-alpha/>
+List-Post: <mailto:libc-alpha at sourceware dot org>
+List-Help: <mailto:libc-alpha-help at sourceware dot org>, <http://sourceware dot org/ml/#faqs>
+Sender: libc-alpha-owner at sourceware dot org
+Delivered-To: mailing list libc-alpha at sourceware dot org
+
+If you build & install glibc w/rpc disabled, you no longer have headers in
+/usr/include/rpc/ (this is expected).  But if you try to build glibc w/rpc
+enabled, this gets into a bad state due to the new rpc helpers that get
+cross-compiled:
+
+$ make
+...
+x86_64-pc-linux-gnu-gcc -m32   -D_RPC_THREAD_SAFE_ -D_GNU_SOURCE -DIS_IN_build \
+	-include $objdir/config.h rpc_clntout.c -o $objdir/sunrpc/cross-rpc_clntout.o \
+	-MMD -MP -MF $objdir/sunrpc/cross-rpc_clntout.o.dt -MT $objdir/sunrpc/cross-rpc_clntout.o -c
+rpc_clntout.c:34:23: fatal error: rpc/types.h: No such file or directory
+compilation terminated.
+make: *** [$objdir/sunrpc/cross-rpc_clntout.o] Error 1
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+
+2012-07-03  Mike Frysinger  <vapier@gentoo.org>
+
+	* sunrpc/rpc_clntout.c: Change <rpc/types.h> to "rpc/types.h".
+---
+ sunrpc/rpc_clntout.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: libc/sunrpc/rpc_clntout.c
+===================================================================
+--- libc.orig/sunrpc/rpc_clntout.c	2012-07-04 16:09:16.000000000 -0700
++++ libc/sunrpc/rpc_clntout.c	2012-07-04 18:04:34.498085075 -0700
+@@ -31,7 +31,7 @@
+  */
+ #include <stdio.h>
+ #include <string.h>
+-#include <rpc/types.h>
++#include "rpc/types.h"
+ #include "rpc_parse.h"
+ #include "rpc_util.h"
+ #include "proto.h"
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/use-sysroot-cxx-headers.patch b/meta/recipes-core/eglibc/eglibc-2.16/use-sysroot-cxx-headers.patch
new file mode 100644
index 0000000..7f82253
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/use-sysroot-cxx-headers.patch
@@ -0,0 +1,42 @@
+build system of glibc currently adds the cxx headers path by detecting
+it using provided CXX and expects that they are installed w.r.t to standard
+installation location but in OE we install and use cxx headers from target
+sysroot therefore that code needs to be adapted for OE
+
+Upstream-Status: Inappropriate [OE-specific]
+
+-Khem
+
+
+--- a/configure.in
++++ b/configure.in
+@@ -1094,11 +1094,10 @@ if test -n "$sysheaders"; then
+ -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
+   if test -n "$CXX"; then
+     CXX_SYSINCLUDES=
+-    cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
+     cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
+     for d in include "$cxxmachine/include"; do
+-      i=../../../../$d/c++/$cxxversion
+-      cxxheaders=`$CXX -print-file-name="$i"` &&
++      i="$prefix/$d/c++"
++      cxxheaders=`$CXX -print-sysroot`"$i" &&
+       test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
+       CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
+ -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
+--- a/configure
++++ b/configure
+@@ -5618,11 +5618,10 @@ if test -n "$sysheaders"; then
+ -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
+   if test -n "$CXX"; then
+     CXX_SYSINCLUDES=
+-    cxxversion=`$CXX -dumpversion 2>&5` &&
+     cxxmachine=`$CXX -dumpmachine 2>&5` &&
+     for d in include "$cxxmachine/include"; do
+-      i=../../../../$d/c++/$cxxversion
+-      cxxheaders=`$CXX -print-file-name="$i"` &&
++      i="$prefix/$d/c++"
++      cxxheaders=`$CXX -print-sysroot`"$i" &&
+       test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
+       CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
+ -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
diff --git a/meta/recipes-core/eglibc/eglibc-initial_2.16.bb b/meta/recipes-core/eglibc/eglibc-initial_2.16.bb
new file mode 100644
index 0000000..787c762
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-initial_2.16.bb
@@ -0,0 +1,6 @@
+require eglibc_${PV}.bb
+require eglibc-initial.inc
+
+do_configure_prepend () {
+        unset CFLAGS
+}
diff --git a/meta/recipes-core/eglibc/eglibc-locale_2.16.bb b/meta/recipes-core/eglibc/eglibc-locale_2.16.bb
new file mode 100644
index 0000000..ce6c1d2
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-locale_2.16.bb
@@ -0,0 +1 @@
+require eglibc-locale.inc
diff --git a/meta/recipes-core/eglibc/eglibc_2.16.bb b/meta/recipes-core/eglibc/eglibc_2.16.bb
new file mode 100644
index 0000000..c005889
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc_2.16.bb
@@ -0,0 +1,146 @@
+require eglibc.inc
+
+SRCREV = "19383"
+
+DEPENDS += "gperf-native"
+PR = "r0"
+PR_append = "+svnr${SRCPV}"
+
+EGLIBC_BRANCH="eglibc-2_16"
+SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http \
+           file://eglibc-svn-arm-lowlevellock-include-tls.patch \
+           file://IO-acquire-lock-fix.patch \
+           file://mips-rld-map-check.patch \
+           file://etc/ld.so.conf \
+           file://generate-supported.mk \
+           file://ppc-sqrt.patch \
+           file://multilib_readlib.patch \
+           file://use-sysroot-cxx-headers.patch \
+           file://ppc-sqrt_finite.patch \
+           file://GLRO_dl_debug_mask.patch \
+           file://initgroups_keys.patch \
+           file://eglibc_fix_findidx_parameters.patch \
+           file://ppc_slow_ieee754_sqrt.patch \
+           file://rpc-bootstrap.patch \
+          "
+LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \
+      file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \
+      file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
+      file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff "
+
+SRC_URI_append_virtclass-nativesdk = " file://ld-search-order.patch"
+S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
+B = "${WORKDIR}/build-${TARGET_SYS}"
+
+PACKAGES_DYNAMIC = "libc6*"
+RPROVIDES_${PN}-dev = "libc6-dev virtual-libc-dev"
+PROVIDES_${PN}-dbg = "glibc-dbg"
+
+# the -isystem in bitbake.conf screws up glibc do_stage
+BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
+TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
+
+GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN es_CR.ISO-8859-1"
+
+FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/eglibc-${PV}', '${FILE_DIRNAME}/eglibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
+
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+    import bb, re
+    uc_os = (re.match('.*uclibc$', d.getVar('TARGET_OS', True)) != None)
+    if uc_os:
+        raise bb.parse.SkipPackage("incompatible with target %s" %
+                                   d.getVar('TARGET_OS', True))
+}
+
+export libc_cv_slibdir = "${base_libdir}"
+
+EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
+                --without-cvs --disable-profile \
+                --disable-debug --without-gd \
+                --enable-clocale=gnu \
+                --enable-add-ons \
+                --with-headers=${STAGING_INCDIR} \
+                --without-selinux \
+                --enable-obsolete-rpc \
+                ${GLIBC_EXTRA_OECONF}"
+
+EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}"
+
+do_unpack_append() {
+	bb.build.exec_func('do_move_ports', d)
+}
+
+do_move_ports() {
+        if test -d ${WORKDIR}/${EGLIBC_BRANCH}/ports ; then
+	    rm -rf ${S}/ports
+	    mv ${WORKDIR}/${EGLIBC_BRANCH}/ports ${S}/
+	fi
+}
+
+do_patch_append() {
+	bb.build.exec_func('do_fix_readlib_c', d)
+}
+
+# for mips eglibc now builds syscall tables for all abi's
+# so we make sure that we choose right march option which is
+# compatible with o32,n32 and n64 abi's
+# e.g. -march=mips32 is not compatible with n32 and n64 therefore
+# we filter it out in such case -march=from-abi which will be
+# mips1 when using o32 and mips3 when using n32/n64
+
+TUNE_CCARGS_mips := "${@oe_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}"
+TUNE_CCARGS_mipsel := "${@oe_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}"
+
+do_fix_readlib_c () {
+	sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c
+}
+
+do_configure () {
+# override this function to avoid the autoconf/automake/aclocal/autoheader
+# calls for now
+# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
+# version check and doesn't really help with anything
+        if [ -z "`which rpcgen`" ]; then
+                echo "rpcgen not found.  Install glibc-devel."
+                exit 1
+        fi
+        (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
+        find ${S} -name "configure" | xargs touch
+        CPPFLAGS="" oe_runconf
+}
+
+rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
+	  yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
+	  rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
+
+do_compile () {
+	# -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
+	unset LDFLAGS
+	base_do_compile
+	(
+		cd ${S}/sunrpc/rpcsvc
+		for r in ${rpcsvc}; do
+			h=`echo $r|sed -e's,\.x$,.h,'`
+			rpcgen -h $r -o $h || bbwarn "unable to generate header for $r"
+		done
+	)
+	echo "Adjust ldd script"
+	if [ -n "${RTLDLIST}" ]
+	then
+		sed -i ${B}/elf/ldd -e 's#^\(RTLDLIST=\)"\(.*\)"$#\1\2#'
+		sed -i ${B}/elf/ldd -e 's#^\(RTLDLIST=\)\(.*\)$#\1"${RTLDLIST} \2"#'
+	fi
+
+}
+
+require eglibc-package.inc
+
+BBCLASSEXTEND = "nativesdk"
-- 
1.7.9.5




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

* Re: [PATCH 00/14] eglibc 2.16
  2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
                   ` (13 preceding siblings ...)
  2012-07-05 14:35 ` [PATCH 14/14] eglibc: Add recipes for 2.16 release Khem Raj
@ 2012-07-05 20:23 ` Martin Jansa
  2012-07-05 20:39   ` Khem Raj
  2012-07-17 14:59 ` Saul Wold
  15 siblings, 1 reply; 25+ messages in thread
From: Martin Jansa @ 2012-07-05 20:23 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

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

On Thu, Jul 05, 2012 at 07:35:19AM -0700, Khem Raj wrote:
> This patch adds eglibc 2.16 recipes. I was able to build world
> on x86 except perf which was failing with 2.15 as well.
> 
> I have also build and run core-image-sato on all qemus
> 
> I did not remove 2.15 to allow some soak in time.
> 
> The following changes since commit 5beb7176d361d4bfa279bbfab5a17b8fe4fa3b73:
> 
>   netbase: update to ver. 5.0 (2012-07-05 14:18:19 +0100)

Build and runtime tested on armv4t with bfd (om-gta02), but on armv7a 
(where I have enabled gold) it fails in do_configure already.

*** These critical programs are missing or too old: ld

IIRC I've seen this with older eglibc too, but then it was working
again..

BTW: gold on armv4t is still unusable right?

Cheers,

> 
> are available in the git repository at:
> 
>   git://git.openembedded.org/openembedded-core-contrib kraj/eglibc-2.16
>   http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/eglibc-2.16
> 
> Khem Raj (14):
>   mirrors: Add debian archive snapshot mirrors to search list
>   gdb: Replace struct siginfo with proper siginfo_t
>   busybox: Include sys/resource.h for rusage definition
>   coreutils: Fix build with eglibc 2.16
>   diffutils: Fix build with eglibc 2.16
>   udev: Fix build with eglibc 2.16
>   gettext,m4,augeas,gnutls: Account for removal of gets in eglibc 2.16
>   bison: Fix for gets being removed from eglibc 2.16
>   grub,guile,cpio,tar,wget: Fix gnulib for absense of gets in eglibc
>   boost: Upgrade recipe to 1.50.0
>   puzzles: Fix checksums
>   valgrind: Fix build with eglibc 2.16
>   libpam: Fix build with eglibc 2.16
>   eglibc: Add recipes for 2.16 release
> 
>  meta/classes/mirrors.bbclass                       |    4 +-
>  meta/recipes-bsp/grub/grub-1.99/remove-gets.patch  |   20 +
>  meta/recipes-bsp/grub/grub_1.99.bb                 |    3 +-
>  .../busybox/busybox-1.19.4/sys_resource.patch      |   18 +
>  meta/recipes-core/busybox/busybox_1.19.4.bb        |    3 +-
>  .../coreutils/coreutils-8.14/remove-gets.patch     |   23 +
>  meta/recipes-core/coreutils/coreutils_8.14.bb      |    3 +-
>  .../eglibc/cross-localedef-native_2.16.bb          |   44 ++
>  .../eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch    |  108 ++++
>  .../eglibc/eglibc-2.16/IO-acquire-lock-fix.patch   |   17 +
>  .../eglibc-svn-arm-lowlevellock-include-tls.patch  |   21 +
>  .../eglibc_fix_findidx_parameters.patch            |   38 ++
>  .../eglibc/eglibc-2.16/generate-supported.mk       |   11 +
>  .../eglibc/eglibc-2.16/initgroups_keys.patch       |   20 +
>  .../eglibc/eglibc-2.16/ld-search-order.patch       |   56 ++
>  .../eglibc/eglibc-2.16/mips-rld-map-check.patch    |   26 +
>  .../eglibc/eglibc-2.16/multilib_readlib.patch      |   17 +
>  .../recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch |  538 ++++++++++++++++++++
>  .../eglibc/eglibc-2.16/ppc-sqrt_finite.patch       |  112 ++++
>  .../eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch |  123 +++++
>  .../eglibc/eglibc-2.16/rpc-bootstrap.patch         |   63 +++
>  .../eglibc-2.16/use-sysroot-cxx-headers.patch      |   42 ++
>  meta/recipes-core/eglibc/eglibc-initial_2.16.bb    |    6 +
>  meta/recipes-core/eglibc/eglibc-locale_2.16.bb     |    1 +
>  meta/recipes-core/eglibc/eglibc_2.16.bb            |  146 ++++++
>  .../gettext/gettext-0.18.1.1/remove_gets.patch     |   58 +++
>  meta/recipes-core/gettext/gettext_0.18.1.1.bb      |    3 +-
>  meta/recipes-core/udev/udev/include_resource.patch |   31 ++
>  meta/recipes-core/udev/udev_164.bb                 |    7 +-
>  .../recipes-devtools/bison/bison/remove-gets.patch |   20 +
>  meta/recipes-devtools/bison/bison_2.5.bb           |    6 +-
>  meta/recipes-devtools/gdb/gdb-common.inc           |    2 +-
>  meta/recipes-devtools/gdb/gdb.inc                  |    1 +
>  meta/recipes-devtools/gdb/gdb/siginfo_t.patch      |  403 +++++++++++++++
>  .../recipes-devtools/guile/files/remove-gets.patch |   23 +
>  meta/recipes-devtools/guile/guile_2.0.5.bb         |    3 +-
>  meta/recipes-devtools/m4/m4-1.4.16.inc             |    6 +-
>  meta/recipes-devtools/m4/m4/remove-gets.patch      |   21 +
>  .../valgrind-3.7.0/configure-with-glibc-2.16.patch |   32 ++
>  meta/recipes-devtools/valgrind/valgrind_3.7.0.bb   |    6 +-
>  .../augeas/augeas/remove-gets.patch                |   20 +
>  meta/recipes-extended/augeas/augeas_0.10.0.bb      |    4 +-
>  .../cpio/cpio-2.11/remove-gets.patch               |   20 +
>  meta/recipes-extended/cpio/cpio_2.11.bb            |    5 +-
>  .../diffutils/diffutils-3.2/remove-gets.patch      |   22 +
>  meta/recipes-extended/diffutils/diffutils_3.2.bb   |    6 +-
>  .../pam/libpam/include-sys-resource.patch          |   12 +
>  meta/recipes-extended/pam/libpam_1.1.5.bb          |    6 +-
>  .../tar/tar-1.26/remove-gets.patch                 |   20 +
>  meta/recipes-extended/tar/tar_1.26.bb              |    5 +-
>  .../wget/wget-1.13.4/remove-gets.patch             |   23 +
>  meta/recipes-extended/wget/wget_1.13.4.bb          |    3 +-
>  meta/recipes-sato/puzzles/puzzles_r9561.bb         |    5 +-
>  .../boost/{boost_1.49.0.bb => boost_1.50.0.bb}     |    5 +-
>  .../gnutls/gnutls/remove-gets.patch                |   41 ++
>  meta/recipes-support/gnutls/gnutls_2.12.20.bb      |    3 +-
>  56 files changed, 2254 insertions(+), 31 deletions(-)
>  create mode 100644 meta/recipes-bsp/grub/grub-1.99/remove-gets.patch
>  create mode 100644 meta/recipes-core/busybox/busybox-1.19.4/sys_resource.patch
>  create mode 100644 meta/recipes-core/coreutils/coreutils-8.14/remove-gets.patch
>  create mode 100644 meta/recipes-core/eglibc/cross-localedef-native_2.16.bb
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/IO-acquire-lock-fix.patch
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/eglibc-svn-arm-lowlevellock-include-tls.patch
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/eglibc_fix_findidx_parameters.patch
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/etc/ld.so.conf
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/generate-supported.mk
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/initgroups_keys.patch
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ld-search-order.patch
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/mips-rld-map-check.patch
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/multilib_readlib.patch
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt_finite.patch
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/rpc-bootstrap.patch
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/use-sysroot-cxx-headers.patch
>  create mode 100644 meta/recipes-core/eglibc/eglibc-initial_2.16.bb
>  create mode 100644 meta/recipes-core/eglibc/eglibc-locale_2.16.bb
>  create mode 100644 meta/recipes-core/eglibc/eglibc_2.16.bb
>  create mode 100644 meta/recipes-core/gettext/gettext-0.18.1.1/remove_gets.patch
>  create mode 100644 meta/recipes-core/udev/udev/include_resource.patch
>  create mode 100644 meta/recipes-devtools/bison/bison/remove-gets.patch
>  create mode 100644 meta/recipes-devtools/gdb/gdb/siginfo_t.patch
>  create mode 100644 meta/recipes-devtools/guile/files/remove-gets.patch
>  create mode 100644 meta/recipes-devtools/m4/m4/remove-gets.patch
>  create mode 100644 meta/recipes-devtools/valgrind/valgrind-3.7.0/configure-with-glibc-2.16.patch
>  create mode 100644 meta/recipes-extended/augeas/augeas/remove-gets.patch
>  create mode 100644 meta/recipes-extended/cpio/cpio-2.11/remove-gets.patch
>  create mode 100644 meta/recipes-extended/diffutils/diffutils-3.2/remove-gets.patch
>  create mode 100644 meta/recipes-extended/pam/libpam/include-sys-resource.patch
>  create mode 100644 meta/recipes-extended/tar/tar-1.26/remove-gets.patch
>  create mode 100644 meta/recipes-extended/wget/wget-1.13.4/remove-gets.patch
>  rename meta/recipes-support/boost/{boost_1.49.0.bb => boost_1.50.0.bb} (53%)
>  create mode 100644 meta/recipes-support/gnutls/gnutls/remove-gets.patch
> 
> -- 
> 1.7.9.5
> 
> 
> _______________________________________________
> 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] 25+ messages in thread

* Re: [PATCH 00/14] eglibc 2.16
  2012-07-05 20:23 ` [PATCH 00/14] eglibc 2.16 Martin Jansa
@ 2012-07-05 20:39   ` Khem Raj
  2012-07-05 20:57     ` Martin Jansa
  0 siblings, 1 reply; 25+ messages in thread
From: Khem Raj @ 2012-07-05 20:39 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Thu, Jul 5, 2012 at 1:23 PM, Martin Jansa <martin.jansa@gmail.com> wrote:
> On Thu, Jul 05, 2012 at 07:35:19AM -0700, Khem Raj wrote:
>> This patch adds eglibc 2.16 recipes. I was able to build world
>> on x86 except perf which was failing with 2.15 as well.
>>
>> I have also build and run core-image-sato on all qemus
>>
>> I did not remove 2.15 to allow some soak in time.
>>
>> The following changes since commit 5beb7176d361d4bfa279bbfab5a17b8fe4fa3b73:
>>
>>   netbase: update to ver. 5.0 (2012-07-05 14:18:19 +0100)
>
> Build and runtime tested on armv4t with bfd (om-gta02), but on armv7a
> (where I have enabled gold) it fails in do_configure already.
>
> *** These critical programs are missing or too old: ld

which package do you see this issue with ?
glibc itself is not buildable with gold. In OE-Core we use gnu ld for
linking eglibc and gold for rest of it.

>
> IIRC I've seen this with older eglibc too, but then it was working
> again..
>
> BTW: gold on armv4t is still unusable right?
>

yes. It still is. I think one option is to try binutils/master, I was
close to fixing it before I ran out of time



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

* Re: [PATCH 00/14] eglibc 2.16
  2012-07-05 20:39   ` Khem Raj
@ 2012-07-05 20:57     ` Martin Jansa
  2012-07-05 21:34       ` Khem Raj
  0 siblings, 1 reply; 25+ messages in thread
From: Martin Jansa @ 2012-07-05 20:57 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

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

On Thu, Jul 05, 2012 at 01:39:04PM -0700, Khem Raj wrote:
> On Thu, Jul 5, 2012 at 1:23 PM, Martin Jansa <martin.jansa@gmail.com> wrote:
> > On Thu, Jul 05, 2012 at 07:35:19AM -0700, Khem Raj wrote:
> >> This patch adds eglibc 2.16 recipes. I was able to build world
> >> on x86 except perf which was failing with 2.15 as well.
> >>
> >> I have also build and run core-image-sato on all qemus
> >>
> >> I did not remove 2.15 to allow some soak in time.
> >>
> >> The following changes since commit 5beb7176d361d4bfa279bbfab5a17b8fe4fa3b73:
> >>
> >>   netbase: update to ver. 5.0 (2012-07-05 14:18:19 +0100)
> >
> > Build and runtime tested on armv4t with bfd (om-gta02), but on armv7a
> > (where I have enabled gold) it fails in do_configure already.
> >
> > *** These critical programs are missing or too old: ld
> 
> which package do you see this issue with ?
> glibc itself is not buildable with gold. In OE-Core we use gnu ld for
> linking eglibc and gold for rest of it.

eglibc-initial
http://norman-schleicher.de/jenkins/job/shr-core-branches-nokia900-shr-image/lastBuild/console

I was looking in meta/recipes-core/eglibc for switch forcing bfd for it,
but I haven't found it neither in 2.15 or 2.16..

Cheers,

> 
> >
> > IIRC I've seen this with older eglibc too, but then it was working
> > again..
> >
> > BTW: gold on armv4t is still unusable right?
> >
> 
> yes. It still is. I think one option is to try binutils/master, I was
> close to fixing it before I ran out of time
> 
> _______________________________________________
> 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] 25+ messages in thread

* Re: [PATCH 00/14] eglibc 2.16
  2012-07-05 20:57     ` Martin Jansa
@ 2012-07-05 21:34       ` Khem Raj
  2012-07-05 21:55         ` Martin Jansa
  0 siblings, 1 reply; 25+ messages in thread
From: Khem Raj @ 2012-07-05 21:34 UTC (permalink / raw)
  To: openembedded-core

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 7/5/2012 1:57 PM, Martin Jansa wrote:
> I was looking in meta/recipes-core/eglibc for switch forcing bfd
> for it, but I haven't found it neither in 2.15 or 2.16..

STAGINGCC is gcc-cross-intermediate for eglibc and gcc-cross-initial
for eglibc-initial

and if you look at gcc-cross-intermediate recipe then it uses

in EXTRA_OECONF

${@base_contains('DISTRO_FEATURES', 'ld-is-gold',
'--with-ld=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}ld.bfd', '', d)}"

which means it use ld.bfd when ld-is-gold is enabled.

however we need something similar for gcc-cross-initial as well
and thats why you see the problem with eglibc-initial

I have created a patch and added it to the pull branch please
try that out

especially this one
http://git.openembedded.org/openembedded-core-contrib/commit/?h=kraj/eglibc-2.16&id=3b68cb3e23138c72e61771c50a4a4b08bb4d0865

Thanks
- -Khem
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk/2CGoACgkQuwUzVZGdMxSiXQCfT+LaNCf9iZAK1tr2fNsX8opW
MAIAnihWe8FauLk+y3gmLMHcg8e+MfIf
=m9f1
-----END PGP SIGNATURE-----



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

* Re: [PATCH 00/14] eglibc 2.16
  2012-07-05 21:34       ` Khem Raj
@ 2012-07-05 21:55         ` Martin Jansa
  0 siblings, 0 replies; 25+ messages in thread
From: Martin Jansa @ 2012-07-05 21:55 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

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

On Thu, Jul 05, 2012 at 02:34:34PM -0700, Khem Raj wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On 7/5/2012 1:57 PM, Martin Jansa wrote:
> > I was looking in meta/recipes-core/eglibc for switch forcing bfd
> > for it, but I haven't found it neither in 2.15 or 2.16..
> 
> STAGINGCC is gcc-cross-intermediate for eglibc and gcc-cross-initial
> for eglibc-initial
> 
> and if you look at gcc-cross-intermediate recipe then it uses
> 
> in EXTRA_OECONF
> 
> ${@base_contains('DISTRO_FEATURES', 'ld-is-gold',
> '--with-ld=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}ld.bfd', '', d)}"
> 
> which means it use ld.bfd when ld-is-gold is enabled.
> 
> however we need something similar for gcc-cross-initial as well
> and thats why you see the problem with eglibc-initial
> 
> I have created a patch and added it to the pull branch please
> try that out
> 
> especially this one
> http://git.openembedded.org/openembedded-core-contrib/commit/?h=kraj/eglibc-2.16&id=3b68cb3e23138c72e61771c50a4a4b08bb4d0865
> 

yes this helps eglibc-initial:do_configre passed,

Thanks!

Cheers,

> Thanks
> - -Khem
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.12 (MingW32)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
> 
> iEYEARECAAYFAk/2CGoACgkQuwUzVZGdMxSiXQCfT+LaNCf9iZAK1tr2fNsX8opW
> MAIAnihWe8FauLk+y3gmLMHcg8e+MfIf
> =m9f1
> -----END PGP SIGNATURE-----
> 
> _______________________________________________
> 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] 25+ messages in thread

* Re: [PATCH 14/14] eglibc: Add recipes for 2.16 release
  2012-07-05 14:35 ` [PATCH 14/14] eglibc: Add recipes for 2.16 release Khem Raj
@ 2012-07-06  2:27   ` Saul Wold
  2012-07-06  3:49     ` Khem Raj
  0 siblings, 1 reply; 25+ messages in thread
From: Saul Wold @ 2012-07-06  2:27 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 07/05/2012 07:35 AM, Khem Raj wrote:
> Drop the patches that were either applied
> or fixed differenly in 2.16
>
> Add patches to fix ppc spe patches to match
> eglibc 2.16
>
> Fix CPPFLAGS to contain correct includepaths
> so autoconf cache is generated correctly
>

Khem,

Just to let you know that I will be doing builds with this set over the 
weekend and since we are approaching a Milestone cut date, we will 
likely wait until after the freeze date before including these changes.

I will keep you posted on my results.

Sau!

> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>   .../eglibc/cross-localedef-native_2.16.bb          |   44 ++
>   .../eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch    |  108 ++++
>   .../eglibc/eglibc-2.16/IO-acquire-lock-fix.patch   |   17 +
>   .../eglibc-svn-arm-lowlevellock-include-tls.patch  |   21 +
>   .../eglibc_fix_findidx_parameters.patch            |   38 ++
>   .../eglibc/eglibc-2.16/generate-supported.mk       |   11 +
>   .../eglibc/eglibc-2.16/initgroups_keys.patch       |   20 +
>   .../eglibc/eglibc-2.16/ld-search-order.patch       |   56 ++
>   .../eglibc/eglibc-2.16/mips-rld-map-check.patch    |   26 +
>   .../eglibc/eglibc-2.16/multilib_readlib.patch      |   17 +
>   .../recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch |  538 ++++++++++++++++++++
>   .../eglibc/eglibc-2.16/ppc-sqrt_finite.patch       |  112 ++++
>   .../eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch |  123 +++++
>   .../eglibc/eglibc-2.16/rpc-bootstrap.patch         |   63 +++
>   .../eglibc-2.16/use-sysroot-cxx-headers.patch      |   42 ++
>   meta/recipes-core/eglibc/eglibc-initial_2.16.bb    |    6 +
>   meta/recipes-core/eglibc/eglibc-locale_2.16.bb     |    1 +
>   meta/recipes-core/eglibc/eglibc_2.16.bb            |  146 ++++++
>   18 files changed, 1389 insertions(+)
>   create mode 100644 meta/recipes-core/eglibc/cross-localedef-native_2.16.bb
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/IO-acquire-lock-fix.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/eglibc-svn-arm-lowlevellock-include-tls.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/eglibc_fix_findidx_parameters.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/etc/ld.so.conf
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/generate-supported.mk
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/initgroups_keys.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ld-search-order.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/mips-rld-map-check.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/multilib_readlib.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt_finite.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/rpc-bootstrap.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/use-sysroot-cxx-headers.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-initial_2.16.bb
>   create mode 100644 meta/recipes-core/eglibc/eglibc-locale_2.16.bb
>   create mode 100644 meta/recipes-core/eglibc/eglibc_2.16.bb
>
> diff --git a/meta/recipes-core/eglibc/cross-localedef-native_2.16.bb b/meta/recipes-core/eglibc/cross-localedef-native_2.16.bb
> new file mode 100644
> index 0000000..88c701e
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/cross-localedef-native_2.16.bb
> @@ -0,0 +1,44 @@
> +DESCRIPTION = "Cross locale generation tool for eglibc"
> +HOMEPAGE = "http://www.eglibc.org/home"
> +SECTION = "libs"
> +LICENSE = "LGPL-2.1"
> +
> +LIC_DIR = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
> +LIC_FILES_CHKSUM = "file://${LIC_DIR}/LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9\
> +      file://${LIC_DIR}/COPYING;md5=393a5ca445f6965873eca0259a17f833 \
> +      file://${LIC_DIR}/posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
> +      file://${LIC_DIR}/COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff "
> +
> +
> +inherit native
> +inherit autotools
> +
> +PR = "r0"
> +SRCREV="19383"
> +EGLIBC_BRANCH="eglibc-2_16"
> +SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http "
> +S = "${WORKDIR}/${EGLIBC_BRANCH}/localedef"
> +
> +do_unpack_append() {
> +	bb.build.exec_func('do_move_ports', d)
> +}
> +
> +do_move_ports() {
> +        if test -d ${WORKDIR}/${EGLIBC_BRANCH}/ports ; then
> +	    rm -rf ${WORKDIR}/libc/ports
> +	    mv ${WORKDIR}/${EGLIBC_BRANCH}/ports ${WORKDIR}/libc/
> +	fi
> +}
> +
> +EXTRA_OECONF = "--with-glibc=${WORKDIR}/${EGLIBC_BRANCH}/libc"
> +CFLAGS += "-DNOT_IN_libc=1"
> +
> +do_configure () {
> +	./configure ${EXTRA_OECONF}
> +}
> +
> +
> +do_install() {
> +	install -d ${D}${bindir}
> +	install -m 0755 ${S}/localedef ${D}${bindir}/cross-localedef
> +}
> diff --git a/meta/recipes-core/eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch b/meta/recipes-core/eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch
> new file mode 100644
> index 0000000..b899562
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch
> @@ -0,0 +1,108 @@
> +Its controlled by __OPTION_EGLIBC_RTLD_DEBUG
> +so we should use GLRO_dl_debug_mask
> +
> +Singed-off-by: Khem Raj <raj.khem@gmail.com>
> +
> +Upstream-Status: Pending
> +Index: libc/elf/dl-open.c
> +===================================================================
> +--- libc.orig/elf/dl-open.c	2012-03-09 08:54:34.691443995 -0800
> ++++ libc/elf/dl-open.c	2012-03-09 08:55:31.275446730 -0800
> +@@ -154,7 +154,7 @@
> + 	  ns->_ns_main_searchlist->r_list[new_nlist++] = map;
> +
> + 	  /* We modify the global scope.  Report this.  */
> +-	  if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0))
> ++	  if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0))
> + 	    _dl_debug_printf ("\nadd %s [%lu] to global scope\n",
> + 			      map->l_name, map->l_ns);
> + 	}
> +@@ -294,7 +294,7 @@
> +   _dl_debug_state ();
> +
> +   /* Print scope information.  */
> +-  if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0))
> ++  if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0))
> +     _dl_show_scope (new, 0);
> +
> +   /* Only do lazy relocation if `LD_BIND_NOW' is not set.  */
> +@@ -438,7 +438,7 @@
> + 	}
> +
> +       /* Print scope information.  */
> +-      if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0))
> ++      if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0))
> + 	_dl_show_scope (imap, from_scope);
> +     }
> +
> +Index: libc/ports/sysdeps/mips/dl-lookup.c
> +===================================================================
> +--- libc.orig/ports/sysdeps/mips/dl-lookup.c	2012-03-09 08:54:34.707443996 -0800
> ++++ libc/ports/sysdeps/mips/dl-lookup.c	2012-03-09 09:02:36.903467324 -0800
> +@@ -111,7 +111,7 @@
> + 	continue;
> +
> +       /* Print some debugging info if wanted.  */
> +-      if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SYMBOLS, 0))
> ++      if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SYMBOLS, 0))
> + 	_dl_debug_printf ("symbol=%s;  lookup in file=%s [%lu]\n",
> + 			  undef_name,
> + 			  map->l_name[0] ? map->l_name : rtld_progname,
> +@@ -432,7 +432,7 @@
> + 		     hash table.  */
> + 		  if (__builtin_expect (tab->size, 0))
> + 		    {
> +-		      assert (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK);
> ++		      assert (GLRO_dl_debug_mask & DL_DEBUG_PRELINK);
> + 		      __rtld_lock_unlock_recursive (tab->lock);
> + 		      goto success;
> + 		    }
> +@@ -681,7 +681,7 @@
> + 	}
> +
> +       /* Display information if we are debugging.  */
> +-      if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
> ++      if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_FILES, 0))
> + 	_dl_debug_printf ("\
> + \nfile=%s [%lu];  needed by %s [%lu] (relocation dependency)\n\n",
> + 			  map->l_name[0] ? map->l_name : rtld_progname,
> +@@ -860,7 +860,7 @@
> +   if (__builtin_expect (current_value.m->l_used == 0, 0))
> +     current_value.m->l_used = 1;
> +
> +-  if (__builtin_expect (GLRO(dl_debug_mask)
> ++  if (__builtin_expect (GLRO_dl_debug_mask
> + 			& (DL_DEBUG_BINDINGS|DL_DEBUG_PRELINK), 0))
> +     _dl_debug_bindings (undef_name, undef_map, ref,
> + 			&current_value, version, type_class, protected);
> +@@ -925,7 +925,7 @@
> + {
> +   const char *reference_name = undef_map->l_name;
> +
> +-  if (GLRO(dl_debug_mask) & DL_DEBUG_BINDINGS)
> ++  if (GLRO_dl_debug_mask & DL_DEBUG_BINDINGS)
> +     {
> +       _dl_debug_printf ("binding file %s [%lu] to %s [%lu]: %s symbol `%s'",
> + 			(reference_name[0]
> +@@ -941,7 +941,7 @@
> + 	_dl_debug_printf_c ("\n");
> +     }
> + #ifdef SHARED
> +-  if (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK)
> ++  if (GLRO_dl_debug_mask & DL_DEBUG_PRELINK)
> +     {
> +       int conflict = 0;
> +       struct sym_val val = { NULL, NULL };
> +Index: libc/elf/rtld.c
> +===================================================================
> +--- libc.orig/elf/rtld.c	2012-03-09 09:01:35.159464344 -0800
> ++++ libc/elf/rtld.c	2012-03-09 09:01:56.247465364 -0800
> +@@ -2198,7 +2198,7 @@
> +   GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
> +
> +   /* Print scope information.  */
> +-  if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0))
> ++  if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0))
> +     {
> +       _dl_debug_printf ("\nInitial object scopes\n");
> +
> diff --git a/meta/recipes-core/eglibc/eglibc-2.16/IO-acquire-lock-fix.patch b/meta/recipes-core/eglibc/eglibc-2.16/IO-acquire-lock-fix.patch
> new file mode 100644
> index 0000000..cf58035
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc-2.16/IO-acquire-lock-fix.patch
> @@ -0,0 +1,17 @@
> +import http://sourceware.org/ml/libc-ports/2007-12/msg00000.html
> +
> +Upstream-Status: Pending
> +
> +Index: libc/bits/stdio-lock.h
> +===================================================================
> +--- libc.orig/bits/stdio-lock.h	2009-10-28 14:34:19.000000000 -0700
> ++++ libc/bits/stdio-lock.h	2009-10-28 14:34:54.000000000 -0700
> +@@ -50,6 +50,8 @@ __libc_lock_define_recursive (typedef, _
> +   _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp));      \
> +   _IO_flockfile (_fp)
> +
> ++# define _IO_acquire_lock_clear_flags2(_fp) _IO_acquire_lock (_fp)
> ++
> + # define _IO_release_lock(_fp) \
> +   _IO_funlockfile (_fp);						      \
> +   _IO_cleanup_region_end (0)
> diff --git a/meta/recipes-core/eglibc/eglibc-2.16/eglibc-svn-arm-lowlevellock-include-tls.patch b/meta/recipes-core/eglibc/eglibc-2.16/eglibc-svn-arm-lowlevellock-include-tls.patch
> new file mode 100644
> index 0000000..4313aa5
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc-2.16/eglibc-svn-arm-lowlevellock-include-tls.patch
> @@ -0,0 +1,21 @@
> +In file included from ../nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c:21:
> +../nptl/sysdeps/unix/sysv/linux/lowlevellock.c: In function '__lll_lock_wait_private':
> +../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: warning: implicit declaration of function 'THREAD_GETMEM'
> +../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: 'THREAD_SELF' undeclared (first use in this function)
> +../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: (Each undeclared identifier is reported only once
> +../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: for each function it appears in.)
> +../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: 'header' undeclared (first use in this function)
> +make[4]: *** [/var/tmp/portage/sys-libs/glibc-2.7-r1/work/build-default-armv4l-unknown-linux-gnu-nptl/nptl/rtld-libc-lowlevellock.os] Error 1
> +
> +Upstream-Status: Pending
> +
> +--- libc/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h.orig
> ++++ libc/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
> +@@ -25,6 +25,7 @@
> + #include <atomic.h>
> + #include <sysdep.h>
> + #include <kernel-features.h>
> ++#include <tls.h>
> +
> + #define FUTEX_WAIT		0
> + #define FUTEX_WAKE		1
> diff --git a/meta/recipes-core/eglibc/eglibc-2.16/eglibc_fix_findidx_parameters.patch b/meta/recipes-core/eglibc/eglibc-2.16/eglibc_fix_findidx_parameters.patch
> new file mode 100644
> index 0000000..bbf4605
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc-2.16/eglibc_fix_findidx_parameters.patch
> @@ -0,0 +1,38 @@
> +Upstream-Status: backport
> +
> +Imported patch from: http://www.eglibc.org/archives/patches/msg01124.html
> +
> +Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
> +2012/05/09
> +
> +Index: libc/posix/xregex.c
> +===================================================================
> +--- libc.orig/posix/xregex.c
> ++++ libc/posix/xregex.c
> +@@ -2943,7 +2943,7 @@ PREFIX(regex_compile) (const char *ARG_P
> + 				  _NL_CURRENT (LC_COLLATE,
> + 					       _NL_COLLATE_INDIRECTWC);
> +
> +-				idx = findidx ((const wint_t**)&cp);
> ++				idx = findidx ((const wint_t**)&cp, -1);
> + 				if (idx == 0 || cp < (wint_t*) str + c1)
> + 				  /* This is no valid character.  */
> + 				  FREE_STACK_RETURN (REG_ECOLLATE);
> +@@ -3392,7 +3392,7 @@ PREFIX(regex_compile) (const char *ARG_P
> + 			    indirect = (const int32_t *)
> + 			      _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB);
> +
> +-			    idx = findidx (&cp);
> ++			    idx = findidx (&cp, -1);
> + 			    if (idx == 0 || cp < str + c1)
> + 			      /* This is no valid character.  */
> + 			      FREE_STACK_RETURN (REG_ECOLLATE);
> +@@ -6363,7 +6363,7 @@ byte_re_match_2_internal (struct re_patt
> + 		      }
> + 		    str_buf[i] = TRANSLATE(*(d+i));
> + 		    str_buf[i+1] = '\0'; /* sentinel */
> +-		    idx2 = findidx ((const wint_t**)&cp);
> ++		    idx2 = findidx ((const wint_t**)&cp, -1);
> + 		  }
> +
> + 		/* Update d, however d will be incremented at
> diff --git a/meta/recipes-core/eglibc/eglibc-2.16/etc/ld.so.conf b/meta/recipes-core/eglibc/eglibc-2.16/etc/ld.so.conf
> new file mode 100644
> index 0000000..e69de29
> diff --git a/meta/recipes-core/eglibc/eglibc-2.16/generate-supported.mk b/meta/recipes-core/eglibc/eglibc-2.16/generate-supported.mk
> new file mode 100644
> index 0000000..d2a28c2
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc-2.16/generate-supported.mk
> @@ -0,0 +1,11 @@
> +#!/usr/bin/make
> +
> +include $(IN)
> +
> +all:
> +	rm -f $(OUT)
> +	touch $(OUT)
> +	for locale in $(SUPPORTED-LOCALES); do \
> +		[ $$locale = true ] && continue; \
> +		echo $$locale | sed 's,/, ,' >> $(OUT); \
> +	done
> diff --git a/meta/recipes-core/eglibc/eglibc-2.16/initgroups_keys.patch b/meta/recipes-core/eglibc/eglibc-2.16/initgroups_keys.patch
> new file mode 100644
> index 0000000..be29856
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc-2.16/initgroups_keys.patch
> @@ -0,0 +1,20 @@
> +This is needed since initgroups belongs to NET group
> +so when NET is disabled in eglibc build then it reports
> +as undefined symbol
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Upstream-Status: Pending
> +
> +Index: libc/nss/getent.c
> +===================================================================
> +--- libc.orig/nss/getent.c	2012-03-09 09:41:57.099581559 -0800
> ++++ libc/nss/getent.c	2012-03-09 09:42:13.095582334 -0800
> +@@ -898,7 +898,7 @@
> + D(group)
> + D(gshadow)
> + DN(hosts)
> +-D(initgroups)
> ++DN(initgroups)
> + DN(netgroup)
> + DN(networks)
> + D(passwd)
> diff --git a/meta/recipes-core/eglibc/eglibc-2.16/ld-search-order.patch b/meta/recipes-core/eglibc/eglibc-2.16/ld-search-order.patch
> new file mode 100644
> index 0000000..40ae6d3
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc-2.16/ld-search-order.patch
> @@ -0,0 +1,56 @@
> +Upstream-Status: Inappropriate [embedded specific]
> +
> +The default lib search path order is:
> +
> +  1) LD_LIBRARY_PATH
> +  2) RPATH from the binary
> +  3) ld.so.cache
> +  4) default search paths embedded in the linker
> +
> +For nativesdk binaries which are being used alongside binaries on a host system, we
> +need the search paths to firstly search the shipped nativesdk libs but then also
> +cover the host system. For example we want the host system's libGL and this may be
> +in a non-standard location like /usr/lib/mesa. The only place the location is know
> +about is in the ld.so.cache of the host system.
> +
> +Since nativesdk has a simple structure and doesn't need to use a cache itself, we
> +repurpose the cache for use as a last resort in finding host system binaries. This
> +means we need to switch the order of 3 and 4 above to make this work effectively.
> +
> +RP 14/10/2010
> +
> +Index: libc/elf/dl-load.c
> +===================================================================
> +--- libc.orig/elf/dl-load.c
> ++++ libc/elf/dl-load.c
> +@@ -2107,6 +2107,15 @@ _dl_map_object (struct link_map *loader,
> + 			&loader->l_runpath_dirs, &realname, &fb, loader,
> + 			LA_SER_RUNPATH, &found_other_class);
> +
> ++      /* try the default path.  */
> ++      if (fd == -1
> ++	  && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL
> ++	      || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1))
> ++	  && rtld_search_dirs.dirs != (void *) -1)
> ++	fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs,
> ++			&realname, &fb, l, LA_SER_DEFAULT, &found_other_class);
> ++
> ++      /* Finally try ld.so.cache */
> +       if (fd == -1
> + 	  && (__builtin_expect (! (mode & __RTLD_SECURE), 1)
> + 	      || ! INTUSE(__libc_enable_secure)))
> +@@ -2169,14 +2178,6 @@ _dl_map_object (struct link_map *loader,
> + 	    }
> + 	}
> +
> +-      /* Finally, try the default path.  */
> +-      if (fd == -1
> +-	  && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL
> +-	      || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1))
> +-	  && rtld_search_dirs.dirs != (void *) -1)
> +-	fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs,
> +-			&realname, &fb, l, LA_SER_DEFAULT, &found_other_class);
> +-
> +       /* Add another newline when we are tracing the library loading.  */
> +       if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_LIBS, 0))
> + 	_dl_debug_printf ("\n");
> diff --git a/meta/recipes-core/eglibc/eglibc-2.16/mips-rld-map-check.patch b/meta/recipes-core/eglibc/eglibc-2.16/mips-rld-map-check.patch
> new file mode 100644
> index 0000000..9b646fe
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc-2.16/mips-rld-map-check.patch
> @@ -0,0 +1,26 @@
> +
> +On mips target, binutils currently sets DT_MIPS_RLD_MAP to 0 in dynamic
> +section if a --version-script sets _RLD_MAP to local. This is apparently
> +a binutils bug, but libc shouldn't segfault in this case.
> +
> +see also: http://sourceware.org/bugilla/show_bug.cgi?id=11615
> +
> +Upstream-Status: Pending
> +
> +9/19/2010 - added by Qing He <qing.he@intel.com>
> +
> +
> +---
> +diff -ru glibc-2.10.1.orig/ports/sysdeps/mips/dl-machine.h glibc-2.10.1/ports/sysdeps/mips/dl-machine.h
> +--- glibc-2.10.1.orig/ports/sysdeps/mips/dl-machine.h	2009-05-16 16:36:20.000000000 +0800
> ++++ glibc-2.10.1/ports/sysdeps/mips/dl-machine.h	2010-09-19 09:11:53.000000000 +0800
> +@@ -70,7 +70,8 @@
> + /* If there is a DT_MIPS_RLD_MAP entry in the dynamic section, fill it in
> +    with the run-time address of the r_debug structure  */
> + #define ELF_MACHINE_DEBUG_SETUP(l,r) \
> +-do { if ((l)->l_info[DT_MIPS (RLD_MAP)]) \
> ++do { if ((l)->l_info[DT_MIPS (RLD_MAP)] && \
> ++         (l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) \
> +        *(ElfW(Addr) *)((l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) = \
> +        (ElfW(Addr)) (r); \
> +    } while (0)
> diff --git a/meta/recipes-core/eglibc/eglibc-2.16/multilib_readlib.patch b/meta/recipes-core/eglibc/eglibc-2.16/multilib_readlib.patch
> new file mode 100644
> index 0000000..1542b1b
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc-2.16/multilib_readlib.patch
> @@ -0,0 +1,17 @@
> +Upstream-Status: Inappropriate [embedded specific]
> +
> +Replace the OECORE_KNOWN_INTERPRETER_NAMES with the value of
> +variable EGLIBC_KNOWN_INTERPRETER_NAMES.
> +
> +Lianhao Lu, 08/01/2011
> +
> +--- libc/elf/readlib.c.orig	2011-08-12 17:05:51.864470837 +0800
> ++++ libc/elf/readlib.c	2011-08-12 17:06:39.346942074 +0800
> +@@ -52,6 +52,7 @@
> + #ifdef SYSDEP_KNOWN_INTERPRETER_NAMES
> +   SYSDEP_KNOWN_INTERPRETER_NAMES
> + #endif
> ++  OECORE_KNOWN_INTERPRETER_NAMES
> + };
> +
> + static struct known_names known_libs[] =
> diff --git a/meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch b/meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch
> new file mode 100644
> index 0000000..203040c
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch
> @@ -0,0 +1,538 @@
> +Upstream-Status: Pending
> +
> +2011-03-22  Joseph Myers  <joseph@codesourcery.com>
> +
> +        Merge from SG++ 2.11:
> +
> +        2010-10-05  Nathan Froyd  <froydnj@codesourcery.com>
> +
> +        Issue #9382
> +
> +        * sysdeps/powerpc/powerpc32/603e/: New directory.
> +        * sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/: New directory.
> +        * sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/: New directory.
> +        * sysdeps/unix/sysv/linux/powerpc/powerpc32/7400/: New directory.
> +        * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c: Update.
> +        * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c: Update.
> +        * sysdeps/powerpc/powerpc64/e5500/fpu/Implies: New file.
> +
> +Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
> +===================================================================
> +--- /dev/null
> ++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
> +@@ -0,0 +1,134 @@
> ++/* Double-precision floating point square root.
> ++   Copyright (C) 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
> ++   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 <math.h>
> ++#include <math_private.h>
> ++#include <fenv_libc.h>
> ++#include <inttypes.h>
> ++
> ++#include <sysdep.h>
> ++#include <ldsodefs.h>
> ++
> ++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
> ++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
> ++static const float two108 = 3.245185536584267269e+32;
> ++static const float twom54 = 5.551115123125782702e-17;
> ++static const float half = 0.5;
> ++
> ++/* The method is based on the descriptions in:
> ++
> ++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
> ++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
> ++
> ++   We find the actual square root and half of its reciprocal
> ++   simultaneously.  */
> ++
> ++#ifdef __STDC__
> ++double
> ++__ieee754_sqrt (double b)
> ++#else
> ++double
> ++__ieee754_sqrt (b)
> ++     double b;
> ++#endif
> ++{
> ++  if (__builtin_expect (b > 0, 1))
> ++    {
> ++      double y, g, h, d, r;
> ++      ieee_double_shape_type u;
> ++
> ++      if (__builtin_expect (b != a_inf.value, 1))
> ++        {
> ++          fenv_t fe;
> ++
> ++          fe = fegetenv_register ();
> ++
> ++          u.value = b;
> ++
> ++          relax_fenv_state ();
> ++
> ++          __asm__ ("frsqrte %[estimate], %[x]\n"
> ++                   : [estimate] "=f" (y) : [x] "f" (b));
> ++
> ++          /* Following Muller et al, page 168, equation 5.20.
> ++
> ++             h goes to 1/(2*sqrt(b))
> ++             g goes to sqrt(b).
> ++
> ++             We need three iterations to get within 1ulp.  */
> ++
> ++          /* Indicate that these can be performed prior to the branch.  GCC
> ++             insists on sinking them below the branch, however; it seems like
> ++             they'd be better before the branch so that we can cover any latency
> ++             from storing the argument and loading its high word.  Oh well.  */
> ++
> ++          g = b * y;
> ++          h = 0.5 * y;
> ++
> ++          /* Handle small numbers by scaling.  */
> ++          if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
> ++            return __ieee754_sqrt (b * two108) * twom54;
> ++
> ++#define FMADD(a_, c_, b_)                                               \
> ++          ({ double __r;                                                \
> ++          __asm__ ("fmadd %[r], %[a], %[c], %[b]\n"                     \
> ++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
> ++          __r;})
> ++#define FNMSUB(a_, c_, b_)                                          \
> ++          ({ double __r;                                                \
> ++          __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                     \
> ++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
> ++          __r;})
> ++
> ++          r = FNMSUB (g, h, half);
> ++          g = FMADD (g, r, g);
> ++          h = FMADD (h, r, h);
> ++
> ++          r = FNMSUB (g, h, half);
> ++          g = FMADD (g, r, g);
> ++          h = FMADD (h, r, h);
> ++
> ++          r = FNMSUB (g, h, half);
> ++          g = FMADD (g, r, g);
> ++          h = FMADD (h, r, h);
> ++
> ++          /* g is now +/- 1ulp, or exactly equal to, the square root of b.  */
> ++
> ++          /* Final refinement.  */
> ++          d = FNMSUB (g, g, b);
> ++
> ++          fesetenv_register (fe);
> ++          return FMADD (d, h, g);
> ++        }
> ++    }
> ++  else if (b < 0)
> ++    {
> ++      /* For some reason, some PowerPC32 processors don't implement
> ++         FE_INVALID_SQRT.  */
> ++#ifdef FE_INVALID_SQRT
> ++      feraiseexcept (FE_INVALID_SQRT);
> ++
> ++      fenv_union_t u = { .fenv = fegetenv_register () };
> ++      if ((u.l[1] & FE_INVALID) == 0)
> ++#endif
> ++	feraiseexcept (FE_INVALID);
> ++      b = a_nan.value;
> ++    }
> ++  return f_wash (b);
> ++}
> +Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
> +===================================================================
> +--- /dev/null
> ++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
> +@@ -0,0 +1,101 @@
> ++/* Single-precision floating point square root.
> ++   Copyright (C) 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
> ++   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 <math.h>
> ++#include <math_private.h>
> ++#include <fenv_libc.h>
> ++#include <inttypes.h>
> ++
> ++#include <sysdep.h>
> ++#include <ldsodefs.h>
> ++
> ++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
> ++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
> ++static const float threehalf = 1.5;
> ++
> ++/* The method is based on the descriptions in:
> ++
> ++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
> ++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
> ++
> ++   We find the reciprocal square root and use that to compute the actual
> ++   square root.  */
> ++
> ++#ifdef __STDC__
> ++float
> ++__ieee754_sqrtf (float b)
> ++#else
> ++float
> ++__ieee754_sqrtf (b)
> ++     float b;
> ++#endif
> ++{
> ++  if (__builtin_expect (b > 0, 1))
> ++    {
> ++#define FMSUB(a_, c_, b_)                                               \
> ++      ({ double __r;                                                    \
> ++        __asm__ ("fmsub %[r], %[a], %[c], %[b]\n"                       \
> ++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
> ++        __r;})
> ++#define FNMSUB(a_, c_, b_)                                              \
> ++      ({ double __r;                                                    \
> ++        __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                      \
> ++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
> ++        __r;})
> ++
> ++      if (__builtin_expect (b != a_inf.value, 1))
> ++        {
> ++          double y, x;
> ++          fenv_t fe;
> ++
> ++          fe = fegetenv_register ();
> ++
> ++          relax_fenv_state ();
> ++
> ++          /* Compute y = 1.5 * b - b.  Uses fewer constants than y = 0.5 * b.  */
> ++          y = FMSUB (threehalf, b, b);
> ++
> ++          /* Initial estimate.  */
> ++          __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
> ++
> ++          /* Iterate.  x_{n+1} = x_n * (1.5 - y * (x_n * x_n)).  */
> ++          x = x * FNMSUB (y, x * x, threehalf);
> ++          x = x * FNMSUB (y, x * x, threehalf);
> ++          x = x * FNMSUB (y, x * x, threehalf);
> ++
> ++          /* All done.  */
> ++          fesetenv_register (fe);
> ++          return x * b;
> ++        }
> ++    }
> ++  else if (b < 0)
> ++    {
> ++      /* For some reason, some PowerPC32 processors don't implement
> ++         FE_INVALID_SQRT.  */
> ++#ifdef FE_INVALID_SQRT
> ++      feraiseexcept (FE_INVALID_SQRT);
> ++
> ++      fenv_union_t u = { .fenv = fegetenv_register () };
> ++      if ((u.l[1] & FE_INVALID) == 0)
> ++#endif
> ++	feraiseexcept (FE_INVALID);
> ++      b = a_nan.value;
> ++    }
> ++  return f_washf (b);
> ++}
> +Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
> +===================================================================
> +--- /dev/null
> ++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
> +@@ -0,0 +1,134 @@
> ++/* Double-precision floating point square root.
> ++   Copyright (C) 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
> ++   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 <math.h>
> ++#include <math_private.h>
> ++#include <fenv_libc.h>
> ++#include <inttypes.h>
> ++
> ++#include <sysdep.h>
> ++#include <ldsodefs.h>
> ++
> ++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
> ++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
> ++static const float two108 = 3.245185536584267269e+32;
> ++static const float twom54 = 5.551115123125782702e-17;
> ++static const float half = 0.5;
> ++
> ++/* The method is based on the descriptions in:
> ++
> ++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
> ++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
> ++
> ++   We find the actual square root and half of its reciprocal
> ++   simultaneously.  */
> ++
> ++#ifdef __STDC__
> ++double
> ++__ieee754_sqrt (double b)
> ++#else
> ++double
> ++__ieee754_sqrt (b)
> ++     double b;
> ++#endif
> ++{
> ++  if (__builtin_expect (b > 0, 1))
> ++    {
> ++      double y, g, h, d, r;
> ++      ieee_double_shape_type u;
> ++
> ++      if (__builtin_expect (b != a_inf.value, 1))
> ++        {
> ++          fenv_t fe;
> ++
> ++          fe = fegetenv_register ();
> ++
> ++          u.value = b;
> ++
> ++          relax_fenv_state ();
> ++
> ++          __asm__ ("frsqrte %[estimate], %[x]\n"
> ++                   : [estimate] "=f" (y) : [x] "f" (b));
> ++
> ++          /* Following Muller et al, page 168, equation 5.20.
> ++
> ++             h goes to 1/(2*sqrt(b))
> ++             g goes to sqrt(b).
> ++
> ++             We need three iterations to get within 1ulp.  */
> ++
> ++          /* Indicate that these can be performed prior to the branch.  GCC
> ++             insists on sinking them below the branch, however; it seems like
> ++             they'd be better before the branch so that we can cover any latency
> ++             from storing the argument and loading its high word.  Oh well.  */
> ++
> ++          g = b * y;
> ++          h = 0.5 * y;
> ++
> ++          /* Handle small numbers by scaling.  */
> ++          if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
> ++            return __ieee754_sqrt (b * two108) * twom54;
> ++
> ++#define FMADD(a_, c_, b_)                                               \
> ++          ({ double __r;                                                \
> ++          __asm__ ("fmadd %[r], %[a], %[c], %[b]\n"                     \
> ++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
> ++          __r;})
> ++#define FNMSUB(a_, c_, b_)                                          \
> ++          ({ double __r;                                                \
> ++          __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                     \
> ++                   : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
> ++          __r;})
> ++
> ++          r = FNMSUB (g, h, half);
> ++          g = FMADD (g, r, g);
> ++          h = FMADD (h, r, h);
> ++
> ++          r = FNMSUB (g, h, half);
> ++          g = FMADD (g, r, g);
> ++          h = FMADD (h, r, h);
> ++
> ++          r = FNMSUB (g, h, half);
> ++          g = FMADD (g, r, g);
> ++          h = FMADD (h, r, h);
> ++
> ++          /* g is now +/- 1ulp, or exactly equal to, the square root of b.  */
> ++
> ++          /* Final refinement.  */
> ++          d = FNMSUB (g, g, b);
> ++
> ++          fesetenv_register (fe);
> ++          return FMADD (d, h, g);
> ++        }
> ++    }
> ++  else if (b < 0)
> ++    {
> ++      /* For some reason, some PowerPC32 processors don't implement
> ++         FE_INVALID_SQRT.  */
> ++#ifdef FE_INVALID_SQRT
> ++      feraiseexcept (FE_INVALID_SQRT);
> ++
> ++      fenv_union_t u = { .fenv = fegetenv_register () };
> ++      if ((u.l[1] & FE_INVALID) == 0)
> ++#endif
> ++	feraiseexcept (FE_INVALID);
> ++      b = a_nan.value;
> ++    }
> ++  return f_wash (b);
> ++}
> +Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
> +===================================================================
> +--- /dev/null
> ++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
> +@@ -0,0 +1,101 @@
> ++/* Single-precision floating point square root.
> ++   Copyright (C) 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
> ++   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 <math.h>
> ++#include <math_private.h>
> ++#include <fenv_libc.h>
> ++#include <inttypes.h>
> ++
> ++#include <sysdep.h>
> ++#include <ldsodefs.h>
> ++
> ++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
> ++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
> ++static const float threehalf = 1.5;
> ++
> ++/* The method is based on the descriptions in:
> ++
> ++   _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
> ++   _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
> ++
> ++   We find the reciprocal square root and use that to compute the actual
> ++   square root.  */
> ++
> ++#ifdef __STDC__
> ++float
> ++__ieee754_sqrtf (float b)
> ++#else
> ++float
> ++__ieee754_sqrtf (b)
> ++     float b;
> ++#endif
> ++{
> ++  if (__builtin_expect (b > 0, 1))
> ++    {
> ++#define FMSUB(a_, c_, b_)                                               \
> ++      ({ double __r;                                                    \
> ++        __asm__ ("fmsub %[r], %[a], %[c], %[b]\n"                       \
> ++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
> ++        __r;})
> ++#define FNMSUB(a_, c_, b_)                                              \
> ++      ({ double __r;                                                    \
> ++        __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n"                      \
> ++                 : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
> ++        __r;})
> ++
> ++      if (__builtin_expect (b != a_inf.value, 1))
> ++        {
> ++          double y, x;
> ++          fenv_t fe;
> ++
> ++          fe = fegetenv_register ();
> ++
> ++          relax_fenv_state ();
> ++
> ++          /* Compute y = 1.5 * b - b.  Uses fewer constants than y = 0.5 * b.  */
> ++          y = FMSUB (threehalf, b, b);
> ++
> ++          /* Initial estimate.  */
> ++          __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
> ++
> ++          /* Iterate.  x_{n+1} = x_n * (1.5 - y * (x_n * x_n)).  */
> ++          x = x * FNMSUB (y, x * x, threehalf);
> ++          x = x * FNMSUB (y, x * x, threehalf);
> ++          x = x * FNMSUB (y, x * x, threehalf);
> ++
> ++          /* All done.  */
> ++          fesetenv_register (fe);
> ++          return x * b;
> ++        }
> ++    }
> ++  else if (b < 0)
> ++    {
> ++      /* For some reason, some PowerPC32 processors don't implement
> ++         FE_INVALID_SQRT.  */
> ++#ifdef FE_INVALID_SQRT
> ++      feraiseexcept (FE_INVALID_SQRT);
> ++
> ++      fenv_union_t u = { .fenv = fegetenv_register () };
> ++      if ((u.l[1] & FE_INVALID) == 0)
> ++#endif
> ++	feraiseexcept (FE_INVALID);
> ++      b = a_nan.value;
> ++    }
> ++  return f_washf (b);
> ++}
> +Index: libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies
> +===================================================================
> +--- /dev/null
> ++++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies
> +@@ -0,0 +1 @@
> ++powerpc/powerpc32/603e/fpu
> +Index: libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/7400/fpu/Implies
> +===================================================================
> +--- /dev/null
> ++++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/7400/fpu/Implies
> +@@ -0,0 +1 @@
> ++powerpc/powerpc32/603e/fpu
> +Index: libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies
> +===================================================================
> +--- /dev/null
> ++++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies
> +@@ -0,0 +1 @@
> ++powerpc/powerpc32/603e/fpu
> +Index: libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies
> +===================================================================
> +--- /dev/null
> ++++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies
> +@@ -0,0 +1 @@
> ++powerpc/powerpc64/e5500/fpu
> +Index: libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies
> +===================================================================
> +--- /dev/null
> ++++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies
> +@@ -0,0 +1 @@
> ++powerpc/powerpc32/603e/fpu
> diff --git a/meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt_finite.patch b/meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt_finite.patch
> new file mode 100644
> index 0000000..5289051
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt_finite.patch
> @@ -0,0 +1,112 @@
> +on ppc fixes the errors like below
> +| ./.libs/libpulsecore-1.1.so: undefined reference to `__sqrt_finite'
> +| collect2: ld returned 1 exit status
> +
> +Upstream-Status: Pending
> +
> +ChangeLog
> +
> +2012-01-06  Khem Raj  <raj.khem@gmail.com>
> +
> +	* sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c: Add __*_finite alias.
> +	Remove cruft.
> +	* sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c: Ditto.
> +	* sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c: Ditto.
> +	* sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c: Ditto.
> +
> +Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
> +===================================================================
> +--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c	2012-01-06 18:07:42.296909187 -0800
> ++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c	2012-01-06 18:09:22.572914856 -0800
> +@@ -39,14 +39,8 @@
> +    We find the actual square root and half of its reciprocal
> +    simultaneously.  */
> +
> +-#ifdef __STDC__
> + double
> + __ieee754_sqrt (double b)
> +-#else
> +-double
> +-__ieee754_sqrt (b)
> +-     double b;
> +-#endif
> + {
> +   if (__builtin_expect (b > 0, 1))
> +     {
> +@@ -132,3 +126,4 @@
> +     }
> +   return f_wash (b);
> + }
> ++strong_alias (__ieee754_sqrt, __sqrt_finite)
> +Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
> +===================================================================
> +--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c	2012-01-06 18:10:37.068917644 -0800
> ++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c	2012-01-06 18:11:33.408920635 -0800
> +@@ -37,14 +37,8 @@
> +    We find the reciprocal square root and use that to compute the actual
> +    square root.  */
> +
> +-#ifdef __STDC__
> + float
> + __ieee754_sqrtf (float b)
> +-#else
> +-float
> +-__ieee754_sqrtf (b)
> +-     float b;
> +-#endif
> + {
> +   if (__builtin_expect (b > 0, 1))
> +     {
> +@@ -99,3 +93,4 @@
> +     }
> +   return f_washf (b);
> + }
> ++strong_alias (__ieee754_sqrtf, __sqrtf_finite)
> +Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
> +===================================================================
> +--- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c	2012-01-06 18:11:51.460925644 -0800
> ++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c	2012-01-06 18:12:39.344924405 -0800
> +@@ -39,14 +39,8 @@
> +    We find the actual square root and half of its reciprocal
> +    simultaneously.  */
> +
> +-#ifdef __STDC__
> + double
> + __ieee754_sqrt (double b)
> +-#else
> +-double
> +-__ieee754_sqrt (b)
> +-     double b;
> +-#endif
> + {
> +   if (__builtin_expect (b > 0, 1))
> +     {
> +@@ -132,3 +126,4 @@
> +     }
> +   return f_wash (b);
> + }
> ++strong_alias (__ieee754_sqrt, __sqrt_finite)
> +Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
> +===================================================================
> +--- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c	2012-01-06 18:13:00.892924586 -0800
> ++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c	2012-01-06 18:15:27.992931106 -0800
> +@@ -37,14 +37,8 @@
> +    We find the reciprocal square root and use that to compute the actual
> +    square root.  */
> +
> +-#ifdef __STDC__
> + float
> + __ieee754_sqrtf (float b)
> +-#else
> +-float
> +-__ieee754_sqrtf (b)
> +-     float b;
> +-#endif
> + {
> +   if (__builtin_expect (b > 0, 1))
> +     {
> +@@ -99,3 +93,4 @@
> +     }
> +   return f_washf (b);
> + }
> ++strong_alias (__ieee754_sqrtf, __sqrtf_finite)
> diff --git a/meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch b/meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch
> new file mode 100644
> index 0000000..9a932ff
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch
> @@ -0,0 +1,123 @@
> + __ieee754_sqrt{,f} are now inline functions and call out __slow versions
> +
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Upstream-Status: Pending
> +Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
> +===================================================================
> +--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c	2012-07-03 22:36:01.172386436 -0700
> ++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c	2012-07-03 23:04:37.396469515 -0700
> +@@ -40,7 +40,7 @@
> +    simultaneously.  */
> +
> + double
> +-__ieee754_sqrt (double b)
> ++__slow_ieee754_sqrt (double b)
> + {
> +   if (__builtin_expect (b > 0, 1))
> +     {
> +@@ -77,7 +77,7 @@
> +
> +           /* Handle small numbers by scaling.  */
> +           if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
> +-            return __ieee754_sqrt (b * two108) * twom54;
> ++            return __slow_ieee754_sqrt (b * two108) * twom54;
> +
> + #define FMADD(a_, c_, b_)                                               \
> +           ({ double __r;                                                \
> +@@ -126,4 +126,12 @@
> +     }
> +   return f_wash (b);
> + }
> ++
> ++#undef __ieee754_sqrt
> ++double
> ++__ieee754_sqrt (double x)
> ++{
> ++   return __slow_ieee754_sqrt (x);
> ++}
> ++
> + strong_alias (__ieee754_sqrt, __sqrt_finite)
> +Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
> +===================================================================
> +--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c	2012-07-03 22:36:01.172386436 -0700
> ++++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c	2012-07-03 23:07:06.260476775 -0700
> +@@ -38,7 +38,7 @@
> +    square root.  */
> +
> + float
> +-__ieee754_sqrtf (float b)
> ++__slow_ieee754_sqrtf (float b)
> + {
> +   if (__builtin_expect (b > 0, 1))
> +     {
> +@@ -93,4 +93,10 @@
> +     }
> +   return f_washf (b);
> + }
> ++#undef __ieee754_sqrtf
> ++float
> ++__ieee754_sqrtf (float x)
> ++{
> ++  return __slow_ieee754_sqrtf (x);
> ++}
> + strong_alias (__ieee754_sqrtf, __sqrtf_finite)
> +Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
> +===================================================================
> +--- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c	2012-07-03 22:36:01.176386435 -0700
> ++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c	2012-07-03 23:14:16.328497458 -0700
> +@@ -40,7 +40,7 @@
> +    simultaneously.  */
> +
> + double
> +-__ieee754_sqrt (double b)
> ++__slow_ieee754_sqrt (double b)
> + {
> +   if (__builtin_expect (b > 0, 1))
> +     {
> +@@ -77,7 +77,7 @@
> +
> +           /* Handle small numbers by scaling.  */
> +           if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
> +-            return __ieee754_sqrt (b * two108) * twom54;
> ++            return __slow_ieee754_sqrt (b * two108) * twom54;
> +
> + #define FMADD(a_, c_, b_)                                               \
> +           ({ double __r;                                                \
> +@@ -126,4 +126,12 @@
> +     }
> +   return f_wash (b);
> + }
> ++
> ++#undef __ieee754_sqrt
> ++double
> ++__ieee754_sqrt (double x)
> ++{
> ++  return __slow_ieee754_sqrt (x);
> ++}
> ++
> + strong_alias (__ieee754_sqrt, __sqrt_finite)
> +Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
> +===================================================================
> +--- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c	2012-07-03 22:36:01.176386435 -0700
> ++++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c	2012-07-03 23:13:52.732496373 -0700
> +@@ -38,7 +38,7 @@
> +    square root.  */
> +
> + float
> +-__ieee754_sqrtf (float b)
> ++__slow_ieee754_sqrtf (float b)
> + {
> +   if (__builtin_expect (b > 0, 1))
> +     {
> +@@ -93,4 +93,10 @@
> +     }
> +   return f_washf (b);
> + }
> ++#undef __ieee754_sqrtf
> ++float
> ++__ieee754_sqrtf (float x)
> ++{
> ++  return __slow_ieee754_sqrtf (x);
> ++}
> + strong_alias (__ieee754_sqrtf, __sqrtf_finite)
> diff --git a/meta/recipes-core/eglibc/eglibc-2.16/rpc-bootstrap.patch b/meta/recipes-core/eglibc/eglibc-2.16/rpc-bootstrap.patch
> new file mode 100644
> index 0000000..130a816
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc-2.16/rpc-bootstrap.patch
> @@ -0,0 +1,63 @@
> +Upstream-Status: Pending
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +
> +
> +From libc-alpha-return-31199-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org Tue Jul 03 19:54:27 2012
> +Return-Path: <libc-alpha-return-31199-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org>
> +Delivered-To: listarch-libc-alpha at sources dot redhat dot com
> +Received: (qmail 20151 invoked by alias); 3 Jul 2012 19:54:25 -0000
> +Received: (qmail 20139 invoked by uid 22791); 3 Jul 2012 19:54:23 -0000
> +X-SWARE-Spam-Status: No, hits=-4.8 required=5.0
> +	tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,T_RP_MATCHES_RCVD
> +X-Spam-Check-By: sourceware.org
> +From: Mike Frysinger <vapier at gentoo dot org>
> +To: libc-alpha at sourceware dot org
> +Subject: [PATCH] sunrpc: fix rpc bootstrap builds
> +Date: Tue,  3 Jul 2012 15:54:11 -0400
> +Message-Id: <1341345251-31730-1-git-send-email-vapier@gentoo.org>
> +Mailing-List: contact libc-alpha-help at sourceware dot org; run by ezmlm
> +Precedence: bulk
> +List-Id: <libc-alpha.sourceware.org>
> +List-Subscribe: <mailto:libc-alpha-subscribe at sourceware dot org>
> +List-Archive: <http://sourceware.org/ml/libc-alpha/>
> +List-Post: <mailto:libc-alpha at sourceware dot org>
> +List-Help: <mailto:libc-alpha-help at sourceware dot org>, <http://sourceware dot org/ml/#faqs>
> +Sender: libc-alpha-owner at sourceware dot org
> +Delivered-To: mailing list libc-alpha at sourceware dot org
> +
> +If you build & install glibc w/rpc disabled, you no longer have headers in
> +/usr/include/rpc/ (this is expected).  But if you try to build glibc w/rpc
> +enabled, this gets into a bad state due to the new rpc helpers that get
> +cross-compiled:
> +
> +$ make
> +...
> +x86_64-pc-linux-gnu-gcc -m32   -D_RPC_THREAD_SAFE_ -D_GNU_SOURCE -DIS_IN_build \
> +	-include $objdir/config.h rpc_clntout.c -o $objdir/sunrpc/cross-rpc_clntout.o \
> +	-MMD -MP -MF $objdir/sunrpc/cross-rpc_clntout.o.dt -MT $objdir/sunrpc/cross-rpc_clntout.o -c
> +rpc_clntout.c:34:23: fatal error: rpc/types.h: No such file or directory
> +compilation terminated.
> +make: *** [$objdir/sunrpc/cross-rpc_clntout.o] Error 1
> +
> +Signed-off-by: Mike Frysinger <vapier@gentoo.org>
> +
> +2012-07-03  Mike Frysinger  <vapier@gentoo.org>
> +
> +	* sunrpc/rpc_clntout.c: Change <rpc/types.h> to "rpc/types.h".
> +---
> + sunrpc/rpc_clntout.c |    2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +Index: libc/sunrpc/rpc_clntout.c
> +===================================================================
> +--- libc.orig/sunrpc/rpc_clntout.c	2012-07-04 16:09:16.000000000 -0700
> ++++ libc/sunrpc/rpc_clntout.c	2012-07-04 18:04:34.498085075 -0700
> +@@ -31,7 +31,7 @@
> +  */
> + #include <stdio.h>
> + #include <string.h>
> +-#include <rpc/types.h>
> ++#include "rpc/types.h"
> + #include "rpc_parse.h"
> + #include "rpc_util.h"
> + #include "proto.h"
> diff --git a/meta/recipes-core/eglibc/eglibc-2.16/use-sysroot-cxx-headers.patch b/meta/recipes-core/eglibc/eglibc-2.16/use-sysroot-cxx-headers.patch
> new file mode 100644
> index 0000000..7f82253
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc-2.16/use-sysroot-cxx-headers.patch
> @@ -0,0 +1,42 @@
> +build system of glibc currently adds the cxx headers path by detecting
> +it using provided CXX and expects that they are installed w.r.t to standard
> +installation location but in OE we install and use cxx headers from target
> +sysroot therefore that code needs to be adapted for OE
> +
> +Upstream-Status: Inappropriate [OE-specific]
> +
> +-Khem
> +
> +
> +--- a/configure.in
> ++++ b/configure.in
> +@@ -1094,11 +1094,10 @@ if test -n "$sysheaders"; then
> + -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
> +   if test -n "$CXX"; then
> +     CXX_SYSINCLUDES=
> +-    cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
> +     cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
> +     for d in include "$cxxmachine/include"; do
> +-      i=../../../../$d/c++/$cxxversion
> +-      cxxheaders=`$CXX -print-file-name="$i"` &&
> ++      i="$prefix/$d/c++"
> ++      cxxheaders=`$CXX -print-sysroot`"$i" &&
> +       test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
> +       CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
> + -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
> +--- a/configure
> ++++ b/configure
> +@@ -5618,11 +5618,10 @@ if test -n "$sysheaders"; then
> + -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
> +   if test -n "$CXX"; then
> +     CXX_SYSINCLUDES=
> +-    cxxversion=`$CXX -dumpversion 2>&5` &&
> +     cxxmachine=`$CXX -dumpmachine 2>&5` &&
> +     for d in include "$cxxmachine/include"; do
> +-      i=../../../../$d/c++/$cxxversion
> +-      cxxheaders=`$CXX -print-file-name="$i"` &&
> ++      i="$prefix/$d/c++"
> ++      cxxheaders=`$CXX -print-sysroot`"$i" &&
> +       test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
> +       CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
> + -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
> diff --git a/meta/recipes-core/eglibc/eglibc-initial_2.16.bb b/meta/recipes-core/eglibc/eglibc-initial_2.16.bb
> new file mode 100644
> index 0000000..787c762
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc-initial_2.16.bb
> @@ -0,0 +1,6 @@
> +require eglibc_${PV}.bb
> +require eglibc-initial.inc
> +
> +do_configure_prepend () {
> +        unset CFLAGS
> +}
> diff --git a/meta/recipes-core/eglibc/eglibc-locale_2.16.bb b/meta/recipes-core/eglibc/eglibc-locale_2.16.bb
> new file mode 100644
> index 0000000..ce6c1d2
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc-locale_2.16.bb
> @@ -0,0 +1 @@
> +require eglibc-locale.inc
> diff --git a/meta/recipes-core/eglibc/eglibc_2.16.bb b/meta/recipes-core/eglibc/eglibc_2.16.bb
> new file mode 100644
> index 0000000..c005889
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/eglibc_2.16.bb
> @@ -0,0 +1,146 @@
> +require eglibc.inc
> +
> +SRCREV = "19383"
> +
> +DEPENDS += "gperf-native"
> +PR = "r0"
> +PR_append = "+svnr${SRCPV}"
> +
> +EGLIBC_BRANCH="eglibc-2_16"
> +SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http \
> +           file://eglibc-svn-arm-lowlevellock-include-tls.patch \
> +           file://IO-acquire-lock-fix.patch \
> +           file://mips-rld-map-check.patch \
> +           file://etc/ld.so.conf \
> +           file://generate-supported.mk \
> +           file://ppc-sqrt.patch \
> +           file://multilib_readlib.patch \
> +           file://use-sysroot-cxx-headers.patch \
> +           file://ppc-sqrt_finite.patch \
> +           file://GLRO_dl_debug_mask.patch \
> +           file://initgroups_keys.patch \
> +           file://eglibc_fix_findidx_parameters.patch \
> +           file://ppc_slow_ieee754_sqrt.patch \
> +           file://rpc-bootstrap.patch \
> +          "
> +LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \
> +      file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \
> +      file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
> +      file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff "
> +
> +SRC_URI_append_virtclass-nativesdk = " file://ld-search-order.patch"
> +S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
> +B = "${WORKDIR}/build-${TARGET_SYS}"
> +
> +PACKAGES_DYNAMIC = "libc6*"
> +RPROVIDES_${PN}-dev = "libc6-dev virtual-libc-dev"
> +PROVIDES_${PN}-dbg = "glibc-dbg"
> +
> +# the -isystem in bitbake.conf screws up glibc do_stage
> +BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
> +TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
> +
> +GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN es_CR.ISO-8859-1"
> +
> +FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/eglibc-${PV}', '${FILE_DIRNAME}/eglibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
> +
> +#
> +# For now, we will skip building of a gcc package if it is a uclibc one
> +# and our build is not a uclibc one, and we skip a glibc one if our build
> +# is a uclibc build.
> +#
> +# See the note in gcc/gcc_3.4.0.oe
> +#
> +
> +python __anonymous () {
> +    import bb, re
> +    uc_os = (re.match('.*uclibc$', d.getVar('TARGET_OS', True)) != None)
> +    if uc_os:
> +        raise bb.parse.SkipPackage("incompatible with target %s" %
> +                                   d.getVar('TARGET_OS', True))
> +}
> +
> +export libc_cv_slibdir = "${base_libdir}"
> +
> +EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
> +                --without-cvs --disable-profile \
> +                --disable-debug --without-gd \
> +                --enable-clocale=gnu \
> +                --enable-add-ons \
> +                --with-headers=${STAGING_INCDIR} \
> +                --without-selinux \
> +                --enable-obsolete-rpc \
> +                ${GLIBC_EXTRA_OECONF}"
> +
> +EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}"
> +
> +do_unpack_append() {
> +	bb.build.exec_func('do_move_ports', d)
> +}
> +
> +do_move_ports() {
> +        if test -d ${WORKDIR}/${EGLIBC_BRANCH}/ports ; then
> +	    rm -rf ${S}/ports
> +	    mv ${WORKDIR}/${EGLIBC_BRANCH}/ports ${S}/
> +	fi
> +}
> +
> +do_patch_append() {
> +	bb.build.exec_func('do_fix_readlib_c', d)
> +}
> +
> +# for mips eglibc now builds syscall tables for all abi's
> +# so we make sure that we choose right march option which is
> +# compatible with o32,n32 and n64 abi's
> +# e.g. -march=mips32 is not compatible with n32 and n64 therefore
> +# we filter it out in such case -march=from-abi which will be
> +# mips1 when using o32 and mips3 when using n32/n64
> +
> +TUNE_CCARGS_mips := "${@oe_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}"
> +TUNE_CCARGS_mipsel := "${@oe_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}"
> +
> +do_fix_readlib_c () {
> +	sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c
> +}
> +
> +do_configure () {
> +# override this function to avoid the autoconf/automake/aclocal/autoheader
> +# calls for now
> +# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
> +# version check and doesn't really help with anything
> +        if [ -z "`which rpcgen`" ]; then
> +                echo "rpcgen not found.  Install glibc-devel."
> +                exit 1
> +        fi
> +        (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
> +        find ${S} -name "configure" | xargs touch
> +        CPPFLAGS="" oe_runconf
> +}
> +
> +rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
> +	  yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
> +	  rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
> +
> +do_compile () {
> +	# -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
> +	unset LDFLAGS
> +	base_do_compile
> +	(
> +		cd ${S}/sunrpc/rpcsvc
> +		for r in ${rpcsvc}; do
> +			h=`echo $r|sed -e's,\.x$,.h,'`
> +			rpcgen -h $r -o $h || bbwarn "unable to generate header for $r"
> +		done
> +	)
> +	echo "Adjust ldd script"
> +	if [ -n "${RTLDLIST}" ]
> +	then
> +		sed -i ${B}/elf/ldd -e 's#^\(RTLDLIST=\)"\(.*\)"$#\1\2#'
> +		sed -i ${B}/elf/ldd -e 's#^\(RTLDLIST=\)\(.*\)$#\1"${RTLDLIST} \2"#'
> +	fi
> +
> +}
> +
> +require eglibc-package.inc
> +
> +BBCLASSEXTEND = "nativesdk"
>




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

* Re: [PATCH 14/14] eglibc: Add recipes for 2.16 release
  2012-07-06  2:27   ` Saul Wold
@ 2012-07-06  3:49     ` Khem Raj
  2012-07-06  5:18       ` Khem Raj
  0 siblings, 1 reply; 25+ messages in thread
From: Khem Raj @ 2012-07-06  3:49 UTC (permalink / raw)
  To: Saul Wold; +Cc: Patches and discussions about the oe-core layer

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

On Thursday, July 5, 2012, Saul Wold <sgw@linux.intel.com> wrote:
> On 07/05/2012 07:35 AM, Khem Raj wrote:
>>
>> Drop the patches that were either applied
>> or fixed differenly in 2.16
>>
>> Add patches to fix ppc spe patches to match
>> eglibc 2.16
>>
>> Fix CPPFLAGS to contain correct includepaths
>> so autoconf cache is generated correctly
>>
>
> Khem,
>
> Just to let you know that I will be doing builds with this set over the
weekend and since we are approaching a Milestone cut date, we will likely
wait until after the freeze date before including these changes.
>
> I will keep you posted on my results.

Sure we need more testing on them so they land in good shape
My aim is to use 2.16 in 1.3 release
>
> Sau!
>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>   .../eglibc/cross-localedef-native_2.16.bb          |   44 ++
>   .../eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch    |  108 ++++
>   .../eglibc/eglibc-2.16/IO-acquire-lock-fix.patch   |   17 +
>   .../eglibc-svn-arm-lowlevellock-include-tls.patch  |   21 +
>   .../eglibc_fix_findidx_parameters.patch            |   38 ++
>   .../eglibc/eglibc-2.16/generate-supported.mk       |   11 +
>   .../eglibc/eglibc-2.16/initgroups_keys.patch       |   20 +
>   .../eglibc/eglibc-2.16/ld-search-order.patch       |   56 ++
>   .../eglibc/eglibc-2.16/mips-rld-map-check.patch    |   26 +
>   .../eglibc/eglibc-2.16/multilib_readlib.patch      |   17 +
>   .../recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch |  538
++++++++++++++++++++
>   .../eglibc/eglibc-2.16/ppc-sqrt_finite.patch       |  112 ++++
>   .../eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch |  123 +++++
>   .../eglibc/eglibc-2.16/rpc-bootstrap.patch         |   63 +++
>   .../eglibc-2.16/use-sysroot-cxx-headers.patch      |   42 ++
>   meta/recipes-core/eglibc/eglibc-initial_2.16.bb    |    6 +
>   meta/recipes-core/eglibc/eglibc-locale_2.16.bb     |    1 +
>   meta/recipes-core/eglibc/eglibc_2.16.bb            |  146 ++++++
>   18 files changed, 1389 insertions(+)
>   create mode 100644 meta/recipes-core/eglibc/
cross-localedef-native_2.16.bb
>   create mode 100644
meta/recipes-core/eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch
>   create mode 100644
meta/recipes-core/eglibc/eglibc-2.16/IO-acquire-lock-fix.patch
>   create mode 100644
meta/recipes-core/eglibc/eglibc-2.16/eglibc-svn-arm-lowlevellock-include-tls.patch
>   create mode 100644
meta/recipes-core/eglibc/eglibc-2.16/eglibc_fix_findidx_parameters.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/etc/ld.so.conf
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/
generate-supported.mk
>   create mode 100644
meta/recipes-core/eglibc/eglibc-2.16/initgroups_keys.patch
>   create mode 100644
meta/recipes-core/eglibc/eglibc-2.16/ld-search-order.patch
>   create mode 100644
meta/recipes-core/eglibc/eglibc-2.16/mips-rld-map-check.patch
>   create mode 100644
meta/recipes-core/eglibc/eglibc-2.16/multilib_readlib.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch
>   create mode 100644
meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt_finite.patch
>   create mode 100644
meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch
>   create mode 100644
meta/recipes-core/eglibc/eglibc-2.16/rpc-bootstrap.patch
>   create mode 100644
meta/recipes-core/eglibc/eglibc-2.16/use-sysroot-cxx-headers.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-initial_2.16.bb
>   create mode 100644 meta/recipes-core/eglibc/eglibc-locale_2.16.bb
>   create mode 100644 meta/recipes-core/eglibc/eglibc_2.16.bb
>
> diff --git a/meta/recipes-core/eglibc/cross-localedef-native_2.16.bbb/meta/recipes-core/eglibc/
cross-localedef-native_2.16.bb
> new file mode 100644
> index 0000000..88c701e
> --- /dev/null
> +++ b/meta/recipes-core/eglibc/cross-localedef-native_2.16.bb
> @@ -0,0 +1,44 @@
> +DESCRIPTION = "Cross locale generation tool for eglibc"
> +HOMEPAGE = "http://www.eglibc.org/home"
> +SECTION = "libs"
> +LICENSE = "LGPL-2.1"
> +
> +LIC_DIR = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
> +LIC_FILES_CHKSUM = "file://${LIC_D

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

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

* Re: [PATCH 14/14] eglibc: Add recipes for 2.16 release
  2012-07-06  3:49     ` Khem Raj
@ 2012-07-06  5:18       ` Khem Raj
  0 siblings, 0 replies; 25+ messages in thread
From: Khem Raj @ 2012-07-06  5:18 UTC (permalink / raw)
  To: Saul Wold; +Cc: Patches and discussions about the oe-core layer

On Thu, Jul 5, 2012 at 8:49 PM, Khem Raj <raj.khem@gmail.com> wrote:
>
>
> On Thursday, July 5, 2012, Saul Wold <sgw@linux.intel.com> wrote:
>> On 07/05/2012 07:35 AM, Khem Raj wrote:
>>>
>>> Drop the patches that were either applied
>>> or fixed differenly in 2.16
>>>
>>> Add patches to fix ppc spe patches to match
>>> eglibc 2.16
>>>
>>> Fix CPPFLAGS to contain correct includepaths
>>> so autoconf cache is generated correctly
>>>
>>
>> Khem,
>>
>> Just to let you know that I will be doing builds with this set over the
>> weekend and since we are approaching a Milestone cut date, we will likely
>> wait until after the freeze date before including these changes.
>>
>> I will keep you posted on my results.
>
> Sure we need more testing on them so they land in good shape
> My aim is to use 2.16 in 1.3 release

btw. I have updated the tree with another patch for gcc-cross-initial
that fixes a long standing problem when using gold
as reported by Martin, I will inform the ml if the patches are updated
by keep an eye.

>>
>> Sau!
>>
>> Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> ---
>>   .../eglibc/cross-localedef-native_2.16.bb          |   44 ++
>>   .../eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch    |  108 ++++
>>   .../eglibc/eglibc-2.16/IO-acquire-lock-fix.patch   |   17 +
>>   .../eglibc-svn-arm-lowlevellock-include-tls.patch  |   21 +
>>   .../eglibc_fix_findidx_parameters.patch            |   38 ++
>>   .../eglibc/eglibc-2.16/generate-supported.mk       |   11 +
>>   .../eglibc/eglibc-2.16/initgroups_keys.patch       |   20 +
>>   .../eglibc/eglibc-2.16/ld-search-order.patch       |   56 ++
>>   .../eglibc/eglibc-2.16/mips-rld-map-check.patch    |   26 +
>>   .../eglibc/eglibc-2.16/multilib_readlib.patch      |   17 +
>>   .../recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch |  538
>> ++++++++++++++++++++
>>   .../eglibc/eglibc-2.16/ppc-sqrt_finite.patch       |  112 ++++
>>   .../eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch |  123 +++++
>>   .../eglibc/eglibc-2.16/rpc-bootstrap.patch         |   63 +++
>>   .../eglibc-2.16/use-sysroot-cxx-headers.patch      |   42 ++
>>   meta/recipes-core/eglibc/eglibc-initial_2.16.bb    |    6 +
>>   meta/recipes-core/eglibc/eglibc-locale_2.16.bb     |    1 +
>>   meta/recipes-core/eglibc/eglibc_2.16.bb            |  146 ++++++
>>   18 files changed, 1389 insertions(+)
>>   create mode 100644
>> meta/recipes-core/eglibc/cross-localedef-native_2.16.bb
>>   create mode 100644
>> meta/recipes-core/eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch
>>   create mode 100644
>> meta/recipes-core/eglibc/eglibc-2.16/IO-acquire-lock-fix.patch
>>   create mode 100644
>> meta/recipes-core/eglibc/eglibc-2.16/eglibc-svn-arm-lowlevellock-include-tls.patch
>>   create mode 100644
>> meta/recipes-core/eglibc/eglibc-2.16/eglibc_fix_findidx_parameters.patch
>>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/etc/ld.so.conf
>>   create mode 100644
>> meta/recipes-core/eglibc/eglibc-2.16/generate-supported.mk
>>   create mode 100644
>> meta/recipes-core/eglibc/eglibc-2.16/initgroups_keys.patch
>>   create mode 100644
>> meta/recipes-core/eglibc/eglibc-2.16/ld-search-order.patch
>>   create mode 100644
>> meta/recipes-core/eglibc/eglibc-2.16/mips-rld-map-check.patch
>>   create mode 100644
>> meta/recipes-core/eglibc/eglibc-2.16/multilib_readlib.patch
>>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch
>>   create mode 100644
>> meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt_finite.patch
>>   create mode 100644
>> meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch
>>   create mode 100644
>> meta/recipes-core/eglibc/eglibc-2.16/rpc-bootstrap.patch
>>   create mode 100644
>> meta/recipes-core/eglibc/eglibc-2.16/use-sysroot-cxx-headers.patch
>>   create mode 100644 meta/recipes-core/eglibc/eglibc-initial_2.16.bb
>>   create mode 100644 meta/recipes-core/eglibc/eglibc-locale_2.16.bb
>>   create mode 100644 meta/recipes-core/eglibc/eglibc_2.16.bb
>>
>> diff --git a/meta/recipes-core/eglibc/cross-localedef-native_2.16.bb
>> b/meta/recipes-core/eglibc/cross-localedef-native_2.16.bb
>> new file mode 100644
>> index 0000000..88c701e
>> --- /dev/null
>> +++ b/meta/recipes-core/eglibc/cross-localedef-native_2.16.bb
>> @@ -0,0 +1,44 @@
>> +DESCRIPTION = "Cross locale generation tool for eglibc"
>> +HOMEPAGE = "http://www.eglibc.org/home"
>> +SECTION = "libs"
>> +LICENSE = "LGPL-2.1"
>> +
>> +LIC_DIR = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
>> +LIC_FILES_CHKSUM = "file://${LIC_D



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

* Re: [PATCH 00/14] eglibc 2.16
  2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
                   ` (14 preceding siblings ...)
  2012-07-05 20:23 ` [PATCH 00/14] eglibc 2.16 Martin Jansa
@ 2012-07-17 14:59 ` Saul Wold
  15 siblings, 0 replies; 25+ messages in thread
From: Saul Wold @ 2012-07-17 14:59 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 07/05/2012 07:35 AM, Khem Raj wrote:
> This patch adds eglibc 2.16 recipes. I was able to build world
> on x86 except perf which was failing with 2.15 as well.
>
> I have also build and run core-image-sato on all qemus
>
> I did not remove 2.15 to allow some soak in time.
>
> The following changes since commit 5beb7176d361d4bfa279bbfab5a17b8fe4fa3b73:
>
>    netbase: update to ver. 5.0 (2012-07-05 14:18:19 +0100)
>
> are available in the git repository at:
>
>    git://git.openembedded.org/openembedded-core-contrib kraj/eglibc-2.16
>    http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/eglibc-2.16
>
> Khem Raj (14):
>    mirrors: Add debian archive snapshot mirrors to search list
>    gdb: Replace struct siginfo with proper siginfo_t
>    busybox: Include sys/resource.h for rusage definition
>    coreutils: Fix build with eglibc 2.16
>    diffutils: Fix build with eglibc 2.16
>    udev: Fix build with eglibc 2.16
>    gettext,m4,augeas,gnutls: Account for removal of gets in eglibc 2.16
>    bison: Fix for gets being removed from eglibc 2.16
>    grub,guile,cpio,tar,wget: Fix gnulib for absense of gets in eglibc
>    boost: Upgrade recipe to 1.50.0
>    puzzles: Fix checksums
>    valgrind: Fix build with eglibc 2.16
>    libpam: Fix build with eglibc 2.16
>    eglibc: Add recipes for 2.16 release
>

Merged this branch (along with the other changes) into OE-Core

I dropped the puzzles change in favor of using the SVN version due to 
the potential of checksums changing again, he rebuilds the tarball daily!

Thanks
	Sau!

>   meta/classes/mirrors.bbclass                       |    4 +-
>   meta/recipes-bsp/grub/grub-1.99/remove-gets.patch  |   20 +
>   meta/recipes-bsp/grub/grub_1.99.bb                 |    3 +-
>   .../busybox/busybox-1.19.4/sys_resource.patch      |   18 +
>   meta/recipes-core/busybox/busybox_1.19.4.bb        |    3 +-
>   .../coreutils/coreutils-8.14/remove-gets.patch     |   23 +
>   meta/recipes-core/coreutils/coreutils_8.14.bb      |    3 +-
>   .../eglibc/cross-localedef-native_2.16.bb          |   44 ++
>   .../eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch    |  108 ++++
>   .../eglibc/eglibc-2.16/IO-acquire-lock-fix.patch   |   17 +
>   .../eglibc-svn-arm-lowlevellock-include-tls.patch  |   21 +
>   .../eglibc_fix_findidx_parameters.patch            |   38 ++
>   .../eglibc/eglibc-2.16/generate-supported.mk       |   11 +
>   .../eglibc/eglibc-2.16/initgroups_keys.patch       |   20 +
>   .../eglibc/eglibc-2.16/ld-search-order.patch       |   56 ++
>   .../eglibc/eglibc-2.16/mips-rld-map-check.patch    |   26 +
>   .../eglibc/eglibc-2.16/multilib_readlib.patch      |   17 +
>   .../recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch |  538 ++++++++++++++++++++
>   .../eglibc/eglibc-2.16/ppc-sqrt_finite.patch       |  112 ++++
>   .../eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch |  123 +++++
>   .../eglibc/eglibc-2.16/rpc-bootstrap.patch         |   63 +++
>   .../eglibc-2.16/use-sysroot-cxx-headers.patch      |   42 ++
>   meta/recipes-core/eglibc/eglibc-initial_2.16.bb    |    6 +
>   meta/recipes-core/eglibc/eglibc-locale_2.16.bb     |    1 +
>   meta/recipes-core/eglibc/eglibc_2.16.bb            |  146 ++++++
>   .../gettext/gettext-0.18.1.1/remove_gets.patch     |   58 +++
>   meta/recipes-core/gettext/gettext_0.18.1.1.bb      |    3 +-
>   meta/recipes-core/udev/udev/include_resource.patch |   31 ++
>   meta/recipes-core/udev/udev_164.bb                 |    7 +-
>   .../recipes-devtools/bison/bison/remove-gets.patch |   20 +
>   meta/recipes-devtools/bison/bison_2.5.bb           |    6 +-
>   meta/recipes-devtools/gdb/gdb-common.inc           |    2 +-
>   meta/recipes-devtools/gdb/gdb.inc                  |    1 +
>   meta/recipes-devtools/gdb/gdb/siginfo_t.patch      |  403 +++++++++++++++
>   .../recipes-devtools/guile/files/remove-gets.patch |   23 +
>   meta/recipes-devtools/guile/guile_2.0.5.bb         |    3 +-
>   meta/recipes-devtools/m4/m4-1.4.16.inc             |    6 +-
>   meta/recipes-devtools/m4/m4/remove-gets.patch      |   21 +
>   .../valgrind-3.7.0/configure-with-glibc-2.16.patch |   32 ++
>   meta/recipes-devtools/valgrind/valgrind_3.7.0.bb   |    6 +-
>   .../augeas/augeas/remove-gets.patch                |   20 +
>   meta/recipes-extended/augeas/augeas_0.10.0.bb      |    4 +-
>   .../cpio/cpio-2.11/remove-gets.patch               |   20 +
>   meta/recipes-extended/cpio/cpio_2.11.bb            |    5 +-
>   .../diffutils/diffutils-3.2/remove-gets.patch      |   22 +
>   meta/recipes-extended/diffutils/diffutils_3.2.bb   |    6 +-
>   .../pam/libpam/include-sys-resource.patch          |   12 +
>   meta/recipes-extended/pam/libpam_1.1.5.bb          |    6 +-
>   .../tar/tar-1.26/remove-gets.patch                 |   20 +
>   meta/recipes-extended/tar/tar_1.26.bb              |    5 +-
>   .../wget/wget-1.13.4/remove-gets.patch             |   23 +
>   meta/recipes-extended/wget/wget_1.13.4.bb          |    3 +-
>   meta/recipes-sato/puzzles/puzzles_r9561.bb         |    5 +-
>   .../boost/{boost_1.49.0.bb => boost_1.50.0.bb}     |    5 +-
>   .../gnutls/gnutls/remove-gets.patch                |   41 ++
>   meta/recipes-support/gnutls/gnutls_2.12.20.bb      |    3 +-
>   56 files changed, 2254 insertions(+), 31 deletions(-)
>   create mode 100644 meta/recipes-bsp/grub/grub-1.99/remove-gets.patch
>   create mode 100644 meta/recipes-core/busybox/busybox-1.19.4/sys_resource.patch
>   create mode 100644 meta/recipes-core/coreutils/coreutils-8.14/remove-gets.patch
>   create mode 100644 meta/recipes-core/eglibc/cross-localedef-native_2.16.bb
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/GLRO_dl_debug_mask.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/IO-acquire-lock-fix.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/eglibc-svn-arm-lowlevellock-include-tls.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/eglibc_fix_findidx_parameters.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/etc/ld.so.conf
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/generate-supported.mk
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/initgroups_keys.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ld-search-order.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/mips-rld-map-check.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/multilib_readlib.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc-sqrt_finite.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/ppc_slow_ieee754_sqrt.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/rpc-bootstrap.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/use-sysroot-cxx-headers.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-initial_2.16.bb
>   create mode 100644 meta/recipes-core/eglibc/eglibc-locale_2.16.bb
>   create mode 100644 meta/recipes-core/eglibc/eglibc_2.16.bb
>   create mode 100644 meta/recipes-core/gettext/gettext-0.18.1.1/remove_gets.patch
>   create mode 100644 meta/recipes-core/udev/udev/include_resource.patch
>   create mode 100644 meta/recipes-devtools/bison/bison/remove-gets.patch
>   create mode 100644 meta/recipes-devtools/gdb/gdb/siginfo_t.patch
>   create mode 100644 meta/recipes-devtools/guile/files/remove-gets.patch
>   create mode 100644 meta/recipes-devtools/m4/m4/remove-gets.patch
>   create mode 100644 meta/recipes-devtools/valgrind/valgrind-3.7.0/configure-with-glibc-2.16.patch
>   create mode 100644 meta/recipes-extended/augeas/augeas/remove-gets.patch
>   create mode 100644 meta/recipes-extended/cpio/cpio-2.11/remove-gets.patch
>   create mode 100644 meta/recipes-extended/diffutils/diffutils-3.2/remove-gets.patch
>   create mode 100644 meta/recipes-extended/pam/libpam/include-sys-resource.patch
>   create mode 100644 meta/recipes-extended/tar/tar-1.26/remove-gets.patch
>   create mode 100644 meta/recipes-extended/wget/wget-1.13.4/remove-gets.patch
>   rename meta/recipes-support/boost/{boost_1.49.0.bb => boost_1.50.0.bb} (53%)
>   create mode 100644 meta/recipes-support/gnutls/gnutls/remove-gets.patch
>




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

* Re: [PATCH 13/14] libpam: Fix build with eglibc 2.16
  2012-07-05 14:35 ` [PATCH 13/14] libpam: " Khem Raj
@ 2012-07-17 17:40   ` Saul Wold
  0 siblings, 0 replies; 25+ messages in thread
From: Saul Wold @ 2012-07-17 17:40 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 07/05/2012 07:35 AM, Khem Raj wrote:
> pam_unix_acct.c: In function '_unix_run_verify_binary':
> pam_unix_acct.c:97:19: error: storage size of 'rlim' isn't known
> pam_unix_acct.c:106:19: error: 'RLIMIT_NOFILE' undeclared (first use in
> this function)
> pam_unix_acct.c:106:19: note: each undeclared identifier is reported
> only once for each function it appears in
>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>   .../pam/libpam/include-sys-resource.patch          |   12 ++++++++++++
>   meta/recipes-extended/pam/libpam_1.1.5.bb          |    6 ++++--
>   2 files changed, 16 insertions(+), 2 deletions(-)
>   create mode 100644 meta/recipes-extended/pam/libpam/include-sys-resource.patch
>
> diff --git a/meta/recipes-extended/pam/libpam/include-sys-resource.patch b/meta/recipes-extended/pam/libpam/include-sys-resource.patch
> new file mode 100644
> index 0000000..0108a88
> --- /dev/null
> +++ b/meta/recipes-extended/pam/libpam/include-sys-resource.patch
> @@ -0,0 +1,12 @@

Missed that this needs an Upstream-Status and Signed-off-by along with 
any more describive info needed

Please fix

Thanks
	Sau!

> +Index: Linux-PAM-1.1.5/modules/pam_unix/pam_unix_acct.c
> +===================================================================
> +--- Linux-PAM-1.1.5.orig/modules/pam_unix/pam_unix_acct.c	2012-07-04 12:37:44.881136025 -0700
> ++++ Linux-PAM-1.1.5/modules/pam_unix/pam_unix_acct.c	2012-07-04 12:38:00.601136785 -0700
> +@@ -47,6 +47,7 @@
> + #include <time.h>		/* for time() */
> + #include <errno.h>
> + #include <sys/wait.h>
> ++#include <sys/resource.h>
> +
> + #include <security/_pam_macros.h>
> +
> diff --git a/meta/recipes-extended/pam/libpam_1.1.5.bb b/meta/recipes-extended/pam/libpam_1.1.5.bb
> index 08ce1d1..275e5d8 100644
> --- a/meta/recipes-extended/pam/libpam_1.1.5.bb
> +++ b/meta/recipes-extended/pam/libpam_1.1.5.bb
> @@ -9,12 +9,14 @@ SECTION = "base"
>   LICENSE = "GPLv2+ | BSD"
>   LIC_FILES_CHKSUM = "file://COPYING;md5=ca0395de9a86191a078b8b79302e3083"
>
> -PR = "r3"
> +PR = "r4"
>
>   SRC_URI = "https://fedorahosted.org/releases/l/i/linux-pam/Linux-PAM-${PV}.tar.bz2 \
>              file://99_pam \
>              file://pam.d/* \
> -           file://libpam-xtests.patch"
> +           file://libpam-xtests.patch \
> +           file://include-sys-resource.patch \
> +          "
>
>   SRC_URI_append_libc-uclibc = " file://pam-no-innetgr.patch"
>
>




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

end of thread, other threads:[~2012-07-17 17:51 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-05 14:35 [PATCH 00/14] eglibc 2.16 Khem Raj
2012-07-05 14:35 ` [PATCH 01/14] mirrors: Add debian archive snapshot mirrors to search list Khem Raj
2012-07-05 14:35 ` [PATCH 02/14] gdb: Replace struct siginfo with proper siginfo_t Khem Raj
2012-07-05 14:35 ` [PATCH 03/14] busybox: Include sys/resource.h for rusage definition Khem Raj
2012-07-05 14:35 ` [PATCH 04/14] coreutils: Fix build with eglibc 2.16 Khem Raj
2012-07-05 14:35 ` [PATCH 05/14] diffutils: " Khem Raj
2012-07-05 14:35 ` [PATCH 06/14] udev: " Khem Raj
2012-07-05 14:35 ` [PATCH 07/14] gettext, m4, augeas, gnutls: Account for removal of gets in " Khem Raj
2012-07-05 14:35 ` [PATCH 08/14] bison: Fix for gets being removed from " Khem Raj
2012-07-05 14:35 ` [PATCH 09/14] grub, guile, cpio, tar, wget: Fix gnulib for absense of gets in eglibc Khem Raj
2012-07-05 14:35 ` [PATCH 10/14] boost: Upgrade recipe to 1.50.0 Khem Raj
2012-07-05 14:35 ` [PATCH 11/14] puzzles: Fix checksums Khem Raj
2012-07-05 14:35 ` [PATCH 12/14] valgrind: Fix build with eglibc 2.16 Khem Raj
2012-07-05 14:35 ` [PATCH 13/14] libpam: " Khem Raj
2012-07-17 17:40   ` Saul Wold
2012-07-05 14:35 ` [PATCH 14/14] eglibc: Add recipes for 2.16 release Khem Raj
2012-07-06  2:27   ` Saul Wold
2012-07-06  3:49     ` Khem Raj
2012-07-06  5:18       ` Khem Raj
2012-07-05 20:23 ` [PATCH 00/14] eglibc 2.16 Martin Jansa
2012-07-05 20:39   ` Khem Raj
2012-07-05 20:57     ` Martin Jansa
2012-07-05 21:34       ` Khem Raj
2012-07-05 21:55         ` Martin Jansa
2012-07-17 14:59 ` Saul Wold

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.