summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2012-08-22 10:59:50 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-08-23 11:43:32 +0100
commit142a8d18819d9d533fbef97aaf8a61e4bd90bcdb (patch)
treef4b7fd3cbfc9613a90fd10669c97ef01c185e927 /meta/recipes-core
parent93d71aac2e715151be7a9cf9dfe66287be47d105 (diff)
downloadpoky-142a8d18819d9d533fbef97aaf8a61e4bd90bcdb.tar.gz
eglibc-2.15: Delete
eglibc 2.15 is not buildable with current toolchain build sequence and is not used as default on OE-Core. So lets remove it. (From OE-Core rev: d8c47eeb09d1bc2a6a7a335cc94658f6bdfe4026) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core')
-rw-r--r--meta/recipes-core/eglibc/cross-localedef-native_2.15.bb44
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/GLRO_dl_debug_mask.patch108
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/IO-acquire-lock-fix.patch17
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/add_HAVE_ARM_PCS_VFP.patch28
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/eglibc-rpc-export-again.patch72
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/eglibc-svn-arm-lowlevellock-include-tls.patch21
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/eglibc_fix_findidx_parameters.patch38
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/etc/ld.so.conf0
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/generate-supported.mk11
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/glibc-2.14-libdl-crash.patch133
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/initgroups_keys.patch20
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/ld-search-order.patch56
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/ldso_arm_hf_support.patch338
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/mips-rld-map-check.patch26
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/multilib_readlib.patch17
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/ppc-sqrt.patch538
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/ppc-sqrt_finite.patch112
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/relocatable_sdk.patch81
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/stack-protector-test.patch35
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/use-localstatedir-for-vardbdir.patch21
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/use-sysroot-cxx-headers.patch42
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.15/x86_fenv.patch36
-rw-r--r--meta/recipes-core/eglibc/eglibc-initial_2.15.bb6
-rw-r--r--meta/recipes-core/eglibc/eglibc-locale_2.15.bb1
-rw-r--r--meta/recipes-core/eglibc/eglibc_2.15.bb239
25 files changed, 0 insertions, 2040 deletions
diff --git a/meta/recipes-core/eglibc/cross-localedef-native_2.15.bb b/meta/recipes-core/eglibc/cross-localedef-native_2.15.bb
deleted file mode 100644
index 422e0bb118..0000000000
--- a/meta/recipes-core/eglibc/cross-localedef-native_2.15.bb
+++ /dev/null
@@ -1,44 +0,0 @@
1DESCRIPTION = "Cross locale generation tool for eglibc"
2HOMEPAGE = "http://www.eglibc.org/home"
3SECTION = "libs"
4LICENSE = "LGPL"
5
6LIC_DIR = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
7LIC_FILES_CHKSUM = "file://${LIC_DIR}/LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9\
8 file://${LIC_DIR}/COPYING;md5=393a5ca445f6965873eca0259a17f833 \
9 file://${LIC_DIR}/posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
10 file://${LIC_DIR}/COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff "
11
12
13inherit native
14inherit autotools
15
16PR = "r0"
17SRCREV="15225"
18EGLIBC_BRANCH="eglibc-2_14"
19SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};protocol=http "
20S = "${WORKDIR}/${EGLIBC_BRANCH}/localedef"
21
22do_unpack_append() {
23 bb.build.exec_func('do_move_ports', d)
24}
25
26do_move_ports() {
27 if test -d ${WORKDIR}/${EGLIBC_BRANCH}/ports ; then
28 rm -rf ${WORKDIR}/libc/ports
29 mv ${WORKDIR}/${EGLIBC_BRANCH}/ports ${WORKDIR}/libc/
30 fi
31}
32
33EXTRA_OECONF = "--with-glibc=${WORKDIR}/${EGLIBC_BRANCH}/libc"
34CFLAGS += "-DNOT_IN_libc=1"
35
36do_configure () {
37 ./configure ${EXTRA_OECONF}
38}
39
40
41do_install() {
42 install -d ${D}${bindir}
43 install -m 0755 ${S}/localedef ${D}${bindir}/cross-localedef
44}
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/GLRO_dl_debug_mask.patch b/meta/recipes-core/eglibc/eglibc-2.15/GLRO_dl_debug_mask.patch
deleted file mode 100644
index b8995625aa..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/GLRO_dl_debug_mask.patch
+++ /dev/null
@@ -1,108 +0,0 @@
1Its controlled by __OPTION_EGLIBC_RTLD_DEBUG
2so we should use GLRO_dl_debug_mask
3
4Singed-off-by: Khem Raj <raj.khem@gmail.com>
5
6Upstream-Status: Pending
7Index: libc/elf/dl-open.c
8===================================================================
9--- libc.orig/elf/dl-open.c 2012-03-09 08:54:34.691443995 -0800
10+++ libc/elf/dl-open.c 2012-03-09 08:55:31.275446730 -0800
11@@ -154,7 +154,7 @@
12 ns->_ns_main_searchlist->r_list[new_nlist++] = map;
13
14 /* We modify the global scope. Report this. */
15- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0))
16+ if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0))
17 _dl_debug_printf ("\nadd %s [%lu] to global scope\n",
18 map->l_name, map->l_ns);
19 }
20@@ -294,7 +294,7 @@
21 _dl_debug_state ();
22
23 /* Print scope information. */
24- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0))
25+ if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0))
26 _dl_show_scope (new, 0);
27
28 /* Only do lazy relocation if `LD_BIND_NOW' is not set. */
29@@ -438,7 +438,7 @@
30 }
31
32 /* Print scope information. */
33- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0))
34+ if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0))
35 _dl_show_scope (imap, from_scope);
36 }
37
38Index: libc/ports/sysdeps/mips/dl-lookup.c
39===================================================================
40--- libc.orig/ports/sysdeps/mips/dl-lookup.c 2012-03-09 08:54:34.707443996 -0800
41+++ libc/ports/sysdeps/mips/dl-lookup.c 2012-03-09 09:02:36.903467324 -0800
42@@ -111,7 +111,7 @@
43 continue;
44
45 /* Print some debugging info if wanted. */
46- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SYMBOLS, 0))
47+ if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SYMBOLS, 0))
48 _dl_debug_printf ("symbol=%s; lookup in file=%s [%lu]\n",
49 undef_name,
50 map->l_name[0] ? map->l_name : rtld_progname,
51@@ -432,7 +432,7 @@
52 hash table. */
53 if (__builtin_expect (tab->size, 0))
54 {
55- assert (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK);
56+ assert (GLRO_dl_debug_mask & DL_DEBUG_PRELINK);
57 __rtld_lock_unlock_recursive (tab->lock);
58 goto success;
59 }
60@@ -681,7 +681,7 @@
61 }
62
63 /* Display information if we are debugging. */
64- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
65+ if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_FILES, 0))
66 _dl_debug_printf ("\
67 \nfile=%s [%lu]; needed by %s [%lu] (relocation dependency)\n\n",
68 map->l_name[0] ? map->l_name : rtld_progname,
69@@ -860,7 +860,7 @@
70 if (__builtin_expect (current_value.m->l_used == 0, 0))
71 current_value.m->l_used = 1;
72
73- if (__builtin_expect (GLRO(dl_debug_mask)
74+ if (__builtin_expect (GLRO_dl_debug_mask
75 & (DL_DEBUG_BINDINGS|DL_DEBUG_PRELINK), 0))
76 _dl_debug_bindings (undef_name, undef_map, ref,
77 &current_value, version, type_class, protected);
78@@ -925,7 +925,7 @@
79 {
80 const char *reference_name = undef_map->l_name;
81
82- if (GLRO(dl_debug_mask) & DL_DEBUG_BINDINGS)
83+ if (GLRO_dl_debug_mask & DL_DEBUG_BINDINGS)
84 {
85 _dl_debug_printf ("binding file %s [%lu] to %s [%lu]: %s symbol `%s'",
86 (reference_name[0]
87@@ -941,7 +941,7 @@
88 _dl_debug_printf_c ("\n");
89 }
90 #ifdef SHARED
91- if (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK)
92+ if (GLRO_dl_debug_mask & DL_DEBUG_PRELINK)
93 {
94 int conflict = 0;
95 struct sym_val val = { NULL, NULL };
96Index: libc/elf/rtld.c
97===================================================================
98--- libc.orig/elf/rtld.c 2012-03-09 09:01:35.159464344 -0800
99+++ libc/elf/rtld.c 2012-03-09 09:01:56.247465364 -0800
100@@ -2198,7 +2198,7 @@
101 GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
102
103 /* Print scope information. */
104- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES, 0))
105+ if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_SCOPES, 0))
106 {
107 _dl_debug_printf ("\nInitial object scopes\n");
108
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/IO-acquire-lock-fix.patch b/meta/recipes-core/eglibc/eglibc-2.15/IO-acquire-lock-fix.patch
deleted file mode 100644
index cf5803585c..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/IO-acquire-lock-fix.patch
+++ /dev/null
@@ -1,17 +0,0 @@
1import http://sourceware.org/ml/libc-ports/2007-12/msg00000.html
2
3Upstream-Status: Pending
4
5Index: libc/bits/stdio-lock.h
6===================================================================
7--- libc.orig/bits/stdio-lock.h 2009-10-28 14:34:19.000000000 -0700
8+++ libc/bits/stdio-lock.h 2009-10-28 14:34:54.000000000 -0700
9@@ -50,6 +50,8 @@ __libc_lock_define_recursive (typedef, _
10 _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp)); \
11 _IO_flockfile (_fp)
12
13+# define _IO_acquire_lock_clear_flags2(_fp) _IO_acquire_lock (_fp)
14+
15 # define _IO_release_lock(_fp) \
16 _IO_funlockfile (_fp); \
17 _IO_cleanup_region_end (0)
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/add_HAVE_ARM_PCS_VFP.patch b/meta/recipes-core/eglibc/eglibc-2.15/add_HAVE_ARM_PCS_VFP.patch
deleted file mode 100644
index 0f95c2fb96..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/add_HAVE_ARM_PCS_VFP.patch
+++ /dev/null
@@ -1,28 +0,0 @@
1From: Carlos O'Donell <carlos_odonell@mentor.com>
2Date: Mon, 7 May 2012 20:04:41 +0000 (-0400)
3Subject: ARM: Define HAVE_ARM_PCS_VFP in config.h.
4X-Git-Url: http://sourceware.org/git/?p=glibc.git;a=commitdiff_plain;h=6a43ec980c5a0500149ef37d4854eac0e270da6f;hp=05c2c9618f583ea4acd69b3fe5ae2a2922dd2ddc
5
6ARM: Define HAVE_ARM_PCS_VFP in config.h.
7
8If the compiler and flags would select the hard-float ABI
9then the ARM configure fragment will set HAVE_ARM_PCS_VFP.
10This is later used by the ARM shlib-versions to select
11the appropriately named dynamic linker.
12---
13
14Upstream-Status: Backport
15-Khem
16
17Index: libc/config.h.in
18===================================================================
19--- libc.orig/config.h.in 2012-01-04 22:06:28.000000000 -0800
20+++ libc/config.h.in 2012-05-08 11:25:56.581079069 -0700
21@@ -233,4 +233,7 @@
22
23 #define HAVE_REGEX 1
24
25+/* The ARM hard-float ABI is being used. */
26+#undef HAVE_ARM_PCS_VFP
27+
28 #endif
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/eglibc-rpc-export-again.patch b/meta/recipes-core/eglibc/eglibc-2.15/eglibc-rpc-export-again.patch
deleted file mode 100644
index 15bd2f8514..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/eglibc-rpc-export-again.patch
+++ /dev/null
@@ -1,72 +0,0 @@
1
2Upstream-Status: Inappropriate [configuration]
3
4export the rpc symbols and headers again until we can get libtirpc sorted
5out as a proper and full replacement
6
7patch from fedora (if redhat can't get it to work as the maintainers of all
8these packages, then what chance do we have!)
9
10Index: libc/NEWS
11===================================================================
12--- libc.orig/NEWS 2011-09-09 10:46:36.000000000 -0700
13+++ libc/NEWS 2011-09-09 10:58:21.196279725 -0700
14@@ -20,16 +20,6 @@
15 12724, 12734, 12738, 12746, 12766, 12775, 12777, 12782, 12788, 12792,
16 12795, 12811, 12813, 12814, 12841
17
18-* The RPC implementation in libc is obsoleted. Old programs keep working
19- but new programs cannot be linked with the routines in libc anymore.
20- Programs in need of RPC functionality must be linked against TI-RPC.
21- The TI-RPC implementation is IPv6 enabled and there are other benefits.
22-
23- Visible changes of this change include (obviously) the inability to link
24- programs using RPC functions without referencing the TI-RPC library and the
25- removal of the RPC headers from the glibc headers.
26- Implemented by Ulrich Drepper.
27-
28 * New Linux interfaces: clock_adjtime, name_to_handle_at, open_by_handle_at,
29 syncfs, setns, sendmmsg
30
31Index: libc/include/libc-symbols.h
32===================================================================
33--- libc.orig/include/libc-symbols.h 2011-09-09 10:45:34.000000000 -0700
34+++ libc/include/libc-symbols.h 2011-09-09 10:58:21.196279725 -0700
35@@ -656,7 +656,7 @@
36 # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
37 # define libc_hidden_def(name) hidden_def (name)
38 # define libc_hidden_weak(name) hidden_weak (name)
39-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version)
40+# define libc_hidden_nolink(name, version) hidden_def (name)
41 # define libc_hidden_ver(local, name) hidden_ver (local, name)
42 # define libc_hidden_data_def(name) hidden_data_def (name)
43 # define libc_hidden_data_weak(name) hidden_data_weak (name)
44Index: libc/nis/Makefile
45===================================================================
46--- libc.orig/nis/Makefile 2011-09-09 10:46:34.000000000 -0700
47+++ libc/nis/Makefile 2011-09-09 10:58:21.196279725 -0700
48@@ -25,9 +25,9 @@
49
50 aux := nis_hash
51
52+headers := $(wildcard rpcsvc/*.[hx])
53 distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \
54- nisplus-parser.h nis_xdr.h nss \
55- $(wildcard rpcsvc/*.[hx])
56+ nisplus-parser.h nis_xdr.h nss
57
58 # These are the databases available for the nis (and perhaps later nisplus)
59 # service. This must be a superset of the services in nss.
60Index: libc/sunrpc/Makefile
61===================================================================
62--- libc.orig/sunrpc/Makefile 2011-09-09 10:46:30.000000000 -0700
63+++ libc/sunrpc/Makefile 2011-09-09 10:59:10.726352375 -0700
64@@ -55,7 +55,7 @@
65 des_crypt.h)
66 headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \
67 $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
68-headers = rpc/netdb.h
69+headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc)
70 generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
71 $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
72 generated-dirs := rpcsvc
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/eglibc-svn-arm-lowlevellock-include-tls.patch b/meta/recipes-core/eglibc/eglibc-2.15/eglibc-svn-arm-lowlevellock-include-tls.patch
deleted file mode 100644
index 4313aa5197..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/eglibc-svn-arm-lowlevellock-include-tls.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1In file included from ../nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c:21:
2../nptl/sysdeps/unix/sysv/linux/lowlevellock.c: In function '__lll_lock_wait_private':
3../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: warning: implicit declaration of function 'THREAD_GETMEM'
4../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: 'THREAD_SELF' undeclared (first use in this function)
5../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: (Each undeclared identifier is reported only once
6../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: for each function it appears in.)
7../nptl/sysdeps/unix/sysv/linux/lowlevellock.c:34: error: 'header' undeclared (first use in this function)
8make[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
9
10Upstream-Status: Pending
11
12--- libc/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h.orig
13+++ libc/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
14@@ -25,6 +25,7 @@
15 #include <atomic.h>
16 #include <sysdep.h>
17 #include <kernel-features.h>
18+#include <tls.h>
19
20 #define FUTEX_WAIT 0
21 #define FUTEX_WAKE 1
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/eglibc_fix_findidx_parameters.patch b/meta/recipes-core/eglibc/eglibc-2.15/eglibc_fix_findidx_parameters.patch
deleted file mode 100644
index bbf4605505..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/eglibc_fix_findidx_parameters.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1Upstream-Status: backport
2
3Imported patch from: http://www.eglibc.org/archives/patches/msg01124.html
4
5Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
62012/05/09
7
8Index: libc/posix/xregex.c
9===================================================================
10--- libc.orig/posix/xregex.c
11+++ libc/posix/xregex.c
12@@ -2943,7 +2943,7 @@ PREFIX(regex_compile) (const char *ARG_P
13 _NL_CURRENT (LC_COLLATE,
14 _NL_COLLATE_INDIRECTWC);
15
16- idx = findidx ((const wint_t**)&cp);
17+ idx = findidx ((const wint_t**)&cp, -1);
18 if (idx == 0 || cp < (wint_t*) str + c1)
19 /* This is no valid character. */
20 FREE_STACK_RETURN (REG_ECOLLATE);
21@@ -3392,7 +3392,7 @@ PREFIX(regex_compile) (const char *ARG_P
22 indirect = (const int32_t *)
23 _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB);
24
25- idx = findidx (&cp);
26+ idx = findidx (&cp, -1);
27 if (idx == 0 || cp < str + c1)
28 /* This is no valid character. */
29 FREE_STACK_RETURN (REG_ECOLLATE);
30@@ -6363,7 +6363,7 @@ byte_re_match_2_internal (struct re_patt
31 }
32 str_buf[i] = TRANSLATE(*(d+i));
33 str_buf[i+1] = '\0'; /* sentinel */
34- idx2 = findidx ((const wint_t**)&cp);
35+ idx2 = findidx ((const wint_t**)&cp, -1);
36 }
37
38 /* Update d, however d will be incremented at
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/etc/ld.so.conf b/meta/recipes-core/eglibc/eglibc-2.15/etc/ld.so.conf
deleted file mode 100644
index e69de29bb2..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/etc/ld.so.conf
+++ /dev/null
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/generate-supported.mk b/meta/recipes-core/eglibc/eglibc-2.15/generate-supported.mk
deleted file mode 100644
index d2a28c2dc6..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/generate-supported.mk
+++ /dev/null
@@ -1,11 +0,0 @@
1#!/usr/bin/make
2
3include $(IN)
4
5all:
6 rm -f $(OUT)
7 touch $(OUT)
8 for locale in $(SUPPORTED-LOCALES); do \
9 [ $$locale = true ] && continue; \
10 echo $$locale | sed 's,/, ,' >> $(OUT); \
11 done
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/glibc-2.14-libdl-crash.patch b/meta/recipes-core/eglibc/eglibc-2.15/glibc-2.14-libdl-crash.patch
deleted file mode 100644
index 1c30c9d833..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/glibc-2.14-libdl-crash.patch
+++ /dev/null
@@ -1,133 +0,0 @@
1Without this patch programs using alsa-lib crash (alsamixer for example).
2Removed Copyright reverts
3
4Upstream-Status: Pending
5
6http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=675155e9
7http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html
8
9many distributions are using this already
10http://chakra-project.org/ccr/packages/glibc/glibc/PKGBUILD
11http://mailman.archlinux.org/pipermail/arch-commits/2011-June/137142.html
12http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/glibc/current/SOURCES/glibc-2.14-libdl-crash.patch?view=markup&pathrev=691343
13http://repos.archlinuxppc.org/wsvn/filedetails.php?repname=packages&path=%2Fglibc%2Ftrunk%2Fglibc-2.14-libdl-crash.patch
14
15Index: libc/elf/dl-close.c
16===================================================================
17--- libc.orig/elf/dl-close.c 2011-12-05 20:16:38.000000000 -0800
18+++ libc/elf/dl-close.c 2011-12-05 20:17:15.863326893 -0800
19@@ -119,17 +119,8 @@
20 if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
21 || dl_close_state != not_pending)
22 {
23- if (map->l_direct_opencount == 0)
24- {
25- if (map->l_type == lt_loaded)
26- dl_close_state = rerun;
27- else if (map->l_type == lt_library)
28- {
29- struct link_map **oldp = map->l_initfini;
30- map->l_initfini = map->l_orig_initfini;
31- _dl_scope_free (oldp);
32- }
33- }
34+ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
35+ dl_close_state = rerun;
36
37 /* There are still references to this object. Do nothing more. */
38 if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_FILES, 0))
39Index: libc/elf/dl-deps.c
40===================================================================
41--- libc.orig/elf/dl-deps.c 2011-12-05 20:16:38.000000000 -0800
42+++ libc/elf/dl-deps.c 2011-12-05 20:19:33.179326877 -0800
43@@ -478,6 +478,7 @@
44 nneeded * sizeof needed[0]);
45 atomic_write_barrier ();
46 l->l_initfini = l_initfini;
47+ l->l_free_initfini = 1;
48 }
49
50 /* If we have no auxiliary objects just go on to the next map. */
51@@ -678,6 +679,7 @@
52 l_initfini[nlist] = NULL;
53 atomic_write_barrier ();
54 map->l_initfini = l_initfini;
55+ map->l_free_initfini = 1;
56 if (l_reldeps != NULL)
57 {
58 atomic_write_barrier ();
59@@ -686,7 +688,7 @@
60 _dl_scope_free (old_l_reldeps);
61 }
62 if (old_l_initfini != NULL)
63- map->l_orig_initfini = old_l_initfini;
64+ _dl_scope_free (old_l_initfini);
65
66 if (errno_reason)
67 _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,
68Index: libc/elf/dl-libc.c
69===================================================================
70--- libc.orig/elf/dl-libc.c 2011-10-22 09:34:03.000000000 -0700
71+++ libc/elf/dl-libc.c 2011-12-05 20:17:15.863326893 -0800
72@@ -265,13 +265,13 @@
73
74 for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
75 {
76- /* Remove all additional names added to the objects. */
77 for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
78 {
79 struct libname_list *lnp = l->l_libname->next;
80
81 l->l_libname->next = NULL;
82
83+ /* Remove all additional names added to the objects. */
84 while (lnp != NULL)
85 {
86 struct libname_list *old = lnp;
87@@ -279,6 +279,10 @@
88 if (! old->dont_free)
89 free (old);
90 }
91+
92+ /* Free the initfini dependency list. */
93+ if (l->l_free_initfini)
94+ free (l->l_initfini);
95 }
96
97 if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
98Index: libc/elf/rtld.c
99===================================================================
100--- libc.orig/elf/rtld.c 2011-10-22 09:34:03.000000000 -0700
101+++ libc/elf/rtld.c 2011-12-05 20:17:15.863326893 -0800
102@@ -2264,6 +2264,7 @@
103 lnp->dont_free = 1;
104 lnp = lnp->next;
105 }
106+ l->l_free_initfini = 0;
107
108 if (l != &GL(dl_rtld_map))
109 _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
110Index: libc/include/link.h
111===================================================================
112--- libc.orig/include/link.h 2011-10-22 09:32:35.000000000 -0700
113+++ libc/include/link.h 2011-12-05 20:17:15.863326893 -0800
114@@ -192,6 +192,9 @@
115 during LD_TRACE_PRELINKING=1
116 contains any DT_SYMBOLIC
117 libraries. */
118+ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
119+ freed, ie. not allocated with
120+ the dummy malloc in ld.so. */
121
122 /* Collected information about own RPATH directories. */
123 struct r_search_path_struct l_rpath_dirs;
124@@ -240,9 +243,6 @@
125
126 /* List of object in order of the init and fini calls. */
127 struct link_map **l_initfini;
128- /* The init and fini list generated at startup, saved when the
129- object is also loaded dynamically. */
130- struct link_map **l_orig_initfini;
131
132 /* List of the dependencies introduced through symbol binding. */
133 struct link_map_reldeps
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/initgroups_keys.patch b/meta/recipes-core/eglibc/eglibc-2.15/initgroups_keys.patch
deleted file mode 100644
index be29856b03..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/initgroups_keys.patch
+++ /dev/null
@@ -1,20 +0,0 @@
1This is needed since initgroups belongs to NET group
2so when NET is disabled in eglibc build then it reports
3as undefined symbol
4
5Signed-off-by: Khem Raj <raj.khem@gmail.com>
6Upstream-Status: Pending
7
8Index: libc/nss/getent.c
9===================================================================
10--- libc.orig/nss/getent.c 2012-03-09 09:41:57.099581559 -0800
11+++ libc/nss/getent.c 2012-03-09 09:42:13.095582334 -0800
12@@ -898,7 +898,7 @@
13 D(group)
14 D(gshadow)
15 DN(hosts)
16-D(initgroups)
17+DN(initgroups)
18 DN(netgroup)
19 DN(networks)
20 D(passwd)
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/ld-search-order.patch b/meta/recipes-core/eglibc/eglibc-2.15/ld-search-order.patch
deleted file mode 100644
index 40ae6d37f4..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/ld-search-order.patch
+++ /dev/null
@@ -1,56 +0,0 @@
1Upstream-Status: Inappropriate [embedded specific]
2
3The default lib search path order is:
4
5 1) LD_LIBRARY_PATH
6 2) RPATH from the binary
7 3) ld.so.cache
8 4) default search paths embedded in the linker
9
10For nativesdk binaries which are being used alongside binaries on a host system, we
11need the search paths to firstly search the shipped nativesdk libs but then also
12cover the host system. For example we want the host system's libGL and this may be
13in a non-standard location like /usr/lib/mesa. The only place the location is know
14about is in the ld.so.cache of the host system.
15
16Since nativesdk has a simple structure and doesn't need to use a cache itself, we
17repurpose the cache for use as a last resort in finding host system binaries. This
18means we need to switch the order of 3 and 4 above to make this work effectively.
19
20RP 14/10/2010
21
22Index: libc/elf/dl-load.c
23===================================================================
24--- libc.orig/elf/dl-load.c
25+++ libc/elf/dl-load.c
26@@ -2107,6 +2107,15 @@ _dl_map_object (struct link_map *loader,
27 &loader->l_runpath_dirs, &realname, &fb, loader,
28 LA_SER_RUNPATH, &found_other_class);
29
30+ /* try the default path. */
31+ if (fd == -1
32+ && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL
33+ || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1))
34+ && rtld_search_dirs.dirs != (void *) -1)
35+ fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs,
36+ &realname, &fb, l, LA_SER_DEFAULT, &found_other_class);
37+
38+ /* Finally try ld.so.cache */
39 if (fd == -1
40 && (__builtin_expect (! (mode & __RTLD_SECURE), 1)
41 || ! INTUSE(__libc_enable_secure)))
42@@ -2169,14 +2178,6 @@ _dl_map_object (struct link_map *loader,
43 }
44 }
45
46- /* Finally, try the default path. */
47- if (fd == -1
48- && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL
49- || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1))
50- && rtld_search_dirs.dirs != (void *) -1)
51- fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs,
52- &realname, &fb, l, LA_SER_DEFAULT, &found_other_class);
53-
54 /* Add another newline when we are tracing the library loading. */
55 if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_LIBS, 0))
56 _dl_debug_printf ("\n");
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/ldso_arm_hf_support.patch b/meta/recipes-core/eglibc/eglibc-2.15/ldso_arm_hf_support.patch
deleted file mode 100644
index 7a53da6ccb..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/ldso_arm_hf_support.patch
+++ /dev/null
@@ -1,338 +0,0 @@
1From d3b36017d43af570ca7f79e711749dd4ade76979 Mon Sep 17 00:00:00 2001
2From: Carlos O'Donell <carlos_odonell@mentor.com>
3Date: Mon, 7 May 2012 22:14:44 -0400
4Subject: [PATCH] ARM: Use /lib/ld-linux-armhf.so.3 for the hard-float ABI.
5
6The hard-float ABI will now use /lib/ld-linux-armhf.so.3.
7We detect the use of the hard-float ABI and select the
8appropriate dynamic linker name. You must have a new or
9patched compiler which also uses the new dynamic loader
10name when the hard-float ABI is selected.
11---
12 ChangeLog.arm | 8 ++
13 sysdeps/arm/configure | 184 ++++++++++++++++++++++++++++++++++++++++++++
14 sysdeps/arm/configure.in | 17 ++++
15 sysdeps/arm/shlib-versions | 8 ++-
16 4 files changed, 216 insertions(+), 1 deletions(-)
17 mode change 100644 => 100755 sysdeps/arm/configure
18
19Upstream-Status: Backport
20-Khem
21
22Index: libc/ports/sysdeps/arm/configure.in
23===================================================================
24--- libc.orig/ports/sysdeps/arm/configure.in 2012-05-08 11:42:59.161128560 -0700
25+++ libc/ports/sysdeps/arm/configure.in 2012-05-08 11:43:29.373130066 -0700
26@@ -18,3 +18,20 @@
27 if test $libc_cv_asm_cfi_directive_sections != yes; then
28 AC_MSG_ERROR([need .cfi_sections in this configuration])
29 fi
30+
31+# We check to see if the compiler and flags are
32+# selecting the hard-float ABI and if they are then
33+# we set libc_cv_arm_pcs_vfp to yes which causes
34+# HAVE_ARM_PCS_VFP to be defined in config.h and
35+# in include/libc-symbols.h and thus available to
36+# shlib-versions to select the appropriate name for
37+# the dynamic linker via %ifdef.
38+AC_CACHE_CHECK([whether the compiler is using the ARM hard-float ABI],
39+ [libc_cv_arm_pcs_vfp],
40+ [AC_EGREP_CPP(yes,[#ifdef __ARM_PCS_VFP
41+ yes
42+ #endif
43+ ], libc_cv_arm_pcs_vfp=yes, libc_cv_arm_pcs_vfp=no)])
44+if test $libc_cv_arm_pcs_vfp = yes; then
45+ AC_DEFINE(HAVE_ARM_PCS_VFP)
46+fi
47Index: libc/ports/sysdeps/arm/shlib-versions
48===================================================================
49--- libc.orig/ports/sysdeps/arm/shlib-versions 2012-05-08 11:42:59.145128546 -0700
50+++ libc/ports/sysdeps/arm/shlib-versions 2012-05-08 11:43:29.409130022 -0700
51@@ -1,4 +1,10 @@
52 arm.*-.*-linux-gnueabi.* DEFAULT GLIBC_2.4
53
54-arm.*-.*-linux-gnueabi.* ld=ld-linux.so.3
55+%ifdef HAVE_ARM_PCS_VFP
56+# The EABI-derived hard-float ABI uses a new dynamic linker.
57+arm.*-.*-linux-gnueabi.* ld=ld-linux-armhf.so.3
58+%else
59+# The EABI-derived soft-float ABI continues to use ld-linux.so.3.
60+arm.*-.*-linux-gnueabi.* ld=ld-linux.so.3
61+%endif
62 arm.*-.*-linux.* ld=ld-linux.so.2
63Index: libc/ports/sysdeps/arm/configure
64===================================================================
65--- libc.orig/ports/sysdeps/arm/configure 2012-05-08 11:43:46.437130836 -0700
66+++ libc/ports/sysdeps/arm/configure 2012-05-08 11:49:10.393145653 -0700
67@@ -1,3 +1,100 @@
68+# as_fn_set_status STATUS
69+# -----------------------
70+# Set $? to STATUS, without forking.
71+as_fn_set_status ()
72+{
73+ return $1
74+} # as_fn_set_status
75+
76+# as_fn_exit STATUS
77+# -----------------
78+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
79+as_fn_exit ()
80+{
81+ set +e
82+ as_fn_set_status $1
83+ exit $1
84+} # as_fn_exit
85+# as_fn_arith ARG...
86+# ------------------
87+# Perform arithmetic evaluation on the ARGs, and store the result in the
88+# global $as_val. Take advantage of shells that can avoid forks. The arguments
89+# must be portable across $(()) and expr.
90+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
91+ eval 'as_fn_arith ()
92+ {
93+ as_val=$(( $* ))
94+ }'
95+else
96+ as_fn_arith ()
97+ {
98+ as_val=`expr "$@" || test $? -eq 1`
99+ }
100+fi # as_fn_arith
101+
102+if expr a : '\(a\)' >/dev/null 2>&1 &&
103+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
104+ as_expr=expr
105+else
106+ as_expr=false
107+fi
108+
109+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
110+ as_basename=basename
111+else
112+ as_basename=false
113+fi
114+
115+as_me=`$as_basename -- "$0" ||
116+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
117+ X"$0" : 'X\(//\)$' \| \
118+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
119+$as_echo X/"$0" |
120+ sed '/^.*\/\([^/][^/]*\)\/*$/{
121+ s//\1/
122+ q
123+ }
124+ /^X\/\(\/\/\)$/{
125+ s//\1/
126+ q
127+ }
128+ /^X\/\(\/\).*/{
129+ s//\1/
130+ q
131+ }
132+ s/.*/./; q'`
133+
134+
135+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
136+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
137+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
138+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
139+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
140+ sed -n '
141+ p
142+ /[$]LINENO/=
143+ ' <$as_myself |
144+ sed '
145+ s/[$]LINENO.*/&-/
146+ t lineno
147+ b
148+ :lineno
149+ N
150+ :loop
151+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
152+ t loop
153+ s/-\n.*//
154+ ' >$as_me.lineno &&
155+ chmod +x "$as_me.lineno" ||
156+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
157+
158+ # Don't try to exec as it changes $[0], causing all sort of problems
159+ # (the dirname of $[0] is not the place where we might find the
160+ # original and so on. Autoconf is especially sensitive to this).
161+ . "./$as_me.lineno"
162+ # Exit status is that of the last command.
163+ exit
164+}
165 # This file is generated from configure.in by Autoconf. DO NOT EDIT!
166 # Local configure fragment for sysdeps/arm.
167
168@@ -31,3 +128,170 @@
169 $as_echo "$as_me: error: need .cfi_sections in this configuration" >&2;}
170 { (exit 1); exit 1; }; }
171 fi
172+
173+# We check to see if the compiler and flags are
174+# selecting the hard-float ABI and if they are then
175+# we set libc_cv_arm_pcs_vfp to yes which causes
176+# HAVE_ARM_PCS_VFP to be defined in config.h and
177+# in include/libc-symbols.h and thus available to
178+# shlib-versions to select the appropriate name for
179+# the dynamic linker via %ifdef.
180+
181+
182+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
183+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
184+if ${ac_cv_path_GREP+:} false; then :
185+ $as_echo_n "(cached) " >&6
186+else
187+ if test -z "$GREP"; then
188+ ac_path_GREP_found=false
189+ # Loop through the user's path and test for each of PROGNAME-LIST
190+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
191+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
192+do
193+ IFS=$as_save_IFS
194+ test -z "$as_dir" && as_dir=.
195+ for ac_prog in grep ggrep; do
196+ for ac_exec_ext in '' $ac_executable_extensions; do
197+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
198+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
199+# Check for GNU ac_path_GREP and select it if it is found.
200+ # Check for GNU $ac_path_GREP
201+case `"$ac_path_GREP" --version 2>&1` in
202+*GNU*)
203+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
204+*)
205+ ac_count=0
206+ $as_echo_n 0123456789 >"conftest.in"
207+ while :
208+ do
209+ cat "conftest.in" "conftest.in" >"conftest.tmp"
210+ mv "conftest.tmp" "conftest.in"
211+ cp "conftest.in" "conftest.nl"
212+ $as_echo 'GREP' >> "conftest.nl"
213+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
214+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
215+ as_fn_arith $ac_count + 1 && ac_count=$as_val
216+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
217+ # Best one so far, save it but keep looking for a better one
218+ ac_cv_path_GREP="$ac_path_GREP"
219+ ac_path_GREP_max=$ac_count
220+ fi
221+ # 10*(2^10) chars as input seems more than enough
222+ test $ac_count -gt 10 && break
223+ done
224+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
225+esac
226+
227+ $ac_path_GREP_found && break 3
228+ done
229+ done
230+ done
231+IFS=$as_save_IFS
232+ if test -z "$ac_cv_path_GREP"; then
233+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
234+ fi
235+else
236+ ac_cv_path_GREP=$GREP
237+fi
238+
239+fi
240+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
241+$as_echo "$ac_cv_path_GREP" >&6; }
242+ GREP="$ac_cv_path_GREP"
243+
244+
245+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
246+$as_echo_n "checking for egrep... " >&6; }
247+if ${ac_cv_path_EGREP+:} false; then :
248+ $as_echo_n "(cached) " >&6
249+else
250+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
251+ then ac_cv_path_EGREP="$GREP -E"
252+ else
253+ if test -z "$EGREP"; then
254+ ac_path_EGREP_found=false
255+ # Loop through the user's path and test for each of PROGNAME-LIST
256+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
257+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
258+do
259+ IFS=$as_save_IFS
260+ test -z "$as_dir" && as_dir=.
261+ for ac_prog in egrep; do
262+ for ac_exec_ext in '' $ac_executable_extensions; do
263+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
264+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
265+# Check for GNU ac_path_EGREP and select it if it is found.
266+ # Check for GNU $ac_path_EGREP
267+case `"$ac_path_EGREP" --version 2>&1` in
268+*GNU*)
269+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
270+*)
271+ ac_count=0
272+ $as_echo_n 0123456789 >"conftest.in"
273+ while :
274+ do
275+ cat "conftest.in" "conftest.in" >"conftest.tmp"
276+ mv "conftest.tmp" "conftest.in"
277+ cp "conftest.in" "conftest.nl"
278+ $as_echo 'EGREP' >> "conftest.nl"
279+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
280+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
281+ as_fn_arith $ac_count + 1 && ac_count=$as_val
282+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
283+ # Best one so far, save it but keep looking for a better one
284+ ac_cv_path_EGREP="$ac_path_EGREP"
285+ ac_path_EGREP_max=$ac_count
286+ fi
287+ # 10*(2^10) chars as input seems more than enough
288+ test $ac_count -gt 10 && break
289+ done
290+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
291+esac
292+
293+ $ac_path_EGREP_found && break 3
294+ done
295+ done
296+ done
297+IFS=$as_save_IFS
298+ if test -z "$ac_cv_path_EGREP"; then
299+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
300+ fi
301+else
302+ ac_cv_path_EGREP=$EGREP
303+fi
304+
305+ fi
306+fi
307+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
308+$as_echo "$ac_cv_path_EGREP" >&6; }
309+ EGREP="$ac_cv_path_EGREP"
310+
311+
312+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler is using the ARM hard-float ABI" >&5
313+$as_echo_n "checking whether the compiler is using the ARM hard-float ABI... " >&6; }
314+if ${libc_cv_arm_pcs_vfp+:} false; then :
315+ $as_echo_n "(cached) " >&6
316+else
317+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
318+/* end confdefs.h. */
319+#ifdef __ARM_PCS_VFP
320+ yes
321+ #endif
322+
323+_ACEOF
324+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
325+ $EGREP "yes" >/dev/null 2>&1; then :
326+ libc_cv_arm_pcs_vfp=yes
327+else
328+ libc_cv_arm_pcs_vfp=no
329+fi
330+rm -f conftest*
331+
332+fi
333+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_arm_pcs_vfp" >&5
334+$as_echo "$libc_cv_arm_pcs_vfp" >&6; }
335+if test $libc_cv_arm_pcs_vfp = yes; then
336+ $as_echo "#define HAVE_ARM_PCS_VFP 1" >>confdefs.h
337+
338+fi
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/mips-rld-map-check.patch b/meta/recipes-core/eglibc/eglibc-2.15/mips-rld-map-check.patch
deleted file mode 100644
index 9b646fea95..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/mips-rld-map-check.patch
+++ /dev/null
@@ -1,26 +0,0 @@
1
2On mips target, binutils currently sets DT_MIPS_RLD_MAP to 0 in dynamic
3section if a --version-script sets _RLD_MAP to local. This is apparently
4a binutils bug, but libc shouldn't segfault in this case.
5
6see also: http://sourceware.org/bugilla/show_bug.cgi?id=11615
7
8Upstream-Status: Pending
9
109/19/2010 - added by Qing He <qing.he@intel.com>
11
12
13---
14diff -ru glibc-2.10.1.orig/ports/sysdeps/mips/dl-machine.h glibc-2.10.1/ports/sysdeps/mips/dl-machine.h
15--- glibc-2.10.1.orig/ports/sysdeps/mips/dl-machine.h 2009-05-16 16:36:20.000000000 +0800
16+++ glibc-2.10.1/ports/sysdeps/mips/dl-machine.h 2010-09-19 09:11:53.000000000 +0800
17@@ -70,7 +70,8 @@
18 /* If there is a DT_MIPS_RLD_MAP entry in the dynamic section, fill it in
19 with the run-time address of the r_debug structure */
20 #define ELF_MACHINE_DEBUG_SETUP(l,r) \
21-do { if ((l)->l_info[DT_MIPS (RLD_MAP)]) \
22+do { if ((l)->l_info[DT_MIPS (RLD_MAP)] && \
23+ (l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) \
24 *(ElfW(Addr) *)((l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) = \
25 (ElfW(Addr)) (r); \
26 } while (0)
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/multilib_readlib.patch b/meta/recipes-core/eglibc/eglibc-2.15/multilib_readlib.patch
deleted file mode 100644
index 1542b1b519..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/multilib_readlib.patch
+++ /dev/null
@@ -1,17 +0,0 @@
1Upstream-Status: Inappropriate [embedded specific]
2
3Replace the OECORE_KNOWN_INTERPRETER_NAMES with the value of
4variable EGLIBC_KNOWN_INTERPRETER_NAMES.
5
6Lianhao Lu, 08/01/2011
7
8--- libc/elf/readlib.c.orig 2011-08-12 17:05:51.864470837 +0800
9+++ libc/elf/readlib.c 2011-08-12 17:06:39.346942074 +0800
10@@ -52,6 +52,7 @@
11 #ifdef SYSDEP_KNOWN_INTERPRETER_NAMES
12 SYSDEP_KNOWN_INTERPRETER_NAMES
13 #endif
14+ OECORE_KNOWN_INTERPRETER_NAMES
15 };
16
17 static struct known_names known_libs[] =
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/ppc-sqrt.patch b/meta/recipes-core/eglibc/eglibc-2.15/ppc-sqrt.patch
deleted file mode 100644
index 203040c15c..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/ppc-sqrt.patch
+++ /dev/null
@@ -1,538 +0,0 @@
1Upstream-Status: Pending
2
32011-03-22 Joseph Myers <joseph@codesourcery.com>
4
5 Merge from SG++ 2.11:
6
7 2010-10-05 Nathan Froyd <froydnj@codesourcery.com>
8
9 Issue #9382
10
11 * sysdeps/powerpc/powerpc32/603e/: New directory.
12 * sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/: New directory.
13 * sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/: New directory.
14 * sysdeps/unix/sysv/linux/powerpc/powerpc32/7400/: New directory.
15 * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c: Update.
16 * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c: Update.
17 * sysdeps/powerpc/powerpc64/e5500/fpu/Implies: New file.
18
19Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
20===================================================================
21--- /dev/null
22+++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
23@@ -0,0 +1,134 @@
24+/* Double-precision floating point square root.
25+ Copyright (C) 2010 Free Software Foundation, Inc.
26+ This file is part of the GNU C Library.
27+
28+ The GNU C Library is free software; you can redistribute it and/or
29+ modify it under the terms of the GNU Lesser General Public
30+ License as published by the Free Software Foundation; either
31+ version 2.1 of the License, or (at your option) any later version.
32+
33+ The GNU C Library is distributed in the hope that it will be useful,
34+ but WITHOUT ANY WARRANTY; without even the implied warranty of
35+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
36+ Lesser General Public License for more details.
37+
38+ You should have received a copy of the GNU Lesser General Public
39+ License along with the GNU C Library; if not, write to the Free
40+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
41+ 02111-1307 USA. */
42+
43+#include <math.h>
44+#include <math_private.h>
45+#include <fenv_libc.h>
46+#include <inttypes.h>
47+
48+#include <sysdep.h>
49+#include <ldsodefs.h>
50+
51+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
52+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
53+static const float two108 = 3.245185536584267269e+32;
54+static const float twom54 = 5.551115123125782702e-17;
55+static const float half = 0.5;
56+
57+/* The method is based on the descriptions in:
58+
59+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
60+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
61+
62+ We find the actual square root and half of its reciprocal
63+ simultaneously. */
64+
65+#ifdef __STDC__
66+double
67+__ieee754_sqrt (double b)
68+#else
69+double
70+__ieee754_sqrt (b)
71+ double b;
72+#endif
73+{
74+ if (__builtin_expect (b > 0, 1))
75+ {
76+ double y, g, h, d, r;
77+ ieee_double_shape_type u;
78+
79+ if (__builtin_expect (b != a_inf.value, 1))
80+ {
81+ fenv_t fe;
82+
83+ fe = fegetenv_register ();
84+
85+ u.value = b;
86+
87+ relax_fenv_state ();
88+
89+ __asm__ ("frsqrte %[estimate], %[x]\n"
90+ : [estimate] "=f" (y) : [x] "f" (b));
91+
92+ /* Following Muller et al, page 168, equation 5.20.
93+
94+ h goes to 1/(2*sqrt(b))
95+ g goes to sqrt(b).
96+
97+ We need three iterations to get within 1ulp. */
98+
99+ /* Indicate that these can be performed prior to the branch. GCC
100+ insists on sinking them below the branch, however; it seems like
101+ they'd be better before the branch so that we can cover any latency
102+ from storing the argument and loading its high word. Oh well. */
103+
104+ g = b * y;
105+ h = 0.5 * y;
106+
107+ /* Handle small numbers by scaling. */
108+ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
109+ return __ieee754_sqrt (b * two108) * twom54;
110+
111+#define FMADD(a_, c_, b_) \
112+ ({ double __r; \
113+ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \
114+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
115+ __r;})
116+#define FNMSUB(a_, c_, b_) \
117+ ({ double __r; \
118+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \
119+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
120+ __r;})
121+
122+ r = FNMSUB (g, h, half);
123+ g = FMADD (g, r, g);
124+ h = FMADD (h, r, h);
125+
126+ r = FNMSUB (g, h, half);
127+ g = FMADD (g, r, g);
128+ h = FMADD (h, r, h);
129+
130+ r = FNMSUB (g, h, half);
131+ g = FMADD (g, r, g);
132+ h = FMADD (h, r, h);
133+
134+ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */
135+
136+ /* Final refinement. */
137+ d = FNMSUB (g, g, b);
138+
139+ fesetenv_register (fe);
140+ return FMADD (d, h, g);
141+ }
142+ }
143+ else if (b < 0)
144+ {
145+ /* For some reason, some PowerPC32 processors don't implement
146+ FE_INVALID_SQRT. */
147+#ifdef FE_INVALID_SQRT
148+ feraiseexcept (FE_INVALID_SQRT);
149+
150+ fenv_union_t u = { .fenv = fegetenv_register () };
151+ if ((u.l[1] & FE_INVALID) == 0)
152+#endif
153+ feraiseexcept (FE_INVALID);
154+ b = a_nan.value;
155+ }
156+ return f_wash (b);
157+}
158Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
159===================================================================
160--- /dev/null
161+++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
162@@ -0,0 +1,101 @@
163+/* Single-precision floating point square root.
164+ Copyright (C) 2010 Free Software Foundation, Inc.
165+ This file is part of the GNU C Library.
166+
167+ The GNU C Library is free software; you can redistribute it and/or
168+ modify it under the terms of the GNU Lesser General Public
169+ License as published by the Free Software Foundation; either
170+ version 2.1 of the License, or (at your option) any later version.
171+
172+ The GNU C Library is distributed in the hope that it will be useful,
173+ but WITHOUT ANY WARRANTY; without even the implied warranty of
174+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
175+ Lesser General Public License for more details.
176+
177+ You should have received a copy of the GNU Lesser General Public
178+ License along with the GNU C Library; if not, write to the Free
179+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
180+ 02111-1307 USA. */
181+
182+#include <math.h>
183+#include <math_private.h>
184+#include <fenv_libc.h>
185+#include <inttypes.h>
186+
187+#include <sysdep.h>
188+#include <ldsodefs.h>
189+
190+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
191+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
192+static const float threehalf = 1.5;
193+
194+/* The method is based on the descriptions in:
195+
196+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
197+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
198+
199+ We find the reciprocal square root and use that to compute the actual
200+ square root. */
201+
202+#ifdef __STDC__
203+float
204+__ieee754_sqrtf (float b)
205+#else
206+float
207+__ieee754_sqrtf (b)
208+ float b;
209+#endif
210+{
211+ if (__builtin_expect (b > 0, 1))
212+ {
213+#define FMSUB(a_, c_, b_) \
214+ ({ double __r; \
215+ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \
216+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
217+ __r;})
218+#define FNMSUB(a_, c_, b_) \
219+ ({ double __r; \
220+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \
221+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
222+ __r;})
223+
224+ if (__builtin_expect (b != a_inf.value, 1))
225+ {
226+ double y, x;
227+ fenv_t fe;
228+
229+ fe = fegetenv_register ();
230+
231+ relax_fenv_state ();
232+
233+ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */
234+ y = FMSUB (threehalf, b, b);
235+
236+ /* Initial estimate. */
237+ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
238+
239+ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */
240+ x = x * FNMSUB (y, x * x, threehalf);
241+ x = x * FNMSUB (y, x * x, threehalf);
242+ x = x * FNMSUB (y, x * x, threehalf);
243+
244+ /* All done. */
245+ fesetenv_register (fe);
246+ return x * b;
247+ }
248+ }
249+ else if (b < 0)
250+ {
251+ /* For some reason, some PowerPC32 processors don't implement
252+ FE_INVALID_SQRT. */
253+#ifdef FE_INVALID_SQRT
254+ feraiseexcept (FE_INVALID_SQRT);
255+
256+ fenv_union_t u = { .fenv = fegetenv_register () };
257+ if ((u.l[1] & FE_INVALID) == 0)
258+#endif
259+ feraiseexcept (FE_INVALID);
260+ b = a_nan.value;
261+ }
262+ return f_washf (b);
263+}
264Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
265===================================================================
266--- /dev/null
267+++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
268@@ -0,0 +1,134 @@
269+/* Double-precision floating point square root.
270+ Copyright (C) 2010 Free Software Foundation, Inc.
271+ This file is part of the GNU C Library.
272+
273+ The GNU C Library is free software; you can redistribute it and/or
274+ modify it under the terms of the GNU Lesser General Public
275+ License as published by the Free Software Foundation; either
276+ version 2.1 of the License, or (at your option) any later version.
277+
278+ The GNU C Library is distributed in the hope that it will be useful,
279+ but WITHOUT ANY WARRANTY; without even the implied warranty of
280+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
281+ Lesser General Public License for more details.
282+
283+ You should have received a copy of the GNU Lesser General Public
284+ License along with the GNU C Library; if not, write to the Free
285+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
286+ 02111-1307 USA. */
287+
288+#include <math.h>
289+#include <math_private.h>
290+#include <fenv_libc.h>
291+#include <inttypes.h>
292+
293+#include <sysdep.h>
294+#include <ldsodefs.h>
295+
296+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
297+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
298+static const float two108 = 3.245185536584267269e+32;
299+static const float twom54 = 5.551115123125782702e-17;
300+static const float half = 0.5;
301+
302+/* The method is based on the descriptions in:
303+
304+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
305+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
306+
307+ We find the actual square root and half of its reciprocal
308+ simultaneously. */
309+
310+#ifdef __STDC__
311+double
312+__ieee754_sqrt (double b)
313+#else
314+double
315+__ieee754_sqrt (b)
316+ double b;
317+#endif
318+{
319+ if (__builtin_expect (b > 0, 1))
320+ {
321+ double y, g, h, d, r;
322+ ieee_double_shape_type u;
323+
324+ if (__builtin_expect (b != a_inf.value, 1))
325+ {
326+ fenv_t fe;
327+
328+ fe = fegetenv_register ();
329+
330+ u.value = b;
331+
332+ relax_fenv_state ();
333+
334+ __asm__ ("frsqrte %[estimate], %[x]\n"
335+ : [estimate] "=f" (y) : [x] "f" (b));
336+
337+ /* Following Muller et al, page 168, equation 5.20.
338+
339+ h goes to 1/(2*sqrt(b))
340+ g goes to sqrt(b).
341+
342+ We need three iterations to get within 1ulp. */
343+
344+ /* Indicate that these can be performed prior to the branch. GCC
345+ insists on sinking them below the branch, however; it seems like
346+ they'd be better before the branch so that we can cover any latency
347+ from storing the argument and loading its high word. Oh well. */
348+
349+ g = b * y;
350+ h = 0.5 * y;
351+
352+ /* Handle small numbers by scaling. */
353+ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
354+ return __ieee754_sqrt (b * two108) * twom54;
355+
356+#define FMADD(a_, c_, b_) \
357+ ({ double __r; \
358+ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \
359+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
360+ __r;})
361+#define FNMSUB(a_, c_, b_) \
362+ ({ double __r; \
363+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \
364+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
365+ __r;})
366+
367+ r = FNMSUB (g, h, half);
368+ g = FMADD (g, r, g);
369+ h = FMADD (h, r, h);
370+
371+ r = FNMSUB (g, h, half);
372+ g = FMADD (g, r, g);
373+ h = FMADD (h, r, h);
374+
375+ r = FNMSUB (g, h, half);
376+ g = FMADD (g, r, g);
377+ h = FMADD (h, r, h);
378+
379+ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */
380+
381+ /* Final refinement. */
382+ d = FNMSUB (g, g, b);
383+
384+ fesetenv_register (fe);
385+ return FMADD (d, h, g);
386+ }
387+ }
388+ else if (b < 0)
389+ {
390+ /* For some reason, some PowerPC32 processors don't implement
391+ FE_INVALID_SQRT. */
392+#ifdef FE_INVALID_SQRT
393+ feraiseexcept (FE_INVALID_SQRT);
394+
395+ fenv_union_t u = { .fenv = fegetenv_register () };
396+ if ((u.l[1] & FE_INVALID) == 0)
397+#endif
398+ feraiseexcept (FE_INVALID);
399+ b = a_nan.value;
400+ }
401+ return f_wash (b);
402+}
403Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
404===================================================================
405--- /dev/null
406+++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
407@@ -0,0 +1,101 @@
408+/* Single-precision floating point square root.
409+ Copyright (C) 2010 Free Software Foundation, Inc.
410+ This file is part of the GNU C Library.
411+
412+ The GNU C Library is free software; you can redistribute it and/or
413+ modify it under the terms of the GNU Lesser General Public
414+ License as published by the Free Software Foundation; either
415+ version 2.1 of the License, or (at your option) any later version.
416+
417+ The GNU C Library is distributed in the hope that it will be useful,
418+ but WITHOUT ANY WARRANTY; without even the implied warranty of
419+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
420+ Lesser General Public License for more details.
421+
422+ You should have received a copy of the GNU Lesser General Public
423+ License along with the GNU C Library; if not, write to the Free
424+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
425+ 02111-1307 USA. */
426+
427+#include <math.h>
428+#include <math_private.h>
429+#include <fenv_libc.h>
430+#include <inttypes.h>
431+
432+#include <sysdep.h>
433+#include <ldsodefs.h>
434+
435+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
436+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
437+static const float threehalf = 1.5;
438+
439+/* The method is based on the descriptions in:
440+
441+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5;
442+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9
443+
444+ We find the reciprocal square root and use that to compute the actual
445+ square root. */
446+
447+#ifdef __STDC__
448+float
449+__ieee754_sqrtf (float b)
450+#else
451+float
452+__ieee754_sqrtf (b)
453+ float b;
454+#endif
455+{
456+ if (__builtin_expect (b > 0, 1))
457+ {
458+#define FMSUB(a_, c_, b_) \
459+ ({ double __r; \
460+ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \
461+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
462+ __r;})
463+#define FNMSUB(a_, c_, b_) \
464+ ({ double __r; \
465+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \
466+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \
467+ __r;})
468+
469+ if (__builtin_expect (b != a_inf.value, 1))
470+ {
471+ double y, x;
472+ fenv_t fe;
473+
474+ fe = fegetenv_register ();
475+
476+ relax_fenv_state ();
477+
478+ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */
479+ y = FMSUB (threehalf, b, b);
480+
481+ /* Initial estimate. */
482+ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b));
483+
484+ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */
485+ x = x * FNMSUB (y, x * x, threehalf);
486+ x = x * FNMSUB (y, x * x, threehalf);
487+ x = x * FNMSUB (y, x * x, threehalf);
488+
489+ /* All done. */
490+ fesetenv_register (fe);
491+ return x * b;
492+ }
493+ }
494+ else if (b < 0)
495+ {
496+ /* For some reason, some PowerPC32 processors don't implement
497+ FE_INVALID_SQRT. */
498+#ifdef FE_INVALID_SQRT
499+ feraiseexcept (FE_INVALID_SQRT);
500+
501+ fenv_union_t u = { .fenv = fegetenv_register () };
502+ if ((u.l[1] & FE_INVALID) == 0)
503+#endif
504+ feraiseexcept (FE_INVALID);
505+ b = a_nan.value;
506+ }
507+ return f_washf (b);
508+}
509Index: libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies
510===================================================================
511--- /dev/null
512+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies
513@@ -0,0 +1 @@
514+powerpc/powerpc32/603e/fpu
515Index: libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/7400/fpu/Implies
516===================================================================
517--- /dev/null
518+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/7400/fpu/Implies
519@@ -0,0 +1 @@
520+powerpc/powerpc32/603e/fpu
521Index: libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies
522===================================================================
523--- /dev/null
524+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies
525@@ -0,0 +1 @@
526+powerpc/powerpc32/603e/fpu
527Index: libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies
528===================================================================
529--- /dev/null
530+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies
531@@ -0,0 +1 @@
532+powerpc/powerpc64/e5500/fpu
533Index: libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies
534===================================================================
535--- /dev/null
536+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies
537@@ -0,0 +1 @@
538+powerpc/powerpc32/603e/fpu
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/ppc-sqrt_finite.patch b/meta/recipes-core/eglibc/eglibc-2.15/ppc-sqrt_finite.patch
deleted file mode 100644
index 52890510ce..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/ppc-sqrt_finite.patch
+++ /dev/null
@@ -1,112 +0,0 @@
1on ppc fixes the errors like below
2| ./.libs/libpulsecore-1.1.so: undefined reference to `__sqrt_finite'
3| collect2: ld returned 1 exit status
4
5Upstream-Status: Pending
6
7ChangeLog
8
92012-01-06 Khem Raj <raj.khem@gmail.com>
10
11 * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c: Add __*_finite alias.
12 Remove cruft.
13 * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c: Ditto.
14 * sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c: Ditto.
15 * sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c: Ditto.
16
17Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
18===================================================================
19--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c 2012-01-06 18:07:42.296909187 -0800
20+++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c 2012-01-06 18:09:22.572914856 -0800
21@@ -39,14 +39,8 @@
22 We find the actual square root and half of its reciprocal
23 simultaneously. */
24
25-#ifdef __STDC__
26 double
27 __ieee754_sqrt (double b)
28-#else
29-double
30-__ieee754_sqrt (b)
31- double b;
32-#endif
33 {
34 if (__builtin_expect (b > 0, 1))
35 {
36@@ -132,3 +126,4 @@
37 }
38 return f_wash (b);
39 }
40+strong_alias (__ieee754_sqrt, __sqrt_finite)
41Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
42===================================================================
43--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c 2012-01-06 18:10:37.068917644 -0800
44+++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c 2012-01-06 18:11:33.408920635 -0800
45@@ -37,14 +37,8 @@
46 We find the reciprocal square root and use that to compute the actual
47 square root. */
48
49-#ifdef __STDC__
50 float
51 __ieee754_sqrtf (float b)
52-#else
53-float
54-__ieee754_sqrtf (b)
55- float b;
56-#endif
57 {
58 if (__builtin_expect (b > 0, 1))
59 {
60@@ -99,3 +93,4 @@
61 }
62 return f_washf (b);
63 }
64+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
65Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
66===================================================================
67--- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c 2012-01-06 18:11:51.460925644 -0800
68+++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c 2012-01-06 18:12:39.344924405 -0800
69@@ -39,14 +39,8 @@
70 We find the actual square root and half of its reciprocal
71 simultaneously. */
72
73-#ifdef __STDC__
74 double
75 __ieee754_sqrt (double b)
76-#else
77-double
78-__ieee754_sqrt (b)
79- double b;
80-#endif
81 {
82 if (__builtin_expect (b > 0, 1))
83 {
84@@ -132,3 +126,4 @@
85 }
86 return f_wash (b);
87 }
88+strong_alias (__ieee754_sqrt, __sqrt_finite)
89Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
90===================================================================
91--- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c 2012-01-06 18:13:00.892924586 -0800
92+++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c 2012-01-06 18:15:27.992931106 -0800
93@@ -37,14 +37,8 @@
94 We find the reciprocal square root and use that to compute the actual
95 square root. */
96
97-#ifdef __STDC__
98 float
99 __ieee754_sqrtf (float b)
100-#else
101-float
102-__ieee754_sqrtf (b)
103- float b;
104-#endif
105 {
106 if (__builtin_expect (b > 0, 1))
107 {
108@@ -99,3 +93,4 @@
109 }
110 return f_washf (b);
111 }
112+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/relocatable_sdk.patch b/meta/recipes-core/eglibc/eglibc-2.15/relocatable_sdk.patch
deleted file mode 100644
index 0ee25d60d7..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/relocatable_sdk.patch
+++ /dev/null
@@ -1,81 +0,0 @@
1Upstream-Status: Inappropriate [SDK specific]
2
3This patch puts the dynamic loader path in the binaries, SYSTEM_DIRS strings
4and lengths as well as ld.so.cache path in the dynamic loader to specific
5sections in memory. The sections that contain paths have been allocated a 4096
6byte section, which is the maximum path length in linux. This will allow the
7relocating script to parse the ELF binary, detect the section and easily replace
8the strings in a certain path.
9
10Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
11
12Index: libc/elf/interp.c
13===================================================================
14--- libc.orig/elf/interp.c
15+++ libc/elf/interp.c
16@@ -17,5 +17,5 @@
17 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18 02111-1307 USA. */
19
20-const char __invoke_dynamic_linker__[] __attribute__ ((section (".interp")))
21+const char __invoke_dynamic_linker__[4096] __attribute__ ((section (".interp")))
22 = RUNTIME_LINKER;
23Index: libc/elf/dl-load.c
24===================================================================
25--- libc.orig/elf/dl-load.c
26+++ libc/elf/dl-load.c
27@@ -145,8 +145,8 @@ static size_t max_capstrlen attribute_re
28 /* Get the generated information about the trusted directories. */
29 #include "trusted-dirs.h"
30
31-static const char system_dirs[] = SYSTEM_DIRS;
32-static const size_t system_dirs_len[] =
33+static const char system_dirs[4096] __attribute__ ((section (".sysdirs"))) = SYSTEM_DIRS;
34+volatile static const size_t system_dirs_len[] __attribute__ ((section (".sysdirslen"))) =
35 {
36 SYSTEM_DIRS_LEN
37 };
38Index: libc/elf/dl-cache.c
39===================================================================
40--- libc.orig/elf/dl-cache.c
41+++ libc/elf/dl-cache.c
42@@ -134,6 +134,10 @@ do \
43 while (0)
44
45
46+const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))) =
47+ SYSCONFDIR "/ld.so.cache";
48+
49+
50 int
51 internal_function
52 _dl_cache_libcmp (const char *p1, const char *p2)
53Index: libc/elf/ldconfig.c
54===================================================================
55--- libc.orig/elf/ldconfig.c
56+++ libc/elf/ldconfig.c
57@@ -167,6 +167,9 @@ static struct argp argp =
58 options, parse_opt, NULL, doc, NULL, more_help, NULL
59 };
60
61+
62+extern const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache")));
63+
64 /* Check if string corresponds to an important hardware capability or
65 a platform. */
66 static int
67Index: libc/sysdeps/generic/dl-cache.h
68===================================================================
69--- libc.orig/sysdeps/generic/dl-cache.h
70+++ libc/sysdeps/generic/dl-cache.h
71@@ -28,10 +28,6 @@
72 ((flags) == 1 || (flags) == _DL_CACHE_DEFAULT_ID)
73 #endif
74
75-#ifndef LD_SO_CACHE
76-# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache"
77-#endif
78-
79 #ifndef add_system_dir
80 # define add_system_dir(dir) add_dir (dir)
81 #endif
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/stack-protector-test.patch b/meta/recipes-core/eglibc/eglibc-2.15/stack-protector-test.patch
deleted file mode 100644
index dbf70a974f..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/stack-protector-test.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1Test for -fstack-protector is compile only test. One might have the option but
2might have build the compiler with --disable-ssp which means ssp should not be
3enabled. Therefore we change the test to a link time test. It will fail if
4libssp is not available.
5
6Upstream-Status: Pending
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9
10Index: libc/configure
11===================================================================
12--- libc.orig/configure
13+++ libc/configure
14@@ -6937,7 +6937,7 @@ if test "${libc_cv_ssp+set}" = set; then
15 $as_echo_n "(cached) " >&6
16 else
17 if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Werror -fstack-protector
18- -o /dev/null -c -x c /dev/null 1>&5'
19+ -o /dev/null -x c /dev/null 1>&5'
20 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
21 (eval $ac_try) 2>&5
22 ac_status=$?
23Index: libc/configure.in
24===================================================================
25--- libc.orig/configure.in
26+++ libc/configure.in
27@@ -1787,7 +1787,7 @@ AC_SUBST(fno_unit_at_a_time)
28
29 AC_CACHE_CHECK(for -fstack-protector, libc_cv_ssp, [dnl
30 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Werror -fstack-protector
31- -o /dev/null -c -x c /dev/null 1>&AS_MESSAGE_LOG_FD])
32+ -o /dev/null -x c /dev/null 1>&AS_MESSAGE_LOG_FD])
33 then
34 libc_cv_ssp=yes
35 else
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/use-localstatedir-for-vardbdir.patch b/meta/recipes-core/eglibc/eglibc-2.15/use-localstatedir-for-vardbdir.patch
deleted file mode 100644
index 8392c1806d..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/use-localstatedir-for-vardbdir.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1
2localstatedir is set to be the /var directory, so use
3it for the base of the vardbdir so it's properly relocatable.
4
5Upstream-Status: Pending
6
7Signed-off-by: Saul Wold <sgw@linux.intel.com>
8
9Index: libc/Makeconfig
10===================================================================
11--- libc.orig/Makeconfig
12+++ libc/Makeconfig
13@@ -293,7 +293,7 @@ inst_sysconfdir = $(install_root)$(sysco
14
15 # Directory for the database files and Makefile for nss_db.
16 ifndef vardbdir
17-vardbdir = /var/db
18+vardbdir = $(localstatedir)/db
19 endif
20 inst_vardbdir = $(install_root)$(vardbdir)
21
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/use-sysroot-cxx-headers.patch b/meta/recipes-core/eglibc/eglibc-2.15/use-sysroot-cxx-headers.patch
deleted file mode 100644
index 7f8225371c..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/use-sysroot-cxx-headers.patch
+++ /dev/null
@@ -1,42 +0,0 @@
1build system of glibc currently adds the cxx headers path by detecting
2it using provided CXX and expects that they are installed w.r.t to standard
3installation location but in OE we install and use cxx headers from target
4sysroot therefore that code needs to be adapted for OE
5
6Upstream-Status: Inappropriate [OE-specific]
7
8-Khem
9
10
11--- a/configure.in
12+++ b/configure.in
13@@ -1094,11 +1094,10 @@ if test -n "$sysheaders"; then
14 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
15 if test -n "$CXX"; then
16 CXX_SYSINCLUDES=
17- cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
18 cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
19 for d in include "$cxxmachine/include"; do
20- i=../../../../$d/c++/$cxxversion
21- cxxheaders=`$CXX -print-file-name="$i"` &&
22+ i="$prefix/$d/c++"
23+ cxxheaders=`$CXX -print-sysroot`"$i" &&
24 test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
25 CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
26 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
27--- a/configure
28+++ b/configure
29@@ -5618,11 +5618,10 @@ if test -n "$sysheaders"; then
30 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
31 if test -n "$CXX"; then
32 CXX_SYSINCLUDES=
33- cxxversion=`$CXX -dumpversion 2>&5` &&
34 cxxmachine=`$CXX -dumpmachine 2>&5` &&
35 for d in include "$cxxmachine/include"; do
36- i=../../../../$d/c++/$cxxversion
37- cxxheaders=`$CXX -print-file-name="$i"` &&
38+ i="$prefix/$d/c++"
39+ cxxheaders=`$CXX -print-sysroot`"$i" &&
40 test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
41 CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
42 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/x86_fenv.patch b/meta/recipes-core/eglibc/eglibc-2.15/x86_fenv.patch
deleted file mode 100644
index 7193f98cb9..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.15/x86_fenv.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1Without this patch it fails to inline that function
2since we do not have __SSE_MATH__ in OE build.
3
4Signed-off-by: Khem Raj <raj.khem@gmail.com>
5
6Upstream-Status: Inappropriate [OE-specific]
7
8--- a/sysdeps/x86_64/fpu/bits/fenv.h
9+++ b/sysdeps/x86_64/fpu/bits/fenv.h
10@@ -112,16 +112,24 @@ __NTH (feraiseexcept (int __excepts))
11 {
12 /* One example of a invalid operation is 0.0 / 0.0. */
13 float __f = 0.0;
14-
15+# if defined __SSE_MATH__ || __WORDSIZE == 64
16 __asm__ __volatile__ ("divss %0, %0 " : : "x" (__f));
17+# else
18+ __asm__ __volatile__ ("fdiv %%st, %%st(0); fwait"
19+ : "=t" (__f) : "0" (__f));
20+# endif
21 (void) &__f;
22 }
23 if ((FE_DIVBYZERO & __excepts) != 0)
24 {
25 float __f = 1.0;
26 float __g = 0.0;
27-
28+# if defined __SSE_MATH__ || __WORDSIZE == 64
29 __asm__ __volatile__ ("divss %1, %0" : : "x" (__f), "x" (__g));
30+# else
31+ __asm__ __volatile__ ("fdivp %%st(1), %%st; fwait"
32+ : "=t" (__f) : "0" (__f), "u" (__g) : "st(1)");
33+# endif
34 (void) &__f;
35 }
36
diff --git a/meta/recipes-core/eglibc/eglibc-initial_2.15.bb b/meta/recipes-core/eglibc/eglibc-initial_2.15.bb
deleted file mode 100644
index 787c762609..0000000000
--- a/meta/recipes-core/eglibc/eglibc-initial_2.15.bb
+++ /dev/null
@@ -1,6 +0,0 @@
1require eglibc_${PV}.bb
2require eglibc-initial.inc
3
4do_configure_prepend () {
5 unset CFLAGS
6}
diff --git a/meta/recipes-core/eglibc/eglibc-locale_2.15.bb b/meta/recipes-core/eglibc/eglibc-locale_2.15.bb
deleted file mode 100644
index ce6c1d2320..0000000000
--- a/meta/recipes-core/eglibc/eglibc-locale_2.15.bb
+++ /dev/null
@@ -1 +0,0 @@
1require eglibc-locale.inc
diff --git a/meta/recipes-core/eglibc/eglibc_2.15.bb b/meta/recipes-core/eglibc/eglibc_2.15.bb
deleted file mode 100644
index 69db5c91ae..0000000000
--- a/meta/recipes-core/eglibc/eglibc_2.15.bb
+++ /dev/null
@@ -1,239 +0,0 @@
1require eglibc.inc
2
3SRCREV = "19294"
4
5DEPENDS += "gperf-native"
6PR = "r13"
7PR_append = "+svnr${SRCPV}"
8
9EGLIBC_BRANCH="eglibc-2_15"
10SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};protocol=http \
11 file://eglibc-svn-arm-lowlevellock-include-tls.patch \
12 file://IO-acquire-lock-fix.patch \
13 file://mips-rld-map-check.patch \
14 file://stack-protector-test.patch \
15 file://etc/ld.so.conf \
16 file://generate-supported.mk \
17 file://ppc-sqrt.patch \
18 file://multilib_readlib.patch \
19 file://eglibc-rpc-export-again.patch \
20 file://glibc-2.14-libdl-crash.patch \
21 file://use-sysroot-cxx-headers.patch \
22 file://x86_fenv.patch \
23 file://ppc-sqrt_finite.patch \
24 file://GLRO_dl_debug_mask.patch \
25 file://initgroups_keys.patch \
26 file://use-localstatedir-for-vardbdir.patch \
27 file://eglibc_fix_findidx_parameters.patch \
28 file://add_HAVE_ARM_PCS_VFP.patch \
29 file://ldso_arm_hf_support.patch \
30 "
31LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \
32 file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \
33 file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
34 file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff "
35
36SRC_URI_append_virtclass-nativesdk = " file://ld-search-order.patch \
37 file://relocatable_sdk.patch \
38 "
39S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
40B = "${WORKDIR}/build-${TARGET_SYS}"
41
42PACKAGES_DYNAMIC = "libc6*"
43RPROVIDES_${PN}-dev = "libc6-dev virtual-libc-dev"
44PROVIDES_${PN}-dbg = "glibc-dbg"
45
46# the -isystem in bitbake.conf screws up glibc do_stage
47BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
48TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${layout_includedir}"
49
50GLIBC_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"
51
52FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/eglibc-${PV}', '${FILE_DIRNAME}/eglibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
53
54#
55# For now, we will skip building of a gcc package if it is a uclibc one
56# and our build is not a uclibc one, and we skip a glibc one if our build
57# is a uclibc build.
58#
59# See the note in gcc/gcc_3.4.0.oe
60#
61
62python __anonymous () {
63 import re
64 uc_os = (re.match('.*uclibc$', d.getVar('TARGET_OS', True)) != None)
65 if uc_os:
66 raise bb.parse.SkipPackage("incompatible with target %s" %
67 d.getVar('TARGET_OS', True))
68}
69
70export libc_cv_slibdir = "${base_libdir}"
71
72EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
73 --without-cvs --disable-profile --disable-debug --without-gd \
74 --enable-clocale=gnu \
75 --enable-add-ons \
76 --with-headers=${STAGING_INCDIR} \
77 --without-selinux \
78 ${GLIBC_EXTRA_OECONF}"
79
80EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}"
81
82do_unpack_append() {
83 bb.build.exec_func('do_move_ports', d)
84}
85
86do_move_ports() {
87 if test -d ${WORKDIR}/${EGLIBC_BRANCH}/ports ; then
88 rm -rf ${S}/ports
89 mv ${WORKDIR}/${EGLIBC_BRANCH}/ports ${S}/
90 fi
91}
92
93do_patch_append() {
94 bb.build.exec_func('do_fix_ia_headers', d)
95 bb.build.exec_func('do_fix_readlib_c', d)
96}
97
98# for mips eglibc now builds syscall tables for all abi's
99# so we make sure that we choose right march option which is
100# compatible with o32,n32 and n64 abi's
101# e.g. -march=mips32 is not compatible with n32 and n64 therefore
102# we filter it out in such case -march=from-abi which will be
103# mips1 when using o32 and mips3 when using n32/n64
104
105TUNE_CCARGS_mips := "${@oe_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}"
106TUNE_CCARGS_mipsel := "${@oe_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}"
107
108# We need to ensure that all of the i386 and x86_64 headers are identical
109# to support the multilib case. We do this by copying headers from x86_64
110# to i386 directories. Normally when hand building eglibc or a combined
111# system you would build 32-bit, and then overwrite any files with the x86_64
112# versions.
113#
114# Each time eglibc is updated, this will need to be re-evaluated. In order
115# to do this, disable this function. Build eglibc for a 32-bit and a 64-bit
116# IA32 target. Compare the contents of the include files -- comments specific
117# to the x86_64 version compared to the 32-bit one.
118#
119# For eglibc 2.13, each conflict noted below:
120# bits/a.out.h - Add support for __WORDSIZE = 64
121# bits/byteswap.h - Copyright date mismatch, add support for __WORDSIZE = 64
122# bits/endian.h - Comment mismatch
123# bits/environment.h - add support for __WORDSIZE = 64
124# bits/fcntl.h - Comment/Copyright date mismatch, add support for __WORDSIZE = 64
125# bits/fenv.h - Copyright date mismatch, add support for __WORDSIZE = 64
126# bits/huge_vall.h - Comment/Copyright date mismatch, remove support for older gcc
127# bits/link.h - Function name difference, add x86_64 definitions
128# bits/mathdef.h - Copyright date mismatch, add support for __WORDSIZE = 64
129# bits/mathinline.h - Copyright date mismatch, contributed by mismatch, remove support for older gcc/assembly optimization, add support for __WORDSIZE = 64
130# bits/mman.h - Header/Copyright date mismatch, add MAP_32BIT definition
131# bits/msq.h - Copyright date mismatch, add __WORDSIZE = 32 definitions
132# bits/pthread_type.h -- Contributed by added, add support for __WORDSIZE = 64
133# bits/select.h - Copyright date mismatch, add support for __WORDSIZE = 64
134# bits/semaphore.h - Copyright date mismatch, add support for __WORDSIZE = 64
135# bits/sem.h - Copyright date mismatch
136# bits/setjmp.h - Copyrgiht date mismatch, add support for __WORDSIZE = 64
137# bits/shm.h - Copyright date mismatch, add support for __WORDSIZE = 32
138# bits/sigcontext.h - Copyright date mismatch, license wording mismatch, add support for __WORDSIZE = 32
139# bits/stat.h - Copyright date mismatch, add support for __WORDSIZE = 32 and __WORDSIZE = 64
140# bits/string.h - Header/Copyright date mismatch, remove assembly optimizations
141# bits/syscall.h - different order, some different syscalls listed
142# bits/wchar.h - Change the way the definitions are done
143# bits/wordsize.h - Different header, remove license notice, add __x86_64__ support
144# bits/xtitypes.h - Header difference, different typedef format
145# bits/fpu_control.h - header difference, revised comments, updated assembly macros
146# sys/debugreg.h - Copyright date mismatch, new definition and added __WORDSIZE=64 support
147# sys/epoll.h - Copyright date mismatch, slightly different definitions
148# sys/io.h - Copyright date mismatch, slightly different assembly formats
149# sys/perm.h - Copyright date mismatch
150# sys/procfs.h - Copyright date mismatch, support for __WORDSIZE = 32
151# sys/reg.h - Copyright date mismatch, support for __WORDSIZE = 64
152# sys/ucontext.h - Copyright date mismatch, support for __WORDSIZE = 64
153# sys/user.h - Copyright date mismatch, support for __WORDSIZE = 64
154#
155# we rm something to return to the default version
156#
157do_fix_ia_headers() {
158 cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/a.out.h ${S}/sysdeps/unix/sysv/linux/i386/bits/a.out.h
159 cp ${S}/sysdeps/x86_64/bits/byteswap.h ${S}/sysdeps/i386/bits/byteswap.h
160 cp ${S}/sysdeps/x86_64/bits/endian.h ${S}/sysdeps/i386/bits/endian.h
161 cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/environments.h ${S}/sysdeps/unix/sysv/linux/i386/bits/environments.h
162 cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h ${S}/sysdeps/unix/sysv/linux/i386/bits/fcntl.h
163 cp ${S}/sysdeps/x86_64/fpu/bits/fenv.h ${S}/sysdeps/i386/fpu/bits/fenv.h
164 rm -f ${S}/sysdeps/i386/bits/huge_vall.h
165 cp ${S}/sysdeps/x86_64/bits/link.h ${S}/sysdeps/i386/bits/link.h
166 cp ${S}/sysdeps/x86_64/bits/mathdef.h ${S}/sysdeps/i386/bits/mathdef.h
167 cp ${S}/sysdeps/x86_64/fpu/bits/mathinline.h ${S}/sysdeps/i386/fpu/bits/mathinline.h
168 cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/mman.h ${S}/sysdeps/unix/sysv/linux/i386/bits/mman.h
169 cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/msq.h ${S}/sysdeps/unix/sysv/linux/i386/bits/msq.h
170 cp ${S}/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h ${S}/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
171 cp ${S}/sysdeps/x86_64/bits/select.h ${S}/sysdeps/i386/bits/select.h
172 cp ${S}/nptl/sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h ${S}/nptl/sysdeps/unix/sysv/linux/i386/bits/semaphore.h
173 rm -f ${S}/sysdeps/unix/sysv/linux/x86_64/bits/sem.h
174 cp ${S}/sysdeps/x86_64/bits/setjmp.h ${S}/sysdeps/i386/bits/setjmp.h
175 cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/shm.h ${S}/sysdeps/unix/sysv/linux/i386/bits/shm.h
176 cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h ${S}/sysdeps/unix/sysv/linux/i386/bits/sigcontext.h
177 cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/stat.h ${S}/sysdeps/unix/sysv/linux/i386/bits/stat.h
178 rm -f ${S}/sysdeps/i386/i486/bits/string.h ; cp ${S}/sysdeps/x86_64/bits/string.h ${S}/sysdeps/i386/bits/string.h
179 # Skip syscall.h, see do_install
180 rm -f ${S}/sysdeps/unix/sysv/linux/i386/bits/wchar.h
181 cp ${S}/sysdeps/x86_64/bits/wordsize.h ${S}/sysdeps/i386/bits/wordsize.h
182 cp ${S}/sysdeps/x86_64/bits/xtitypes.h ${S}/sysdeps/i386/bits/xtitypes.h
183 # i386 version is correct, x86_64 is incorrect for fpu_control.h
184 cp ${S}/sysdeps/i386/fpu_control.h ${S}/sysdeps/x86_64/fpu_control.h
185 cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h ${S}/sysdeps/unix/sysv/linux/i386/sys/debugreg.h
186 cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/epoll.h ${S}/sysdeps/unix/sysv/linux/i386/sys/epoll.h
187 cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/io.h ${S}/sysdeps/unix/sysv/linux/i386/sys/io.h
188 cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/perm.h ${S}/sysdeps/unix/sysv/linux/i386/sys/perm.h
189 cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h ${S}/sysdeps/unix/sysv/linux/i386/sys/procfs.h
190 cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/reg.h ${S}/sysdeps/unix/sysv/linux/i386/sys/reg.h
191 cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h ${S}/sysdeps/unix/sysv/linux/i386/sys/ucontext.h
192 cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/user.h ${S}/sysdeps/unix/sysv/linux/i386/sys/user.h
193}
194
195do_fix_readlib_c () {
196 sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c
197}
198
199do_configure () {
200# override this function to avoid the autoconf/automake/aclocal/autoheader
201# calls for now
202# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
203# version check and doesn't really help with anything
204 if [ -z "`which rpcgen`" ]; then
205 echo "rpcgen not found. Install glibc-devel."
206 exit 1
207 fi
208 (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
209 find ${S} -name "configure" | xargs touch
210 CPPFLAGS="" oe_runconf
211}
212
213rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
214 yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
215 rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
216
217do_compile () {
218 # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
219 unset LDFLAGS
220 base_do_compile
221 (
222 cd ${S}/sunrpc/rpcsvc
223 for r in ${rpcsvc}; do
224 h=`echo $r|sed -e's,\.x$,.h,'`
225 rpcgen -h $r -o $h || bbwarn "unable to generate header for $r"
226 done
227 )
228 echo "Adjust ldd script"
229 if [ -n "${RTLDLIST}" ]
230 then
231 sed -i ${B}/elf/ldd -e 's#^\(RTLDLIST=\)"\(.*\)"$#\1\2#'
232 sed -i ${B}/elf/ldd -e 's#^\(RTLDLIST=\)\(.*\)$#\1"${RTLDLIST} \2"#'
233 fi
234
235}
236
237require eglibc-package.inc
238
239BBCLASSEXTEND = "nativesdk"