summaryrefslogtreecommitdiffstats
path: root/meta/packages
diff options
context:
space:
mode:
Diffstat (limited to 'meta/packages')
-rw-r--r--meta/packages/glibc/files/5090_all_stubs-rule-fix.patch39
-rw-r--r--meta/packages/glibc/files/glibc-2.5-local-dynamic-resolvconf.patch41
-rw-r--r--meta/packages/glibc/files/glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch20
-rw-r--r--meta/packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch30
-rw-r--r--meta/packages/glibc/files/no-hwcaps.patch52
-rw-r--r--meta/packages/glibc/files/nopageheader.patch12
-rw-r--r--meta/packages/glibc/files/nptl-crosscompile-2.3.6.patch175
-rw-r--r--meta/packages/glibc/glibc-2.10.1/etc/ld.so.conf (renamed from meta/packages/glibc/files/etc/ld.so.conf)0
-rw-r--r--meta/packages/glibc/glibc-2.10.1/fhs-linux-paths.patch (renamed from meta/packages/glibc/files/fhs-linux-paths.patch)0
-rw-r--r--meta/packages/glibc/glibc-2.10.1/generate-supported.mk (renamed from meta/packages/glibc/files/generate-supported.mk)0
-rw-r--r--meta/packages/glibc/glibc-2.4/arm-longlong.patch58
-rw-r--r--meta/packages/glibc/glibc-2.4/arm-memcpy.patch758
-rw-r--r--meta/packages/glibc/glibc-2.4/arm_eabi_ipc_fix.patch94
-rw-r--r--meta/packages/glibc/glibc-2.4/dl-cache-libcmp.patch10
-rw-r--r--meta/packages/glibc/glibc-2.4/dyn-ldconfig-20041128.patch22
-rw-r--r--meta/packages/glibc/glibc-2.4/dyn-ldconfig.patch62
-rw-r--r--meta/packages/glibc/glibc-2.4/eabi_kernel_version_hack.patch27
-rw-r--r--meta/packages/glibc/glibc-2.4/fixup-aeabi-syscalls.patch329
-rw-r--r--meta/packages/glibc/glibc-2.4/generic-bits_select.h35
-rw-r--r--meta/packages/glibc/glibc-2.4/generic-bits_time.h75
-rw-r--r--meta/packages/glibc/glibc-2.4/generic-bits_types.h200
-rw-r--r--meta/packages/glibc/glibc-2.4/generic-bits_typesizes.h66
-rw-r--r--meta/packages/glibc/glibc-2.4/glibc-2.4-compile.patch29
-rw-r--r--meta/packages/glibc/glibc-2.4/glibc-2.4-openat-3.patch133
-rw-r--r--meta/packages/glibc/glibc-2.4/glibc-arm-no-procinfo_h.patch325
-rw-r--r--meta/packages/glibc/glibc-2.4/glibc-check_pf.patch343
-rw-r--r--meta/packages/glibc/glibc-2.4/glibc-include-fixed.patch54
-rw-r--r--meta/packages/glibc/glibc-2.4/ldd-unbash.patch11
-rw-r--r--meta/packages/glibc/glibc-2.4/ldsocache-varrun.patch18
-rw-r--r--meta/packages/glibc/glibc-2.4/local-stdio-lock.diff34
-rw-r--r--meta/packages/glibc/glibc-2.4/no-z-defs.patch9
-rw-r--r--meta/packages/glibc/glibc-2.4/nptl-crosscompile.patch26
-rw-r--r--meta/packages/glibc/glibc-2.4/powerpc-sqrt-hack.diff25
-rw-r--r--meta/packages/glibc/glibc-2.4/zecke-sane-readelf.patch149
-rw-r--r--meta/packages/glibc/glibc-2.9/arm-check-pf.patch14
-rw-r--r--meta/packages/glibc/glibc-2.9/arm-longlong.patch58
-rw-r--r--meta/packages/glibc/glibc-2.9/arm-lowlevellock-include-tls.patch12
-rw-r--r--meta/packages/glibc/glibc-2.9/arm-memcpy.patch758
-rw-r--r--meta/packages/glibc/glibc-2.9/dl-cache-libcmp.patch10
-rw-r--r--meta/packages/glibc/glibc-2.9/glibc-2.9-enable-binutils-2.2.patch35
-rw-r--r--meta/packages/glibc/glibc-2.9/glibc-2.9-use-_begin.patch28
-rw-r--r--meta/packages/glibc/glibc-2.9/glibc-arm-IO-acquire-lock-fix.diff13
-rw-r--r--meta/packages/glibc/glibc-2.9/glibc-arm-no-asm-page.patch15
-rw-r--r--meta/packages/glibc/glibc-2.9/local-args6.diff12
-rw-r--r--meta/packages/glibc/glibc-2.9/march-i686.patch38
-rw-r--r--meta/packages/glibc/glibc-2.9/nscd-init.patch39
-rw-r--r--meta/packages/glibc/glibc-2.9/rulesfix.patch13
-rw-r--r--meta/packages/glibc/glibc-2.9/tls_i486.patch14
-rw-r--r--meta/packages/glibc/glibc-cvs-2.3.5/arm-audit.patch58
-rw-r--r--meta/packages/glibc/glibc-cvs-2.3.5/arm-audit2.patch18
-rw-r--r--meta/packages/glibc/glibc-cvs-2.3.5/arm-longlong.patch59
-rw-r--r--meta/packages/glibc/glibc-cvs-2.3.5/arm-memcpy.patch758
-rw-r--r--meta/packages/glibc/glibc-cvs-2.3.5/arm-no-hwcap.patch11
-rw-r--r--meta/packages/glibc/glibc-cvs-2.3.5/dl-cache-libcmp.patch10
-rw-r--r--meta/packages/glibc/glibc-cvs-2.3.5/dyn-ldconfig-20041128.patch22
-rw-r--r--meta/packages/glibc/glibc-cvs-2.3.5/headers_fix.patch16
-rw-r--r--meta/packages/glibc/glibc-cvs-2.3.5/ldsocache-varrun.patch18
-rw-r--r--meta/packages/glibc/glibc-initial_2.4.bb2
-rw-r--r--meta/packages/glibc/glibc-initial_2.5.bb3
-rw-r--r--meta/packages/glibc/glibc-initial_2.6.1.bb6
-rw-r--r--meta/packages/glibc/glibc-initial_2.9.bb6
-rw-r--r--meta/packages/glibc/glibc-initial_csl-2005q3-2.bb3
-rw-r--r--meta/packages/glibc/glibc_2.3.5+cvs20050627.bb110
-rw-r--r--meta/packages/glibc/glibc_2.4.bb137
-rw-r--r--meta/packages/glibc/glibc_2.5.bb148
-rw-r--r--meta/packages/glibc/glibc_2.6.1.bb156
-rw-r--r--meta/packages/glibc/glibc_2.9.bb161
-rw-r--r--meta/packages/glibc/glibc_csl-2005q3-2.bb89
68 files changed, 0 insertions, 6111 deletions
diff --git a/meta/packages/glibc/files/5090_all_stubs-rule-fix.patch b/meta/packages/glibc/files/5090_all_stubs-rule-fix.patch
deleted file mode 100644
index c445a5296e..0000000000
--- a/meta/packages/glibc/files/5090_all_stubs-rule-fix.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1Index: Makerules
2===================================================================
3RCS file: /cvs/glibc/libc/Makerules,v
4retrieving revision 1.430
5diff -u -r1.430 Makerules
6--- libc/Makerules 5 Mar 2005 19:24:32 -0000 1.430
7+++ libc/Makerules 22 Apr 2005 18:31:27 -0000
8@@ -1390,15 +1390,26 @@
9 $(addprefix $(objpfx),$(extra-objs))
10 $(objpfx)stubs: $(objs-for-stubs)
11 ifneq (,$(strip $(objs-for-stubs)))
12- $(OBJDUMP) -h $^ | \
13- $(AWK) '/\.gnu\.glibc-stub\./ { \
14- sub(/\.gnu\.glibc-stub\./, "", $$2); \
15- stubs[$$2] = 1; } \
16- END { for (s in stubs) print "#define __stub_" s }' > $@T
17+ $(stub-obj-list)
18+ cat $@L | xargs \
19+ $(OBJDUMP) -h | \
20+ $(AWK) '/\.gnu\.glibc-stub\./ { \
21+ sub(/\.gnu\.glibc-stub\./, "", $$2); \
22+ stubs[$$2] = 1; } \
23+ END { for (s in stubs) print "#define __stub_" s }' \
24+ > $@T
25+ -rm -f $@L
26 mv -f $@T $@
27 else
28 > $@
29 endif
30+
31+define stub-obj-list
32+-@rm -f $@L
33+-@echo "Generating stub obj list..."
34+$(foreach file,$^,
35+@echo >> $@L '$(file)')
36+endef
37
38 # This information is not used for making distributions any more.
39 # But it's used by MakeTAGS for making TAGS files and the .pot files.
diff --git a/meta/packages/glibc/files/glibc-2.5-local-dynamic-resolvconf.patch b/meta/packages/glibc/files/glibc-2.5-local-dynamic-resolvconf.patch
deleted file mode 100644
index e137287dd1..0000000000
--- a/meta/packages/glibc/files/glibc-2.5-local-dynamic-resolvconf.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1# All lines beginning with `# DP:' are a description of the patch.
2# DP: Description: allow dynamic long-running processes to
3# DP: re-read a dynamically updated resolv.conf on the fly
4# DP: Dpatch author: Adam Conrad <adconrad@ubuntu.com>
5# DP: Patch author: Thorsten Kukuk <kukuk@suse.de>
6# DP: Upstream status: Ubuntu-Specific
7# DP: Date: 2006-01-13 08:14:21 UTC
8
9Index: resolv/res_libc.c
10===================================================================
11--- resolv/res_libc.c.orig
12+++ resolv/res_libc.c
13@@ -22,7 +22,7 @@
14 #include <arpa/nameser.h>
15 #include <resolv.h>
16 #include <bits/libc-lock.h>
17-
18+#include <sys/stat.h>
19
20 /* The following bit is copied from res_data.c (where it is #ifdef'ed
21 out) since res_init() should go into libc.so but the rest of that
22@@ -94,8 +94,17 @@
23 int
24 __res_maybe_init (res_state resp, int preinit)
25 {
26- if (resp->options & RES_INIT) {
27- if (__res_initstamp != resp->_u._ext.initstamp) {
28+ static time_t last_mtime;
29+ struct stat statbuf;
30+ int ret;
31+
32+
33+ if (resp->options & RES_INIT) {
34+ ret = stat (_PATH_RESCONF, &statbuf);
35+ if (__res_initstamp != resp->_u._ext.initstamp
36+ || (ret == 0) && (last_mtime != statbuf.st_mtime))
37+ {
38+ last_mtime = statbuf.st_mtime;
39 if (resp->nscount > 0) {
40 __res_iclose (resp, true);
41 return __res_vinit (resp, 1);
diff --git a/meta/packages/glibc/files/glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch b/meta/packages/glibc/files/glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch
deleted file mode 100644
index 33d5282b90..0000000000
--- a/meta/packages/glibc/files/glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch
+++ /dev/null
@@ -1,20 +0,0 @@
1Submitted By: Joe Ciccone <jciccone@linuxfromscratch.org>
2Date: 07-02-2007
3Initial Package Version: 2.6
4Origin: http://sourceware.org/ml/libc-ports/2007-05/msg00051.html
5Upstream Status: Unknown
6Description: Defines RTLD_SINGLE_THREAD_P for arm.
7
8diff -Naur glibc-2.6.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h glibc-2.6/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
9--- glibc-2.6.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h 2007-07-02 17:39:22.000000000 -0400
10+++ glibc-2.6/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h 2007-07-02 17:39:36.000000000 -0400
11@@ -126,3 +126,9 @@
12 # define NO_CANCELLATION 1
13
14 #endif
15+
16+#ifndef __ASSEMBLER__
17+# define RTLD_SINGLE_THREAD_P \
18+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
19+ header.multiple_threads) == 0, 1)
20+#endif
diff --git a/meta/packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch b/meta/packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch
deleted file mode 100644
index 6979229279..0000000000
--- a/meta/packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1Source: http://sourceware.org/ml/libc-alpha/2008-01/msg00017.html
2
3I am checking this x86 assembler patch:
4
5http://sourceware.org/ml/binutils/2008-01/msg00148.html
6
7to check operand size. fnstsw stores 16bit into %ax. The upper
816bit of %eax is unchanged. The new assembler will disallow
9"fnstsw %eax". Here is a patch for glibc.
10
11
12H.J.
13
14---
15 sysdeps/i386/fpu/ftestexcept.c | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-)
17
18Index: glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c
19===================================================================
20--- glibc-2.6.1.orig/sysdeps/i386/fpu/ftestexcept.c 2008-07-19 11:00:45.000000000 -0700
21+++ glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c 2008-07-19 11:01:25.000000000 -0700
22@@ -26,7 +26,7 @@
23 int
24 fetestexcept (int excepts)
25 {
26- int temp;
27+ short temp;
28 int xtemp = 0;
29
30 /* Get current exceptions. */
diff --git a/meta/packages/glibc/files/no-hwcaps.patch b/meta/packages/glibc/files/no-hwcaps.patch
deleted file mode 100644
index 5cc2821c2f..0000000000
--- a/meta/packages/glibc/files/no-hwcaps.patch
+++ /dev/null
@@ -1,52 +0,0 @@
1Disable the extra hwcaps fields, they cause ld.so to look in many strange paths
2before searching for binaries in /lib. We don't install binaries into any other
3place so this just wastes time.
4
5RP - 20/08/2008
6
7Index: glibc-2.6.1/elf/dl-sysdep.c
8===================================================================
9--- glibc-2.6.1.orig/elf/dl-sysdep.c 2008-08-15 15:54:49.000000000 +0100
10+++ glibc-2.6.1/elf/dl-sysdep.c 2008-08-15 17:45:28.000000000 +0100
11@@ -346,7 +346,7 @@
12 {
13 /* Determine how many important bits are set. */
14 uint64_t masked = GLRO(dl_hwcap) & GLRO(dl_hwcap_mask);
15- size_t cnt = platform != NULL;
16+ size_t cnt = 0;
17 size_t n, m;
18 size_t total;
19 struct r_strlenpair *temp;
20@@ -354,11 +354,6 @@
21 struct r_strlenpair *rp;
22 char *cp;
23
24- /* Count the number of bits set in the masked value. */
25- for (n = 0; (~((1ULL << n) - 1) & masked) != 0; ++n)
26- if ((masked & (1ULL << n)) != 0)
27- ++cnt;
28-
29 #if (defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO) && defined SHARED
30 /* The system-supplied DSO can contain a note of type 2, vendor "GNU".
31 This gives us a list of names to treat as fake hwcap bits. */
32@@ -434,20 +429,6 @@
33 }
34 }
35 #endif
36- for (n = 0; masked != 0; ++n)
37- if ((masked & (1ULL << n)) != 0)
38- {
39- temp[m].str = _dl_hwcap_string (n);
40- temp[m].len = strlen (temp[m].str);
41- masked ^= 1ULL << n;
42- ++m;
43- }
44- if (platform != NULL)
45- {
46- temp[m].str = platform;
47- temp[m].len = platform_len;
48- ++m;
49- }
50
51 temp[m].str = "tls";
52 temp[m].len = 3;
diff --git a/meta/packages/glibc/files/nopageheader.patch b/meta/packages/glibc/files/nopageheader.patch
deleted file mode 100644
index 0416711586..0000000000
--- a/meta/packages/glibc/files/nopageheader.patch
+++ /dev/null
@@ -1,12 +0,0 @@
1Index: glibc-2.6.1/ports/sysdeps/unix/sysv/linux/arm/ioperm.c
2===================================================================
3--- glibc-2.6.1.orig/ports/sysdeps/unix/sysv/linux/arm/ioperm.c 2005-06-10 11:12:09.000000000 +0000
4+++ glibc-2.6.1/ports/sysdeps/unix/sysv/linux/arm/ioperm.c 2009-06-16 21:16:16.007016198 +0000
5@@ -45,7 +45,6 @@
6 #include <sys/mman.h>
7
8 #include <linux/version.h>
9-#include <asm/page.h>
10 #include <sys/sysctl.h>
11
12 #define PATH_ARM_SYSTYPE "/etc/arm_systype"
diff --git a/meta/packages/glibc/files/nptl-crosscompile-2.3.6.patch b/meta/packages/glibc/files/nptl-crosscompile-2.3.6.patch
deleted file mode 100644
index 2df3cd998b..0000000000
--- a/meta/packages/glibc/files/nptl-crosscompile-2.3.6.patch
+++ /dev/null
@@ -1,175 +0,0 @@
1diff
2--- glibc-2.3.6/nptl/sysdeps/pthread/configure.in.orig 2006-09-14 11:12:16.000000000 +0100
3+++ glibc-2.3.6/nptl/sysdeps/pthread/configure.in 2006-09-14 11:12:16.000000000 +0100
4@@ -21,29 +21,4 @@
5
6 dnl Iff <unwind.h> is available, make sure it is the right one and it
7 dnl contains struct _Unwind_Exception.
8-AC_CACHE_CHECK(dnl
9-for forced unwind support, libc_cv_forced_unwind, [dnl
10-AC_TRY_LINK([#include <unwind.h>], [
11-struct _Unwind_Exception exc;
12-struct _Unwind_Context *context;
13-_Unwind_GetCFA (context)],
14-libc_cv_forced_unwind=yes, libc_cv_forced_unwind=no)])
15-if test $libc_cv_forced_unwind = yes; then
16- AC_DEFINE(HAVE_FORCED_UNWIND)
17-dnl Check for C cleanup handling.
18- old_CFLAGS="$CFLAGS"
19- CFLAGS="$CFLAGS -Werror -fexceptions"
20- AC_CACHE_CHECK([for C cleanup handling], libc_cv_c_cleanup, [dnl
21- AC_TRY_LINK([
22-#include <stdio.h>
23-void cl (void *a) { }], [
24- int a __attribute__ ((cleanup (cl)));
25- puts ("test")],
26-libc_cv_c_cleanup=yes, libc_cv_c_cleanup=no)])
27- CFLAGS="$old_CFLAGS"
28- if test $libc_cv_c_cleanup = no; then
29- AC_MSG_ERROR([the compiler must support C cleanup handling])
30- fi
31-else
32- AC_MSG_ERROR(forced unwind support is required)
33-fi
34+AC_DEFINE(HAVE_FORCED_UNWIND)
35diff
36--- glibc-2.3.6/nptl/sysdeps/pthread/configure.orig 2006-09-14 11:11:12.000000000 +0100
37+++ glibc-2.3.6/nptl/sysdeps/pthread/configure 2006-09-14 11:11:12.000000000 +0100
38@@ -24,136 +24,7 @@
39 fi
40
41
42-echo "$as_me:$LINENO: checking for forced unwind support" >&5
43-echo $ECHO_N "checking for forced unwind support... $ECHO_C" >&6
44-if test "${libc_cv_forced_unwind+set}" = set; then
45- echo $ECHO_N "(cached) $ECHO_C" >&6
46-else
47- cat >conftest.$ac_ext <<_ACEOF
48-/* confdefs.h. */
49-_ACEOF
50-cat confdefs.h >>conftest.$ac_ext
51-cat >>conftest.$ac_ext <<_ACEOF
52-/* end confdefs.h. */
53-#include <unwind.h>
54-int
55-main ()
56-{
57-
58-struct _Unwind_Exception exc;
59-struct _Unwind_Context *context;
60-_Unwind_GetCFA (context)
61- ;
62- return 0;
63-}
64-_ACEOF
65-rm -f conftest.$ac_objext conftest$ac_exeext
66-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
67- (eval $ac_link) 2>conftest.er1
68- ac_status=$?
69- grep -v '^ *+' conftest.er1 >conftest.err
70- rm -f conftest.er1
71- cat conftest.err >&5
72- echo "$as_me:$LINENO: \$? = $ac_status" >&5
73- (exit $ac_status); } &&
74- { ac_try='test -z "$ac_c_werror_flag"
75- || test ! -s conftest.err'
76- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
77- (eval $ac_try) 2>&5
78- ac_status=$?
79- echo "$as_me:$LINENO: \$? = $ac_status" >&5
80- (exit $ac_status); }; } &&
81- { ac_try='test -s conftest$ac_exeext'
82- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
83- (eval $ac_try) 2>&5
84- ac_status=$?
85- echo "$as_me:$LINENO: \$? = $ac_status" >&5
86- (exit $ac_status); }; }; then
87- libc_cv_forced_unwind=yes
88-else
89- echo "$as_me: failed program was:" >&5
90-sed 's/^/| /' conftest.$ac_ext >&5
91-
92-libc_cv_forced_unwind=no
93-fi
94-rm -f conftest.err conftest.$ac_objext \
95- conftest$ac_exeext conftest.$ac_ext
96-fi
97-echo "$as_me:$LINENO: result: $libc_cv_forced_unwind" >&5
98-echo "${ECHO_T}$libc_cv_forced_unwind" >&6
99-if test $libc_cv_forced_unwind = yes; then
100- cat >>confdefs.h <<\_ACEOF
101+cat >>confdefs.h <<\_ACEOF
102 #define HAVE_FORCED_UNWIND 1
103 _ACEOF
104
105- old_CFLAGS="$CFLAGS"
106- CFLAGS="$CFLAGS -Werror -fexceptions"
107- echo "$as_me:$LINENO: checking for C cleanup handling" >&5
108-echo $ECHO_N "checking for C cleanup handling... $ECHO_C" >&6
109-if test "${libc_cv_c_cleanup+set}" = set; then
110- echo $ECHO_N "(cached) $ECHO_C" >&6
111-else
112- cat >conftest.$ac_ext <<_ACEOF
113-/* confdefs.h. */
114-_ACEOF
115-cat confdefs.h >>conftest.$ac_ext
116-cat >>conftest.$ac_ext <<_ACEOF
117-/* end confdefs.h. */
118-
119-#include <stdio.h>
120-void cl (void *a) { }
121-int
122-main ()
123-{
124-
125- int a __attribute__ ((cleanup (cl)));
126- puts ("test")
127- ;
128- return 0;
129-}
130-_ACEOF
131-rm -f conftest.$ac_objext conftest$ac_exeext
132-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
133- (eval $ac_link) 2>conftest.er1
134- ac_status=$?
135- grep -v '^ *+' conftest.er1 >conftest.err
136- rm -f conftest.er1
137- cat conftest.err >&5
138- echo "$as_me:$LINENO: \$? = $ac_status" >&5
139- (exit $ac_status); } &&
140- { ac_try='test -z "$ac_c_werror_flag"
141- || test ! -s conftest.err'
142- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
143- (eval $ac_try) 2>&5
144- ac_status=$?
145- echo "$as_me:$LINENO: \$? = $ac_status" >&5
146- (exit $ac_status); }; } &&
147- { ac_try='test -s conftest$ac_exeext'
148- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
149- (eval $ac_try) 2>&5
150- ac_status=$?
151- echo "$as_me:$LINENO: \$? = $ac_status" >&5
152- (exit $ac_status); }; }; then
153- libc_cv_c_cleanup=yes
154-else
155- echo "$as_me: failed program was:" >&5
156-sed 's/^/| /' conftest.$ac_ext >&5
157-
158-libc_cv_c_cleanup=no
159-fi
160-rm -f conftest.err conftest.$ac_objext \
161- conftest$ac_exeext conftest.$ac_ext
162-fi
163-echo "$as_me:$LINENO: result: $libc_cv_c_cleanup" >&5
164-echo "${ECHO_T}$libc_cv_c_cleanup" >&6
165- CFLAGS="$old_CFLAGS"
166- if test $libc_cv_c_cleanup = no; then
167- { { echo "$as_me:$LINENO: error: the compiler must support C cleanup handling" >&5
168-echo "$as_me: error: the compiler must support C cleanup handling" >&2;}
169- { (exit 1); exit 1; }; }
170- fi
171-else
172- { { echo "$as_me:$LINENO: error: forced unwind support is required" >&5
173-echo "$as_me: error: forced unwind support is required" >&2;}
174- { (exit 1); exit 1; }; }
175-fi
diff --git a/meta/packages/glibc/files/etc/ld.so.conf b/meta/packages/glibc/glibc-2.10.1/etc/ld.so.conf
index ddd777db2a..ddd777db2a 100644
--- a/meta/packages/glibc/files/etc/ld.so.conf
+++ b/meta/packages/glibc/glibc-2.10.1/etc/ld.so.conf
diff --git a/meta/packages/glibc/files/fhs-linux-paths.patch b/meta/packages/glibc/glibc-2.10.1/fhs-linux-paths.patch
index 1f32f6d7f2..1f32f6d7f2 100644
--- a/meta/packages/glibc/files/fhs-linux-paths.patch
+++ b/meta/packages/glibc/glibc-2.10.1/fhs-linux-paths.patch
diff --git a/meta/packages/glibc/files/generate-supported.mk b/meta/packages/glibc/glibc-2.10.1/generate-supported.mk
index d2a28c2dc6..d2a28c2dc6 100644
--- a/meta/packages/glibc/files/generate-supported.mk
+++ b/meta/packages/glibc/glibc-2.10.1/generate-supported.mk
diff --git a/meta/packages/glibc/glibc-2.4/arm-longlong.patch b/meta/packages/glibc/glibc-2.4/arm-longlong.patch
deleted file mode 100644
index 28aca83dff..0000000000
--- a/meta/packages/glibc/glibc-2.4/arm-longlong.patch
+++ /dev/null
@@ -1,58 +0,0 @@
1--- glibc-2.4/stdlib/longlong.h.ark 2006-03-11 22:49:27.000000000 +0100
2+++ glibc-2.4/stdlib/longlong.h 2006-03-11 22:55:12.000000000 +0100
3@@ -206,6 +206,14 @@
4 "rI" ((USItype) (bh)), \
5 "r" ((USItype) (al)), \
6 "rI" ((USItype) (bl)) __CLOBBER_CC)
7+/* v3m and all higher arches have long multiply support. */
8+#if !defined(__ARM_ARCH_2__) && !defined(__ARM_ARCH_3__)
9+#define umul_ppmm(xh, xl, a, b) \
10+ __asm__ ("umull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
11+#define UMUL_TIME 5
12+#define smul_ppmm(xh, xl, a, b) \
13+ __asm__ ("smull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
14+#else
15 #define umul_ppmm(xh, xl, a, b) \
16 {register USItype __t0, __t1, __t2; \
17 __asm__ ("%@ Inlined umul_ppmm\n" \
18@@ -227,7 +235,13 @@
19 : "r" ((USItype) (a)), \
20 "r" ((USItype) (b)) __CLOBBER_CC );}
21 #define UMUL_TIME 20
22+#endif
23 #define UDIV_TIME 100
24+#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
25+#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X))
26+#define COUNT_LEADING_ZEROS_0 32
27+#endif
28+
29 #endif /* __arm__ */
30
31 #if defined (__hppa) && W_TYPE_SIZE == 32
32--- glibc-2.4/ports/sysdeps/arm/mp_clz_tab.c.ark 2006-03-11 22:56:43.000000000 +0100
33+++ glibc-2.4/ports/sysdeps/arm/mp_clz_tab.c 2006-03-11 22:58:19.000000000 +0100
34@@ -0,0 +1,24 @@
35+/* __clz_tab -- support for longlong.h
36+ Copyright (C) 2004 Free Software Foundation, Inc.
37+ This file is part of the GNU C Library.
38+
39+ The GNU C Library is free software; you can redistribute it and/or
40+ modify it under the terms of the GNU Lesser General Public
41+ License as published by the Free Software Foundation; either
42+ version 2.1 of the License, or (at your option) any later version.
43+
44+ The GNU C Library is distributed in the hope that it will be useful,
45+ but WITHOUT ANY WARRANTY; without even the implied warranty of
46+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
47+ Lesser General Public License for more details.
48+
49+ You should have received a copy of the GNU Lesser General Public
50+ License along with the GNU C Library; if not, write to the Free
51+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
52+ 02111-1307 USA. */
53+
54+#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
55+/* Nothing required. */
56+#else
57+#include <stdlib/mp_clz_tab.c>
58+#endif
diff --git a/meta/packages/glibc/glibc-2.4/arm-memcpy.patch b/meta/packages/glibc/glibc-2.4/arm-memcpy.patch
deleted file mode 100644
index bc2b3dab84..0000000000
--- a/meta/packages/glibc/glibc-2.4/arm-memcpy.patch
+++ /dev/null
@@ -1,758 +0,0 @@
1--- /dev/null 2004-02-02 20:32:13.000000000 +0000
2+++ sysdeps/arm/memmove.S 2004-03-20 18:37:23.000000000 +0000
3@@ -0,0 +1,251 @@
4+/*
5+ * Optimized memmove implementation for ARM processors
6+ *
7+ * Author: Nicolas Pitre
8+ * Created: Dec 23, 2003
9+ * Copyright: (C) MontaVista Software, Inc.
10+ *
11+ * This file is free software; you can redistribute it and/or
12+ * modify it under the terms of the GNU Lesser General Public
13+ * License as published by the Free Software Foundation; either
14+ * version 2.1 of the License, or (at your option) any later version.
15+ *
16+ * This file is distributed in the hope that it will be useful,
17+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19+ * Lesser General Public License for more details.
20+ */
21+
22+#include <sysdep.h>
23+
24+
25+/*
26+ * Endian independent macros for shifting bytes within registers.
27+ */
28+#ifndef __ARMEB__
29+#define pull lsr
30+#define push lsl
31+#else
32+#define pull lsl
33+#define push lsr
34+#endif
35+
36+/*
37+ * Enable data preload for architectures that support it (ARMv5 and above)
38+ */
39+#if defined(__ARM_ARCH_5__) || \
40+ defined(__ARM_ARCH_5T__) || \
41+ defined(__ARM_ARCH_5TE__)
42+#define PLD(code...) code
43+#else
44+#define PLD(code...)
45+#endif
46+
47+
48+/* char * memmove (char *dst, const char *src) */
49+ENTRY(memmove)
50+ subs ip, r0, r1
51+ cmphi r2, ip
52+ bls memcpy(PLT)
53+
54+ stmfd sp!, {r0, r4, lr}
55+ add r1, r1, r2
56+ add r0, r0, r2
57+ subs r2, r2, #4
58+ blt 25f
59+ ands ip, r0, #3
60+ PLD( pld [r1, #-4] )
61+ bne 26f
62+ ands ip, r1, #3
63+ bne 27f
64+
65+19: subs r2, r2, #4
66+ blt 24f
67+ subs r2, r2, #8
68+ blt 23f
69+ subs r2, r2, #16
70+ blt 22f
71+
72+ PLD( pld [r1, #-32] )
73+ PLD( subs r2, r2, #96 )
74+ stmfd sp!, {r5 - r8}
75+ PLD( blt 21f )
76+
77+ PLD( @ cache alignment )
78+ PLD( ands ip, r1, #31 )
79+ PLD( pld [r1, #-64] )
80+ PLD( beq 20f )
81+ PLD( cmp r2, ip )
82+ PLD( pld [r1, #-96] )
83+ PLD( blt 20f )
84+ PLD( cmp ip, #16 )
85+ PLD( sub r2, r2, ip )
86+ PLD( ldmgedb r1!, {r3 - r6} )
87+ PLD( stmgedb r0!, {r3 - r6} )
88+ PLD( beq 20f )
89+ PLD( and ip, ip, #15 )
90+ PLD( cmp ip, #8 )
91+ PLD( ldr r3, [r1, #-4]! )
92+ PLD( ldrge r4, [r1, #-4]! )
93+ PLD( ldrgt r5, [r1, #-4]! )
94+ PLD( str r3, [r0, #-4]! )
95+ PLD( strge r4, [r0, #-4]! )
96+ PLD( strgt r5, [r0, #-4]! )
97+
98+20: PLD( pld [r1, #-96] )
99+ PLD( pld [r1, #-128] )
100+21: ldmdb r1!, {r3, r4, ip, lr}
101+ subs r2, r2, #32
102+ stmdb r0!, {r3, r4, ip, lr}
103+ ldmdb r1!, {r3, r4, ip, lr}
104+ stmgedb r0!, {r3, r4, ip, lr}
105+ ldmgedb r1!, {r3, r4, ip, lr}
106+ stmgedb r0!, {r3, r4, ip, lr}
107+ ldmgedb r1!, {r3, r4, ip, lr}
108+ subges r2, r2, #32
109+ stmdb r0!, {r3, r4, ip, lr}
110+ bge 20b
111+ PLD( cmn r2, #96 )
112+ PLD( bge 21b )
113+ PLD( add r2, r2, #96 )
114+ tst r2, #31
115+ ldmfd sp!, {r5 - r8}
116+ ldmeqfd sp!, {r0, r4, pc}
117+
118+ tst r2, #16
119+22: ldmnedb r1!, {r3, r4, ip, lr}
120+ stmnedb r0!, {r3, r4, ip, lr}
121+
122+ tst r2, #8
123+23: ldmnedb r1!, {r3, r4}
124+ stmnedb r0!, {r3, r4}
125+
126+ tst r2, #4
127+24: ldrne r3, [r1, #-4]!
128+ strne r3, [r0, #-4]!
129+
130+25: ands r2, r2, #3
131+ ldmeqfd sp!, {r0, r4, pc}
132+
133+ cmp r2, #2
134+ ldrb r3, [r1, #-1]
135+ ldrgeb r4, [r1, #-2]
136+ ldrgtb ip, [r1, #-3]
137+ strb r3, [r0, #-1]
138+ strgeb r4, [r0, #-2]
139+ strgtb ip, [r0, #-3]
140+ ldmfd sp!, {r0, r4, pc}
141+
142+26: cmp ip, #2
143+ ldrb r3, [r1, #-1]!
144+ ldrgeb r4, [r1, #-1]!
145+ ldrgtb lr, [r1, #-1]!
146+ strb r3, [r0, #-1]!
147+ strgeb r4, [r0, #-1]!
148+ strgtb lr, [r0, #-1]!
149+ subs r2, r2, ip
150+ blt 25b
151+ ands ip, r1, #3
152+ beq 19b
153+
154+27: bic r1, r1, #3
155+ cmp ip, #2
156+ ldr r3, [r1]
157+ beq 35f
158+ blt 36f
159+
160+
161+ .macro backward_copy_shift push pull
162+
163+ cmp r2, #12
164+ PLD( pld [r1, #-4] )
165+ blt 33f
166+ subs r2, r2, #28
167+ stmfd sp!, {r5 - r9}
168+ blt 31f
169+
170+ PLD( subs r2, r2, #96 )
171+ PLD( pld [r1, #-32] )
172+ PLD( blt 30f )
173+ PLD( pld [r1, #-64] )
174+
175+ PLD( @ cache alignment )
176+ PLD( ands ip, r1, #31 )
177+ PLD( pld [r1, #-96] )
178+ PLD( beq 29f )
179+ PLD( cmp r2, ip )
180+ PLD( pld [r1, #-128] )
181+ PLD( blt 29f )
182+ PLD( sub r2, r2, ip )
183+28: PLD( mov r4, r3, push #\push )
184+ PLD( ldr r3, [r1, #-4]! )
185+ PLD( subs ip, ip, #4 )
186+ PLD( orr r4, r4, r3, pull #\pull )
187+ PLD( str r4, [r0, #-4]! )
188+ PLD( bgt 28b )
189+
190+29: PLD( pld [r1, #-128] )
191+30: mov lr, r3, push #\push
192+ ldmdb r1!, {r3 - r9, ip}
193+ subs r2, r2, #32
194+ orr lr, lr, ip, pull #\pull
195+ mov ip, ip, push #\push
196+ orr ip, ip, r9, pull #\pull
197+ mov r9, r9, push #\push
198+ orr r9, r9, r8, pull #\pull
199+ mov r8, r8, push #\push
200+ orr r8, r8, r7, pull #\pull
201+ mov r7, r7, push #\push
202+ orr r7, r7, r6, pull #\pull
203+ mov r6, r6, push #\push
204+ orr r6, r6, r5, pull #\pull
205+ mov r5, r5, push #\push
206+ orr r5, r5, r4, pull #\pull
207+ mov r4, r4, push #\push
208+ orr r4, r4, r3, pull #\pull
209+ stmdb r0!, {r4 - r9, ip, lr}
210+ bge 29b
211+ PLD( cmn r2, #96 )
212+ PLD( bge 30b )
213+ PLD( add r2, r2, #96 )
214+ cmn r2, #16
215+ blt 32f
216+31: mov r7, r3, push #\push
217+ ldmdb r1!, {r3 - r6}
218+ sub r2, r2, #16
219+ orr r7, r7, r6, pull #\pull
220+ mov r6, r6, push #\push
221+ orr r6, r6, r5, pull #\pull
222+ mov r5, r5, push #\push
223+ orr r5, r5, r4, pull #\pull
224+ mov r4, r4, push #\push
225+ orr r4, r4, r3, pull #\pull
226+ stmdb r0!, {r4 - r7}
227+32: adds r2, r2, #28
228+ ldmfd sp!, {r5 - r9}
229+ blt 34f
230+33: mov r4, r3, push #\push
231+ ldr r3, [r1, #-4]!
232+ subs r2, r2, #4
233+ orr r4, r4, r3, pull #\pull
234+ str r4, [r0, #-4]!
235+ bge 33b
236+34:
237+ .endm
238+
239+
240+ backward_copy_shift push=8 pull=24
241+ add r1, r1, #3
242+ b 25b
243+
244+35: backward_copy_shift push=16 pull=16
245+ add r1, r1, #2
246+ b 25b
247+
248+36: backward_copy_shift push=24 pull=8
249+ add r1, r1, #1
250+ b 25b
251+
252+ .size memmove, . - memmove
253+END(memmove)
254+libc_hidden_builtin_def (memmove)
255--- /dev/null 2004-02-02 20:32:13.000000000 +0000
256+++ sysdeps/arm/bcopy.S 2004-03-20 18:37:48.000000000 +0000
257@@ -0,0 +1,255 @@
258+/*
259+ * Optimized memmove implementation for ARM processors
260+ *
261+ * Author: Nicolas Pitre
262+ * Created: Dec 23, 2003
263+ * Copyright: (C) MontaVista Software, Inc.
264+ *
265+ * This file is free software; you can redistribute it and/or
266+ * modify it under the terms of the GNU Lesser General Public
267+ * License as published by the Free Software Foundation; either
268+ * version 2.1 of the License, or (at your option) any later version.
269+ *
270+ * This file is distributed in the hope that it will be useful,
271+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
272+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
273+ * Lesser General Public License for more details.
274+ */
275+
276+#include <sysdep.h>
277+
278+
279+/*
280+ * Endian independent macros for shifting bytes within registers.
281+ */
282+#ifndef __ARMEB__
283+#define pull lsr
284+#define push lsl
285+#else
286+#define pull lsl
287+#define push lsr
288+#endif
289+
290+/*
291+ * Enable data preload for architectures that support it (ARMv5 and above)
292+ */
293+#if defined(__ARM_ARCH_5__) || \
294+ defined(__ARM_ARCH_5T__) || \
295+ defined(__ARM_ARCH_5TE__)
296+#define PLD(code...) code
297+#else
298+#define PLD(code...)
299+#endif
300+
301+dst .req r1
302+src .req r0
303+
304+/* void *bcopy (const char *src, char *dst, size_t size) */
305+ENTRY(bcopy)
306+ subs ip, dst, src
307+ cmphi r2, ip
308+ movls r3, r0
309+ movls r0, r1
310+ movls r1, r3
311+ bls memcpy(PLT)
312+
313+ stmfd sp!, {r4, lr}
314+ add src, src, r2
315+ add dst, dst, r2
316+ subs r2, r2, #4
317+ blt 25f
318+ ands ip, dst, #3
319+ PLD( pld [src, #-4] )
320+ bne 26f
321+ ands ip, src, #3
322+ bne 27f
323+
324+19: subs r2, r2, #4
325+ blt 24f
326+ subs r2, r2, #8
327+ blt 23f
328+ subs r2, r2, #16
329+ blt 22f
330+
331+ PLD( pld [src, #-32] )
332+ PLD( subs r2, r2, #96 )
333+ stmfd sp!, {r5 - r8}
334+ PLD( blt 21f )
335+
336+ PLD( @ cache alignment )
337+ PLD( ands ip, src, #31 )
338+ PLD( pld [src, #-64] )
339+ PLD( beq 20f )
340+ PLD( cmp r2, ip )
341+ PLD( pld [src, #-96] )
342+ PLD( blt 20f )
343+ PLD( cmp ip, #16 )
344+ PLD( sub r2, r2, ip )
345+ PLD( ldmgedb src!, {r3 - r6} )
346+ PLD( stmgedb dst!, {r3 - r6} )
347+ PLD( beq 20f )
348+ PLD( and ip, ip, #15 )
349+ PLD( cmp ip, #8 )
350+ PLD( ldr r3, [src, #-4]! )
351+ PLD( ldrge r4, [src, #-4]! )
352+ PLD( ldrgt r5, [src, #-4]! )
353+ PLD( str r3, [dst, #-4]! )
354+ PLD( strge r4, [dst, #-4]! )
355+ PLD( strgt r5, [dst, #-4]! )
356+
357+20: PLD( pld [src, #-96] )
358+ PLD( pld [src, #-128] )
359+21: ldmdb src!, {r3, r4, ip, lr}
360+ subs r2, r2, #32
361+ stmdb dst!, {r3, r4, ip, lr}
362+ ldmdb src!, {r3, r4, ip, lr}
363+ stmgedb dst!, {r3, r4, ip, lr}
364+ ldmgedb src!, {r3, r4, ip, lr}
365+ stmgedb dst!, {r3, r4, ip, lr}
366+ ldmgedb src!, {r3, r4, ip, lr}
367+ subges r2, r2, #32
368+ stmdb dst!, {r3, r4, ip, lr}
369+ bge 20b
370+ PLD( cmn r2, #96 )
371+ PLD( bge 21b )
372+ PLD( add r2, r2, #96 )
373+ tst r2, #31
374+ ldmfd sp!, {r5 - r8}
375+ ldmeqfd sp!, {r4, pc}
376+
377+ tst r2, #16
378+22: ldmnedb src!, {r3, r4, ip, lr}
379+ stmnedb dst!, {r3, r4, ip, lr}
380+
381+ tst r2, #8
382+23: ldmnedb src!, {r3, r4}
383+ stmnedb dst!, {r3, r4}
384+
385+ tst r2, #4
386+24: ldrne r3, [src, #-4]!
387+ strne r3, [dst, #-4]!
388+
389+25: ands r2, r2, #3
390+ ldmeqfd sp!, {dst, r4, pc}
391+
392+ cmp r2, #2
393+ ldrb r3, [src, #-1]
394+ ldrgeb r4, [src, #-2]
395+ ldrgtb ip, [src, #-3]
396+ strb r3, [dst, #-1]
397+ strgeb r4, [dst, #-2]
398+ strgtb ip, [dst, #-3]
399+ ldmfd sp!, {dst, r4, pc}
400+
401+26: cmp ip, #2
402+ ldrb r3, [src, #-1]!
403+ ldrgeb r4, [src, #-1]!
404+ ldrgtb lr, [src, #-1]!
405+ strb r3, [dst, #-1]!
406+ strgeb r4, [dst, #-1]!
407+ strgtb lr, [dst, #-1]!
408+ subs r2, r2, ip
409+ blt 25b
410+ ands ip, src, #3
411+ beq 19b
412+
413+27: bic src, src, #3
414+ cmp ip, #2
415+ ldr r3, [src]
416+ beq 35f
417+ blt 36f
418+
419+
420+ .macro backward_copy_shift push pull
421+
422+ cmp r2, #12
423+ PLD( pld [src, #-4] )
424+ blt 33f
425+ subs r2, r2, #28
426+ stmfd sp!, {r5 - r9}
427+ blt 31f
428+
429+ PLD( subs r2, r2, #96 )
430+ PLD( pld [src, #-32] )
431+ PLD( blt 30f )
432+ PLD( pld [src, #-64] )
433+
434+ PLD( @ cache alignment )
435+ PLD( ands ip, src, #31 )
436+ PLD( pld [src, #-96] )
437+ PLD( beq 29f )
438+ PLD( cmp r2, ip )
439+ PLD( pld [src, #-128] )
440+ PLD( blt 29f )
441+ PLD( sub r2, r2, ip )
442+28: PLD( mov r4, r3, push #\push )
443+ PLD( ldr r3, [src, #-4]! )
444+ PLD( subs ip, ip, #4 )
445+ PLD( orr r4, r4, r3, pull #\pull )
446+ PLD( str r4, [dst, #-4]! )
447+ PLD( bgt 28b )
448+
449+29: PLD( pld [src, #-128] )
450+30: mov lr, r3, push #\push
451+ ldmdb src!, {r3 - r9, ip}
452+ subs r2, r2, #32
453+ orr lr, lr, ip, pull #\pull
454+ mov ip, ip, push #\push
455+ orr ip, ip, r9, pull #\pull
456+ mov r9, r9, push #\push
457+ orr r9, r9, r8, pull #\pull
458+ mov r8, r8, push #\push
459+ orr r8, r8, r7, pull #\pull
460+ mov r7, r7, push #\push
461+ orr r7, r7, r6, pull #\pull
462+ mov r6, r6, push #\push
463+ orr r6, r6, r5, pull #\pull
464+ mov r5, r5, push #\push
465+ orr r5, r5, r4, pull #\pull
466+ mov r4, r4, push #\push
467+ orr r4, r4, r3, pull #\pull
468+ stmdb dst!, {r4 - r9, ip, lr}
469+ bge 29b
470+ PLD( cmn r2, #96 )
471+ PLD( bge 30b )
472+ PLD( add r2, r2, #96 )
473+ cmn r2, #16
474+ blt 32f
475+31: mov r7, r3, push #\push
476+ ldmdb src!, {r3 - r6}
477+ sub r2, r2, #16
478+ orr r7, r7, r6, pull #\pull
479+ mov r6, r6, push #\push
480+ orr r6, r6, r5, pull #\pull
481+ mov r5, r5, push #\push
482+ orr r5, r5, r4, pull #\pull
483+ mov r4, r4, push #\push
484+ orr r4, r4, r3, pull #\pull
485+ stmdb dst!, {r4 - r7}
486+32: adds r2, r2, #28
487+ ldmfd sp!, {r5 - r9}
488+ blt 34f
489+33: mov r4, r3, push #\push
490+ ldr r3, [src, #-4]!
491+ subs r2, r2, #4
492+ orr r4, r4, r3, pull #\pull
493+ str r4, [dst, #-4]!
494+ bge 33b
495+34:
496+ .endm
497+
498+
499+ backward_copy_shift push=8 pull=24
500+ add src, src, #3
501+ b 25b
502+
503+35: backward_copy_shift push=16 pull=16
504+ add src, src, #2
505+ b 25b
506+
507+36: backward_copy_shift push=24 pull=8
508+ add src, src, #1
509+ b 25b
510+
511+ .size bcopy, . - bcopy
512+END(bcopy)
513
514--- /dev/null 2004-02-02 20:32:13.000000000 +0000
515+++ sysdeps/arm/memcpy.S 2004-05-02 14:33:22.000000000 +0100
516@@ -0,0 +1,242 @@
517+/*
518+ * Optimized memcpy implementation for ARM processors
519+ *
520+ * Author: Nicolas Pitre
521+ * Created: Dec 23, 2003
522+ * Copyright: (C) MontaVista Software, Inc.
523+ *
524+ * This file is free software; you can redistribute it and/or
525+ * modify it under the terms of the GNU Lesser General Public
526+ * License as published by the Free Software Foundation; either
527+ * version 2.1 of the License, or (at your option) any later version.
528+ *
529+ * This file is distributed in the hope that it will be useful,
530+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
531+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
532+ * Lesser General Public License for more details.
533+ */
534+
535+#include <sysdep.h>
536+
537+
538+/*
539+ * Endian independent macros for shifting bytes within registers.
540+ */
541+#ifndef __ARMEB__
542+#define pull lsr
543+#define push lsl
544+#else
545+#define pull lsl
546+#define push lsr
547+#endif
548+
549+/*
550+ * Enable data preload for architectures that support it (ARMv5 and above)
551+ */
552+#if defined(__ARM_ARCH_5__) || \
553+ defined(__ARM_ARCH_5T__) || \
554+ defined(__ARM_ARCH_5TE__)
555+#define PLD(code...) code
556+#else
557+#define PLD(code...)
558+#endif
559+
560+
561+/* char * memcpy (char *dst, const char *src) */
562+
563+ENTRY(memcpy)
564+ subs r2, r2, #4
565+ stmfd sp!, {r0, r4, lr}
566+ blt 7f
567+ ands ip, r0, #3
568+ PLD( pld [r1, #0] )
569+ bne 8f
570+ ands ip, r1, #3
571+ bne 9f
572+
573+1: subs r2, r2, #4
574+ blt 6f
575+ subs r2, r2, #8
576+ blt 5f
577+ subs r2, r2, #16
578+ blt 4f
579+
580+ PLD( subs r2, r2, #65 )
581+ stmfd sp!, {r5 - r8}
582+ PLD( blt 3f )
583+ PLD( pld [r1, #32] )
584+
585+ PLD( @ cache alignment )
586+ PLD( ands ip, r1, #31 )
587+ PLD( pld [r1, #64] )
588+ PLD( beq 2f )
589+ PLD( rsb ip, ip, #32 )
590+ PLD( cmp r2, ip )
591+ PLD( pld [r1, #96] )
592+ PLD( blt 2f )
593+ PLD( cmp ip, #16 )
594+ PLD( sub r2, r2, ip )
595+ PLD( ldmgeia r1!, {r3 - r6} )
596+ PLD( stmgeia r0!, {r3 - r6} )
597+ PLD( beq 2f )
598+ PLD( and ip, ip, #15 )
599+ PLD( cmp ip, #8 )
600+ PLD( ldr r3, [r1], #4 )
601+ PLD( ldrge r4, [r1], #4 )
602+ PLD( ldrgt r5, [r1], #4 )
603+ PLD( str r3, [r0], #4 )
604+ PLD( strge r4, [r0], #4 )
605+ PLD( strgt r5, [r0], #4 )
606+
607+2: PLD( pld [r1, #96] )
608+3: ldmia r1!, {r3 - r8, ip, lr}
609+ subs r2, r2, #32
610+ stmia r0!, {r3 - r8, ip, lr}
611+ bge 2b
612+ PLD( cmn r2, #65 )
613+ PLD( bge 3b )
614+ PLD( add r2, r2, #65 )
615+ tst r2, #31
616+ ldmfd sp!, {r5 - r8}
617+ ldmeqfd sp!, {r0, r4, pc}
618+
619+ tst r2, #16
620+4: ldmneia r1!, {r3, r4, ip, lr}
621+ stmneia r0!, {r3, r4, ip, lr}
622+
623+ tst r2, #8
624+5: ldmneia r1!, {r3, r4}
625+ stmneia r0!, {r3, r4}
626+
627+ tst r2, #4
628+6: ldrne r3, [r1], #4
629+ strne r3, [r0], #4
630+
631+7: ands r2, r2, #3
632+ ldmeqfd sp!, {r0, r4, pc}
633+
634+ cmp r2, #2
635+ ldrb r3, [r1], #1
636+ ldrgeb r4, [r1], #1
637+ ldrgtb ip, [r1]
638+ strb r3, [r0], #1
639+ strgeb r4, [r0], #1
640+ strgtb ip, [r0]
641+ ldmfd sp!, {r0, r4, pc}
642+
643+8: rsb ip, ip, #4
644+ cmp ip, #2
645+ ldrb r3, [r1], #1
646+ ldrgeb r4, [r1], #1
647+ ldrgtb lr, [r1], #1
648+ strb r3, [r0], #1
649+ strgeb r4, [r0], #1
650+ strgtb lr, [r0], #1
651+ subs r2, r2, ip
652+ blt 7b
653+ ands ip, r1, #3
654+ beq 1b
655+
656+9: bic r1, r1, #3
657+ cmp ip, #2
658+ ldr lr, [r1], #4
659+ beq 17f
660+ bgt 18f
661+
662+
663+ .macro forward_copy_shift pull push
664+
665+ cmp r2, #12
666+ PLD( pld [r1, #0] )
667+ blt 15f
668+ subs r2, r2, #28
669+ stmfd sp!, {r5 - r9}
670+ blt 13f
671+
672+ PLD( subs r2, r2, #97 )
673+ PLD( blt 12f )
674+ PLD( pld [r1, #32] )
675+
676+ PLD( @ cache alignment )
677+ PLD( rsb ip, r1, #36 )
678+ PLD( pld [r1, #64] )
679+ PLD( ands ip, ip, #31 )
680+ PLD( pld [r1, #96] )
681+ PLD( beq 11f )
682+ PLD( cmp r2, ip )
683+ PLD( pld [r1, #128] )
684+ PLD( blt 11f )
685+ PLD( sub r2, r2, ip )
686+10: PLD( mov r3, lr, pull #\pull )
687+ PLD( ldr lr, [r1], #4 )
688+ PLD( subs ip, ip, #4 )
689+ PLD( orr r3, r3, lr, push #\push )
690+ PLD( str r3, [r0], #4 )
691+ PLD( bgt 10b )
692+
693+11: PLD( pld [r1, #128] )
694+12: mov r3, lr, pull #\pull
695+ ldmia r1!, {r4 - r9, ip, lr}
696+ subs r2, r2, #32
697+ orr r3, r3, r4, push #\push
698+ mov r4, r4, pull #\pull
699+ orr r4, r4, r5, push #\push
700+ mov r5, r5, pull #\pull
701+ orr r5, r5, r6, push #\push
702+ mov r6, r6, pull #\pull
703+ orr r6, r6, r7, push #\push
704+ mov r7, r7, pull #\pull
705+ orr r7, r7, r8, push #\push
706+ mov r8, r8, pull #\pull
707+ orr r8, r8, r9, push #\push
708+ mov r9, r9, pull #\pull
709+ orr r9, r9, ip, push #\push
710+ mov ip, ip, pull #\pull
711+ orr ip, ip, lr, push #\push
712+ stmia r0!, {r3 - r9, ip}
713+ bge 11b
714+ PLD( cmn r2, #97 )
715+ PLD( bge 12b )
716+ PLD( add r2, r2, #97 )
717+ cmn r2, #16
718+ blt 14f
719+13: mov r3, lr, pull #\pull
720+ ldmia r1!, {r4 - r6, lr}
721+ sub r2, r2, #16
722+ orr r3, r3, r4, push #\push
723+ mov r4, r4, pull #\pull
724+ orr r4, r4, r5, push #\push
725+ mov r5, r5, pull #\pull
726+ orr r5, r5, r6, push #\push
727+ mov r6, r6, pull #\pull
728+ orr r6, r6, lr, push #\push
729+ stmia r0!, {r3 - r6}
730+14: adds r2, r2, #28
731+ ldmfd sp!, {r5 - r9}
732+ blt 16f
733+15: mov r3, lr, pull #\pull
734+ ldr lr, [r1], #4
735+ subs r2, r2, #4
736+ orr r3, r3, lr, push #\push
737+ str r3, [r0], #4
738+ bge 15b
739+16:
740+ .endm
741+
742+
743+ forward_copy_shift pull=8 push=24
744+ sub r1, r1, #3
745+ b 7b
746+
747+17: forward_copy_shift pull=16 push=16
748+ sub r1, r1, #2
749+ b 7b
750+
751+18: forward_copy_shift pull=24 push=8
752+ sub r1, r1, #1
753+ b 7b
754+
755+ .size memcpy, . - memcpy
756+END(memcpy)
757+libc_hidden_builtin_def (memcpy)
758+
diff --git a/meta/packages/glibc/glibc-2.4/arm_eabi_ipc_fix.patch b/meta/packages/glibc/glibc-2.4/arm_eabi_ipc_fix.patch
deleted file mode 100644
index 8b36960b04..0000000000
--- a/meta/packages/glibc/glibc-2.4/arm_eabi_ipc_fix.patch
+++ /dev/null
@@ -1,94 +0,0 @@
1From libc-ports-return-430-listarch-libc-ports=sources dot redhat dot com at sourceware dot org Mon Aug 21 20:08:57 2006
2Return-Path: <libc-ports-return-430-listarch-libc-ports=sources dot redhat dot com at sourceware dot org>
3Delivered-To: listarch-libc-ports at sources dot redhat dot com
4Received: (qmail 9913 invoked by alias); 21 Aug 2006 20:08:56 -0000
5Received: (qmail 9893 invoked by uid 22791); 21 Aug 2006 20:08:53 -0000
6X-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,TW_HM,TW_SG,TW_SN
7X-Spam-Check-By: sourceware.org
8Received: from nevyn.them.org (HELO nevyn.them.org) (66.93.172.17) by sourceware.org (qpsmtpd/0.31.1) with ESMTP; Mon, 21 Aug 2006 20:08:44 +0000
9Received: from drow by nevyn.them.org with local (Exim 4.54) id 1GFG4f-0007gO-TW for libc-ports@sourceware.org; Mon, 21 Aug 2006 16:08:42 -0400
10Date: Mon, 21 Aug 2006 16:08:41 -0400
11From: Daniel Jacobowitz <drow at false dot org>
12To: libc-ports at sourceware dot org
13Subject: ARM IPC fix
14Message-ID: <20060821200841.GA29502@nevyn.them.org>
15MIME-Version: 1.0
16Content-Type: text/plain; charset=us-ascii
17Content-Disposition: inline
18User-Agent: Mutt/1.5.11+cvs20060403
19X-IsSubscribed: yes
20Mailing-List: contact libc-ports-help at sourceware dot org; run by ezmlm
21Precedence: bulk
22List-Subscribe: <mailto:libc-ports-subscribe at sourceware dot org>
23List-Post: <mailto:libc-ports at sourceware dot org>
24List-Help: <mailto:libc-ports-help at sourceware dot org>, <http://sourceware dot org/lists dot html#faqs>
25Sender: libc-ports-owner at sourceware dot org
26Delivered-To: mailing list libc-ports at sourceware dot org
27
28We can't treat msgctl as a real syscall; if we don't add __IPC_64, we'll get
29a mismatched type for ipc_perm. Fixed by using the Alpha implementation,
30which is similar to the standard i386 implementation but doesn't use
31the multiplexer syscall.
32
33--
34Daniel Jacobowitz
35CodeSourcery
36
372006-08-21 Daniel Jacobowitz <dan@codesourcery.com>
38
39 * sysdeps/unix/sysv/linux/arm/eabi/syscalls.list: Remove msgctl,
40 shmctl, and semctl.
41 * sysdeps/unix/sysv/linux/arm/eabi/semctl.c,
42 sysdeps/unix/sysv/linux/arm/eabi/shmctl.c,
43 sysdeps/unix/sysv/linux/arm/eabi/msgctl.c: New files.
44
45Index: a/ports/sysdeps/unix/sysv/linux/arm/eabi/syscalls.list
46===================================================================
47--- a/ports/sysdeps/unix/sysv/linux/arm/eabi/syscalls.list (revision 147209)
48+++ b/ports/sysdeps/unix/sysv/linux/arm/eabi/syscalls.list (working copy)
49@@ -1,18 +1,16 @@
50 # File name Caller Syscall name # args Strong name Weak names
51
52-# semaphore and shm system calls
53-msgctl - msgctl i:iip __msgctl msgctl
54+# Semaphore and shm system calls. msgctl, shmctl, and semctl have C
55+# wrappers (to set __IPC_64).
56 msgget - msgget i:ii __msgget msgget
57 msgrcv - msgrcv Ci:ibnii __msgrcv msgrcv
58 msgsnd - msgsnd Ci:ibni __msgsnd msgsnd
59 shmat - shmat i:ipi __shmat shmat
60-shmctl - shmctl i:iip __shmctl shmctl
61 shmdt - shmdt i:s __shmdt shmdt
62 shmget - shmget i:iii __shmget shmget
63 semop - semop i:ipi __semop semop
64 semtimedop - semtimedop i:ipip semtimedop
65 semget - semget i:iii __semget semget
66-semctl - semctl i:iiii __semctl semctl
67
68 # proper socket implementations:
69 accept - accept Ci:iBN __libc_accept __accept accept
70
71Property changes on: sysdeps/unix/sysv/linux/arm/eabi/syscalls.list
72___________________________________________________________________
73Name: svn:mime-type
74 - application/octet-stream
75
76Index: a/ports/sysdeps/unix/sysv/linux/arm/eabi/semctl.c
77===================================================================
78--- a/ports/sysdeps/unix/sysv/linux/arm/eabi/semctl.c (revision 0)
79+++ b/ports/sysdeps/unix/sysv/linux/arm/eabi/semctl.c (revision 0)
80@@ -0,0 +1 @@
81+#include <sysdeps/unix/sysv/linux/alpha/semctl.c>
82Index: a/ports/sysdeps/unix/sysv/linux/arm/eabi/msgctl.c
83===================================================================
84--- a/ports/sysdeps/unix/sysv/linux/arm/eabi/msgctl.c (revision 0)
85+++ b/ports/sysdeps/unix/sysv/linux/arm/eabi/msgctl.c (revision 0)
86@@ -0,0 +1 @@
87+#include <sysdeps/unix/sysv/linux/alpha/msgctl.c>
88Index: a/ports/sysdeps/unix/sysv/linux/arm/eabi/shmctl.c
89===================================================================
90--- a/ports/sysdeps/unix/sysv/linux/arm/eabi/shmctl.c (revision 0)
91+++ b/ports/sysdeps/unix/sysv/linux/arm/eabi/shmctl.c (revision 0)
92@@ -0,0 +1 @@
93+#include <sysdeps/unix/sysv/linux/alpha/shmctl.c>
94
diff --git a/meta/packages/glibc/glibc-2.4/dl-cache-libcmp.patch b/meta/packages/glibc/glibc-2.4/dl-cache-libcmp.patch
deleted file mode 100644
index 2fedfa6db0..0000000000
--- a/meta/packages/glibc/glibc-2.4/dl-cache-libcmp.patch
+++ /dev/null
@@ -1,10 +0,0 @@
1--- glibc-2.4/elf/Versions.ark 2006-03-11 23:30:09.000000000 +0100
2+++ glibc-2.4/elf/Versions 2006-03-11 23:31:44.000000000 +0100
3@@ -63,5 +63,7 @@
4 _dl_debug_state;
5 # Pointer protection.
6 __pointer_chk_guard;
7+ # for ldconfig
8+ _dl_cache_libcmp;
9 }
10 }
diff --git a/meta/packages/glibc/glibc-2.4/dyn-ldconfig-20041128.patch b/meta/packages/glibc/glibc-2.4/dyn-ldconfig-20041128.patch
deleted file mode 100644
index 451b6d4afc..0000000000
--- a/meta/packages/glibc/glibc-2.4/dyn-ldconfig-20041128.patch
+++ /dev/null
@@ -1,22 +0,0 @@
1
2#
3# Patch managed by http://www.holgerschurig.de/patcher.html
4#
5
6--- libc/elf/Makefile~dyn-ldconfig-20041128
7+++ libc/elf/Makefile
8@@ -118,12 +118,13 @@
9
10 ifeq (yes,$(use-ldconfig))
11 ifeq (yes,$(build-shared))
12-others-static += ldconfig
13+#others-static += ldconfig
14 others += ldconfig
15 install-rootsbin += ldconfig
16
17 ldconfig-modules := cache readlib xmalloc xstrdup chroot_canon
18 extra-objs += $(ldconfig-modules:=.o)
19+CPPFLAGS-readlib.c = -DNOT_IN_libc=1
20
21 # To find xmalloc.c and xstrdup.c
22 vpath %.c ../locale/programs
diff --git a/meta/packages/glibc/glibc-2.4/dyn-ldconfig.patch b/meta/packages/glibc/glibc-2.4/dyn-ldconfig.patch
deleted file mode 100644
index 1041965d05..0000000000
--- a/meta/packages/glibc/glibc-2.4/dyn-ldconfig.patch
+++ /dev/null
@@ -1,62 +0,0 @@
1--- elf/Makefile 13 Mar 2003 21:50:57 -0000 1.258
2+++ elf/Makefile 27 Mar 2003 20:36:07 -0000
3@@ -109,12 +109,13 @@
4
5 ifeq (yes,$(use-ldconfig))
6 ifeq (yes,$(build-shared))
7-others-static += ldconfig
8+#others-static += ldconfig
9 others += ldconfig
10 install-rootsbin += ldconfig
11
12 ldconfig-modules := cache readlib xmalloc xstrdup chroot_canon
13 extra-objs += $(ldconfig-modules:=.o)
14+CPPFLAGS-readlib.c = -DNOT_IN_libc=1
15
16 # To find xmalloc.c and xstrdup.c
17 vpath %.c ../locale/programs
18--- elf/ldconfig.c 13 Jan 2003 08:53:14 -0000 1.31
19+++ elf/ldconfig.c 27 Mar 2003 20:36:09 -0000
20@@ -149,6 +149,9 @@
21 static int
22 is_hwcap_platform (const char *name)
23 {
24+#if 1
25+ return 0;
26+#else
27 int hwcap_idx = _dl_string_hwcap (name);
28
29 if (hwcap_idx != -1 && ((1 << hwcap_idx) & hwcap_mask))
30@@ -164,6 +167,7 @@
31 #endif
32
33 return 0;
34+#endif
35 }
36
37 /* Get hwcap (including platform) encoding of path. */
38@@ -175,6 +179,7 @@
39 uint64_t hwcap = 0;
40 uint64_t h;
41
42+#if 0
43 size_t len;
44
45 len = strlen (str);
46@@ -210,6 +215,7 @@
47 *ptr = '\0';
48 }
49
50+#endif
51 free (str);
52 return hwcap;
53 }
54--- elf/Versions.old 2004-06-26 13:18:35.000000000 +0100
55+++ elf/Versions 2004-06-26 14:41:09.000000000 +0100
56@@ -54,5 +54,6 @@
57 _dl_get_tls_static_info; _dl_allocate_tls_init;
58 _dl_tls_setup; _dl_rtld_di_serinfo;
59 _dl_make_stack_executable;
60+ _dl_cache_libcmp;
61 }
62 }
diff --git a/meta/packages/glibc/glibc-2.4/eabi_kernel_version_hack.patch b/meta/packages/glibc/glibc-2.4/eabi_kernel_version_hack.patch
deleted file mode 100644
index a1af1a1563..0000000000
--- a/meta/packages/glibc/glibc-2.4/eabi_kernel_version_hack.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1---
2 ports/sysdeps/unix/sysv/linux/arm/eabi/configure | 2 +-
3 ports/sysdeps/unix/sysv/linux/arm/eabi/configure.in | 2 +-
4 2 files changed, 2 insertions(+), 2 deletions(-)
5
6Index: glibc-2.5/ports/sysdeps/unix/sysv/linux/arm/eabi/configure
7===================================================================
8--- glibc-2.5.orig/ports/sysdeps/unix/sysv/linux/arm/eabi/configure 2007-12-20 17:39:25.000000000 +0000
9+++ glibc-2.5/ports/sysdeps/unix/sysv/linux/arm/eabi/configure 2007-12-20 17:39:30.000000000 +0000
10@@ -1,5 +1,5 @@
11 # This file is generated from configure.in by Autoconf. DO NOT EDIT!
12 # Local configure fragment for sysdeps/unix/sysv/linux/arm/eabi.
13
14-arch_minimum_kernel=2.6.14
15+arch_minimum_kernel=2.6.10
16 libc_cv_gcc_unwind_find_fde=no
17Index: glibc-2.5/ports/sysdeps/unix/sysv/linux/arm/eabi/configure.in
18===================================================================
19--- glibc-2.5.orig/ports/sysdeps/unix/sysv/linux/arm/eabi/configure.in 2007-12-20 17:39:27.000000000 +0000
20+++ glibc-2.5/ports/sysdeps/unix/sysv/linux/arm/eabi/configure.in 2007-12-20 17:39:36.000000000 +0000
21@@ -1,5 +1,5 @@
22 GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
23 # Local configure fragment for sysdeps/unix/sysv/linux/arm/eabi.
24
25-arch_minimum_kernel=2.6.14
26+arch_minimum_kernel=2.6.10
27 libc_cv_gcc_unwind_find_fde=no
diff --git a/meta/packages/glibc/glibc-2.4/fixup-aeabi-syscalls.patch b/meta/packages/glibc/glibc-2.4/fixup-aeabi-syscalls.patch
deleted file mode 100644
index fb733b9194..0000000000
--- a/meta/packages/glibc/glibc-2.4/fixup-aeabi-syscalls.patch
+++ /dev/null
@@ -1,329 +0,0 @@
1Fix up ARM EABI for removed syscalls
2http://sourceware.org/ml/libc-ports/2006-03/msg00029.html
3
4Index: glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/socket.S
5===================================================================
6--- glibc.orig/ports/sysdeps/unix/sysv/linux/arm/eabi/socket.S 2006-03-21 15:58:10.000000000 -0500
7+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
8@@ -1,131 +0,0 @@
9-/* Copyright (C) 1995, 1996, 1997, 1998, 2003, 2005
10- Free Software Foundation, Inc.
11- This file is part of the GNU C Library.
12-
13- The GNU C Library is free software; you can redistribute it and/or
14- modify it under the terms of the GNU Lesser General Public
15- License as published by the Free Software Foundation; either
16- version 2.1 of the License, or (at your option) any later version.
17-
18- The GNU C Library is distributed in the hope that it will be useful,
19- but WITHOUT ANY WARRANTY; without even the implied warranty of
20- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21- Lesser General Public License for more details.
22-
23- You should have received a copy of the GNU Lesser General Public
24- License along with the GNU C Library; if not, write to the Free
25- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
26- 02111-1307 USA. */
27-
28-#include <sysdep-cancel.h>
29-#include <socketcall.h>
30-
31-#define P(a, b) P2(a, b)
32-#define P2(a, b) a##b
33-
34- .text
35-/* The socket-oriented system calls are handled unusally in Linux.
36- They are all gated through the single `socketcall' system call number.
37- `socketcall' takes two arguments: the first is the subcode, specifying
38- which socket function is being called; and the second is a pointer to
39- the arguments to the specific function.
40-
41- The .S files for the other calls just #define socket and #include this. */
42-
43-#ifndef __socket
44-# ifndef NO_WEAK_ALIAS
45-# define __socket P(__,socket)
46-# else
47-# define __socket socket
48-# endif
49-#endif
50-
51-#define PUSHARGS_1 str a1, [sp, $-8]!; .pad #8
52-#define PUSHARGS_2 stmfd sp!, {a1, a2}; .pad #8
53-#define PUSHARGS_3 stmfd sp!, {a1, a2, a3, a4}; .pad #16 /* a4 pushed for padding */
54-#define PUSHARGS_4 stmfd sp!, {a1, a2, a3, a4}; .pad #16
55-#define PUSHARGS_5 stmfd sp!, {a1, a2, a3, a4}; .pad #16 /* Caller has already pushed arg 5 */
56-#define PUSHARGS_6 stmfd sp!, {a1, a2, a3, a4}; .pad #16
57-
58-#define POPARGS_1 add sp, sp, #8
59-#define POPARGS_2 add sp, sp, #8
60-#define POPARGS_3 add sp, sp, #16
61-#define POPARGS_4 add sp, sp, #16
62-#define POPARGS_5 add sp, sp, #16
63-#define POPARGS_6 add sp, sp, #16
64-
65-#ifndef NARGS
66-#define NARGS 3 /* If we were called with no wrapper, this is really socket() */
67-#endif
68-
69-#if defined NEED_CANCELLATION && defined CENABLE
70- PSEUDO_PROLOGUE
71-#endif
72-
73-.globl __socket
74-ENTRY (__socket)
75- .fnstart
76-
77- /* This code previously moved sp into ip and stored the args using
78- stmdb ip!, {a1-a4}. It did not modify sp, so the stack never had
79- to be restored after the syscall completed. It saved an
80- instruction and meant no stack cleanup work was required.
81-
82- This will not work in the case of a socket call being interrupted
83- by a signal. If the signal handler uses any stack the arguments
84- to socket will be trashed. The results of a restart of any
85- socket call are then unpredictable. */
86-
87- /* Push args onto the stack. */
88- P(PUSHARGS_,NARGS)
89-
90-#if defined NEED_CANCELLATION && defined CENABLE
91- SINGLE_THREAD_P
92- bne 1f
93-#endif
94-
95- /* Do the system call trap. */
96- mov a1, $P(SOCKOP_,socket)
97- mov a2, sp
98- DO_CALL (socketcall, 0)
99-
100- /* Pop args off the stack */
101- P(POPARGS_,NARGS)
102-
103- /* r0 is < 0 if there was an error. */
104- cmn r0, $124
105- RETINSTR(cc, r14)
106- b PLTJMP(SYSCALL_ERROR)
107-
108-#if defined NEED_CANCELLATION && defined CENABLE
109-1:
110- stmfd sp!, {r7, lr}
111- .save {r7, lr}
112- CENABLE
113- mov ip, r0
114-
115- mov r0, #P(SOCKOP_,socket)
116- add r1, sp, #8
117- mov r7, #SYS_ify(socketcall)
118- swi 0x0
119-
120- mov r7, r0
121- mov r0, ip
122- CDISABLE
123- mov r0, r7
124- ldmfd sp!, {r7, lr}
125-
126- P(POPARGS_,NARGS)
127-
128- /* r0 is < 0 if there was an error. */
129- cmn r0, $124
130- RETINSTR(cc, r14)
131- b PLTJMP(SYSCALL_ERROR)
132-#endif
133-
134- .fnend
135-PSEUDO_END (__socket)
136-
137-#ifndef NO_WEAK_ALIAS
138-weak_alias (__socket, socket)
139-#endif
140Index: glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/syscalls.list
141===================================================================
142--- /dev/null 1970-01-01 00:00:00.000000000 +0000
143+++ glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/syscalls.list 2006-03-21 15:58:46.000000000 -0500
144@@ -0,0 +1,34 @@
145+# File name Caller Syscall name # args Strong name Weak names
146+
147+# semaphore and shm system calls
148+msgctl - msgctl i:iip __msgctl msgctl
149+msgget - msgget i:ii __msgget msgget
150+msgrcv - msgrcv Ci:ibnii __msgrcv msgrcv
151+msgsnd - msgsnd Ci:ibni __msgsnd msgsnd
152+shmat - shmat i:ipi __shmat shmat
153+shmctl - shmctl i:iip __shmctl shmctl
154+shmdt - shmdt i:s __shmdt shmdt
155+shmget - shmget i:iii __shmget shmget
156+semop - semop i:ipi __semop semop
157+semtimedop - semtimedop i:ipip semtimedop
158+semget - semget i:iii __semget semget
159+semctl - semctl i:iiii __semctl semctl
160+
161+# proper socket implementations:
162+accept - accept Ci:iBN __libc_accept __accept accept
163+bind - bind i:ipi __bind bind
164+connect - connect Ci:ipi __libc_connect __connect_internal __connect connect
165+getpeername - getpeername i:ipp __getpeername getpeername
166+getsockname - getsockname i:ipp __getsockname getsockname
167+getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
168+listen - listen i:ii __listen listen
169+recv - recv Ci:ibni __libc_recv __recv recv
170+recvfrom - recvfrom Ci:ibniBN __libc_recvfrom __recvfrom recvfrom
171+recvmsg - recvmsg Ci:ipi __libc_recvmsg __recvmsg recvmsg
172+send - send Ci:ibni __libc_send __send send
173+sendmsg - sendmsg Ci:ipi __libc_sendmsg __sendmsg sendmsg
174+sendto - sendto Ci:ibnibn __libc_sendto __sendto sendto
175+setsockopt - setsockopt i:iiibn __setsockopt setsockopt
176+shutdown - shutdown i:ii __shutdown shutdown
177+socket - socket i:iii __socket socket
178+socketpair - socketpair i:iiif __socketpair socketpair
179Index: glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/linuxthreads/sysdep-cancel.h
180===================================================================
181--- glibc.orig/ports/sysdeps/unix/sysv/linux/arm/eabi/linuxthreads/sysdep-cancel.h 2006-03-21 15:58:10.000000000 -0500
182+++ glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/linuxthreads/sysdep-cancel.h 2006-03-21 15:58:46.000000000 -0500
183@@ -53,9 +53,9 @@
184 UNDOARGS_##args; \
185 cmn r0, $4096;
186
187-/* DOARGS pushes four bytes on the stack for five arguments, and nothing
188- otherwise. In order to preserve doubleword alignment, sometimes we must
189- save an extra register. */
190+/* DOARGS pushes four bytes on the stack for five arguments, eight bytes for
191+ six arguments, and nothing for fewer. In order to preserve doubleword
192+ alignment, sometimes we must save an extra register. */
193
194 # define DOCARGS_0 stmfd sp!, {r7, lr}
195 # define UNDOCARGS_0
196@@ -81,6 +81,10 @@
197 # define UNDOCARGS_5 ldmfd sp!, {r0, r1, r2, r3}
198 # define RESTORE_LR_5 ldmfd sp!, {r4, r7, lr}
199
200+# define DOCARGS_6 stmfd sp!, {r0, r1, r2, r3, r7, lr}
201+# define UNDOCARGS_6 ldmfd sp!, {r0, r1, r2, r3}
202+# define RESTORE_LR_6 RESTORE_LR_0
203+
204 # ifdef IS_IN_libpthread
205 # define CENABLE bl PLTJMP(__pthread_enable_asynccancel)
206 # define CDISABLE bl PLTJMP(__pthread_disable_asynccancel)
207Index: glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/nptl/sysdep-cancel.h
208===================================================================
209--- glibc.orig/ports/sysdeps/unix/sysv/linux/arm/eabi/nptl/sysdep-cancel.h 2006-03-21 15:58:10.000000000 -0500
210+++ glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/nptl/sysdep-cancel.h 2006-03-21 15:58:46.000000000 -0500
211@@ -64,9 +64,9 @@
212 UNDOARGS_##args; \
213 cmn r0, $4096;
214
215-/* DOARGS pushes four bytes on the stack for five arguments, and nothing
216- otherwise. In order to preserve doubleword alignment, sometimes we must
217- save an extra register. */
218+/* DOARGS pushes four bytes on the stack for five arguments, eight bytes for
219+ six arguments, and nothing for fewer. In order to preserve doubleword
220+ alignment, sometimes we must save an extra register. */
221
222 # define RESTART_UNWIND .fnend; .fnstart; .save {r7, lr}
223
224@@ -94,6 +94,10 @@
225 # define UNDOCARGS_5 ldmfd sp!, {r0, r1, r2, r3}; .fnend; .fnstart; .save {r4}; .save {r7, lr}; .pad #4
226 # define RESTORE_LR_5 ldmfd sp!, {r4, r7, lr}
227
228+# define DOCARGS_6 .save {r4, r5}; stmfd sp!, {r0, r1, r2, r3, r7, lr}; .save {r7, lr}; .pad #20
229+# define UNDOCARGS_6 ldmfd sp!, {r0, r1, r2, r3}; .fnend; .fnstart; .save {r4, r5}; .save {r7, lr}
230+# define RESTORE_LR_6 RESTORE_LR_0
231+
232 # ifdef IS_IN_libpthread
233 # define CENABLE bl PLTJMP(__pthread_enable_asynccancel)
234 # define CDISABLE bl PLTJMP(__pthread_disable_asynccancel)
235Index: glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h
236===================================================================
237--- glibc.orig/ports/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h 2006-03-21 15:58:10.000000000 -0500
238+++ glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h 2006-03-21 15:58:46.000000000 -0500
239@@ -1,4 +1,4 @@
240-/* Copyright (C) 2005
241+/* Copyright (C) 2005, 2006
242 Free Software Foundation, Inc.
243
244 This file is part of the GNU C Library.
245@@ -29,6 +29,12 @@
246 # error Kernel headers are too old
247 #endif
248
249+/* Don't use stime, even if the kernel headers define it. We have
250+ settimeofday, and some EABI kernels have removed stime. Similarly
251+ use setitimer to implement alarm. */
252+#undef __NR_stime
253+#undef __NR_alarm
254+
255 /* The ARM EABI user interface passes the syscall number in r7, instead
256 of in the swi. This is more efficient, because the kernel does not need
257 to fetch the swi from memory to find out the number; which can be painful
258Index: glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/umount.c
259===================================================================
260--- /dev/null 1970-01-01 00:00:00.000000000 +0000
261+++ glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/umount.c 2006-03-21 15:58:46.000000000 -0500
262@@ -0,0 +1,31 @@
263+/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
264+ This file is part of the GNU C Library.
265+ Contributed by David Huggins-Daines <dhd@debian.org>, 2000.
266+
267+ The GNU C Library is free software; you can redistribute it and/or
268+ modify it under the terms of the GNU Lesser General Public
269+ License as published by the Free Software Foundation; either
270+ version 2.1 of the License, or (at your option) any later version.
271+
272+ The GNU C Library is distributed in the hope that it will be useful,
273+ but WITHOUT ANY WARRANTY; without even the implied warranty of
274+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
275+ Lesser General Public License for more details.
276+
277+ You should have received a copy of the GNU Lesser General Public
278+ License along with the GNU C Library; if not, write to the Free
279+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
280+ 02111-1307 USA. */
281+
282+/* Since we don't have an oldumount system call, do what the kernel
283+ does down here. */
284+
285+extern long int __umount2 (const char *name, int flags);
286+
287+long int
288+__umount (const char *name)
289+{
290+ return __umount2 (name, 0);
291+}
292+
293+weak_alias (__umount, umount);
294Index: glibc/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h
295===================================================================
296--- /dev/null 1970-01-01 00:00:00.000000000 +0000
297+++ glibc/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h 2006-03-20 17:26:58.000000000 -0500
298@@ -0,0 +1,31 @@
299+/* Set flags signalling availability of kernel features based on given
300+ kernel version number.
301+ Copyright (C) 2006 Free Software Foundation, Inc.
302+ This file is part of the GNU C Library.
303+
304+ The GNU C Library is free software; you can redistribute it and/or
305+ modify it under the terms of the GNU Lesser General Public
306+ License as published by the Free Software Foundation; either
307+ version 2.1 of the License, or (at your option) any later version.
308+
309+ The GNU C Library is distributed in the hope that it will be useful,
310+ but WITHOUT ANY WARRANTY; without even the implied warranty of
311+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
312+ Lesser General Public License for more details.
313+
314+ You should have received a copy of the GNU Lesser General Public
315+ License along with the GNU C Library; if not, write to the Free
316+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
317+ 02111-1307 USA. */
318+
319+/* The utimes syscall was added before 2.6.1. */
320+#if __LINUX_KERNEL_VERSION >= 132609
321+# define __ASSUME_UTIMES 1
322+#endif
323+
324+/* The new getrlimit syscall was added sometime before 2.4.6. */
325+#if __LINUX_KERNEL_VERSION >= 132102
326+#define __ASSUME_NEW_GETRLIMIT_SYSCALL 1
327+#endif
328+
329+#include_next <kernel-features.h>
diff --git a/meta/packages/glibc/glibc-2.4/generic-bits_select.h b/meta/packages/glibc/glibc-2.4/generic-bits_select.h
deleted file mode 100644
index 47e7dedc30..0000000000
--- a/meta/packages/glibc/glibc-2.4/generic-bits_select.h
+++ /dev/null
@@ -1,35 +0,0 @@
1/* Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
3
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
8
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
15 License along with the GNU C Library; if not, write to the Free
16 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17 02111-1307 USA. */
18
19#ifndef _SYS_SELECT_H
20# error "Never use <bits/select.h> directly; include <sys/select.h> instead."
21#endif
22
23
24/* We don't use `memset' because this would require a prototype and
25 the array isn't too big. */
26#define __FD_ZERO(s) \
27 do { \
28 unsigned int __i; \
29 fd_set *__arr = (s); \
30 for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) \
31 __FDS_BITS (__arr)[__i] = 0; \
32 } while (0)
33#define __FD_SET(d, s) (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d))
34#define __FD_CLR(d, s) (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d))
35#define __FD_ISSET(d, s) ((__FDS_BITS (s)[__FDELT(d)] & __FDMASK(d)) != 0)
diff --git a/meta/packages/glibc/glibc-2.4/generic-bits_time.h b/meta/packages/glibc/glibc-2.4/generic-bits_time.h
deleted file mode 100644
index b3184d1de9..0000000000
--- a/meta/packages/glibc/glibc-2.4/generic-bits_time.h
+++ /dev/null
@@ -1,75 +0,0 @@
1/* System-dependent timing definitions. Generic version.
2 Copyright (C) 1996,1997,1999-2002,2003 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, write to the Free
17 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18 02111-1307 USA. */
19
20/*
21 * Never include this file directly; use <time.h> instead.
22 */
23
24#ifndef __need_timeval
25# ifndef _BITS_TIME_H
26# define _BITS_TIME_H 1
27
28/* ISO/IEC 9899:1990 7.12.1: <time.h>
29 The macro `CLOCKS_PER_SEC' is the number per second of the value
30 returned by the `clock' function. */
31/* CAE XSH, Issue 4, Version 2: <time.h>
32 The value of CLOCKS_PER_SEC is required to be 1 million on all
33 XSI-conformant systems. */
34# define CLOCKS_PER_SEC 1000000l
35
36# if !defined __STRICT_ANSI__ && !defined __USE_XOPEN2K
37/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK
38 presents the real value for clock ticks per second for the system. */
39# include <bits/types.h>
40extern long int __sysconf (int);
41# define CLK_TCK ((__clock_t) __sysconf (2)) /* 2 is _SC_CLK_TCK */
42# endif
43
44# ifdef __USE_POSIX199309
45/* Identifier for system-wide realtime clock. */
46# define CLOCK_REALTIME 0
47/* Monotonic system-wide clock. */
48# define CLOCK_MONOTONIC 1
49/* High-resolution timer from the CPU. */
50# define CLOCK_PROCESS_CPUTIME_ID 2
51/* Thread-specific CPU-time clock. */
52# define CLOCK_THREAD_CPUTIME_ID 3
53
54/* Flag to indicate time is absolute. */
55# define TIMER_ABSTIME 1
56# endif
57
58# endif /* bits/time.h */
59#endif
60
61#ifdef __need_timeval
62# undef __need_timeval
63# ifndef _STRUCT_TIMEVAL
64# define _STRUCT_TIMEVAL 1
65# include <bits/types.h>
66
67/* A time value that is accurate to the nearest
68 microsecond but also has a range of years. */
69struct timeval
70 {
71 __time_t tv_sec; /* Seconds. */
72 __suseconds_t tv_usec; /* Microseconds. */
73 };
74# endif /* struct timeval */
75#endif /* need timeval */
diff --git a/meta/packages/glibc/glibc-2.4/generic-bits_types.h b/meta/packages/glibc/glibc-2.4/generic-bits_types.h
deleted file mode 100644
index 65c8a9fe90..0000000000
--- a/meta/packages/glibc/glibc-2.4/generic-bits_types.h
+++ /dev/null
@@ -1,200 +0,0 @@
1/* bits/types.h -- definitions of __*_t types underlying *_t types.
2 Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, write to the Free
17 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18 02111-1307 USA. */
19
20/*
21 * Never include this file directly; use <sys/types.h> instead.
22 */
23
24#ifndef _BITS_TYPES_H
25#define _BITS_TYPES_H 1
26
27#include <features.h>
28#include <bits/wordsize.h>
29
30#define __need_size_t
31#include <stddef.h>
32
33/* Convenience types. */
34typedef unsigned char __u_char;
35typedef unsigned short int __u_short;
36typedef unsigned int __u_int;
37typedef unsigned long int __u_long;
38
39/* Fixed-size types, underlying types depend on word size and compiler. */
40typedef signed char __int8_t;
41typedef unsigned char __uint8_t;
42typedef signed short int __int16_t;
43typedef unsigned short int __uint16_t;
44typedef signed int __int32_t;
45typedef unsigned int __uint32_t;
46#if __WORDSIZE == 64
47typedef signed long int __int64_t;
48typedef unsigned long int __uint64_t;
49#elif defined __GLIBC_HAVE_LONG_LONG
50__extension__ typedef signed long long int __int64_t;
51__extension__ typedef unsigned long long int __uint64_t;
52#endif
53
54/* quad_t is also 64 bits. */
55#if __WORDSIZE == 64
56typedef long int __quad_t;
57typedef unsigned long int __u_quad_t;
58#elif defined __GLIBC_HAVE_LONG_LONG
59__extension__ typedef long long int __quad_t;
60__extension__ typedef unsigned long long int __u_quad_t;
61#else
62typedef struct
63{
64 long __val[2];
65} __quad_t;
66typedef struct
67{
68 __u_long __val[2];
69} __u_quad_t;
70#endif
71
72
73/* The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
74 macros for each of the OS types we define below. The definitions
75 of those macros must use the following macros for underlying types.
76 We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
77 variants of each of the following integer types on this machine.
78
79 16 -- "natural" 16-bit type (always short)
80 32 -- "natural" 32-bit type (always int)
81 64 -- "natural" 64-bit type (long or long long)
82 LONG32 -- 32-bit type, traditionally long
83 QUAD -- 64-bit type, always long long
84 WORD -- natural type of __WORDSIZE bits (int or long)
85 LONGWORD -- type of __WORDSIZE bits, traditionally long
86
87 We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
88 conventional uses of `long' or `long long' type modifiers match the
89 types we define, even when a less-adorned type would be the same size.
90 This matters for (somewhat) portably writing printf/scanf formats for
91 these types, where using the appropriate l or ll format modifiers can
92 make the typedefs and the formats match up across all GNU platforms. If
93 we used `long' when it's 64 bits where `long long' is expected, then the
94 compiler would warn about the formats not matching the argument types,
95 and the programmer changing them to shut up the compiler would break the
96 program's portability.
97
98 Here we assume what is presently the case in all the GCC configurations
99 we support: long long is always 64 bits, long is always word/address size,
100 and int is always 32 bits. */
101
102#define __S16_TYPE short int
103#define __U16_TYPE unsigned short int
104#define __S32_TYPE int
105#define __U32_TYPE unsigned int
106#define __SLONGWORD_TYPE long int
107#define __ULONGWORD_TYPE unsigned long int
108#if __WORDSIZE == 32
109# define __SQUAD_TYPE __quad_t
110# define __UQUAD_TYPE __u_quad_t
111# define __SWORD_TYPE int
112# define __UWORD_TYPE unsigned int
113# define __SLONG32_TYPE long int
114# define __ULONG32_TYPE unsigned long int
115# define __S64_TYPE __quad_t
116# define __U64_TYPE __u_quad_t
117/* We want __extension__ before typedef's that use nonstandard base types
118 such as `long long' in C89 mode. */
119# define __STD_TYPE __extension__ typedef
120#elif __WORDSIZE == 64
121# define __SQUAD_TYPE long int
122# define __UQUAD_TYPE unsigned long int
123# define __SWORD_TYPE long int
124# define __UWORD_TYPE unsigned long int
125# define __SLONG32_TYPE int
126# define __ULONG32_TYPE unsigned int
127# define __S64_TYPE long int
128# define __U64_TYPE unsigned long int
129/* No need to mark the typedef with __extension__. */
130# define __STD_TYPE typedef
131#else
132# error
133#endif
134#include <bits/typesizes.h> /* Defines __*_T_TYPE macros. */
135
136
137__STD_TYPE __DEV_T_TYPE __dev_t; /* Type of device numbers. */
138__STD_TYPE __UID_T_TYPE __uid_t; /* Type of user identifications. */
139__STD_TYPE __GID_T_TYPE __gid_t; /* Type of group identifications. */
140__STD_TYPE __INO_T_TYPE __ino_t; /* Type of file serial numbers. */
141__STD_TYPE __INO64_T_TYPE __ino64_t; /* Type of file serial numbers (LFS).*/
142__STD_TYPE __MODE_T_TYPE __mode_t; /* Type of file attribute bitmasks. */
143__STD_TYPE __NLINK_T_TYPE __nlink_t; /* Type of file link counts. */
144__STD_TYPE __OFF_T_TYPE __off_t; /* Type of file sizes and offsets. */
145__STD_TYPE __OFF64_T_TYPE __off64_t; /* Type of file sizes and offsets (LFS). */
146__STD_TYPE __PID_T_TYPE __pid_t; /* Type of process identifications. */
147__STD_TYPE __FSID_T_TYPE __fsid_t; /* Type of file system IDs. */
148__STD_TYPE __CLOCK_T_TYPE __clock_t; /* Type of CPU usage counts. */
149__STD_TYPE __RLIM_T_TYPE __rlim_t; /* Type for resource measurement. */
150__STD_TYPE __RLIM64_T_TYPE __rlim64_t; /* Type for resource measurement (LFS). */
151__STD_TYPE __ID_T_TYPE __id_t; /* General type for IDs. */
152__STD_TYPE __TIME_T_TYPE __time_t; /* Seconds since the Epoch. */
153__STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds. */
154__STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds. */
155
156__STD_TYPE __DADDR_T_TYPE __daddr_t; /* The type of a disk address. */
157__STD_TYPE __SWBLK_T_TYPE __swblk_t; /* Type of a swap block maybe? */
158__STD_TYPE __KEY_T_TYPE __key_t; /* Type of an IPC key. */
159
160/* Clock ID used in clock and timer functions. */
161__STD_TYPE __CLOCKID_T_TYPE __clockid_t;
162
163/* Timer ID returned by `timer_create'. */
164__STD_TYPE __TIMER_T_TYPE __timer_t;
165
166/* Type to represent block size. */
167__STD_TYPE __BLKSIZE_T_TYPE __blksize_t;
168
169/* Types from the Large File Support interface. */
170
171/* Type to count number of disk blocks. */
172__STD_TYPE __BLKCNT_T_TYPE __blkcnt_t;
173__STD_TYPE __BLKCNT64_T_TYPE __blkcnt64_t;
174
175/* Type to count file system blocks. */
176__STD_TYPE __FSBLKCNT_T_TYPE __fsblkcnt_t;
177__STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcnt64_t;
178
179/* Type to count file system nodes. */
180__STD_TYPE __FSFILCNT_T_TYPE __fsfilcnt_t;
181__STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t;
182
183__STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error. */
184
185/* These few don't really vary by system, they always correspond
186 to one of the other defined types. */
187typedef __off64_t __loff_t; /* Type of file sizes and offsets (LFS). */
188typedef __quad_t *__qaddr_t;
189typedef char *__caddr_t;
190
191/* Duplicates info from stdint.h but this is used in unistd.h. */
192__STD_TYPE __SWORD_TYPE __intptr_t;
193
194/* Duplicate info from sys/socket.h. */
195__STD_TYPE __U32_TYPE __socklen_t;
196
197
198#undef __STD_TYPE
199
200#endif /* bits/types.h */
diff --git a/meta/packages/glibc/glibc-2.4/generic-bits_typesizes.h b/meta/packages/glibc/glibc-2.4/generic-bits_typesizes.h
deleted file mode 100644
index e9226c4174..0000000000
--- a/meta/packages/glibc/glibc-2.4/generic-bits_typesizes.h
+++ /dev/null
@@ -1,66 +0,0 @@
1/* bits/typesizes.h -- underlying types for *_t. Generic version.
2 Copyright (C) 2002, 2003 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, write to the Free
17 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18 02111-1307 USA. */
19
20#ifndef _BITS_TYPES_H
21# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
22#endif
23
24#ifndef _BITS_TYPESIZES_H
25#define _BITS_TYPESIZES_H 1
26
27/* See <bits/types.h> for the meaning of these macros. This file exists so
28 that <bits/types.h> need not vary across different GNU platforms. */
29
30#define __DEV_T_TYPE __UQUAD_TYPE
31#define __UID_T_TYPE __U32_TYPE
32#define __GID_T_TYPE __U32_TYPE
33#define __INO_T_TYPE __ULONGWORD_TYPE
34#define __INO64_T_TYPE __UQUAD_TYPE
35#define __MODE_T_TYPE __U32_TYPE
36#define __NLINK_T_TYPE __UWORD_TYPE
37#define __OFF_T_TYPE __SLONGWORD_TYPE
38#define __OFF64_T_TYPE __SQUAD_TYPE
39#define __PID_T_TYPE __S32_TYPE
40#define __RLIM_T_TYPE __ULONGWORD_TYPE
41#define __RLIM64_T_TYPE __UQUAD_TYPE
42#define __BLKCNT_T_TYPE __SLONGWORD_TYPE
43#define __BLKCNT64_T_TYPE __SQUAD_TYPE
44#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE
45#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
46#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE
47#define __FSFILCNT64_T_TYPE __UQUAD_TYPE
48#define __ID_T_TYPE __U32_TYPE
49#define __CLOCK_T_TYPE __SLONGWORD_TYPE
50#define __TIME_T_TYPE __SLONGWORD_TYPE
51#define __USECONDS_T_TYPE __U32_TYPE
52#define __SUSECONDS_T_TYPE __SLONGWORD_TYPE
53#define __DADDR_T_TYPE __S32_TYPE
54#define __SWBLK_T_TYPE __SLONGWORD_TYPE
55#define __KEY_T_TYPE __S32_TYPE
56#define __CLOCKID_T_TYPE __S32_TYPE
57#define __TIMER_T_TYPE void *
58#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
59#define __FSID_T_TYPE struct { int __val[2]; }
60#define __SSIZE_T_TYPE __SWORD_TYPE
61
62/* Number of descriptors that can fit in an `fd_set'. */
63#define __FD_SETSIZE 1024
64
65
66#endif /* bits/typesizes.h */
diff --git a/meta/packages/glibc/glibc-2.4/glibc-2.4-compile.patch b/meta/packages/glibc/glibc-2.4/glibc-2.4-compile.patch
deleted file mode 100644
index ea9f55ae7f..0000000000
--- a/meta/packages/glibc/glibc-2.4/glibc-2.4-compile.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1--- glibc-2.4/csu/libc-start.c.ark 2006-03-13 03:07:15.000000000 +0100
2+++ glibc-2.4/csu/libc-start.c 2006-03-13 03:08:51.000000000 +0100
3@@ -59,6 +59,11 @@
4 # define LIBC_START_MAIN BP_SYM (__libc_start_main)
5 #endif
6
7+#ifdef SHARED
8+#include <pthread-functions.h>
9+extern struct pthread_functions __libc_pthread_functions;
10+#endif
11+
12 #ifdef MAIN_AUXVEC_ARG
13 /* main gets passed a pointer to the auxiliary. */
14 # define MAIN_AUXVEC_DECL , void *
15--- glibc-2.4/nscd/Makefile.ark 2006-03-13 14:05:47.000000000 +0100
16+++ glibc-2.4/nscd/Makefile 2006-03-13 14:06:12.000000000 +0100
17@@ -67,8 +67,10 @@
18 # contains only the basic kernel interface headers, not something like
19 # libselinux. So the simplest thing is to presume that the standard
20 # system headers will be ok for this file.
21-$(objpfx)nscd_stat.o: sysincludes = # nothing
22-$(objpfx)selinux.o: sysincludes = # nothing
23+# Except, of course, this breaks crosscompiling with kernel headers in
24+# a nonstandard location...
25+#$(objpfx)nscd_stat.o: sysincludes = # nothing
26+#$(objpfx)selinux.o: sysincludes = # nothing
27
28 distribute := nscd.h nscd-client.h dbg_log.h \
29 $(addsuffix .c, $(filter-out xmalloc,$(all-nscd-modules))) \
diff --git a/meta/packages/glibc/glibc-2.4/glibc-2.4-openat-3.patch b/meta/packages/glibc/glibc-2.4/glibc-2.4-openat-3.patch
deleted file mode 100644
index d3f37f6c36..0000000000
--- a/meta/packages/glibc/glibc-2.4/glibc-2.4-openat-3.patch
+++ /dev/null
@@ -1,133 +0,0 @@
1Submitted By: Jim Gifford (patches at jg555 dot com)
2Date: 2006-08-18
3Initial Package Version: 2.4
4Origin: http://sourceware.org/bugzilla/show_bug.cgi?id=2873
5Upstream Status: Applied
6Description: Fixes http://sourceware.org/bugzilla/show_bug.cgi?id=2873
7 http://sourceware.org/bugzilla/show_bug.cgi?id=3040
8 http://linuxfromscratch.org/pipermail/lfs-dev/2006-June/057562.html
9 Updated by Joe Ciccone
10
11diff -Naur glibc-2.4.orig/sysdeps/unix/sysv/linux/i386/fchownat.c glibc-2.4/sysdeps/unix/sysv/linux/i386/fchownat.c
12--- glibc-2.4.orig/sysdeps/unix/sysv/linux/i386/fchownat.c 2006-02-23 14:50:21.000000000 -0800
13+++ glibc-2.4/sysdeps/unix/sysv/linux/i386/fchownat.c 2006-08-18 20:38:21.773288795 -0700
14@@ -61,6 +61,24 @@
15 int
16 fchownat (int fd, const char *file, uid_t owner, gid_t group, int flag)
17 {
18+ int result;
19+
20+#ifdef __NR_fchownat
21+# ifndef __ASSUME_ATFCTS
22+ if (__have_atfcts >= 0)
23+# endif
24+ {
25+ result = INLINE_SYSCALL (fchownat, 5, fd, file, owner, group, flag);
26+# ifndef __ASSUME_ATFCTS
27+ if (result == -1 && errno == ENOSYS)
28+ __have_atfcts = -1;
29+ else
30+# endif
31+ return result;
32+ }
33+#endif
34+
35+#ifndef __ASSUME_ATFCTS
36 if (flag & ~AT_SYMLINK_NOFOLLOW)
37 {
38 __set_errno (EINVAL);
39@@ -87,14 +105,13 @@
40 file = buf;
41 }
42
43- int result;
44 INTERNAL_SYSCALL_DECL (err);
45
46-#if defined __NR_lchown || __ASSUME_LCHOWN_SYSCALL > 0
47-# if __ASSUME_LCHOWN_SYSCALL == 0
48+# if defined __NR_lchown || __ASSUME_LCHOWN_SYSCALL > 0
49+# if __ASSUME_LCHOWN_SYSCALL == 0
50 static int __libc_old_chown;
51
52-# ifdef __NR_chown32
53+# ifdef __NR_chown32
54 if (__libc_missing_32bit_uids <= 0)
55 {
56 if (flag & AT_SYMLINK_NOFOLLOW)
57@@ -111,7 +128,7 @@
58
59 __libc_missing_32bit_uids = 1;
60 }
61-# endif /* __NR_chown32 */
62+# endif /* __NR_chown32 */
63
64 if (((owner + 1) > (uid_t) ((__kernel_uid_t) -1U))
65 || ((group + 1) > (gid_t) ((__kernel_gid_t) -1U)))
66@@ -135,13 +152,13 @@
67
68 result = INTERNAL_SYSCALL (lchown, err, 3, CHECK_STRING (file), owner,
69 group);
70-# elif __ASSUME_32BITUIDS
71+# elif __ASSUME_32BITUIDS
72 /* This implies __ASSUME_LCHOWN_SYSCALL. */
73 result = INTERNAL_SYSCALL (chown32, err, 3, CHECK_STRING (file), owner,
74 group);
75-# else
76+# else
77 /* !__ASSUME_32BITUIDS && ASSUME_LCHOWN_SYSCALL */
78-# ifdef __NR_chown32
79+# ifdef __NR_chown32
80 if (__libc_missing_32bit_uids <= 0)
81 {
82 result = INTERNAL_SYSCALL (chown32, err, 3, CHECK_STRING (file), owner,
83@@ -153,7 +170,7 @@
84
85 __libc_missing_32bit_uids = 1;
86 }
87-# endif /* __NR_chown32 */
88+# endif /* __NR_chown32 */
89 if (((owner + 1) > (uid_t) ((__kernel_uid_t) -1U))
90 || ((group + 1) > (gid_t) ((__kernel_gid_t) -1U)))
91 {
92@@ -162,10 +179,10 @@
93 }
94
95 result = INTERNAL_SYSCALL (chown, err, 3, CHECK_STRING (file), owner, group);
96-# endif
97-#else
98+# endif
99+# else
100 result = INTERNAL_SYSCALL (chown, err, 3, CHECK_STRING (file), owner, group);
101-#endif
102+# endif
103
104 if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0))
105 goto fail;
106@@ -175,4 +192,5 @@
107 fail:
108 __atfct_seterrno (INTERNAL_SYSCALL_ERRNO (result, err), fd, buf);
109 return -1;
110+#endif
111 }
112diff -Naur glibc-2.4.orig/sysdeps/unix/sysv/linux/openat.c glibc-2.4/sysdeps/unix/sysv/linux/openat.c
113--- glibc-2.4.orig/sysdeps/unix/sysv/linux/openat.c 2006-02-28 21:32:42.000000000 -0800
114+++ glibc-2.4/sysdeps/unix/sysv/linux/openat.c 2006-08-18 20:39:14.360012706 -0700
115@@ -29,8 +29,6 @@
116
117
118 #if !defined OPENAT && !defined __ASSUME_ATFCTS
119-# define OPENAT openat
120-
121 /* Set errno after a failed call. If BUF is not null,
122 it is a /proc/self/fd/ path name we just tried to use. */
123 void
124@@ -63,6 +61,9 @@
125 int __have_atfcts;
126 #endif
127
128+#ifndef OPENAT
129+# define OPENAT openat
130+#endif
131
132 #define OPENAT_NOT_CANCEL CONCAT (OPENAT)
133 #define CONCAT(name) CONCAT2 (name)
diff --git a/meta/packages/glibc/glibc-2.4/glibc-arm-no-procinfo_h.patch b/meta/packages/glibc/glibc-2.4/glibc-arm-no-procinfo_h.patch
deleted file mode 100644
index 6486fc0eab..0000000000
--- a/meta/packages/glibc/glibc-2.4/glibc-arm-no-procinfo_h.patch
+++ /dev/null
@@ -1,325 +0,0 @@
1http://sources.redhat.com/ml/libc-ports/2006-10/msg00040.html
2Avoid using asm/procinfo.h
3
4 * From: "Joseph S. Myers" <joseph at codesourcery dot com>
5 * To: libc-ports at sourceware dot org
6 * Date: Tue, 24 Oct 2006 19:25:12 +0000 (UTC)
7 * Subject: Avoid using asm/procinfo.h
8
9I previously noted
10<http://sourceware.org/ml/libc-ports/2006-08/msg00023.html> that the
11use of <asm/procinfo.h>, a Linux-specific kernel header, in
12sysdeps/arm/eabi, is an abstraction violation, and that in principle
13all the files in sysdeps/arm/eabi should use sysdep.h not
14asm/procinfo.h for HWCAP_VFP.
15
16The ARM kernel maintainers have now declared that <asm/procinfo.h>
17should not be used outside the kernel at all (and in particular that
18headers_install is correct in not exporting it), and that these
19definitions will move to a different kernel header. This gives a
20concrete reason for making the change to use glibc's internal
21definitions, which this patch does, thereby allowing glibc to build
22with the exported headers.
23
242006-10-24 Joseph S. Myers <joseph@codesourcery.com>
25
26 * sysdeps/arm/eabi/fclrexcpt.c: Include <sysdep.h> instead of
27 <asm/procinfo.h>. Use HWCAP_ARM_VFP instead of HWCAP_VFP.
28 * sysdeps/arm/eabi/fedisblxcpt.c: Likewise.
29 * sysdeps/arm/eabi/feenablxcpt.c: Likewise.
30 * sysdeps/arm/eabi/fegetenv.c: Likewise.
31 * sysdeps/arm/eabi/fegetexcept.c: Likewise.
32 * sysdeps/arm/eabi/fegetround.c: Likewise.
33 * sysdeps/arm/eabi/feholdexcpt.c: Likewise.
34 * sysdeps/arm/eabi/fesetenv.c: Likewise.
35 * sysdeps/arm/eabi/fesetround.c: Likewise.
36 * sysdeps/arm/eabi/fraiseexcpt.c: Likewise.
37 * sysdeps/arm/eabi/fsetexcptflg.c: Likewise.
38 * sysdeps/arm/eabi/ftestexcept.c: Likewise.
39 * sysdeps/arm/eabi/setfpucw.c: Likewise.
40
41Index: libc/ports/sysdeps/arm/eabi/fclrexcpt.c
42===================================================================
43RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fclrexcpt.c,v
44retrieving revision 1.1
45diff -u -r1.1 fclrexcpt.c
46--- libc/ports/sysdeps/arm/eabi/fclrexcpt.c 10 Oct 2005 15:29:32 -0000 1.1
47+++ libc/ports/sysdeps/arm/eabi/fclrexcpt.c 24 Oct 2006 19:17:51 -0000
48@@ -23,12 +23,12 @@
49 #include <unistd.h>
50 #include <ldsodefs.h>
51 #include <dl-procinfo.h>
52-#include <asm/procinfo.h>
53+#include <sysdep.h>
54
55 int
56 __feclearexcept (int excepts)
57 {
58- if (GLRO (dl_hwcap) & HWCAP_VFP)
59+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
60 {
61 unsigned long int temp;
62
63Index: libc/ports/sysdeps/arm/eabi/fedisblxcpt.c
64===================================================================
65RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fedisblxcpt.c,v
66retrieving revision 1.1
67diff -u -r1.1 fedisblxcpt.c
68--- libc/ports/sysdeps/arm/eabi/fedisblxcpt.c 10 Oct 2005 15:29:32 -0000 1.1
69+++ libc/ports/sysdeps/arm/eabi/fedisblxcpt.c 24 Oct 2006 19:17:51 -0000
70@@ -24,12 +24,12 @@
71 #include <unistd.h>
72 #include <ldsodefs.h>
73 #include <dl-procinfo.h>
74-#include <asm/procinfo.h>
75+#include <sysdep.h>
76
77 int
78 fedisableexcept (int excepts)
79 {
80- if (GLRO (dl_hwcap) & HWCAP_VFP)
81+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
82 {
83 unsigned long int new_exc, old_exc;
84
85Index: libc/ports/sysdeps/arm/eabi/feenablxcpt.c
86===================================================================
87RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/feenablxcpt.c,v
88retrieving revision 1.1
89diff -u -r1.1 feenablxcpt.c
90--- libc/ports/sysdeps/arm/eabi/feenablxcpt.c 10 Oct 2005 15:29:32 -0000 1.1
91+++ libc/ports/sysdeps/arm/eabi/feenablxcpt.c 24 Oct 2006 19:17:51 -0000
92@@ -24,12 +24,12 @@
93 #include <unistd.h>
94 #include <ldsodefs.h>
95 #include <dl-procinfo.h>
96-#include <asm/procinfo.h>
97+#include <sysdep.h>
98
99 int
100 feenableexcept (int excepts)
101 {
102- if (GLRO (dl_hwcap) & HWCAP_VFP)
103+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
104 {
105 unsigned long int new_exc, old_exc;
106
107Index: libc/ports/sysdeps/arm/eabi/fegetenv.c
108===================================================================
109RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fegetenv.c,v
110retrieving revision 1.1
111diff -u -r1.1 fegetenv.c
112--- libc/ports/sysdeps/arm/eabi/fegetenv.c 10 Oct 2005 15:29:32 -0000 1.1
113+++ libc/ports/sysdeps/arm/eabi/fegetenv.c 24 Oct 2006 19:17:51 -0000
114@@ -23,12 +23,12 @@
115 #include <unistd.h>
116 #include <ldsodefs.h>
117 #include <dl-procinfo.h>
118-#include <asm/procinfo.h>
119+#include <sysdep.h>
120
121 int
122 __fegetenv (fenv_t *envp)
123 {
124- if (GLRO (dl_hwcap) & HWCAP_VFP)
125+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
126 {
127 unsigned long int temp;
128 _FPU_GETCW (temp);
129Index: libc/ports/sysdeps/arm/eabi/fegetexcept.c
130===================================================================
131RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fegetexcept.c,v
132retrieving revision 1.1
133diff -u -r1.1 fegetexcept.c
134--- libc/ports/sysdeps/arm/eabi/fegetexcept.c 10 Oct 2005 15:29:32 -0000 1.1
135+++ libc/ports/sysdeps/arm/eabi/fegetexcept.c 24 Oct 2006 19:17:51 -0000
136@@ -24,12 +24,12 @@
137 #include <unistd.h>
138 #include <ldsodefs.h>
139 #include <dl-procinfo.h>
140-#include <asm/procinfo.h>
141+#include <sysdep.h>
142
143 int
144 fegetexcept (void)
145 {
146- if (GLRO (dl_hwcap) & HWCAP_VFP)
147+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
148 {
149 unsigned long temp;
150
151Index: libc/ports/sysdeps/arm/eabi/fegetround.c
152===================================================================
153RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fegetround.c,v
154retrieving revision 1.1
155diff -u -r1.1 fegetround.c
156--- libc/ports/sysdeps/arm/eabi/fegetround.c 10 Oct 2005 15:29:32 -0000 1.1
157+++ libc/ports/sysdeps/arm/eabi/fegetround.c 24 Oct 2006 19:17:51 -0000
158@@ -23,12 +23,12 @@
159 #include <unistd.h>
160 #include <ldsodefs.h>
161 #include <dl-procinfo.h>
162-#include <asm/procinfo.h>
163+#include <sysdep.h>
164
165 int
166 fegetround (void)
167 {
168- if (GLRO (dl_hwcap) & HWCAP_VFP)
169+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
170 {
171 unsigned int temp;
172
173Index: libc/ports/sysdeps/arm/eabi/feholdexcpt.c
174===================================================================
175RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/feholdexcpt.c,v
176retrieving revision 1.1
177diff -u -r1.1 feholdexcpt.c
178--- libc/ports/sysdeps/arm/eabi/feholdexcpt.c 10 Oct 2005 15:29:32 -0000 1.1
179+++ libc/ports/sysdeps/arm/eabi/feholdexcpt.c 24 Oct 2006 19:17:51 -0000
180@@ -23,12 +23,12 @@
181 #include <unistd.h>
182 #include <ldsodefs.h>
183 #include <dl-procinfo.h>
184-#include <asm/procinfo.h>
185+#include <sysdep.h>
186
187 int
188 feholdexcept (fenv_t *envp)
189 {
190- if (GLRO (dl_hwcap) & HWCAP_VFP)
191+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
192 {
193 unsigned long int temp;
194
195Index: libc/ports/sysdeps/arm/eabi/fesetenv.c
196===================================================================
197RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fesetenv.c,v
198retrieving revision 1.1
199diff -u -r1.1 fesetenv.c
200--- libc/ports/sysdeps/arm/eabi/fesetenv.c 10 Oct 2005 15:29:32 -0000 1.1
201+++ libc/ports/sysdeps/arm/eabi/fesetenv.c 24 Oct 2006 19:17:51 -0000
202@@ -23,12 +23,12 @@
203 #include <unistd.h>
204 #include <ldsodefs.h>
205 #include <dl-procinfo.h>
206-#include <asm/procinfo.h>
207+#include <sysdep.h>
208
209 int
210 __fesetenv (const fenv_t *envp)
211 {
212- if (GLRO (dl_hwcap) & HWCAP_VFP)
213+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
214 {
215 unsigned int temp;
216
217Index: libc/ports/sysdeps/arm/eabi/fesetround.c
218===================================================================
219RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fesetround.c,v
220retrieving revision 1.1
221diff -u -r1.1 fesetround.c
222--- libc/ports/sysdeps/arm/eabi/fesetround.c 10 Oct 2005 15:29:32 -0000 1.1
223+++ libc/ports/sysdeps/arm/eabi/fesetround.c 24 Oct 2006 19:17:51 -0000
224@@ -23,12 +23,12 @@
225 #include <unistd.h>
226 #include <ldsodefs.h>
227 #include <dl-procinfo.h>
228-#include <asm/procinfo.h>
229+#include <sysdep.h>
230
231 int
232 fesetround (int round)
233 {
234- if (GLRO (dl_hwcap) & HWCAP_VFP)
235+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
236 {
237 fpu_control_t temp;
238
239Index: libc/ports/sysdeps/arm/eabi/fraiseexcpt.c
240===================================================================
241RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fraiseexcpt.c,v
242retrieving revision 1.1
243diff -u -r1.1 fraiseexcpt.c
244--- libc/ports/sysdeps/arm/eabi/fraiseexcpt.c 10 Oct 2005 15:29:32 -0000 1.1
245+++ libc/ports/sysdeps/arm/eabi/fraiseexcpt.c 24 Oct 2006 19:17:51 -0000
246@@ -24,12 +24,12 @@
247 #include <unistd.h>
248 #include <ldsodefs.h>
249 #include <dl-procinfo.h>
250-#include <asm/procinfo.h>
251+#include <sysdep.h>
252
253 int
254 feraiseexcept (int excepts)
255 {
256- if (GLRO (dl_hwcap) & HWCAP_VFP)
257+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
258 {
259 int fpscr;
260 const float fp_zero = 0.0, fp_one = 1.0, fp_max = FLT_MAX,
261Index: libc/ports/sysdeps/arm/eabi/fsetexcptflg.c
262===================================================================
263RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fsetexcptflg.c,v
264retrieving revision 1.1
265diff -u -r1.1 fsetexcptflg.c
266--- libc/ports/sysdeps/arm/eabi/fsetexcptflg.c 10 Oct 2005 15:29:32 -0000 1.1
267+++ libc/ports/sysdeps/arm/eabi/fsetexcptflg.c 24 Oct 2006 19:17:51 -0000
268@@ -24,12 +24,12 @@
269 #include <unistd.h>
270 #include <ldsodefs.h>
271 #include <dl-procinfo.h>
272-#include <asm/procinfo.h>
273+#include <sysdep.h>
274
275 int
276 __fesetexceptflag (const fexcept_t *flagp, int excepts)
277 {
278- if (GLRO (dl_hwcap) & HWCAP_VFP)
279+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
280 {
281 fexcept_t temp;
282
283Index: libc/ports/sysdeps/arm/eabi/ftestexcept.c
284===================================================================
285RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/ftestexcept.c,v
286retrieving revision 1.1
287diff -u -r1.1 ftestexcept.c
288--- libc/ports/sysdeps/arm/eabi/ftestexcept.c 10 Oct 2005 15:29:32 -0000 1.1
289+++ libc/ports/sysdeps/arm/eabi/ftestexcept.c 24 Oct 2006 19:17:51 -0000
290@@ -23,12 +23,12 @@
291 #include <unistd.h>
292 #include <ldsodefs.h>
293 #include <dl-procinfo.h>
294-#include <asm/procinfo.h>
295+#include <sysdep.h>
296
297 int
298 fetestexcept (int excepts)
299 {
300- if (GLRO (dl_hwcap) & HWCAP_VFP)
301+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
302 {
303 fexcept_t temp;
304
305Index: libc/ports/sysdeps/arm/eabi/setfpucw.c
306===================================================================
307RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/setfpucw.c,v
308retrieving revision 1.1
309diff -u -r1.1 setfpucw.c
310--- libc/ports/sysdeps/arm/eabi/setfpucw.c 10 Oct 2005 15:29:32 -0000 1.1
311+++ libc/ports/sysdeps/arm/eabi/setfpucw.c 24 Oct 2006 19:17:51 -0000
312@@ -23,12 +23,12 @@
313 #include <unistd.h>
314 #include <ldsodefs.h>
315 #include <dl-procinfo.h>
316-#include <asm/procinfo.h>
317+#include <sysdep.h>
318
319 void
320 __setfpucw (fpu_control_t set)
321 {
322- if (GLRO (dl_hwcap) & HWCAP_VFP)
323+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
324 {
325 fpu_control_t cw;
diff --git a/meta/packages/glibc/glibc-2.4/glibc-check_pf.patch b/meta/packages/glibc/glibc-2.4/glibc-check_pf.patch
deleted file mode 100644
index 3cff6bbcfa..0000000000
--- a/meta/packages/glibc/glibc-2.4/glibc-check_pf.patch
+++ /dev/null
@@ -1,343 +0,0 @@
1From libc-ports-return-550-listarch-libc-ports=sources dot redhat dot com at sourceware dot org Tue Oct 31 17:37:21 2006
2Return-Path: <libc-ports-return-550-listarch-libc-ports=sources dot redhat dot com at sourceware dot org>
3Delivered-To: listarch-libc-ports at sources dot redhat dot com
4Received: (qmail 17273 invoked by alias); 31 Oct 2006 17:37:20 -0000
5Received: (qmail 17262 invoked by uid 22791); 31 Oct 2006 17:37:19 -0000
6X-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,TW_CP
7X-Spam-Check-By: sourceware.org
8Received: from nevyn.them.org (HELO nevyn.them.org) (66.93.172.17) by sourceware.org (qpsmtpd/0.31.1) with ESMTP; Tue, 31 Oct 2006 17:37:11 +0000
9Received: from drow by nevyn.them.org with local (Exim 4.54) id 1GexXw-0007Dj-30; Tue, 31 Oct 2006 12:37:08 -0500
10Date: Tue, 31 Oct 2006 12:37:08 -0500
11From: Daniel Jacobowitz <drow at false dot org>
12To: Mike Frysinger <vapier at gentoo dot org>
13Cc: libc-ports at sourceware dot org, Philip Balister <philip dot balister at gmail dot com>
14Subject: Re: Problem with glibc-2.5 on ARM
15Message-ID: <20061031173708.GJ20468@nevyn.them.org>
16References: <499146270610241149ibe030e0nd9d6b177a95b346e@mail.gmail.com> <499146270610241254u7cadf63ej2edf05cedbc5266f@mail.gmail.com> <20061024195837.GA20181@nevyn.them.org> <200610291954.27022.vapier@gentoo.org>
17MIME-Version: 1.0
18Content-Type: text/plain; charset=us-ascii
19Content-Disposition: inline
20In-Reply-To: <200610291954 dot 27022 dot vapier at gentoo dot org>
21User-Agent: Mutt/1.5.13 (2006-08-11)
22X-IsSubscribed: yes
23Mailing-List: contact libc-ports-help at sourceware dot org; run by ezmlm
24Precedence: bulk
25List-Subscribe: <mailto:libc-ports-subscribe at sourceware dot org>
26List-Post: <mailto:libc-ports at sourceware dot org>
27List-Help: <mailto:libc-ports-help at sourceware dot org>, <http://sourceware dot org/lists dot html#faqs>
28Sender: libc-ports-owner at sourceware dot org
29Delivered-To: mailing list libc-ports at sourceware dot org
30
31On Sun, Oct 29, 2006 at 07:54:25PM -0500, Mike Frysinger wrote:
32> On Tuesday 24 October 2006 15:58, Daniel Jacobowitz wrote:
33> > ARM is going to need a slightly different version of that file, I
34> > guess.
35>
36> would declaring req with attribute packed not help ?
37> -mike
38
39Nope. "struct rtgenmsg" would still have size 4.
40
41Philip, are you still at all interested in this for the old ABI?
42I don't have time to test this patch right now, but I think it
43will work.
44
45--
46Daniel Jacobowitz
47CodeSourcery
48
492006-10-31 Daniel Jacobowitz <dan@codesourcery.com>
50
51 * sysdeps/unix/sysv/linux/arm/check_pf.c: New file.
52 * sysdeps/unix/sysv/linux/arm/eabi/check_pf.c: New file.
53
54Index: sysdeps/unix/sysv/linux/arm/check_pf.c
55===================================================================
56RCS file: sysdeps/unix/sysv/linux/arm/check_pf.c
57diff -N sysdeps/unix/sysv/linux/arm/check_pf.c
58--- /dev/null 1 Jan 1970 00:00:00 -0000
59+++ sysdeps/unix/sysv/linux/arm/check_pf.c 31 Oct 2006 17:29:58 -0000
60@@ -0,0 +1,274 @@
61+/* Determine protocol families for which interfaces exist. ARM Linux version.
62+ Copyright (C) 2003, 2006 Free Software Foundation, Inc.
63+ This file is part of the GNU C Library.
64+
65+ The GNU C Library is free software; you can redistribute it and/or
66+ modify it under the terms of the GNU Lesser General Public
67+ License as published by the Free Software Foundation; either
68+ version 2.1 of the License, or (at your option) any later version.
69+
70+ The GNU C Library is distributed in the hope that it will be useful,
71+ but WITHOUT ANY WARRANTY; without even the implied warranty of
72+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
73+ Lesser General Public License for more details.
74+
75+ You should have received a copy of the GNU Lesser General Public
76+ License along with the GNU C Library; if not, write to the Free
77+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
78+ 02111-1307 USA. */
79+
80+#include <assert.h>
81+#include <errno.h>
82+#include <ifaddrs.h>
83+#include <netdb.h>
84+#include <stddef.h>
85+#include <string.h>
86+#include <time.h>
87+#include <unistd.h>
88+#include <sys/socket.h>
89+
90+#include <asm/types.h>
91+#include <linux/netlink.h>
92+#include <linux/rtnetlink.h>
93+
94+#include <not-cancel.h>
95+#include <kernel-features.h>
96+
97+
98+#ifndef IFA_F_TEMPORARY
99+# define IFA_F_TEMPORARY IFA_F_SECONDARY
100+#endif
101+#ifndef IFA_F_HOMEADDRESS
102+# define IFA_F_HOMEADDRESS 0
103+#endif
104+
105+
106+static int
107+make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6,
108+ struct in6addrinfo **in6ai, size_t *in6ailen)
109+{
110+ struct req
111+ {
112+ struct nlmsghdr nlh;
113+ struct rtgenmsg g;
114+ } req;
115+ struct sockaddr_nl nladdr;
116+
117+ /* struct rtgenmsg consists of a single byte but the ARM ABI rounds
118+ it up to a word. Clear the padding explicitly here. */
119+ assert (sizeof (req.g) == 4);
120+ memset (&req.g, '\0', sizeof (req.g));
121+
122+ req.nlh.nlmsg_len = sizeof (req);
123+ req.nlh.nlmsg_type = RTM_GETADDR;
124+ req.nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST;
125+ req.nlh.nlmsg_pid = 0;
126+ req.nlh.nlmsg_seq = time (NULL);
127+ req.g.rtgen_family = AF_UNSPEC;
128+
129+ memset (&nladdr, '\0', sizeof (nladdr));
130+ nladdr.nl_family = AF_NETLINK;
131+
132+ if (TEMP_FAILURE_RETRY (__sendto (fd, (void *) &req, sizeof (req), 0,
133+ (struct sockaddr *) &nladdr,
134+ sizeof (nladdr))) < 0)
135+ return -1;
136+
137+ *seen_ipv4 = false;
138+ *seen_ipv6 = false;
139+
140+ bool done = false;
141+ char buf[4096];
142+ struct iovec iov = { buf, sizeof (buf) };
143+ struct in6ailist
144+ {
145+ struct in6addrinfo info;
146+ struct in6ailist *next;
147+ } *in6ailist = NULL;
148+ size_t in6ailistlen = 0;
149+
150+ do
151+ {
152+ struct msghdr msg =
153+ {
154+ (void *) &nladdr, sizeof (nladdr),
155+ &iov, 1,
156+ NULL, 0,
157+ 0
158+ };
159+
160+ ssize_t read_len = TEMP_FAILURE_RETRY (__recvmsg (fd, &msg, 0));
161+ if (read_len < 0)
162+ return -1;
163+
164+ if (msg.msg_flags & MSG_TRUNC)
165+ return -1;
166+
167+ struct nlmsghdr *nlmh;
168+ for (nlmh = (struct nlmsghdr *) buf;
169+ NLMSG_OK (nlmh, (size_t) read_len);
170+ nlmh = (struct nlmsghdr *) NLMSG_NEXT (nlmh, read_len))
171+ {
172+ if (nladdr.nl_pid != 0 || (pid_t) nlmh->nlmsg_pid != pid
173+ || nlmh->nlmsg_seq != req.nlh.nlmsg_seq)
174+ continue;
175+
176+ if (nlmh->nlmsg_type == RTM_NEWADDR)
177+ {
178+ struct ifaddrmsg *ifam = (struct ifaddrmsg *) NLMSG_DATA (nlmh);
179+
180+ switch (ifam->ifa_family)
181+ {
182+ case AF_INET:
183+ *seen_ipv4 = true;
184+ break;
185+ case AF_INET6:
186+ *seen_ipv6 = true;
187+
188+ if (ifam->ifa_flags & (IFA_F_DEPRECATED
189+ | IFA_F_TEMPORARY
190+ | IFA_F_HOMEADDRESS))
191+ {
192+ struct rtattr *rta = IFA_RTA (ifam);
193+ size_t len = (nlmh->nlmsg_len
194+ - NLMSG_LENGTH (sizeof (*ifam)));
195+ void *local = NULL;
196+ void *address = NULL;
197+ while (RTA_OK (rta, len))
198+ {
199+ switch (rta->rta_type)
200+ {
201+ case IFA_LOCAL:
202+ local = RTA_DATA (rta);
203+ break;
204+
205+ case IFA_ADDRESS:
206+ address = RTA_DATA (rta);
207+ break;
208+ }
209+
210+ rta = RTA_NEXT (rta, len);
211+ }
212+
213+ struct in6ailist *newp = alloca (sizeof (*newp));
214+ newp->info.flags = (((ifam->ifa_flags & IFA_F_DEPRECATED)
215+ ? in6ai_deprecated : 0)
216+ | ((ifam->ifa_flags
217+ & IFA_F_TEMPORARY)
218+ ? in6ai_temporary : 0)
219+ | ((ifam->ifa_flags
220+ & IFA_F_HOMEADDRESS)
221+ ? in6ai_homeaddress : 0));
222+ memcpy (newp->info.addr, address ?: local,
223+ sizeof (newp->info.addr));
224+ newp->next = in6ailist;
225+ in6ailist = newp;
226+ ++in6ailistlen;
227+ }
228+ break;
229+ default:
230+ /* Ignore. */
231+ break;
232+ }
233+ }
234+ else if (nlmh->nlmsg_type == NLMSG_DONE)
235+ /* We found the end, leave the loop. */
236+ done = true;
237+ }
238+ }
239+ while (! done);
240+
241+ close_not_cancel_no_status (fd);
242+
243+ if (in6ailist != NULL)
244+ {
245+ *in6ai = malloc (in6ailistlen * sizeof (**in6ai));
246+ if (*in6ai == NULL)
247+ return -1;
248+
249+ *in6ailen = in6ailistlen;
250+
251+ do
252+ {
253+ (*in6ai)[--in6ailistlen] = in6ailist->info;
254+ in6ailist = in6ailist->next;
255+ }
256+ while (in6ailist != NULL);
257+ }
258+
259+ return 0;
260+}
261+
262+
263+/* We don't know if we have NETLINK support compiled in in our
264+ Kernel. */
265+#if __ASSUME_NETLINK_SUPPORT == 0
266+/* Define in ifaddrs.h. */
267+extern int __no_netlink_support attribute_hidden;
268+#else
269+# define __no_netlink_support 0
270+#endif
271+
272+
273+void
274+attribute_hidden
275+__check_pf (bool *seen_ipv4, bool *seen_ipv6,
276+ struct in6addrinfo **in6ai, size_t *in6ailen)
277+{
278+ *in6ai = NULL;
279+ *in6ailen = 0;
280+
281+ if (! __no_netlink_support)
282+ {
283+ int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
284+
285+ struct sockaddr_nl nladdr;
286+ memset (&nladdr, '\0', sizeof (nladdr));
287+ nladdr.nl_family = AF_NETLINK;
288+
289+ socklen_t addr_len = sizeof (nladdr);
290+
291+ if (fd >= 0
292+ && __bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0
293+ && __getsockname (fd, (struct sockaddr *) &nladdr, &addr_len) == 0
294+ && make_request (fd, nladdr.nl_pid, seen_ipv4, seen_ipv6,
295+ in6ai, in6ailen) == 0)
296+ /* It worked. */
297+ return;
298+
299+ if (fd >= 0)
300+ __close (fd);
301+
302+#if __ASSUME_NETLINK_SUPPORT == 0
303+ /* Remember that there is no netlink support. */
304+ __no_netlink_support = 1;
305+#else
306+ /* We cannot determine what interfaces are available. Be
307+ pessimistic. */
308+ *seen_ipv4 = true;
309+ *seen_ipv6 = true;
310+#endif
311+ }
312+
313+#if __ASSUME_NETLINK_SUPPORT == 0
314+ /* No netlink. Get the interface list via getifaddrs. */
315+ struct ifaddrs *ifa = NULL;
316+ if (getifaddrs (&ifa) != 0)
317+ {
318+ /* We cannot determine what interfaces are available. Be
319+ pessimistic. */
320+ *seen_ipv4 = true;
321+ *seen_ipv6 = true;
322+ return;
323+ }
324+
325+ struct ifaddrs *runp;
326+ for (runp = ifa; runp != NULL; runp = runp->ifa_next)
327+ if (runp->ifa_addr->sa_family == PF_INET)
328+ *seen_ipv4 = true;
329+ else if (runp->ifa_addr->sa_family == PF_INET6)
330+ *seen_ipv6 = true;
331+
332+ (void) freeifaddrs (ifa);
333+#endif
334+}
335Index: sysdeps/unix/sysv/linux/arm/eabi/check_pf.c
336===================================================================
337RCS file: sysdeps/unix/sysv/linux/arm/eabi/check_pf.c
338diff -N sysdeps/unix/sysv/linux/arm/eabi/check_pf.c
339--- /dev/null 1 Jan 1970 00:00:00 -0000
340+++ sysdeps/unix/sysv/linux/arm/eabi/check_pf.c 31 Oct 2006 17:29:58 -0000
341@@ -0,0 +1 @@
342+#include <sysdeps/unix/sysv/linux/check_pf.c>
343
diff --git a/meta/packages/glibc/glibc-2.4/glibc-include-fixed.patch b/meta/packages/glibc/glibc-2.4/glibc-include-fixed.patch
deleted file mode 100644
index a8e87609f2..0000000000
--- a/meta/packages/glibc/glibc-2.4/glibc-include-fixed.patch
+++ /dev/null
@@ -1,54 +0,0 @@
1With the -nostdinc that we get --with-headers, we need to pull in GCC
24.3's include-fixed subdir too, because that's what contains limits.h
3and syslimits.h now.
4
5
6for ChangeLog
72008-01-30 Alexandre Oliva <aoliva@redhat.com>
8
9 * configure.in (SYSINCLUDES): Add GCC's include-fixed after include.
10 * configure: Rebuilt.
11
12Index: configure
13===================================================================
14--- configure.orig 2008-01-30 15:40:55.000000000 -0200
15+++ configure 2008-01-31 03:24:36.000000000 -0200
16@@ -5066,7 +5066,12 @@ echo "$as_me: WARNING:
17 # thing on a system that doesn't need fixincludes. (Not presently a problem.)
18 if test -n "$sysheaders"; then
19 ccheaders=`$CC -print-file-name=include`
20- SYSINCLUDES="-nostdinc -isystem $ccheaders \
21+ if test -d "${ccheaders}-fixed"; then
22+ fixedccheaders="-isystem ${ccheaders}-fixed"
23+ else
24+ fixedccheaders=
25+ fi
26+ SYSINCLUDES="-nostdinc -isystem $ccheaders $fixedccheaders \
27 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
28 if test -n "$CXX"; then
29 cxxversion=`$CXX -dumpversion 2>&5` &&
30Index: configure.in
31===================================================================
32--- configure.in.orig 2008-01-30 15:40:55.000000000 -0200
33+++ configure.in 2008-01-31 03:24:30.000000000 -0200
34@@ -915,7 +915,12 @@ test -n "$aux_missing" && AC_MSG_WARN([
35 # thing on a system that doesn't need fixincludes. (Not presently a problem.)
36 if test -n "$sysheaders"; then
37 ccheaders=`$CC -print-file-name=include`
38- SYSINCLUDES="-nostdinc -isystem $ccheaders \
39+ if test -d "${ccheaders}-fixed"; then
40+ fixedccheaders="-isystem ${ccheaders}-fixed"
41+ else
42+ fixedccheaders=
43+ fi
44+ SYSINCLUDES="-nostdinc -isystem $ccheaders $fixedccheaders \
45 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
46 if test -n "$CXX"; then
47 cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
48
49--
50Alexandre Oliva http://www.lsd.ic.unicamp.br/~oliva/
51FSF Latin America Board Member http://www.fsfla.org/
52Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
53Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}
54
diff --git a/meta/packages/glibc/glibc-2.4/ldd-unbash.patch b/meta/packages/glibc/glibc-2.4/ldd-unbash.patch
deleted file mode 100644
index 2fb8854b49..0000000000
--- a/meta/packages/glibc/glibc-2.4/ldd-unbash.patch
+++ /dev/null
@@ -1,11 +0,0 @@
1--- glibc-2.5/elf/ldd.bash.in.org 2006-04-30 16:06:20.000000000 +0000
2+++ glibc-2.5/elf/ldd.bash.in 2007-03-30 19:18:57.000000000 +0000
3@@ -110,7 +110,7 @@
4 # environments where the executed program might not have permissions
5 # to write to the console/tty. But only bash 3.x supports the pipefail
6 # option, and we don't bother to handle the case for older bash versions.
7-if set -o pipefail 2> /dev/null; then
8+if false; then
9 try_trace() {
10 eval $add_env '"$@"' | cat
11 }
diff --git a/meta/packages/glibc/glibc-2.4/ldsocache-varrun.patch b/meta/packages/glibc/glibc-2.4/ldsocache-varrun.patch
deleted file mode 100644
index 9994d4f879..0000000000
--- a/meta/packages/glibc/glibc-2.4/ldsocache-varrun.patch
+++ /dev/null
@@ -1,18 +0,0 @@
1This patch moves ld.so.cache from /etc to /var/run. This is for devices
2where /etc is JFFS2 or CRAMFS but /var is a ramdisk.
3
4#
5# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
6#
7
8--- libc/sysdeps/generic/dl-cache.h~ldsocache-varrun
9+++ libc/sysdeps/generic/dl-cache.h
10@@ -29,7 +29,7 @@
11 #endif
12
13 #ifndef LD_SO_CACHE
14-# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache"
15+# define LD_SO_CACHE "/var/run/ld.so.cache"
16 #endif
17
18 #ifndef add_system_dir
diff --git a/meta/packages/glibc/glibc-2.4/local-stdio-lock.diff b/meta/packages/glibc/glibc-2.4/local-stdio-lock.diff
deleted file mode 100644
index 65cd2fd6b4..0000000000
--- a/meta/packages/glibc/glibc-2.4/local-stdio-lock.diff
+++ /dev/null
@@ -1,34 +0,0 @@
1---
2 bits/stdio-lock.h | 17 +++++++++++++----
3 1 file changed, 13 insertions(+), 4 deletions(-)
4
5--- glibc-2.7.orig/bits/stdio-lock.h
6+++ glibc-2.7/bits/stdio-lock.h
7@@ -45,14 +45,23 @@ __libc_lock_define_recursive (typedef, _
8 #define _IO_cleanup_region_end(_doit) \
9 __libc_cleanup_region_end (_doit)
10
11 #if defined _LIBC && !defined NOT_IN_libc
12 # define _IO_acquire_lock(_fp) \
13- _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp)); \
14- _IO_flockfile (_fp)
15+ { \
16+ _IO_FILE *_IO_acquire_lock_file = _fp; \
17+ __libc_cleanup_region_start (1, (void (*) (void *)) _IO_acquire_lock_fct, &_IO_acquire_lock_file); \
18+ _IO_flockfile (_IO_acquire_lock_file)
19+
20+# define _IO_acquire_lock_clear_flags2(_fp) \
21+ { \
22+ _IO_FILE *_IO_acquire_lock_file = _fp; \
23+ __libc_cleanup_region_start (1, (void (*) (void *)) _IO_acquire_lock_clear_flags2_fct, &_IO_acquire_lock_file); \
24+ _IO_flockfile (_IO_acquire_lock_file)
25
26 # define _IO_release_lock(_fp) \
27- _IO_funlockfile (_fp); \
28- _IO_cleanup_region_end (0)
29+ __libc_cleanup_region_end (1); \
30+ }
31+
32 #endif
33
34 #endif /* bits/stdio-lock.h */
diff --git a/meta/packages/glibc/glibc-2.4/no-z-defs.patch b/meta/packages/glibc/glibc-2.4/no-z-defs.patch
deleted file mode 100644
index 48c6a41267..0000000000
--- a/meta/packages/glibc/glibc-2.4/no-z-defs.patch
+++ /dev/null
@@ -1,9 +0,0 @@
1Create a configparms file which disabled no-z-defs.
2This is required to build a working glibs for sh4,
3without there will be a lot linker errors during the build.
4
5diff -duNr libc.orig/configparms libc/configparms
6--- libc.orig/configparms 1970-01-01 10:00:00.000000000 +1000
7+++ libc/configparms 2006-02-23 14:08:18.000000000 +1100
8@@ -0,0 +1 @@
9+no-z-defs=yes
diff --git a/meta/packages/glibc/glibc-2.4/nptl-crosscompile.patch b/meta/packages/glibc/glibc-2.4/nptl-crosscompile.patch
deleted file mode 100644
index 18a46ad4f1..0000000000
--- a/meta/packages/glibc/glibc-2.4/nptl-crosscompile.patch
+++ /dev/null
@@ -1,26 +0,0 @@
1--- glibc-2.4/nptl/sysdeps/pthread/configure.in.ark 2006-03-12 00:41:40.000000000 +0100
2+++ glibc-2.4/nptl/sysdeps/pthread/configure.in 2006-03-12 00:44:08.000000000 +0100
3@@ -45,5 +45,6 @@
4 AC_MSG_ERROR([the compiler must support C cleanup handling])
5 fi
6 else
7- AC_MSG_ERROR(forced unwind support is required)
8+ AC_MSG_WARN([forced unwind support is required, can't be verified while crosscompiling])
9+ AC_DEFINE(HAVE_FORCED_UNWIND)
10 fi
11--- glibc-2.4/nptl/sysdeps/pthread/configure.ark 2006-03-12 00:42:47.000000000 +0100
12+++ glibc-2.4/nptl/sysdeps/pthread/configure 2006-03-12 00:44:08.000000000 +0100
13@@ -153,7 +153,10 @@
14 { (exit 1); exit 1; }; }
15 fi
16 else
17- { { echo "$as_me:$LINENO: error: forced unwind support is required" >&5
18-echo "$as_me: error: forced unwind support is required" >&2;}
19- { (exit 1); exit 1; }; }
20+ { echo "$as_me:$LINENO: WARNING: forced unwind support is required, can't be verified while crosscompiling" >&5
21+echo "$as_me: WARNING: forced unwind support is required, can't be verified while crosscompiling" >&2;}
22+ cat >>confdefs.h <<\_ACEOF
23+#define HAVE_FORCED_UNWIND 1
24+_ACEOF
25+
26 fi
diff --git a/meta/packages/glibc/glibc-2.4/powerpc-sqrt-hack.diff b/meta/packages/glibc/glibc-2.4/powerpc-sqrt-hack.diff
deleted file mode 100644
index 1046efb2a1..0000000000
--- a/meta/packages/glibc/glibc-2.4/powerpc-sqrt-hack.diff
+++ /dev/null
@@ -1,25 +0,0 @@
1diff -Nurd ../glibc-initial-2.5-r4/glibc-2.5/sysdeps/powerpc/fpu/e_sqrt.c glibc-2.5/sysdeps/powerpc/fpu/e_sqrt.c
2--- ../glibc-initial-2.5-r4/glibc-2.5/sysdeps/powerpc/fpu/e_sqrt.c 2006-04-14 07:44:30.000000000 +0200
3+++ glibc-2.5/sysdeps/powerpc/fpu/e_sqrt.c 2006-12-08 12:53:32.202227000 +0100
4@@ -25,6 +25,9 @@
5 #include <sysdep.h>
6 #include <ldsodefs.h>
7
8+#define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0)
9+
10+
11 static const double almost_half = 0.5000000000000001; /* 0.5 + 2^-53 */
12 static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
13 static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
14diff -Nurd ../glibc-initial-2.5-r4/glibc-2.5/sysdeps/powerpc/fpu/e_sqrtf.c glibc-2.5/sysdeps/powerpc/fpu/e_sqrtf.c
15--- ../glibc-initial-2.5-r4/glibc-2.5/sysdeps/powerpc/fpu/e_sqrtf.c 2006-04-14 07:44:30.000000000 +0200
16+++ glibc-2.5/sysdeps/powerpc/fpu/e_sqrtf.c 2006-12-08 12:53:36.992227000 +0100
17@@ -25,6 +25,8 @@
18 #include <sysdep.h>
19 #include <ldsodefs.h>
20
21+#define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0)
22+
23 static const float almost_half = 0.50000006; /* 0.5 + 2^-24 */
24 static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
25 static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
diff --git a/meta/packages/glibc/glibc-2.4/zecke-sane-readelf.patch b/meta/packages/glibc/glibc-2.4/zecke-sane-readelf.patch
deleted file mode 100644
index 023b6a51bc..0000000000
--- a/meta/packages/glibc/glibc-2.4/zecke-sane-readelf.patch
+++ /dev/null
@@ -1,149 +0,0 @@
1Index: glibc-2.4/configure
2===================================================================
3--- glibc-2.4.orig/configure 2006-03-06 12:18:56.000000000 +0100
4+++ glibc-2.4/configure 2006-08-06 14:10:51.000000000 +0200
5@@ -5488,6 +5488,95 @@
6 fi
7 fi
8
9+### XXXX copy and pasted
10+# Check for readelf
11+# Extract the first word of "$target_alias-readelf", so it can be a program name with args.
12+set dummy $target_alias-readelf; ac_word=$2
13+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
14+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
15+if test "${ac_cv_prog_READELF+set}" = set; then
16+ echo $ECHO_N "(cached) $ECHO_C" >&6
17+else
18+ if test -n "$READELF"; then
19+ ac_cv_prog_READELF="$READELF" # Let the user override the test.
20+else
21+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
22+for as_dir in $PATH
23+do
24+ IFS=$as_save_IFS
25+ test -z "$as_dir" && as_dir=.
26+ for ac_exec_ext in '' $ac_executable_extensions; do
27+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
28+ ac_cv_prog_READELF="$target_alias-readelf"
29+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
30+ break 2
31+ fi
32+done
33+done
34+IFS=$as_save_IFS
35+
36+fi
37+fi
38+READELF=$ac_cv_prog_READELF
39+if test -n "$READELF"; then
40+ { echo "$as_me:$LINENO: result: $READELF" >&5
41+echo "${ECHO_T}$READELF" >&6; }
42+else
43+ { echo "$as_me:$LINENO: result: no" >&5
44+echo "${ECHO_T}no" >&6; }
45+fi
46+
47+
48+if test -z "$ac_cv_prog_READELF"; then
49+ if test "$build" = "$target"; then
50+ ac_ct_READELF=$READELF
51+ # Extract the first word of "readelf", so it can be a program name with args.
52+set dummy readelf; ac_word=$2
53+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
54+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
55+if test "${ac_cv_prog_ac_ct_READELF+set}" = set; then
56+ echo $ECHO_N "(cached) $ECHO_C" >&6
57+else
58+ if test -n "$ac_ct_READELF"; then
59+ ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # Let the user override the test.
60+else
61+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
62+for as_dir in $PATH
63+do
64+ IFS=$as_save_IFS
65+ test -z "$as_dir" && as_dir=.
66+ for ac_exec_ext in '' $ac_executable_extensions; do
67+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
68+ ac_cv_prog_ac_ct_READELF="readelf"
69+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
70+ break 2
71+ fi
72+done
73+done
74+IFS=$as_save_IFS
75+
76+ test -z "$ac_cv_prog_ac_ct_READELF" && ac_cv_prog_ac_ct_READELF="readelf"
77+fi
78+fi
79+ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
80+if test -n "$ac_ct_READELF"; then
81+ { echo "$as_me:$LINENO: result: $ac_ct_READELF" >&5
82+echo "${ECHO_T}$ac_ct_READELF" >&6; }
83+else
84+ { echo "$as_me:$LINENO: result: no" >&5
85+echo "${ECHO_T}no" >&6; }
86+fi
87+
88+ READELF=ac_ct_READELF
89+ else
90+ READELF="readelf"
91+ fi
92+else
93+ READELF="$ac_cv_prog_READELF"
94+fi
95+
96+### XXXX copy and pasted
97+
98 echo "$as_me:$LINENO: checking for .preinit_array/.init_array/.fini_array support" >&5
99 echo $ECHO_N "checking for .preinit_array/.init_array/.fini_array support... $ECHO_C" >&6
100 if test "${libc_cv_initfini_array+set}" = set; then
101@@ -5507,7 +5596,7 @@
102 echo "$as_me:$LINENO: \$? = $ac_status" >&5
103 (exit $ac_status); }; }
104 then
105- if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
106+ if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then
107 libc_cv_initfini_array=yes
108 else
109 libc_cv_initfini_array=no
110@@ -5801,7 +5890,7 @@
111 echo "$as_me:$LINENO: \$? = $ac_status" >&5
112 (exit $ac_status); }; }
113 then
114- if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
115+ if $READELF -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
116 libc_cv_z_combreloc=yes
117 else
118 libc_cv_z_combreloc=no
119Index: glibc-2.4/configure.in
120===================================================================
121--- glibc-2.4.orig/configure.in 2006-03-01 10:17:40.000000000 +0100
122+++ glibc-2.4/configure.in 2006-08-06 14:09:31.000000000 +0200
123@@ -1350,6 +1350,8 @@
124 fi
125 fi
126
127+ AC_CHECK_TARGET_TOOL([READELF],[readelf],[readelf],[$PATH])
128+
129 AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
130 libc_cv_initfini_array, [dnl
131 cat > conftest.c <<EOF
132@@ -1361,7 +1363,7 @@
133 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
134 -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
135 then
136- if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
137+ if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then
138 libc_cv_initfini_array=yes
139 else
140 libc_cv_initfini_array=no
141@@ -1543,7 +1545,7 @@
142 dnl introducing new options this is not easily doable. Instead use a tool
143 dnl which always is cross-platform: readelf. To detect whether -z combreloc
144 dnl look for a section named .rel.dyn.
145- if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
146+ if $READELF -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
147 libc_cv_z_combreloc=yes
148 else
149 libc_cv_z_combreloc=no
diff --git a/meta/packages/glibc/glibc-2.9/arm-check-pf.patch b/meta/packages/glibc/glibc-2.9/arm-check-pf.patch
deleted file mode 100644
index b9c72262f2..0000000000
--- a/meta/packages/glibc/glibc-2.9/arm-check-pf.patch
+++ /dev/null
@@ -1,14 +0,0 @@
1Index: glibc-2.9/ports/sysdeps/unix/sysv/linux/arm/check_pf.c
2===================================================================
3--- glibc-2.9.orig/ports/sysdeps/unix/sysv/linux/arm/check_pf.c 2009-06-19 20:45:32.451372131 +0400
4+++ glibc-2.9/ports/sysdeps/unix/sysv/linux/arm/check_pf.c 2009-06-19 20:45:51.351313426 +0400
5@@ -207,9 +207,6 @@
6 newp->info.flags = (((ifam->ifa_flags & IFA_F_DEPRECATED)
7 ? in6ai_deprecated : 0)
8 | ((ifam->ifa_flags
9- & IFA_F_TEMPORARY)
10- ? in6ai_temporary : 0)
11- | ((ifam->ifa_flags
12 & IFA_F_HOMEADDRESS)
13 ? in6ai_homeaddress : 0));
14 memcpy (newp->info.addr, address ?: local,
diff --git a/meta/packages/glibc/glibc-2.9/arm-longlong.patch b/meta/packages/glibc/glibc-2.9/arm-longlong.patch
deleted file mode 100644
index 28aca83dff..0000000000
--- a/meta/packages/glibc/glibc-2.9/arm-longlong.patch
+++ /dev/null
@@ -1,58 +0,0 @@
1--- glibc-2.4/stdlib/longlong.h.ark 2006-03-11 22:49:27.000000000 +0100
2+++ glibc-2.4/stdlib/longlong.h 2006-03-11 22:55:12.000000000 +0100
3@@ -206,6 +206,14 @@
4 "rI" ((USItype) (bh)), \
5 "r" ((USItype) (al)), \
6 "rI" ((USItype) (bl)) __CLOBBER_CC)
7+/* v3m and all higher arches have long multiply support. */
8+#if !defined(__ARM_ARCH_2__) && !defined(__ARM_ARCH_3__)
9+#define umul_ppmm(xh, xl, a, b) \
10+ __asm__ ("umull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
11+#define UMUL_TIME 5
12+#define smul_ppmm(xh, xl, a, b) \
13+ __asm__ ("smull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
14+#else
15 #define umul_ppmm(xh, xl, a, b) \
16 {register USItype __t0, __t1, __t2; \
17 __asm__ ("%@ Inlined umul_ppmm\n" \
18@@ -227,7 +235,13 @@
19 : "r" ((USItype) (a)), \
20 "r" ((USItype) (b)) __CLOBBER_CC );}
21 #define UMUL_TIME 20
22+#endif
23 #define UDIV_TIME 100
24+#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
25+#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X))
26+#define COUNT_LEADING_ZEROS_0 32
27+#endif
28+
29 #endif /* __arm__ */
30
31 #if defined (__hppa) && W_TYPE_SIZE == 32
32--- glibc-2.4/ports/sysdeps/arm/mp_clz_tab.c.ark 2006-03-11 22:56:43.000000000 +0100
33+++ glibc-2.4/ports/sysdeps/arm/mp_clz_tab.c 2006-03-11 22:58:19.000000000 +0100
34@@ -0,0 +1,24 @@
35+/* __clz_tab -- support for longlong.h
36+ Copyright (C) 2004 Free Software Foundation, Inc.
37+ This file is part of the GNU C Library.
38+
39+ The GNU C Library is free software; you can redistribute it and/or
40+ modify it under the terms of the GNU Lesser General Public
41+ License as published by the Free Software Foundation; either
42+ version 2.1 of the License, or (at your option) any later version.
43+
44+ The GNU C Library is distributed in the hope that it will be useful,
45+ but WITHOUT ANY WARRANTY; without even the implied warranty of
46+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
47+ Lesser General Public License for more details.
48+
49+ You should have received a copy of the GNU Lesser General Public
50+ License along with the GNU C Library; if not, write to the Free
51+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
52+ 02111-1307 USA. */
53+
54+#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
55+/* Nothing required. */
56+#else
57+#include <stdlib/mp_clz_tab.c>
58+#endif
diff --git a/meta/packages/glibc/glibc-2.9/arm-lowlevellock-include-tls.patch b/meta/packages/glibc/glibc-2.9/arm-lowlevellock-include-tls.patch
deleted file mode 100644
index 5c8062ecee..0000000000
--- a/meta/packages/glibc/glibc-2.9/arm-lowlevellock-include-tls.patch
+++ /dev/null
@@ -1,12 +0,0 @@
1Index: glibc-2.9/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
2===================================================================
3--- glibc-2.9.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h 2009-06-19 20:54:35.446686910 +0400
4+++ glibc-2.9/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h 2009-06-19 20:54:43.774683370 +0400
5@@ -25,6 +25,7 @@
6 #include <atomic.h>
7 #include <sysdep.h>
8 #include <kernel-features.h>
9+#include <tls.h>
10
11 #define FUTEX_WAIT 0
12 #define FUTEX_WAKE 1
diff --git a/meta/packages/glibc/glibc-2.9/arm-memcpy.patch b/meta/packages/glibc/glibc-2.9/arm-memcpy.patch
deleted file mode 100644
index bc2b3dab84..0000000000
--- a/meta/packages/glibc/glibc-2.9/arm-memcpy.patch
+++ /dev/null
@@ -1,758 +0,0 @@
1--- /dev/null 2004-02-02 20:32:13.000000000 +0000
2+++ sysdeps/arm/memmove.S 2004-03-20 18:37:23.000000000 +0000
3@@ -0,0 +1,251 @@
4+/*
5+ * Optimized memmove implementation for ARM processors
6+ *
7+ * Author: Nicolas Pitre
8+ * Created: Dec 23, 2003
9+ * Copyright: (C) MontaVista Software, Inc.
10+ *
11+ * This file is free software; you can redistribute it and/or
12+ * modify it under the terms of the GNU Lesser General Public
13+ * License as published by the Free Software Foundation; either
14+ * version 2.1 of the License, or (at your option) any later version.
15+ *
16+ * This file is distributed in the hope that it will be useful,
17+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19+ * Lesser General Public License for more details.
20+ */
21+
22+#include <sysdep.h>
23+
24+
25+/*
26+ * Endian independent macros for shifting bytes within registers.
27+ */
28+#ifndef __ARMEB__
29+#define pull lsr
30+#define push lsl
31+#else
32+#define pull lsl
33+#define push lsr
34+#endif
35+
36+/*
37+ * Enable data preload for architectures that support it (ARMv5 and above)
38+ */
39+#if defined(__ARM_ARCH_5__) || \
40+ defined(__ARM_ARCH_5T__) || \
41+ defined(__ARM_ARCH_5TE__)
42+#define PLD(code...) code
43+#else
44+#define PLD(code...)
45+#endif
46+
47+
48+/* char * memmove (char *dst, const char *src) */
49+ENTRY(memmove)
50+ subs ip, r0, r1
51+ cmphi r2, ip
52+ bls memcpy(PLT)
53+
54+ stmfd sp!, {r0, r4, lr}
55+ add r1, r1, r2
56+ add r0, r0, r2
57+ subs r2, r2, #4
58+ blt 25f
59+ ands ip, r0, #3
60+ PLD( pld [r1, #-4] )
61+ bne 26f
62+ ands ip, r1, #3
63+ bne 27f
64+
65+19: subs r2, r2, #4
66+ blt 24f
67+ subs r2, r2, #8
68+ blt 23f
69+ subs r2, r2, #16
70+ blt 22f
71+
72+ PLD( pld [r1, #-32] )
73+ PLD( subs r2, r2, #96 )
74+ stmfd sp!, {r5 - r8}
75+ PLD( blt 21f )
76+
77+ PLD( @ cache alignment )
78+ PLD( ands ip, r1, #31 )
79+ PLD( pld [r1, #-64] )
80+ PLD( beq 20f )
81+ PLD( cmp r2, ip )
82+ PLD( pld [r1, #-96] )
83+ PLD( blt 20f )
84+ PLD( cmp ip, #16 )
85+ PLD( sub r2, r2, ip )
86+ PLD( ldmgedb r1!, {r3 - r6} )
87+ PLD( stmgedb r0!, {r3 - r6} )
88+ PLD( beq 20f )
89+ PLD( and ip, ip, #15 )
90+ PLD( cmp ip, #8 )
91+ PLD( ldr r3, [r1, #-4]! )
92+ PLD( ldrge r4, [r1, #-4]! )
93+ PLD( ldrgt r5, [r1, #-4]! )
94+ PLD( str r3, [r0, #-4]! )
95+ PLD( strge r4, [r0, #-4]! )
96+ PLD( strgt r5, [r0, #-4]! )
97+
98+20: PLD( pld [r1, #-96] )
99+ PLD( pld [r1, #-128] )
100+21: ldmdb r1!, {r3, r4, ip, lr}
101+ subs r2, r2, #32
102+ stmdb r0!, {r3, r4, ip, lr}
103+ ldmdb r1!, {r3, r4, ip, lr}
104+ stmgedb r0!, {r3, r4, ip, lr}
105+ ldmgedb r1!, {r3, r4, ip, lr}
106+ stmgedb r0!, {r3, r4, ip, lr}
107+ ldmgedb r1!, {r3, r4, ip, lr}
108+ subges r2, r2, #32
109+ stmdb r0!, {r3, r4, ip, lr}
110+ bge 20b
111+ PLD( cmn r2, #96 )
112+ PLD( bge 21b )
113+ PLD( add r2, r2, #96 )
114+ tst r2, #31
115+ ldmfd sp!, {r5 - r8}
116+ ldmeqfd sp!, {r0, r4, pc}
117+
118+ tst r2, #16
119+22: ldmnedb r1!, {r3, r4, ip, lr}
120+ stmnedb r0!, {r3, r4, ip, lr}
121+
122+ tst r2, #8
123+23: ldmnedb r1!, {r3, r4}
124+ stmnedb r0!, {r3, r4}
125+
126+ tst r2, #4
127+24: ldrne r3, [r1, #-4]!
128+ strne r3, [r0, #-4]!
129+
130+25: ands r2, r2, #3
131+ ldmeqfd sp!, {r0, r4, pc}
132+
133+ cmp r2, #2
134+ ldrb r3, [r1, #-1]
135+ ldrgeb r4, [r1, #-2]
136+ ldrgtb ip, [r1, #-3]
137+ strb r3, [r0, #-1]
138+ strgeb r4, [r0, #-2]
139+ strgtb ip, [r0, #-3]
140+ ldmfd sp!, {r0, r4, pc}
141+
142+26: cmp ip, #2
143+ ldrb r3, [r1, #-1]!
144+ ldrgeb r4, [r1, #-1]!
145+ ldrgtb lr, [r1, #-1]!
146+ strb r3, [r0, #-1]!
147+ strgeb r4, [r0, #-1]!
148+ strgtb lr, [r0, #-1]!
149+ subs r2, r2, ip
150+ blt 25b
151+ ands ip, r1, #3
152+ beq 19b
153+
154+27: bic r1, r1, #3
155+ cmp ip, #2
156+ ldr r3, [r1]
157+ beq 35f
158+ blt 36f
159+
160+
161+ .macro backward_copy_shift push pull
162+
163+ cmp r2, #12
164+ PLD( pld [r1, #-4] )
165+ blt 33f
166+ subs r2, r2, #28
167+ stmfd sp!, {r5 - r9}
168+ blt 31f
169+
170+ PLD( subs r2, r2, #96 )
171+ PLD( pld [r1, #-32] )
172+ PLD( blt 30f )
173+ PLD( pld [r1, #-64] )
174+
175+ PLD( @ cache alignment )
176+ PLD( ands ip, r1, #31 )
177+ PLD( pld [r1, #-96] )
178+ PLD( beq 29f )
179+ PLD( cmp r2, ip )
180+ PLD( pld [r1, #-128] )
181+ PLD( blt 29f )
182+ PLD( sub r2, r2, ip )
183+28: PLD( mov r4, r3, push #\push )
184+ PLD( ldr r3, [r1, #-4]! )
185+ PLD( subs ip, ip, #4 )
186+ PLD( orr r4, r4, r3, pull #\pull )
187+ PLD( str r4, [r0, #-4]! )
188+ PLD( bgt 28b )
189+
190+29: PLD( pld [r1, #-128] )
191+30: mov lr, r3, push #\push
192+ ldmdb r1!, {r3 - r9, ip}
193+ subs r2, r2, #32
194+ orr lr, lr, ip, pull #\pull
195+ mov ip, ip, push #\push
196+ orr ip, ip, r9, pull #\pull
197+ mov r9, r9, push #\push
198+ orr r9, r9, r8, pull #\pull
199+ mov r8, r8, push #\push
200+ orr r8, r8, r7, pull #\pull
201+ mov r7, r7, push #\push
202+ orr r7, r7, r6, pull #\pull
203+ mov r6, r6, push #\push
204+ orr r6, r6, r5, pull #\pull
205+ mov r5, r5, push #\push
206+ orr r5, r5, r4, pull #\pull
207+ mov r4, r4, push #\push
208+ orr r4, r4, r3, pull #\pull
209+ stmdb r0!, {r4 - r9, ip, lr}
210+ bge 29b
211+ PLD( cmn r2, #96 )
212+ PLD( bge 30b )
213+ PLD( add r2, r2, #96 )
214+ cmn r2, #16
215+ blt 32f
216+31: mov r7, r3, push #\push
217+ ldmdb r1!, {r3 - r6}
218+ sub r2, r2, #16
219+ orr r7, r7, r6, pull #\pull
220+ mov r6, r6, push #\push
221+ orr r6, r6, r5, pull #\pull
222+ mov r5, r5, push #\push
223+ orr r5, r5, r4, pull #\pull
224+ mov r4, r4, push #\push
225+ orr r4, r4, r3, pull #\pull
226+ stmdb r0!, {r4 - r7}
227+32: adds r2, r2, #28
228+ ldmfd sp!, {r5 - r9}
229+ blt 34f
230+33: mov r4, r3, push #\push
231+ ldr r3, [r1, #-4]!
232+ subs r2, r2, #4
233+ orr r4, r4, r3, pull #\pull
234+ str r4, [r0, #-4]!
235+ bge 33b
236+34:
237+ .endm
238+
239+
240+ backward_copy_shift push=8 pull=24
241+ add r1, r1, #3
242+ b 25b
243+
244+35: backward_copy_shift push=16 pull=16
245+ add r1, r1, #2
246+ b 25b
247+
248+36: backward_copy_shift push=24 pull=8
249+ add r1, r1, #1
250+ b 25b
251+
252+ .size memmove, . - memmove
253+END(memmove)
254+libc_hidden_builtin_def (memmove)
255--- /dev/null 2004-02-02 20:32:13.000000000 +0000
256+++ sysdeps/arm/bcopy.S 2004-03-20 18:37:48.000000000 +0000
257@@ -0,0 +1,255 @@
258+/*
259+ * Optimized memmove implementation for ARM processors
260+ *
261+ * Author: Nicolas Pitre
262+ * Created: Dec 23, 2003
263+ * Copyright: (C) MontaVista Software, Inc.
264+ *
265+ * This file is free software; you can redistribute it and/or
266+ * modify it under the terms of the GNU Lesser General Public
267+ * License as published by the Free Software Foundation; either
268+ * version 2.1 of the License, or (at your option) any later version.
269+ *
270+ * This file is distributed in the hope that it will be useful,
271+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
272+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
273+ * Lesser General Public License for more details.
274+ */
275+
276+#include <sysdep.h>
277+
278+
279+/*
280+ * Endian independent macros for shifting bytes within registers.
281+ */
282+#ifndef __ARMEB__
283+#define pull lsr
284+#define push lsl
285+#else
286+#define pull lsl
287+#define push lsr
288+#endif
289+
290+/*
291+ * Enable data preload for architectures that support it (ARMv5 and above)
292+ */
293+#if defined(__ARM_ARCH_5__) || \
294+ defined(__ARM_ARCH_5T__) || \
295+ defined(__ARM_ARCH_5TE__)
296+#define PLD(code...) code
297+#else
298+#define PLD(code...)
299+#endif
300+
301+dst .req r1
302+src .req r0
303+
304+/* void *bcopy (const char *src, char *dst, size_t size) */
305+ENTRY(bcopy)
306+ subs ip, dst, src
307+ cmphi r2, ip
308+ movls r3, r0
309+ movls r0, r1
310+ movls r1, r3
311+ bls memcpy(PLT)
312+
313+ stmfd sp!, {r4, lr}
314+ add src, src, r2
315+ add dst, dst, r2
316+ subs r2, r2, #4
317+ blt 25f
318+ ands ip, dst, #3
319+ PLD( pld [src, #-4] )
320+ bne 26f
321+ ands ip, src, #3
322+ bne 27f
323+
324+19: subs r2, r2, #4
325+ blt 24f
326+ subs r2, r2, #8
327+ blt 23f
328+ subs r2, r2, #16
329+ blt 22f
330+
331+ PLD( pld [src, #-32] )
332+ PLD( subs r2, r2, #96 )
333+ stmfd sp!, {r5 - r8}
334+ PLD( blt 21f )
335+
336+ PLD( @ cache alignment )
337+ PLD( ands ip, src, #31 )
338+ PLD( pld [src, #-64] )
339+ PLD( beq 20f )
340+ PLD( cmp r2, ip )
341+ PLD( pld [src, #-96] )
342+ PLD( blt 20f )
343+ PLD( cmp ip, #16 )
344+ PLD( sub r2, r2, ip )
345+ PLD( ldmgedb src!, {r3 - r6} )
346+ PLD( stmgedb dst!, {r3 - r6} )
347+ PLD( beq 20f )
348+ PLD( and ip, ip, #15 )
349+ PLD( cmp ip, #8 )
350+ PLD( ldr r3, [src, #-4]! )
351+ PLD( ldrge r4, [src, #-4]! )
352+ PLD( ldrgt r5, [src, #-4]! )
353+ PLD( str r3, [dst, #-4]! )
354+ PLD( strge r4, [dst, #-4]! )
355+ PLD( strgt r5, [dst, #-4]! )
356+
357+20: PLD( pld [src, #-96] )
358+ PLD( pld [src, #-128] )
359+21: ldmdb src!, {r3, r4, ip, lr}
360+ subs r2, r2, #32
361+ stmdb dst!, {r3, r4, ip, lr}
362+ ldmdb src!, {r3, r4, ip, lr}
363+ stmgedb dst!, {r3, r4, ip, lr}
364+ ldmgedb src!, {r3, r4, ip, lr}
365+ stmgedb dst!, {r3, r4, ip, lr}
366+ ldmgedb src!, {r3, r4, ip, lr}
367+ subges r2, r2, #32
368+ stmdb dst!, {r3, r4, ip, lr}
369+ bge 20b
370+ PLD( cmn r2, #96 )
371+ PLD( bge 21b )
372+ PLD( add r2, r2, #96 )
373+ tst r2, #31
374+ ldmfd sp!, {r5 - r8}
375+ ldmeqfd sp!, {r4, pc}
376+
377+ tst r2, #16
378+22: ldmnedb src!, {r3, r4, ip, lr}
379+ stmnedb dst!, {r3, r4, ip, lr}
380+
381+ tst r2, #8
382+23: ldmnedb src!, {r3, r4}
383+ stmnedb dst!, {r3, r4}
384+
385+ tst r2, #4
386+24: ldrne r3, [src, #-4]!
387+ strne r3, [dst, #-4]!
388+
389+25: ands r2, r2, #3
390+ ldmeqfd sp!, {dst, r4, pc}
391+
392+ cmp r2, #2
393+ ldrb r3, [src, #-1]
394+ ldrgeb r4, [src, #-2]
395+ ldrgtb ip, [src, #-3]
396+ strb r3, [dst, #-1]
397+ strgeb r4, [dst, #-2]
398+ strgtb ip, [dst, #-3]
399+ ldmfd sp!, {dst, r4, pc}
400+
401+26: cmp ip, #2
402+ ldrb r3, [src, #-1]!
403+ ldrgeb r4, [src, #-1]!
404+ ldrgtb lr, [src, #-1]!
405+ strb r3, [dst, #-1]!
406+ strgeb r4, [dst, #-1]!
407+ strgtb lr, [dst, #-1]!
408+ subs r2, r2, ip
409+ blt 25b
410+ ands ip, src, #3
411+ beq 19b
412+
413+27: bic src, src, #3
414+ cmp ip, #2
415+ ldr r3, [src]
416+ beq 35f
417+ blt 36f
418+
419+
420+ .macro backward_copy_shift push pull
421+
422+ cmp r2, #12
423+ PLD( pld [src, #-4] )
424+ blt 33f
425+ subs r2, r2, #28
426+ stmfd sp!, {r5 - r9}
427+ blt 31f
428+
429+ PLD( subs r2, r2, #96 )
430+ PLD( pld [src, #-32] )
431+ PLD( blt 30f )
432+ PLD( pld [src, #-64] )
433+
434+ PLD( @ cache alignment )
435+ PLD( ands ip, src, #31 )
436+ PLD( pld [src, #-96] )
437+ PLD( beq 29f )
438+ PLD( cmp r2, ip )
439+ PLD( pld [src, #-128] )
440+ PLD( blt 29f )
441+ PLD( sub r2, r2, ip )
442+28: PLD( mov r4, r3, push #\push )
443+ PLD( ldr r3, [src, #-4]! )
444+ PLD( subs ip, ip, #4 )
445+ PLD( orr r4, r4, r3, pull #\pull )
446+ PLD( str r4, [dst, #-4]! )
447+ PLD( bgt 28b )
448+
449+29: PLD( pld [src, #-128] )
450+30: mov lr, r3, push #\push
451+ ldmdb src!, {r3 - r9, ip}
452+ subs r2, r2, #32
453+ orr lr, lr, ip, pull #\pull
454+ mov ip, ip, push #\push
455+ orr ip, ip, r9, pull #\pull
456+ mov r9, r9, push #\push
457+ orr r9, r9, r8, pull #\pull
458+ mov r8, r8, push #\push
459+ orr r8, r8, r7, pull #\pull
460+ mov r7, r7, push #\push
461+ orr r7, r7, r6, pull #\pull
462+ mov r6, r6, push #\push
463+ orr r6, r6, r5, pull #\pull
464+ mov r5, r5, push #\push
465+ orr r5, r5, r4, pull #\pull
466+ mov r4, r4, push #\push
467+ orr r4, r4, r3, pull #\pull
468+ stmdb dst!, {r4 - r9, ip, lr}
469+ bge 29b
470+ PLD( cmn r2, #96 )
471+ PLD( bge 30b )
472+ PLD( add r2, r2, #96 )
473+ cmn r2, #16
474+ blt 32f
475+31: mov r7, r3, push #\push
476+ ldmdb src!, {r3 - r6}
477+ sub r2, r2, #16
478+ orr r7, r7, r6, pull #\pull
479+ mov r6, r6, push #\push
480+ orr r6, r6, r5, pull #\pull
481+ mov r5, r5, push #\push
482+ orr r5, r5, r4, pull #\pull
483+ mov r4, r4, push #\push
484+ orr r4, r4, r3, pull #\pull
485+ stmdb dst!, {r4 - r7}
486+32: adds r2, r2, #28
487+ ldmfd sp!, {r5 - r9}
488+ blt 34f
489+33: mov r4, r3, push #\push
490+ ldr r3, [src, #-4]!
491+ subs r2, r2, #4
492+ orr r4, r4, r3, pull #\pull
493+ str r4, [dst, #-4]!
494+ bge 33b
495+34:
496+ .endm
497+
498+
499+ backward_copy_shift push=8 pull=24
500+ add src, src, #3
501+ b 25b
502+
503+35: backward_copy_shift push=16 pull=16
504+ add src, src, #2
505+ b 25b
506+
507+36: backward_copy_shift push=24 pull=8
508+ add src, src, #1
509+ b 25b
510+
511+ .size bcopy, . - bcopy
512+END(bcopy)
513
514--- /dev/null 2004-02-02 20:32:13.000000000 +0000
515+++ sysdeps/arm/memcpy.S 2004-05-02 14:33:22.000000000 +0100
516@@ -0,0 +1,242 @@
517+/*
518+ * Optimized memcpy implementation for ARM processors
519+ *
520+ * Author: Nicolas Pitre
521+ * Created: Dec 23, 2003
522+ * Copyright: (C) MontaVista Software, Inc.
523+ *
524+ * This file is free software; you can redistribute it and/or
525+ * modify it under the terms of the GNU Lesser General Public
526+ * License as published by the Free Software Foundation; either
527+ * version 2.1 of the License, or (at your option) any later version.
528+ *
529+ * This file is distributed in the hope that it will be useful,
530+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
531+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
532+ * Lesser General Public License for more details.
533+ */
534+
535+#include <sysdep.h>
536+
537+
538+/*
539+ * Endian independent macros for shifting bytes within registers.
540+ */
541+#ifndef __ARMEB__
542+#define pull lsr
543+#define push lsl
544+#else
545+#define pull lsl
546+#define push lsr
547+#endif
548+
549+/*
550+ * Enable data preload for architectures that support it (ARMv5 and above)
551+ */
552+#if defined(__ARM_ARCH_5__) || \
553+ defined(__ARM_ARCH_5T__) || \
554+ defined(__ARM_ARCH_5TE__)
555+#define PLD(code...) code
556+#else
557+#define PLD(code...)
558+#endif
559+
560+
561+/* char * memcpy (char *dst, const char *src) */
562+
563+ENTRY(memcpy)
564+ subs r2, r2, #4
565+ stmfd sp!, {r0, r4, lr}
566+ blt 7f
567+ ands ip, r0, #3
568+ PLD( pld [r1, #0] )
569+ bne 8f
570+ ands ip, r1, #3
571+ bne 9f
572+
573+1: subs r2, r2, #4
574+ blt 6f
575+ subs r2, r2, #8
576+ blt 5f
577+ subs r2, r2, #16
578+ blt 4f
579+
580+ PLD( subs r2, r2, #65 )
581+ stmfd sp!, {r5 - r8}
582+ PLD( blt 3f )
583+ PLD( pld [r1, #32] )
584+
585+ PLD( @ cache alignment )
586+ PLD( ands ip, r1, #31 )
587+ PLD( pld [r1, #64] )
588+ PLD( beq 2f )
589+ PLD( rsb ip, ip, #32 )
590+ PLD( cmp r2, ip )
591+ PLD( pld [r1, #96] )
592+ PLD( blt 2f )
593+ PLD( cmp ip, #16 )
594+ PLD( sub r2, r2, ip )
595+ PLD( ldmgeia r1!, {r3 - r6} )
596+ PLD( stmgeia r0!, {r3 - r6} )
597+ PLD( beq 2f )
598+ PLD( and ip, ip, #15 )
599+ PLD( cmp ip, #8 )
600+ PLD( ldr r3, [r1], #4 )
601+ PLD( ldrge r4, [r1], #4 )
602+ PLD( ldrgt r5, [r1], #4 )
603+ PLD( str r3, [r0], #4 )
604+ PLD( strge r4, [r0], #4 )
605+ PLD( strgt r5, [r0], #4 )
606+
607+2: PLD( pld [r1, #96] )
608+3: ldmia r1!, {r3 - r8, ip, lr}
609+ subs r2, r2, #32
610+ stmia r0!, {r3 - r8, ip, lr}
611+ bge 2b
612+ PLD( cmn r2, #65 )
613+ PLD( bge 3b )
614+ PLD( add r2, r2, #65 )
615+ tst r2, #31
616+ ldmfd sp!, {r5 - r8}
617+ ldmeqfd sp!, {r0, r4, pc}
618+
619+ tst r2, #16
620+4: ldmneia r1!, {r3, r4, ip, lr}
621+ stmneia r0!, {r3, r4, ip, lr}
622+
623+ tst r2, #8
624+5: ldmneia r1!, {r3, r4}
625+ stmneia r0!, {r3, r4}
626+
627+ tst r2, #4
628+6: ldrne r3, [r1], #4
629+ strne r3, [r0], #4
630+
631+7: ands r2, r2, #3
632+ ldmeqfd sp!, {r0, r4, pc}
633+
634+ cmp r2, #2
635+ ldrb r3, [r1], #1
636+ ldrgeb r4, [r1], #1
637+ ldrgtb ip, [r1]
638+ strb r3, [r0], #1
639+ strgeb r4, [r0], #1
640+ strgtb ip, [r0]
641+ ldmfd sp!, {r0, r4, pc}
642+
643+8: rsb ip, ip, #4
644+ cmp ip, #2
645+ ldrb r3, [r1], #1
646+ ldrgeb r4, [r1], #1
647+ ldrgtb lr, [r1], #1
648+ strb r3, [r0], #1
649+ strgeb r4, [r0], #1
650+ strgtb lr, [r0], #1
651+ subs r2, r2, ip
652+ blt 7b
653+ ands ip, r1, #3
654+ beq 1b
655+
656+9: bic r1, r1, #3
657+ cmp ip, #2
658+ ldr lr, [r1], #4
659+ beq 17f
660+ bgt 18f
661+
662+
663+ .macro forward_copy_shift pull push
664+
665+ cmp r2, #12
666+ PLD( pld [r1, #0] )
667+ blt 15f
668+ subs r2, r2, #28
669+ stmfd sp!, {r5 - r9}
670+ blt 13f
671+
672+ PLD( subs r2, r2, #97 )
673+ PLD( blt 12f )
674+ PLD( pld [r1, #32] )
675+
676+ PLD( @ cache alignment )
677+ PLD( rsb ip, r1, #36 )
678+ PLD( pld [r1, #64] )
679+ PLD( ands ip, ip, #31 )
680+ PLD( pld [r1, #96] )
681+ PLD( beq 11f )
682+ PLD( cmp r2, ip )
683+ PLD( pld [r1, #128] )
684+ PLD( blt 11f )
685+ PLD( sub r2, r2, ip )
686+10: PLD( mov r3, lr, pull #\pull )
687+ PLD( ldr lr, [r1], #4 )
688+ PLD( subs ip, ip, #4 )
689+ PLD( orr r3, r3, lr, push #\push )
690+ PLD( str r3, [r0], #4 )
691+ PLD( bgt 10b )
692+
693+11: PLD( pld [r1, #128] )
694+12: mov r3, lr, pull #\pull
695+ ldmia r1!, {r4 - r9, ip, lr}
696+ subs r2, r2, #32
697+ orr r3, r3, r4, push #\push
698+ mov r4, r4, pull #\pull
699+ orr r4, r4, r5, push #\push
700+ mov r5, r5, pull #\pull
701+ orr r5, r5, r6, push #\push
702+ mov r6, r6, pull #\pull
703+ orr r6, r6, r7, push #\push
704+ mov r7, r7, pull #\pull
705+ orr r7, r7, r8, push #\push
706+ mov r8, r8, pull #\pull
707+ orr r8, r8, r9, push #\push
708+ mov r9, r9, pull #\pull
709+ orr r9, r9, ip, push #\push
710+ mov ip, ip, pull #\pull
711+ orr ip, ip, lr, push #\push
712+ stmia r0!, {r3 - r9, ip}
713+ bge 11b
714+ PLD( cmn r2, #97 )
715+ PLD( bge 12b )
716+ PLD( add r2, r2, #97 )
717+ cmn r2, #16
718+ blt 14f
719+13: mov r3, lr, pull #\pull
720+ ldmia r1!, {r4 - r6, lr}
721+ sub r2, r2, #16
722+ orr r3, r3, r4, push #\push
723+ mov r4, r4, pull #\pull
724+ orr r4, r4, r5, push #\push
725+ mov r5, r5, pull #\pull
726+ orr r5, r5, r6, push #\push
727+ mov r6, r6, pull #\pull
728+ orr r6, r6, lr, push #\push
729+ stmia r0!, {r3 - r6}
730+14: adds r2, r2, #28
731+ ldmfd sp!, {r5 - r9}
732+ blt 16f
733+15: mov r3, lr, pull #\pull
734+ ldr lr, [r1], #4
735+ subs r2, r2, #4
736+ orr r3, r3, lr, push #\push
737+ str r3, [r0], #4
738+ bge 15b
739+16:
740+ .endm
741+
742+
743+ forward_copy_shift pull=8 push=24
744+ sub r1, r1, #3
745+ b 7b
746+
747+17: forward_copy_shift pull=16 push=16
748+ sub r1, r1, #2
749+ b 7b
750+
751+18: forward_copy_shift pull=24 push=8
752+ sub r1, r1, #1
753+ b 7b
754+
755+ .size memcpy, . - memcpy
756+END(memcpy)
757+libc_hidden_builtin_def (memcpy)
758+
diff --git a/meta/packages/glibc/glibc-2.9/dl-cache-libcmp.patch b/meta/packages/glibc/glibc-2.9/dl-cache-libcmp.patch
deleted file mode 100644
index 2fedfa6db0..0000000000
--- a/meta/packages/glibc/glibc-2.9/dl-cache-libcmp.patch
+++ /dev/null
@@ -1,10 +0,0 @@
1--- glibc-2.4/elf/Versions.ark 2006-03-11 23:30:09.000000000 +0100
2+++ glibc-2.4/elf/Versions 2006-03-11 23:31:44.000000000 +0100
3@@ -63,5 +63,7 @@
4 _dl_debug_state;
5 # Pointer protection.
6 __pointer_chk_guard;
7+ # for ldconfig
8+ _dl_cache_libcmp;
9 }
10 }
diff --git a/meta/packages/glibc/glibc-2.9/glibc-2.9-enable-binutils-2.2.patch b/meta/packages/glibc/glibc-2.9/glibc-2.9-enable-binutils-2.2.patch
deleted file mode 100644
index 09200dd43b..0000000000
--- a/meta/packages/glibc/glibc-2.9/glibc-2.9-enable-binutils-2.2.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1--- glibc-2.9.orig/configure.in 2009-10-22 15:38:13.000000000 +0200
2+++ glibc-2.9/configure.in 2009-10-22 15:37:33.000000000 +0200
3@@ -844,10 +844,10 @@
4 # Accept binutils 2.13 or newer.
5 AC_CHECK_PROG_VER(AS, $AS, --version,
6 [GNU assembler.* \([0-9]*\.[0-9.]*\)],
7- [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
8+ [2.1[3-9]* | 2.2* ], AS=: critic_missing="$critic_missing as")
9 AC_CHECK_PROG_VER(LD, $LD, --version,
10 [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
11- [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
12+ [2.1[3-9]* | 2.2* ], LD=: critic_missing="$critic_missing ld")
13
14 # We need the physical current working directory. We cannot use the
15 # "pwd -P" shell builtin since that's not portable. Instead we try to
16--- glibc-2.9.orig/configure 2009-02-26 22:28:17.000000000 +0100
17+++ glibc-2.9/configure 2009-10-22 15:43:11.000000000 +0200
18@@ -4531,7 +4531,7 @@
19 ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
20 case $ac_prog_version in
21 '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
22- 2.1[3-9]*)
23+ 2.1[3-9]* | 2.2*)
24 ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
25 *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
26
27@@ -4594,7 +4594,7 @@
28 ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
29 case $ac_prog_version in
30 '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
31- 2.1[3-9]*)
32+ 2.1[3-9]* | 2.2*)
33 ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
34 *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
35
diff --git a/meta/packages/glibc/glibc-2.9/glibc-2.9-use-_begin.patch b/meta/packages/glibc/glibc-2.9/glibc-2.9-use-_begin.patch
deleted file mode 100644
index 8d36a0524e..0000000000
--- a/meta/packages/glibc/glibc-2.9/glibc-2.9-use-_begin.patch
+++ /dev/null
@@ -1,28 +0,0 @@
1From 7c8a67320e26b8c11108bf0a3410d3aef9cf3486 Mon Sep 17 00:00:00 2001
2From: Ulrich Drepper <drepper@redhat.com>
3Date: Sat, 31 Jan 2009 00:21:15 +0000
4Subject: [PATCH] * elf/Makefile (ld.so): Adjust the sed script to insert _begin in to newer linker scripts.
5---
6diff --git a/elf/Makefile b/elf/Makefile
7index 8079fe9..e44ff1d 100644
8--- a/elf/Makefile
9+++ b/elf/Makefile
10@@ -1,4 +1,4 @@
11-# Copyright (C) 1995-2007, 2008 Free Software Foundation, Inc.
12+# Copyright (C) 1995-2007, 2008, 2009 Free Software Foundation, Inc.
13 # This file is part of the GNU C Library.
14
15 # The GNU C Library is free software; you can redistribute it and/or
16@@ -304,7 +304,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld-map)
17 $(LDFLAGS-rtld) -Wl,-z,defs -Wl,--verbose 2>&1 | \
18 LC_ALL=C \
19 sed -e '/^=========/,/^=========/!d;/^=========/d' \
20- -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
21+ -e 's/\. = .* + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
22 > $@.lds
23 $(LINK.o) -nostdlib -nostartfiles -shared -o $@ \
24 $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now)) \
25--
261.6.3.2
27
28
diff --git a/meta/packages/glibc/glibc-2.9/glibc-arm-IO-acquire-lock-fix.diff b/meta/packages/glibc/glibc-2.9/glibc-arm-IO-acquire-lock-fix.diff
deleted file mode 100644
index a552cf0d1f..0000000000
--- a/meta/packages/glibc/glibc-2.9/glibc-arm-IO-acquire-lock-fix.diff
+++ /dev/null
@@ -1,13 +0,0 @@
1Arm needs a similar fix as http://sourceware.org/ml/libc-ports/2007-12/msg00000.html
2
3--- /tmp/stdio-lock.h 2008-03-04 18:51:15.555038993 +0100
4+++ glibc-2.7/ports/sysdeps/unix/sysv/linux/arm/bits/stdio-lock.h 2008-03-04 18:51:28.445035052 +0100
5@@ -50,6 +50,8 @@
6 _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp)); \
7 _IO_flockfile (_fp)
8
9+# define _IO_acquire_lock_clear_flags2(_fp) _IO_acquire_lock (_fp)
10+
11 # define _IO_release_lock(_fp) \
12 _IO_funlockfile (_fp); \
13 _IO_cleanup_region_end (0)
diff --git a/meta/packages/glibc/glibc-2.9/glibc-arm-no-asm-page.patch b/meta/packages/glibc/glibc-2.9/glibc-arm-no-asm-page.patch
deleted file mode 100644
index 7eb17179ba..0000000000
--- a/meta/packages/glibc/glibc-2.9/glibc-arm-no-asm-page.patch
+++ /dev/null
@@ -1,15 +0,0 @@
1http://sourceware.org/ml/libc-ports/2008-04/msg00005.html
2
3
4Index: glibc-2.6.1/ports/sysdeps/unix/sysv/linux/arm/ioperm.c
5===================================================================
6--- glibc-2.6.1.orig/ports/sysdeps/unix/sysv/linux/arm/ioperm.c 2008-09-12 18:08:18.000000000 -0700
7+++ glibc-2.6.1/ports/sysdeps/unix/sysv/linux/arm/ioperm.c 2008-09-12 18:08:28.000000000 -0700
8@@ -45,7 +45,6 @@
9 #include <sys/mman.h>
10
11 #include <linux/version.h>
12-#include <asm/page.h>
13 #include <sys/sysctl.h>
14
15 #define PATH_ARM_SYSTYPE "/etc/arm_systype"
diff --git a/meta/packages/glibc/glibc-2.9/local-args6.diff b/meta/packages/glibc/glibc-2.9/local-args6.diff
deleted file mode 100644
index 28c957f243..0000000000
--- a/meta/packages/glibc/glibc-2.9/local-args6.diff
+++ /dev/null
@@ -1,12 +0,0 @@
1--- glibc-2.7/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h.orig
2+++ glibc-2.7/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
3@@ -73,6 +73,9 @@
4 # define DOCARGS_5 DOCARGS_4
5 # define UNDOCARGS_5 UNDOCARGS_4
6
7+# define DOCARGS_6 DOCARGS_5
8+# define UNDOCARGS_6 UNDOCARGS_5
9+
10 # ifdef IS_IN_libpthread
11 # define CENABLE bl PLTJMP(__pthread_enable_asynccancel)
12 # define CDISABLE bl PLTJMP(__pthread_disable_asynccancel)
diff --git a/meta/packages/glibc/glibc-2.9/march-i686.patch b/meta/packages/glibc/glibc-2.9/march-i686.patch
deleted file mode 100644
index 04616032ad..0000000000
--- a/meta/packages/glibc/glibc-2.9/march-i686.patch
+++ /dev/null
@@ -1,38 +0,0 @@
12007-02-15 Khem Raj <kraj@xxxxxxxxxx>
2
3 * sysdeps/unix/sysv/linux/i386/sysdep.h: Re-define __i686.
4 * nptl/sysdeps/pthread/pt-initfini.c: Ditto.
5
6
7
8Index: sysdeps/unix/sysv/linux/i386/sysdep.h
9===================================================================
10--- sysdeps/unix/sysv/linux/i386/sysdep.h (revision 1469)
11+++ sysdeps/unix/sysv/linux/i386/sysdep.h (working copy)
12@@ -29,6 +29,10 @@
13 #include <dl-sysdep.h>
14 #include <tls.h>
15
16+#if defined __i686 && defined __ASSEMBLER__
17+#undef __i686
18+#define __i686 __i686
19+#endif
20
21 /* For Linux we can use the system call table in the header file
22 /usr/include/asm/unistd.h
23Index: nptl/sysdeps/pthread/pt-initfini.c
24===================================================================
25--- nptl/sysdeps/pthread/pt-initfini.c (revision 1469)
26+++ nptl/sysdeps/pthread/pt-initfini.c (working copy)
27@@ -45,6 +45,11 @@
28 /* Embed an #include to pull in the alignment and .end directives. */
29 asm ("\n#include \"defs.h\"");
30
31+asm ("\n#if defined __i686 && defined __ASSEMBLER__");
32+asm ("\n#undef __i686");
33+asm ("\n#define __i686 __i686");
34+asm ("\n#endif");
35+
36 /* The initial common code ends here. */
37 asm ("\n/*@HEADER_ENDS*/");
38
diff --git a/meta/packages/glibc/glibc-2.9/nscd-init.patch b/meta/packages/glibc/glibc-2.9/nscd-init.patch
deleted file mode 100644
index 884609a5a3..0000000000
--- a/meta/packages/glibc/glibc-2.9/nscd-init.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1--- nscd/nscd.init
2+++ nscd/nscd.init
3@@ -48,9 +48,8 @@
4
5 start () {
6 [ -d /var/run/nscd ] || mkdir /var/run/nscd
7- [ -d /var/db/nscd ] || mkdir /var/db/nscd
8 echo -n $"Starting $prog: "
9- daemon /usr/sbin/nscd
10+ /usr/sbin/nscd
11 RETVAL=$?
12 echo
13 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd
14@@ -67,12 +66,10 @@
15 # a non-privileged user
16 rm -f /var/run/nscd/nscd.pid
17 rm -f /var/run/nscd/socket
18- success $"$prog shutdown"
19- else
20- failure $"$prog shutdown"
21 fi
22- echo
23- return $RETVAL
24+ echo "Done."
25+ # If nscd did not run, return 0 according to LSB.
26+ return 0
27 }
28
29 restart() {
30@@ -104,7 +101,8 @@
31 ;;
32 force-reload | reload)
33 echo -n $"Reloading $prog: "
34- killproc /usr/sbin/nscd -HUP
35+ # Use killall, initscripts-1.0-r115 don't support -HUP yet.
36+ killall -HUP /usr/sbin/nscd
37 RETVAL=$?
38 echo
39 ;;
diff --git a/meta/packages/glibc/glibc-2.9/rulesfix.patch b/meta/packages/glibc/glibc-2.9/rulesfix.patch
deleted file mode 100644
index 67bfc9467d..0000000000
--- a/meta/packages/glibc/glibc-2.9/rulesfix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1Index: glibc-2.9/Makerules
2===================================================================
3--- glibc-2.9.orig/Makerules 2009-09-14 16:39:21.000000000 +0100
4+++ glibc-2.9/Makerules 2009-09-14 16:39:50.000000000 +0100
5@@ -173,6 +173,8 @@
6 # it's used in sysd-rules, below.
7 $(common-objpfx)%.h $(common-objpfx)%.h.d: $(..)scripts/gen-as-const.awk \
8 %.sym $(common-before-compile)
9+ rm -f $(@:.h=.h.d)
10+ rm -f $(@:.h.d=.h)
11 $(AWK) -f $< $(filter %.sym,$^) \
12 | $(CC) -S -o $(@:.h.d=.h)T3 $(CFLAGS) $(CPPFLAGS) -x c - \
13 -MD -MP -MF $(@:.h=.h.d)T -MT '$(@:.h=.h.d) $(@:.h.d=.h)'
diff --git a/meta/packages/glibc/glibc-2.9/tls_i486.patch b/meta/packages/glibc/glibc-2.9/tls_i486.patch
deleted file mode 100644
index 69a1fdf91d..0000000000
--- a/meta/packages/glibc/glibc-2.9/tls_i486.patch
+++ /dev/null
@@ -1,14 +0,0 @@
1Index: glibc-2.9/sysdeps/i386/dl-tlsdesc.S
2===================================================================
3--- glibc-2.9.orig/sysdeps/i386/dl-tlsdesc.S 2009-07-07 23:21:11.647664128 +0200
4+++ glibc-2.9/sysdeps/i386/dl-tlsdesc.S 2009-07-07 23:21:32.802555992 +0200
5@@ -128,8 +128,7 @@
6 .Lslow:
7 cfi_adjust_cfa_offset (28)
8 movl %ebx, 16(%esp)
9- call __i686.get_pc_thunk.bx
10- addl $_GLOBAL_OFFSET_TABLE_, %ebx
11+ LOAD_PIC_REG (bx)
12 call ___tls_get_addr@PLT
13 movl 16(%esp), %ebx
14 jmp .Lret
diff --git a/meta/packages/glibc/glibc-cvs-2.3.5/arm-audit.patch b/meta/packages/glibc/glibc-cvs-2.3.5/arm-audit.patch
deleted file mode 100644
index 2404f755e7..0000000000
--- a/meta/packages/glibc/glibc-cvs-2.3.5/arm-audit.patch
+++ /dev/null
@@ -1,58 +0,0 @@
12005-05-09 Daniel Jacobowitz <dan@codesourcery.com>
2 Mark Mitchell <mark@codesourcery.com>
3
4 * sysdeps/generic/ldsodefs.h (struct audit_ifaces): Add ARM entries.
5 * elf/tst-auditmod1.c: Add ARM definitions.
6
7Index: glibc/sysdeps/generic/ldsodefs.h
8===================================================================
9--- glibc.orig/sysdeps/generic/ldsodefs.h 2005-04-05 17:36:52.000000000 -0400
10+++ glibc/sysdeps/generic/ldsodefs.h 2005-05-06 15:54:44.000000000 -0400
11@@ -203,6 +203,8 @@ struct La_sparc32_regs;
12 struct La_sparc32_retval;
13 struct La_sparc64_regs;
14 struct La_sparc64_retval;
15+struct La_arm_regs;
16+struct La_arm_retval;
17
18 struct audit_ifaces
19 {
20@@ -284,6 +286,10 @@ struct audit_ifaces
21 const struct La_sparc64_regs *,
22 unsigned int *, const char *name,
23 long int *framesizep);
24+ Elf32_Addr (*arm_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
25+ uintptr_t *, struct La_arm_regs *,
26+ unsigned int *, const char *name,
27+ long int *framesizep);
28 };
29 union
30 {
31@@ -352,6 +358,9 @@ struct audit_ifaces
32 const struct La_sparc32_regs *,
33 struct La_sparc32_retval *,
34 const char *);
35+ unsigned int (*arm_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *,
36+ uintptr_t *, const struct La_arm_regs *,
37+ struct La_arm_retval *, const char *);
38 };
39 unsigned int (*objclose) (uintptr_t *);
40
41Index: glibc/elf/tst-auditmod1.c
42===================================================================
43--- glibc.orig/elf/tst-auditmod1.c 2005-04-05 17:36:53.000000000 -0400
44+++ glibc/elf/tst-auditmod1.c 2005-05-06 15:53:28.000000000 -0400
45@@ -192,6 +192,12 @@ la_symbind64 (Elf64_Sym *sym, unsigned i
46 # define La_regs La_sparc64_regs
47 # define La_retval La_sparc64_retval
48 # define int_retval lrv_reg[0]
49+#elif __arm__
50+# define pltenter la_arm_gnu_pltenter
51+# define pltext la_arm_gnu_pltexit
52+# define La_regs La_arm_regs
53+# define La_retval La_arm_retval
54+# define int_retval lrv_reg[0]
55 #else
56 # error "architecture specific code needed"
57 #endif
58
diff --git a/meta/packages/glibc/glibc-cvs-2.3.5/arm-audit2.patch b/meta/packages/glibc/glibc-cvs-2.3.5/arm-audit2.patch
deleted file mode 100644
index 855632c53e..0000000000
--- a/meta/packages/glibc/glibc-cvs-2.3.5/arm-audit2.patch
+++ /dev/null
@@ -1,18 +0,0 @@
1Index: ports/sysdeps/arm/dl-machine.h
2===================================================================
3RCS file: /cvs/glibc/ports/sysdeps/arm/dl-machine.h,v
4retrieving revision 1.53
5diff -u -r1.53 dl-machine.h
6--- libc/ports/sysdeps/arm/dl-machine.h 10 Jun 2005 11:33:52 -0000 1.53
7+++ libc/ports/sysdeps/arm/dl-machine.h 11 Jun 2005 08:58:04 -0000
8@@ -243,6 +243,10 @@
9 Prelinked libraries may use Elf32_Rela though. */
10 #define ELF_MACHINE_NO_RELA defined RTLD_BOOTSTRAP
11
12+/* Names of the architecture-specific auditing callback functions. */
13+#define ARCH_LA_PLTENTER arm_gnu_pltenter
14+#define ARCH_LA_PLTEXIT arm_gnu_pltexit
15+
16 #ifdef RESOLVE_MAP
17
18 /* Deal with an out-of-range PC24 reloc. */
diff --git a/meta/packages/glibc/glibc-cvs-2.3.5/arm-longlong.patch b/meta/packages/glibc/glibc-cvs-2.3.5/arm-longlong.patch
deleted file mode 100644
index a0b2ed0039..0000000000
--- a/meta/packages/glibc/glibc-cvs-2.3.5/arm-longlong.patch
+++ /dev/null
@@ -1,59 +0,0 @@
1--- stdlib/longlong.h~ 2002-09-29 18:45:58.000000000 +0100
2+++ stdlib/longlong.h 2004-03-20 19:16:44.000000000 +0000
3@@ -210,6 +210,14 @@
4 "rI" ((USItype) (bh)), \
5 "r" ((USItype) (al)), \
6 "rI" ((USItype) (bl)))
7+/* v3m and all higher arches have long multiply support. */
8+#if !defined(__ARM_ARCH_2__) && !defined(__ARM_ARCH_3__)
9+#define umul_ppmm(xh, xl, a, b) \
10+ __asm__ ("umull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
11+#define UMUL_TIME 5
12+#define smul_ppmm(xh, xl, a, b) \
13+ __asm__ ("smull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
14+#else
15 #define umul_ppmm(xh, xl, a, b) \
16 {register USItype __t0, __t1, __t2; \
17 __asm__ ("%@ Inlined umul_ppmm\n" \
18@@ -231,7 +239,14 @@
19 : "r" ((USItype) (a)), \
20 "r" ((USItype) (b)));}
21 #define UMUL_TIME 20
22+#endif
23 #define UDIV_TIME 100
24+
25+#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
26+#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X))
27+#define COUNT_LEADING_ZEROS_0 32
28+#endif
29+
30 #endif /* __arm__ */
31
32 #if defined (__hppa) && W_TYPE_SIZE == 32
33--- /dev/null 2004-02-02 20:32:13.000000000 +0000
34+++ ports/sysdeps/arm/mp_clz_tab.c 2004-03-20 19:24:26.000000000 +0000
35@@ -0,0 +1,24 @@
36+/* __clz_tab -- support for longlong.h
37+ Copyright (C) 2004 Free Software Foundation, Inc.
38+ This file is part of the GNU C Library.
39+
40+ The GNU C Library is free software; you can redistribute it and/or
41+ modify it under the terms of the GNU Lesser General Public
42+ License as published by the Free Software Foundation; either
43+ version 2.1 of the License, or (at your option) any later version.
44+
45+ The GNU C Library is distributed in the hope that it will be useful,
46+ but WITHOUT ANY WARRANTY; without even the implied warranty of
47+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
48+ Lesser General Public License for more details.
49+
50+ You should have received a copy of the GNU Lesser General Public
51+ License along with the GNU C Library; if not, write to the Free
52+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
53+ 02111-1307 USA. */
54+
55+#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
56+/* Nothing required. */
57+#else
58+#include <sysdeps/generic/mp_clz_tab.c>
59+#endif
diff --git a/meta/packages/glibc/glibc-cvs-2.3.5/arm-memcpy.patch b/meta/packages/glibc/glibc-cvs-2.3.5/arm-memcpy.patch
deleted file mode 100644
index db1120058b..0000000000
--- a/meta/packages/glibc/glibc-cvs-2.3.5/arm-memcpy.patch
+++ /dev/null
@@ -1,758 +0,0 @@
1--- /dev/null 2004-02-02 20:32:13.000000000 +0000
2+++ libc/ports/sysdeps/arm/memmove.S 2004-03-20 18:37:23.000000000 +0000
3@@ -0,0 +1,251 @@
4+/*
5+ * Optimized memmove implementation for ARM processors
6+ *
7+ * Author: Nicolas Pitre
8+ * Created: Dec 23, 2003
9+ * Copyright: (C) MontaVista Software, Inc.
10+ *
11+ * This file is free software; you can redistribute it and/or
12+ * modify it under the terms of the GNU Lesser General Public
13+ * License as published by the Free Software Foundation; either
14+ * version 2.1 of the License, or (at your option) any later version.
15+ *
16+ * This file is distributed in the hope that it will be useful,
17+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19+ * Lesser General Public License for more details.
20+ */
21+
22+#include <sysdep.h>
23+
24+
25+/*
26+ * Endian independent macros for shifting bytes within registers.
27+ */
28+#ifndef __ARMEB__
29+#define pull lsr
30+#define push lsl
31+#else
32+#define pull lsl
33+#define push lsr
34+#endif
35+
36+/*
37+ * Enable data preload for architectures that support it (ARMv5 and above)
38+ */
39+#if defined(__ARM_ARCH_5__) || \
40+ defined(__ARM_ARCH_5T__) || \
41+ defined(__ARM_ARCH_5TE__)
42+#define PLD(code...) code
43+#else
44+#define PLD(code...)
45+#endif
46+
47+
48+/* char * memmove (char *dst, const char *src) */
49+ENTRY(memmove)
50+ subs ip, r0, r1
51+ cmphi r2, ip
52+ bls memcpy(PLT)
53+
54+ stmfd sp!, {r0, r4, lr}
55+ add r1, r1, r2
56+ add r0, r0, r2
57+ subs r2, r2, #4
58+ blt 25f
59+ ands ip, r0, #3
60+ PLD( pld [r1, #-4] )
61+ bne 26f
62+ ands ip, r1, #3
63+ bne 27f
64+
65+19: subs r2, r2, #4
66+ blt 24f
67+ subs r2, r2, #8
68+ blt 23f
69+ subs r2, r2, #16
70+ blt 22f
71+
72+ PLD( pld [r1, #-32] )
73+ PLD( subs r2, r2, #96 )
74+ stmfd sp!, {r5 - r8}
75+ PLD( blt 21f )
76+
77+ PLD( @ cache alignment )
78+ PLD( ands ip, r1, #31 )
79+ PLD( pld [r1, #-64] )
80+ PLD( beq 20f )
81+ PLD( cmp r2, ip )
82+ PLD( pld [r1, #-96] )
83+ PLD( blt 20f )
84+ PLD( cmp ip, #16 )
85+ PLD( sub r2, r2, ip )
86+ PLD( ldmgedb r1!, {r3 - r6} )
87+ PLD( stmgedb r0!, {r3 - r6} )
88+ PLD( beq 20f )
89+ PLD( and ip, ip, #15 )
90+ PLD( cmp ip, #8 )
91+ PLD( ldr r3, [r1, #-4]! )
92+ PLD( ldrge r4, [r1, #-4]! )
93+ PLD( ldrgt r5, [r1, #-4]! )
94+ PLD( str r3, [r0, #-4]! )
95+ PLD( strge r4, [r0, #-4]! )
96+ PLD( strgt r5, [r0, #-4]! )
97+
98+20: PLD( pld [r1, #-96] )
99+ PLD( pld [r1, #-128] )
100+21: ldmdb r1!, {r3, r4, ip, lr}
101+ subs r2, r2, #32
102+ stmdb r0!, {r3, r4, ip, lr}
103+ ldmdb r1!, {r3, r4, ip, lr}
104+ stmgedb r0!, {r3, r4, ip, lr}
105+ ldmgedb r1!, {r3, r4, ip, lr}
106+ stmgedb r0!, {r3, r4, ip, lr}
107+ ldmgedb r1!, {r3, r4, ip, lr}
108+ subges r2, r2, #32
109+ stmdb r0!, {r3, r4, ip, lr}
110+ bge 20b
111+ PLD( cmn r2, #96 )
112+ PLD( bge 21b )
113+ PLD( add r2, r2, #96 )
114+ tst r2, #31
115+ ldmfd sp!, {r5 - r8}
116+ ldmeqfd sp!, {r0, r4, pc}
117+
118+ tst r2, #16
119+22: ldmnedb r1!, {r3, r4, ip, lr}
120+ stmnedb r0!, {r3, r4, ip, lr}
121+
122+ tst r2, #8
123+23: ldmnedb r1!, {r3, r4}
124+ stmnedb r0!, {r3, r4}
125+
126+ tst r2, #4
127+24: ldrne r3, [r1, #-4]!
128+ strne r3, [r0, #-4]!
129+
130+25: ands r2, r2, #3
131+ ldmeqfd sp!, {r0, r4, pc}
132+
133+ cmp r2, #2
134+ ldrb r3, [r1, #-1]
135+ ldrgeb r4, [r1, #-2]
136+ ldrgtb ip, [r1, #-3]
137+ strb r3, [r0, #-1]
138+ strgeb r4, [r0, #-2]
139+ strgtb ip, [r0, #-3]
140+ ldmfd sp!, {r0, r4, pc}
141+
142+26: cmp ip, #2
143+ ldrb r3, [r1, #-1]!
144+ ldrgeb r4, [r1, #-1]!
145+ ldrgtb lr, [r1, #-1]!
146+ strb r3, [r0, #-1]!
147+ strgeb r4, [r0, #-1]!
148+ strgtb lr, [r0, #-1]!
149+ subs r2, r2, ip
150+ blt 25b
151+ ands ip, r1, #3
152+ beq 19b
153+
154+27: bic r1, r1, #3
155+ cmp ip, #2
156+ ldr r3, [r1]
157+ beq 35f
158+ blt 36f
159+
160+
161+ .macro backward_copy_shift push pull
162+
163+ cmp r2, #12
164+ PLD( pld [r1, #-4] )
165+ blt 33f
166+ subs r2, r2, #28
167+ stmfd sp!, {r5 - r9}
168+ blt 31f
169+
170+ PLD( subs r2, r2, #96 )
171+ PLD( pld [r1, #-32] )
172+ PLD( blt 30f )
173+ PLD( pld [r1, #-64] )
174+
175+ PLD( @ cache alignment )
176+ PLD( ands ip, r1, #31 )
177+ PLD( pld [r1, #-96] )
178+ PLD( beq 29f )
179+ PLD( cmp r2, ip )
180+ PLD( pld [r1, #-128] )
181+ PLD( blt 29f )
182+ PLD( sub r2, r2, ip )
183+28: PLD( mov r4, r3, push #\push )
184+ PLD( ldr r3, [r1, #-4]! )
185+ PLD( subs ip, ip, #4 )
186+ PLD( orr r4, r4, r3, pull #\pull )
187+ PLD( str r4, [r0, #-4]! )
188+ PLD( bgt 28b )
189+
190+29: PLD( pld [r1, #-128] )
191+30: mov lr, r3, push #\push
192+ ldmdb r1!, {r3 - r9, ip}
193+ subs r2, r2, #32
194+ orr lr, lr, ip, pull #\pull
195+ mov ip, ip, push #\push
196+ orr ip, ip, r9, pull #\pull
197+ mov r9, r9, push #\push
198+ orr r9, r9, r8, pull #\pull
199+ mov r8, r8, push #\push
200+ orr r8, r8, r7, pull #\pull
201+ mov r7, r7, push #\push
202+ orr r7, r7, r6, pull #\pull
203+ mov r6, r6, push #\push
204+ orr r6, r6, r5, pull #\pull
205+ mov r5, r5, push #\push
206+ orr r5, r5, r4, pull #\pull
207+ mov r4, r4, push #\push
208+ orr r4, r4, r3, pull #\pull
209+ stmdb r0!, {r4 - r9, ip, lr}
210+ bge 29b
211+ PLD( cmn r2, #96 )
212+ PLD( bge 30b )
213+ PLD( add r2, r2, #96 )
214+ cmn r2, #16
215+ blt 32f
216+31: mov r7, r3, push #\push
217+ ldmdb r1!, {r3 - r6}
218+ sub r2, r2, #16
219+ orr r7, r7, r6, pull #\pull
220+ mov r6, r6, push #\push
221+ orr r6, r6, r5, pull #\pull
222+ mov r5, r5, push #\push
223+ orr r5, r5, r4, pull #\pull
224+ mov r4, r4, push #\push
225+ orr r4, r4, r3, pull #\pull
226+ stmdb r0!, {r4 - r7}
227+32: adds r2, r2, #28
228+ ldmfd sp!, {r5 - r9}
229+ blt 34f
230+33: mov r4, r3, push #\push
231+ ldr r3, [r1, #-4]!
232+ subs r2, r2, #4
233+ orr r4, r4, r3, pull #\pull
234+ str r4, [r0, #-4]!
235+ bge 33b
236+34:
237+ .endm
238+
239+
240+ backward_copy_shift push=8 pull=24
241+ add r1, r1, #3
242+ b 25b
243+
244+35: backward_copy_shift push=16 pull=16
245+ add r1, r1, #2
246+ b 25b
247+
248+36: backward_copy_shift push=24 pull=8
249+ add r1, r1, #1
250+ b 25b
251+
252+ .size memmove, . - memmove
253+END(memmove)
254+libc_hidden_builtin_def (memmove)
255--- /dev/null 2004-02-02 20:32:13.000000000 +0000
256+++ libc/ports/sysdeps/arm/bcopy.S 2004-03-20 18:37:48.000000000 +0000
257@@ -0,0 +1,255 @@
258+/*
259+ * Optimized memmove implementation for ARM processors
260+ *
261+ * Author: Nicolas Pitre
262+ * Created: Dec 23, 2003
263+ * Copyright: (C) MontaVista Software, Inc.
264+ *
265+ * This file is free software; you can redistribute it and/or
266+ * modify it under the terms of the GNU Lesser General Public
267+ * License as published by the Free Software Foundation; either
268+ * version 2.1 of the License, or (at your option) any later version.
269+ *
270+ * This file is distributed in the hope that it will be useful,
271+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
272+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
273+ * Lesser General Public License for more details.
274+ */
275+
276+#include <sysdep.h>
277+
278+
279+/*
280+ * Endian independent macros for shifting bytes within registers.
281+ */
282+#ifndef __ARMEB__
283+#define pull lsr
284+#define push lsl
285+#else
286+#define pull lsl
287+#define push lsr
288+#endif
289+
290+/*
291+ * Enable data preload for architectures that support it (ARMv5 and above)
292+ */
293+#if defined(__ARM_ARCH_5__) || \
294+ defined(__ARM_ARCH_5T__) || \
295+ defined(__ARM_ARCH_5TE__)
296+#define PLD(code...) code
297+#else
298+#define PLD(code...)
299+#endif
300+
301+dst .req r1
302+src .req r0
303+
304+/* void *bcopy (const char *src, char *dst, size_t size) */
305+ENTRY(bcopy)
306+ subs ip, dst, src
307+ cmphi r2, ip
308+ movls r3, r0
309+ movls r0, r1
310+ movls r1, r3
311+ bls memcpy(PLT)
312+
313+ stmfd sp!, {r4, lr}
314+ add src, src, r2
315+ add dst, dst, r2
316+ subs r2, r2, #4
317+ blt 25f
318+ ands ip, dst, #3
319+ PLD( pld [src, #-4] )
320+ bne 26f
321+ ands ip, src, #3
322+ bne 27f
323+
324+19: subs r2, r2, #4
325+ blt 24f
326+ subs r2, r2, #8
327+ blt 23f
328+ subs r2, r2, #16
329+ blt 22f
330+
331+ PLD( pld [src, #-32] )
332+ PLD( subs r2, r2, #96 )
333+ stmfd sp!, {r5 - r8}
334+ PLD( blt 21f )
335+
336+ PLD( @ cache alignment )
337+ PLD( ands ip, src, #31 )
338+ PLD( pld [src, #-64] )
339+ PLD( beq 20f )
340+ PLD( cmp r2, ip )
341+ PLD( pld [src, #-96] )
342+ PLD( blt 20f )
343+ PLD( cmp ip, #16 )
344+ PLD( sub r2, r2, ip )
345+ PLD( ldmgedb src!, {r3 - r6} )
346+ PLD( stmgedb dst!, {r3 - r6} )
347+ PLD( beq 20f )
348+ PLD( and ip, ip, #15 )
349+ PLD( cmp ip, #8 )
350+ PLD( ldr r3, [src, #-4]! )
351+ PLD( ldrge r4, [src, #-4]! )
352+ PLD( ldrgt r5, [src, #-4]! )
353+ PLD( str r3, [dst, #-4]! )
354+ PLD( strge r4, [dst, #-4]! )
355+ PLD( strgt r5, [dst, #-4]! )
356+
357+20: PLD( pld [src, #-96] )
358+ PLD( pld [src, #-128] )
359+21: ldmdb src!, {r3, r4, ip, lr}
360+ subs r2, r2, #32
361+ stmdb dst!, {r3, r4, ip, lr}
362+ ldmdb src!, {r3, r4, ip, lr}
363+ stmgedb dst!, {r3, r4, ip, lr}
364+ ldmgedb src!, {r3, r4, ip, lr}
365+ stmgedb dst!, {r3, r4, ip, lr}
366+ ldmgedb src!, {r3, r4, ip, lr}
367+ subges r2, r2, #32
368+ stmdb dst!, {r3, r4, ip, lr}
369+ bge 20b
370+ PLD( cmn r2, #96 )
371+ PLD( bge 21b )
372+ PLD( add r2, r2, #96 )
373+ tst r2, #31
374+ ldmfd sp!, {r5 - r8}
375+ ldmeqfd sp!, {r4, pc}
376+
377+ tst r2, #16
378+22: ldmnedb src!, {r3, r4, ip, lr}
379+ stmnedb dst!, {r3, r4, ip, lr}
380+
381+ tst r2, #8
382+23: ldmnedb src!, {r3, r4}
383+ stmnedb dst!, {r3, r4}
384+
385+ tst r2, #4
386+24: ldrne r3, [src, #-4]!
387+ strne r3, [dst, #-4]!
388+
389+25: ands r2, r2, #3
390+ ldmeqfd sp!, {dst, r4, pc}
391+
392+ cmp r2, #2
393+ ldrb r3, [src, #-1]
394+ ldrgeb r4, [src, #-2]
395+ ldrgtb ip, [src, #-3]
396+ strb r3, [dst, #-1]
397+ strgeb r4, [dst, #-2]
398+ strgtb ip, [dst, #-3]
399+ ldmfd sp!, {dst, r4, pc}
400+
401+26: cmp ip, #2
402+ ldrb r3, [src, #-1]!
403+ ldrgeb r4, [src, #-1]!
404+ ldrgtb lr, [src, #-1]!
405+ strb r3, [dst, #-1]!
406+ strgeb r4, [dst, #-1]!
407+ strgtb lr, [dst, #-1]!
408+ subs r2, r2, ip
409+ blt 25b
410+ ands ip, src, #3
411+ beq 19b
412+
413+27: bic src, src, #3
414+ cmp ip, #2
415+ ldr r3, [src]
416+ beq 35f
417+ blt 36f
418+
419+
420+ .macro backward_copy_shift push pull
421+
422+ cmp r2, #12
423+ PLD( pld [src, #-4] )
424+ blt 33f
425+ subs r2, r2, #28
426+ stmfd sp!, {r5 - r9}
427+ blt 31f
428+
429+ PLD( subs r2, r2, #96 )
430+ PLD( pld [src, #-32] )
431+ PLD( blt 30f )
432+ PLD( pld [src, #-64] )
433+
434+ PLD( @ cache alignment )
435+ PLD( ands ip, src, #31 )
436+ PLD( pld [src, #-96] )
437+ PLD( beq 29f )
438+ PLD( cmp r2, ip )
439+ PLD( pld [src, #-128] )
440+ PLD( blt 29f )
441+ PLD( sub r2, r2, ip )
442+28: PLD( mov r4, r3, push #\push )
443+ PLD( ldr r3, [src, #-4]! )
444+ PLD( subs ip, ip, #4 )
445+ PLD( orr r4, r4, r3, pull #\pull )
446+ PLD( str r4, [dst, #-4]! )
447+ PLD( bgt 28b )
448+
449+29: PLD( pld [src, #-128] )
450+30: mov lr, r3, push #\push
451+ ldmdb src!, {r3 - r9, ip}
452+ subs r2, r2, #32
453+ orr lr, lr, ip, pull #\pull
454+ mov ip, ip, push #\push
455+ orr ip, ip, r9, pull #\pull
456+ mov r9, r9, push #\push
457+ orr r9, r9, r8, pull #\pull
458+ mov r8, r8, push #\push
459+ orr r8, r8, r7, pull #\pull
460+ mov r7, r7, push #\push
461+ orr r7, r7, r6, pull #\pull
462+ mov r6, r6, push #\push
463+ orr r6, r6, r5, pull #\pull
464+ mov r5, r5, push #\push
465+ orr r5, r5, r4, pull #\pull
466+ mov r4, r4, push #\push
467+ orr r4, r4, r3, pull #\pull
468+ stmdb dst!, {r4 - r9, ip, lr}
469+ bge 29b
470+ PLD( cmn r2, #96 )
471+ PLD( bge 30b )
472+ PLD( add r2, r2, #96 )
473+ cmn r2, #16
474+ blt 32f
475+31: mov r7, r3, push #\push
476+ ldmdb src!, {r3 - r6}
477+ sub r2, r2, #16
478+ orr r7, r7, r6, pull #\pull
479+ mov r6, r6, push #\push
480+ orr r6, r6, r5, pull #\pull
481+ mov r5, r5, push #\push
482+ orr r5, r5, r4, pull #\pull
483+ mov r4, r4, push #\push
484+ orr r4, r4, r3, pull #\pull
485+ stmdb dst!, {r4 - r7}
486+32: adds r2, r2, #28
487+ ldmfd sp!, {r5 - r9}
488+ blt 34f
489+33: mov r4, r3, push #\push
490+ ldr r3, [src, #-4]!
491+ subs r2, r2, #4
492+ orr r4, r4, r3, pull #\pull
493+ str r4, [dst, #-4]!
494+ bge 33b
495+34:
496+ .endm
497+
498+
499+ backward_copy_shift push=8 pull=24
500+ add src, src, #3
501+ b 25b
502+
503+35: backward_copy_shift push=16 pull=16
504+ add src, src, #2
505+ b 25b
506+
507+36: backward_copy_shift push=24 pull=8
508+ add src, src, #1
509+ b 25b
510+
511+ .size bcopy, . - bcopy
512+END(bcopy)
513
514--- /dev/null 2004-02-02 20:32:13.000000000 +0000
515+++ libc/ports/sysdeps/arm/memcpy.S 2004-05-02 14:33:22.000000000 +0100
516@@ -0,0 +1,242 @@
517+/*
518+ * Optimized memcpy implementation for ARM processors
519+ *
520+ * Author: Nicolas Pitre
521+ * Created: Dec 23, 2003
522+ * Copyright: (C) MontaVista Software, Inc.
523+ *
524+ * This file is free software; you can redistribute it and/or
525+ * modify it under the terms of the GNU Lesser General Public
526+ * License as published by the Free Software Foundation; either
527+ * version 2.1 of the License, or (at your option) any later version.
528+ *
529+ * This file is distributed in the hope that it will be useful,
530+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
531+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
532+ * Lesser General Public License for more details.
533+ */
534+
535+#include <sysdep.h>
536+
537+
538+/*
539+ * Endian independent macros for shifting bytes within registers.
540+ */
541+#ifndef __ARMEB__
542+#define pull lsr
543+#define push lsl
544+#else
545+#define pull lsl
546+#define push lsr
547+#endif
548+
549+/*
550+ * Enable data preload for architectures that support it (ARMv5 and above)
551+ */
552+#if defined(__ARM_ARCH_5__) || \
553+ defined(__ARM_ARCH_5T__) || \
554+ defined(__ARM_ARCH_5TE__)
555+#define PLD(code...) code
556+#else
557+#define PLD(code...)
558+#endif
559+
560+
561+/* char * memcpy (char *dst, const char *src) */
562+
563+ENTRY(memcpy)
564+ subs r2, r2, #4
565+ stmfd sp!, {r0, r4, lr}
566+ blt 7f
567+ ands ip, r0, #3
568+ PLD( pld [r1, #0] )
569+ bne 8f
570+ ands ip, r1, #3
571+ bne 9f
572+
573+1: subs r2, r2, #4
574+ blt 6f
575+ subs r2, r2, #8
576+ blt 5f
577+ subs r2, r2, #16
578+ blt 4f
579+
580+ PLD( subs r2, r2, #65 )
581+ stmfd sp!, {r5 - r8}
582+ PLD( blt 3f )
583+ PLD( pld [r1, #32] )
584+
585+ PLD( @ cache alignment )
586+ PLD( ands ip, r1, #31 )
587+ PLD( pld [r1, #64] )
588+ PLD( beq 2f )
589+ PLD( rsb ip, ip, #32 )
590+ PLD( cmp r2, ip )
591+ PLD( pld [r1, #96] )
592+ PLD( blt 2f )
593+ PLD( cmp ip, #16 )
594+ PLD( sub r2, r2, ip )
595+ PLD( ldmgeia r1!, {r3 - r6} )
596+ PLD( stmgeia r0!, {r3 - r6} )
597+ PLD( beq 2f )
598+ PLD( and ip, ip, #15 )
599+ PLD( cmp ip, #8 )
600+ PLD( ldr r3, [r1], #4 )
601+ PLD( ldrge r4, [r1], #4 )
602+ PLD( ldrgt r5, [r1], #4 )
603+ PLD( str r3, [r0], #4 )
604+ PLD( strge r4, [r0], #4 )
605+ PLD( strgt r5, [r0], #4 )
606+
607+2: PLD( pld [r1, #96] )
608+3: ldmia r1!, {r3 - r8, ip, lr}
609+ subs r2, r2, #32
610+ stmia r0!, {r3 - r8, ip, lr}
611+ bge 2b
612+ PLD( cmn r2, #65 )
613+ PLD( bge 3b )
614+ PLD( add r2, r2, #65 )
615+ tst r2, #31
616+ ldmfd sp!, {r5 - r8}
617+ ldmeqfd sp!, {r0, r4, pc}
618+
619+ tst r2, #16
620+4: ldmneia r1!, {r3, r4, ip, lr}
621+ stmneia r0!, {r3, r4, ip, lr}
622+
623+ tst r2, #8
624+5: ldmneia r1!, {r3, r4}
625+ stmneia r0!, {r3, r4}
626+
627+ tst r2, #4
628+6: ldrne r3, [r1], #4
629+ strne r3, [r0], #4
630+
631+7: ands r2, r2, #3
632+ ldmeqfd sp!, {r0, r4, pc}
633+
634+ cmp r2, #2
635+ ldrb r3, [r1], #1
636+ ldrgeb r4, [r1], #1
637+ ldrgtb ip, [r1]
638+ strb r3, [r0], #1
639+ strgeb r4, [r0], #1
640+ strgtb ip, [r0]
641+ ldmfd sp!, {r0, r4, pc}
642+
643+8: rsb ip, ip, #4
644+ cmp ip, #2
645+ ldrb r3, [r1], #1
646+ ldrgeb r4, [r1], #1
647+ ldrgtb lr, [r1], #1
648+ strb r3, [r0], #1
649+ strgeb r4, [r0], #1
650+ strgtb lr, [r0], #1
651+ subs r2, r2, ip
652+ blt 7b
653+ ands ip, r1, #3
654+ beq 1b
655+
656+9: bic r1, r1, #3
657+ cmp ip, #2
658+ ldr lr, [r1], #4
659+ beq 17f
660+ bgt 18f
661+
662+
663+ .macro forward_copy_shift pull push
664+
665+ cmp r2, #12
666+ PLD( pld [r1, #0] )
667+ blt 15f
668+ subs r2, r2, #28
669+ stmfd sp!, {r5 - r9}
670+ blt 13f
671+
672+ PLD( subs r2, r2, #97 )
673+ PLD( blt 12f )
674+ PLD( pld [r1, #32] )
675+
676+ PLD( @ cache alignment )
677+ PLD( rsb ip, r1, #36 )
678+ PLD( pld [r1, #64] )
679+ PLD( ands ip, ip, #31 )
680+ PLD( pld [r1, #96] )
681+ PLD( beq 11f )
682+ PLD( cmp r2, ip )
683+ PLD( pld [r1, #128] )
684+ PLD( blt 11f )
685+ PLD( sub r2, r2, ip )
686+10: PLD( mov r3, lr, pull #\pull )
687+ PLD( ldr lr, [r1], #4 )
688+ PLD( subs ip, ip, #4 )
689+ PLD( orr r3, r3, lr, push #\push )
690+ PLD( str r3, [r0], #4 )
691+ PLD( bgt 10b )
692+
693+11: PLD( pld [r1, #128] )
694+12: mov r3, lr, pull #\pull
695+ ldmia r1!, {r4 - r9, ip, lr}
696+ subs r2, r2, #32
697+ orr r3, r3, r4, push #\push
698+ mov r4, r4, pull #\pull
699+ orr r4, r4, r5, push #\push
700+ mov r5, r5, pull #\pull
701+ orr r5, r5, r6, push #\push
702+ mov r6, r6, pull #\pull
703+ orr r6, r6, r7, push #\push
704+ mov r7, r7, pull #\pull
705+ orr r7, r7, r8, push #\push
706+ mov r8, r8, pull #\pull
707+ orr r8, r8, r9, push #\push
708+ mov r9, r9, pull #\pull
709+ orr r9, r9, ip, push #\push
710+ mov ip, ip, pull #\pull
711+ orr ip, ip, lr, push #\push
712+ stmia r0!, {r3 - r9, ip}
713+ bge 11b
714+ PLD( cmn r2, #97 )
715+ PLD( bge 12b )
716+ PLD( add r2, r2, #97 )
717+ cmn r2, #16
718+ blt 14f
719+13: mov r3, lr, pull #\pull
720+ ldmia r1!, {r4 - r6, lr}
721+ sub r2, r2, #16
722+ orr r3, r3, r4, push #\push
723+ mov r4, r4, pull #\pull
724+ orr r4, r4, r5, push #\push
725+ mov r5, r5, pull #\pull
726+ orr r5, r5, r6, push #\push
727+ mov r6, r6, pull #\pull
728+ orr r6, r6, lr, push #\push
729+ stmia r0!, {r3 - r6}
730+14: adds r2, r2, #28
731+ ldmfd sp!, {r5 - r9}
732+ blt 16f
733+15: mov r3, lr, pull #\pull
734+ ldr lr, [r1], #4
735+ subs r2, r2, #4
736+ orr r3, r3, lr, push #\push
737+ str r3, [r0], #4
738+ bge 15b
739+16:
740+ .endm
741+
742+
743+ forward_copy_shift pull=8 push=24
744+ sub r1, r1, #3
745+ b 7b
746+
747+17: forward_copy_shift pull=16 push=16
748+ sub r1, r1, #2
749+ b 7b
750+
751+18: forward_copy_shift pull=24 push=8
752+ sub r1, r1, #1
753+ b 7b
754+
755+ .size memcpy, . - memcpy
756+END(memcpy)
757+libc_hidden_builtin_def (memcpy)
758+
diff --git a/meta/packages/glibc/glibc-cvs-2.3.5/arm-no-hwcap.patch b/meta/packages/glibc/glibc-cvs-2.3.5/arm-no-hwcap.patch
deleted file mode 100644
index d3263a7dc6..0000000000
--- a/meta/packages/glibc/glibc-cvs-2.3.5/arm-no-hwcap.patch
+++ /dev/null
@@ -1,11 +0,0 @@
1--- libc/ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h.orig 2005-12-11 14:49:51 +0100
2+++ libc/ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h 2005-12-11 14:51:28 +0100
3@@ -64,7 +64,7 @@
4 HWCAP_ARM_VFP = 1 << 6,
5 HWCAP_ARM_EDSP = 1 << 7,
6
7- HWCAP_IMPORTANT = (HWCAP_ARM_HALF | HWCAP_ARM_FAST_MULT)
8+ HWCAP_IMPORTANT = HWCAP_ARM_FAST_MULT
9 };
10
11 static inline int
diff --git a/meta/packages/glibc/glibc-cvs-2.3.5/dl-cache-libcmp.patch b/meta/packages/glibc/glibc-cvs-2.3.5/dl-cache-libcmp.patch
deleted file mode 100644
index c74ebf6c09..0000000000
--- a/meta/packages/glibc/glibc-cvs-2.3.5/dl-cache-libcmp.patch
+++ /dev/null
@@ -1,10 +0,0 @@
1--- libc/elf/Versions.old 2005-06-27 13:38:25.000000000 +0100
2+++ libc/elf/Versions 2005-06-27 14:03:54.000000000 +0100
3@@ -56,5 +56,7 @@
4 _dl_make_stack_executable;
5 # Only here for gdb while a better method is developed.
6 _dl_debug_state;
7+ # for ldconfig
8+ _dl_cache_libcmp;
9 }
10 }
diff --git a/meta/packages/glibc/glibc-cvs-2.3.5/dyn-ldconfig-20041128.patch b/meta/packages/glibc/glibc-cvs-2.3.5/dyn-ldconfig-20041128.patch
deleted file mode 100644
index 451b6d4afc..0000000000
--- a/meta/packages/glibc/glibc-cvs-2.3.5/dyn-ldconfig-20041128.patch
+++ /dev/null
@@ -1,22 +0,0 @@
1
2#
3# Patch managed by http://www.holgerschurig.de/patcher.html
4#
5
6--- libc/elf/Makefile~dyn-ldconfig-20041128
7+++ libc/elf/Makefile
8@@ -118,12 +118,13 @@
9
10 ifeq (yes,$(use-ldconfig))
11 ifeq (yes,$(build-shared))
12-others-static += ldconfig
13+#others-static += ldconfig
14 others += ldconfig
15 install-rootsbin += ldconfig
16
17 ldconfig-modules := cache readlib xmalloc xstrdup chroot_canon
18 extra-objs += $(ldconfig-modules:=.o)
19+CPPFLAGS-readlib.c = -DNOT_IN_libc=1
20
21 # To find xmalloc.c and xstrdup.c
22 vpath %.c ../locale/programs
diff --git a/meta/packages/glibc/glibc-cvs-2.3.5/headers_fix.patch b/meta/packages/glibc/glibc-cvs-2.3.5/headers_fix.patch
deleted file mode 100644
index 88b5e60a8f..0000000000
--- a/meta/packages/glibc/glibc-cvs-2.3.5/headers_fix.patch
+++ /dev/null
@@ -1,16 +0,0 @@
1Without this, do_compile fails, unable to find linux/errno.h
2
3RP - 27/11/2007
4
5Index: libc/nscd/Makefile
6===================================================================
7--- libc.orig/nscd/Makefile 2005-06-14 22:51:24.000000000 +0000
8+++ libc/nscd/Makefile 2007-11-27 16:31:02.000000000 +0000
9@@ -68,7 +68,6 @@
10 # contains only the basic kernel interface headers, not something like
11 # libselinux. So the simplest thing is to presume that the standard
12 # system headers will be ok for this file.
13-$(objpfx)nscd_stat.o: sysincludes = # nothing
14 $(objpfx)selinux.o: sysincludes = # nothing
15
16 distribute := nscd.h nscd-client.h dbg_log.h \
diff --git a/meta/packages/glibc/glibc-cvs-2.3.5/ldsocache-varrun.patch b/meta/packages/glibc/glibc-cvs-2.3.5/ldsocache-varrun.patch
deleted file mode 100644
index 9994d4f879..0000000000
--- a/meta/packages/glibc/glibc-cvs-2.3.5/ldsocache-varrun.patch
+++ /dev/null
@@ -1,18 +0,0 @@
1This patch moves ld.so.cache from /etc to /var/run. This is for devices
2where /etc is JFFS2 or CRAMFS but /var is a ramdisk.
3
4#
5# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
6#
7
8--- libc/sysdeps/generic/dl-cache.h~ldsocache-varrun
9+++ libc/sysdeps/generic/dl-cache.h
10@@ -29,7 +29,7 @@
11 #endif
12
13 #ifndef LD_SO_CACHE
14-# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache"
15+# define LD_SO_CACHE "/var/run/ld.so.cache"
16 #endif
17
18 #ifndef add_system_dir
diff --git a/meta/packages/glibc/glibc-initial_2.4.bb b/meta/packages/glibc/glibc-initial_2.4.bb
deleted file mode 100644
index fa7836ad88..0000000000
--- a/meta/packages/glibc/glibc-initial_2.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
1require glibc_${PV}.bb
2require glibc-initial.inc
diff --git a/meta/packages/glibc/glibc-initial_2.5.bb b/meta/packages/glibc/glibc-initial_2.5.bb
deleted file mode 100644
index d3dc4b587a..0000000000
--- a/meta/packages/glibc/glibc-initial_2.5.bb
+++ /dev/null
@@ -1,3 +0,0 @@
1require glibc_${PV}.bb
2require glibc-initial.inc
3
diff --git a/meta/packages/glibc/glibc-initial_2.6.1.bb b/meta/packages/glibc/glibc-initial_2.6.1.bb
deleted file mode 100644
index 3ad96569f5..0000000000
--- a/meta/packages/glibc/glibc-initial_2.6.1.bb
+++ /dev/null
@@ -1,6 +0,0 @@
1require glibc_${PV}.bb
2require glibc-initial.inc
3
4do_configure_prepend () {
5 unset CFLAGS
6} \ No newline at end of file
diff --git a/meta/packages/glibc/glibc-initial_2.9.bb b/meta/packages/glibc/glibc-initial_2.9.bb
deleted file mode 100644
index d66297090f..0000000000
--- a/meta/packages/glibc/glibc-initial_2.9.bb
+++ /dev/null
@@ -1,6 +0,0 @@
1require glibc_${PV}.bb
2require glibc-initial.inc
3
4do_configure_prepend () {
5 unset CFLAGS
6}
diff --git a/meta/packages/glibc/glibc-initial_csl-2005q3-2.bb b/meta/packages/glibc/glibc-initial_csl-2005q3-2.bb
deleted file mode 100644
index d3dc4b587a..0000000000
--- a/meta/packages/glibc/glibc-initial_csl-2005q3-2.bb
+++ /dev/null
@@ -1,3 +0,0 @@
1require glibc_${PV}.bb
2require glibc-initial.inc
3
diff --git a/meta/packages/glibc/glibc_2.3.5+cvs20050627.bb b/meta/packages/glibc/glibc_2.3.5+cvs20050627.bb
deleted file mode 100644
index 8c44c21156..0000000000
--- a/meta/packages/glibc/glibc_2.3.5+cvs20050627.bb
+++ /dev/null
@@ -1,110 +0,0 @@
1require glibc.inc
2
3FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs-2.3.5"
4SRCDATE = "20050627"
5PR = "r6"
6
7GLIBC_ADDONS ?= "ports,linuxthreads"
8
9GLIBC_BROKEN_LOCALES = "sid_ET tr_TR mn_MN"
10
11#
12# For now, we will skip building of a gcc package if it is a uclibc one
13# and our build is not a uclibc one, and we skip a glibc one if our build
14# is a uclibc build.
15#
16# See the note in gcc/gcc_3.4.0.oe
17#
18
19python __anonymous () {
20 import bb, re
21 uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
22 if uc_os:
23 raise bb.parse.SkipPackage("incompatible with target %s" %
24 bb.data.getVar('TARGET_OS', d, 1))
25}
26
27# file://noinfo.patch;patch=1
28# file://ldconfig.patch;patch=1;pnum=0
29# file://arm-machine-gmon.patch;patch=1;pnum=0 \
30# \
31# file://arm-ioperm.patch;patch=1;pnum=0 \
32# file://ldd.patch;patch=1;pnum=0 \
33SRC_URI = "http://familiar.handhelds.org/source/v0.8.3/stash_libc_sources.redhat.com__20050627.tar.gz \
34 http://familiar.handhelds.org/source/v0.8.3/stash_ports_sources.redhat.com__20050627.tar.gz \
35 file://arm-audit.patch;patch=1 \
36 file://arm-audit2.patch;patch=1 \
37 file://arm-no-hwcap.patch;patch=1 \
38 file://arm-memcpy.patch;patch=1 \
39 file://arm-longlong.patch;patch=1;pnum=0 \
40 file://fhs-linux-paths.patch;patch=1 \
41 file://dl-cache-libcmp.patch;patch=1 \
42 file://headers_fix.patch;patch=1 \
43 file://5090_all_stubs-rule-fix.patch;patch=1 \
44 file://etc/ld.so.conf \
45 file://generate-supported.mk"
46
47# seems to fail on tls platforms
48SRC_URI_append_arm = " file://dyn-ldconfig-20041128.patch;patch=1"
49
50S = "${WORKDIR}/libc"
51B = "${WORKDIR}/build-${TARGET_SYS}"
52
53EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
54 --without-cvs --disable-profile --disable-debug --without-gd \
55 --enable-clocale=gnu \
56 --enable-add-ons=${GLIBC_ADDONS} \
57 --with-headers=${STAGING_INCDIR} \
58 --without-selinux \
59 ${GLIBC_EXTRA_OECONF}"
60
61EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
62
63do_munge() {
64 # Integrate ports into tree
65 mv ${WORKDIR}/ports ${S}
66
67 # http://www.handhelds.org/hypermail/oe/51/5135.html
68 # Some files were moved around between directories on
69 # 2005-12-21, which means that any attempt to check out
70 # from CVS using a datestamp older than that will be doomed.
71 #
72 # This is a workaround for that problem.
73 rm -rf ${S}/bits
74}
75
76addtask munge before do_patch after do_unpack
77
78do_configure () {
79# override this function to avoid the autoconf/automake/aclocal/autoheader
80# calls for now
81# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
82# version check and doesn't really help with anything
83 if [ -z "`which rpcgen`" ]; then
84 echo "rpcgen not found. Install glibc-devel."
85 exit 1
86 fi
87 (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
88 CPPFLAGS="" oe_runconf
89}
90
91rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
92 yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
93 rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
94
95do_compile () {
96 # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
97 unset LDFLAGS
98 base_do_compile
99 (
100 cd ${S}/sunrpc/rpcsvc
101 for r in ${rpcsvc}; do
102 h=`echo $r|sed -e's,\.x$,.h,'`
103 rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
104 done
105 )
106}
107
108require glibc-stage.inc
109
110require glibc-package.inc
diff --git a/meta/packages/glibc/glibc_2.4.bb b/meta/packages/glibc/glibc_2.4.bb
deleted file mode 100644
index ad6840e9bf..0000000000
--- a/meta/packages/glibc/glibc_2.4.bb
+++ /dev/null
@@ -1,137 +0,0 @@
1require glibc.inc
2
3PR = "r14"
4
5# the -isystem in bitbake.conf screws up glibc do_stage
6BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
7TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
8
9FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4"
10
11GLIBC_ADDONS ?= "ports,nptl,libidn"
12
13GLIBC_BROKEN_LOCALES = "sid_ET tr_TR mn_MN gez_ET bn_BD gez_ER te_IN"
14
15#
16# For now, we will skip building of a gcc package if it is a uclibc one
17# and our build is not a uclibc one, and we skip a glibc one if our build
18# is a uclibc build.
19#
20# See the note in gcc/gcc_3.4.0.oe
21#
22
23python __anonymous () {
24 import bb, re
25 uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
26 if uc_os:
27 raise bb.parse.SkipPackage("incompatible with target %s" %
28 bb.data.getVar('TARGET_OS', d, 1))
29}
30
31# file://noinfo.patch;patch=1
32# file://ldconfig.patch;patch=1;pnum=0
33# file://arm-machine-gmon.patch;patch=1;pnum=0 \
34# \
35# file://arm-ioperm.patch;patch=1;pnum=0 \
36# file://ldd.patch;patch=1;pnum=0 \
37SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-2.4.tar.bz2 \
38 ftp://ftp.gnu.org/pub/gnu/glibc/glibc-ports-2.4.tar.bz2 \
39 ftp://ftp.gnu.org/pub/gnu/glibc/glibc-libidn-2.4.tar.bz2 \
40 file://arm-memcpy.patch;patch=1 \
41 file://arm-longlong.patch;patch=1 \
42 file://fhs-linux-paths.patch;patch=1 \
43 file://dl-cache-libcmp.patch;patch=1 \
44 file://nptl-crosscompile.patch;patch=1 \
45 file://glibc-2.4-compile.patch;patch=1 \
46 file://fixup-aeabi-syscalls.patch;patch=1 \
47 file://zecke-sane-readelf.patch;patch=1 \
48 file://generic-bits_select.h \
49 file://generic-bits_types.h \
50 file://generic-bits_typesizes.h \
51 file://generic-bits_time.h \
52 file://etc/ld.so.conf \
53 file://generate-supported.mk"
54
55# Build fails on sh3 and sh4 without additional patches
56SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1"
57SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1"
58
59S = "${WORKDIR}/glibc-2.4"
60B = "${WORKDIR}/build-${TARGET_SYS}"
61
62EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
63 --without-cvs --disable-profile --disable-debug --without-gd \
64 --enable-clocale=gnu \
65 --enable-add-ons=${GLIBC_ADDONS} \
66 --with-headers=${STAGING_INCDIR} \
67 --without-selinux \
68 ${GLIBC_EXTRA_OECONF}"
69
70EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
71
72do_munge() {
73 # Integrate ports and libidn into tree
74 mv ${WORKDIR}/glibc-ports-${PV} ${S}/ports
75 mv ${WORKDIR}/glibc-libidn-${PV} ${S}/libidn
76
77 # Ports isn't really working... Fix it
78 # Some of this is rather dirty, but it seems to be the only
79 # quick way to get this cruft to compile
80 rm -rf ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
81 ln -s nptl ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
82 cp ${S}/sysdeps/unix/sysv/linux/i386/bits/wchar.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
83 cp ${S}/sysdeps/wordsize-32/bits/wordsize.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
84 cp ${WORKDIR}/generic-bits_select.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/select.h
85 cp ${WORKDIR}/generic-bits_types.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/types.h
86 cp ${WORKDIR}/generic-bits_typesizes.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
87 cp ${WORKDIR}/generic-bits_time.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/time.h
88 # Copy in generic stuff for not yet implemented headers
89 for i in ${S}/bits/*.h; do
90 F=`basename $i`
91 [ "$F" = "local_lim.h" ] && continue
92 [ "$F" = "errno.h" ] && continue
93 test -e ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/$F || test -e ${S}/ports/sysdeps/arm/bits/$F || test -e ${S}/sysdeps/unix/sysv/linux/bits/$F || test -e ${S}/sysdeps/ieee754/bits/$F || cp $i ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
94 done
95 # This is harmful; we need to get the one from nptl/sysdeps/pthreads
96 rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/libc-lock.h
97 # Obsoleted by sysdeps/arm/{fpu,eabi}/bits/fenv.h
98 rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/fenv.h
99 # Obsoleted by sysdeps/gnu/bits/utmp.h
100 rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/utmp.h
101}
102
103addtask munge before do_patch after do_unpack
104
105do_configure () {
106# override this function to avoid the autoconf/automake/aclocal/autoheader
107# calls for now
108# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
109# version check and doesn't really help with anything
110 if [ -z "`which rpcgen`" ]; then
111 echo "rpcgen not found. Install glibc-devel."
112 exit 1
113 fi
114 (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
115 CPPFLAGS="" oe_runconf
116}
117
118rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
119 yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
120 rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
121
122do_compile () {
123 # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
124 unset LDFLAGS
125 base_do_compile
126 (
127 cd ${S}/sunrpc/rpcsvc
128 for r in ${rpcsvc}; do
129 h=`echo $r|sed -e's,\.x$,.h,'`
130 rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
131 done
132 )
133}
134
135require glibc-stage.inc
136
137require glibc-package.inc
diff --git a/meta/packages/glibc/glibc_2.5.bb b/meta/packages/glibc/glibc_2.5.bb
deleted file mode 100644
index a63b678949..0000000000
--- a/meta/packages/glibc/glibc_2.5.bb
+++ /dev/null
@@ -1,148 +0,0 @@
1require glibc.inc
2
3PR = "r8"
4
5# the -isystem in bitbake.conf screws up glibc do_stage
6BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
7TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
8
9FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4"
10
11GLIBC_ADDONS ?= "ports,nptl,libidn"
12
13GLIBC_BROKEN_LOCALES = "sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN"
14
15#
16# For now, we will skip building of a gcc package if it is a uclibc one
17# and our build is not a uclibc one, and we skip a glibc one if our build
18# is a uclibc build.
19#
20# See the note in gcc/gcc_3.4.0.oe
21#
22
23python __anonymous () {
24 import bb, re
25 uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
26 if uc_os:
27 raise bb.parse.SkipPackage("incompatible with target %s" %
28 bb.data.getVar('TARGET_OS', d, 1))
29}
30
31# file://noinfo.patch;patch=1
32# file://ldconfig.patch;patch=1;pnum=0
33# file://arm-machine-gmon.patch;patch=1;pnum=0 \
34# \
35# file://arm-ioperm.patch;patch=1;pnum=0 \
36# file://ldd.patch;patch=1;pnum=0 \
37SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
38 ftp://ftp.gnu.org/pub/gnu/glibc/glibc-ports-${PV}.tar.bz2 \
39 ftp://ftp.gnu.org/pub/gnu/glibc/glibc-libidn-${PV}.tar.bz2 \
40 file://arm-memcpy.patch;patch=1 \
41 file://arm-longlong.patch;patch=1 \
42 file://fhs-linux-paths.patch;patch=1 \
43 file://dl-cache-libcmp.patch;patch=1 \
44 file://nptl-crosscompile.patch;patch=1 \
45 file://glibc-check_pf.patch;patch=1;pnum=0 \
46# file://glibc-2.4-compile.patch;patch=1 \
47# file://glibc-2.4-openat-3.patch;patch=1 \
48# file://fixup-aeabi-syscalls.patch;patch=1 \
49 file://zecke-sane-readelf.patch;patch=1 \
50 file://eabi_kernel_version_hack.patch;patch=1 \
51 file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
52 file://generic-bits_select.h \
53 file://generic-bits_types.h \
54 file://generic-bits_typesizes.h \
55 file://generic-bits_time.h \
56 file://etc/ld.so.conf \
57 file://generate-supported.mk \
58 file://glibc-arm-no-procinfo_h.patch;patch=1 \
59 file://glibc-include-fixed.patch;patch=1;pnum=0"
60
61
62# Build fails on sh3 and sh4 without additional patches
63SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1"
64SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1"
65
66SRC_URI_append_powerpc = " file://powerpc-sqrt-hack.diff;patch=1"
67
68S = "${WORKDIR}/glibc-${PV}"
69B = "${WORKDIR}/build-${TARGET_SYS}"
70
71EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
72 --without-cvs --disable-profile --disable-debug --without-gd \
73 --enable-clocale=gnu \
74 --enable-add-ons=${GLIBC_ADDONS} \
75 --with-headers=${STAGING_INCDIR} \
76 --without-selinux \
77 ${GLIBC_EXTRA_OECONF}"
78
79EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
80
81do_munge() {
82 # Integrate ports and libidn into tree
83 mv ${WORKDIR}/glibc-ports-${PV} ${S}/ports
84 mv ${WORKDIR}/glibc-libidn-${PV} ${S}/libidn
85
86 # Ports isn't really working... Fix it
87 # Some of this is rather dirty, but it seems to be the only
88 # quick way to get this cruft to compile
89 rm -rf ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
90 ln -s nptl ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
91 cp ${S}/nptl/sysdeps/pthread/bits/sigthread.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
92 cp ${S}/sysdeps/unix/sysv/linux/i386/bits/wchar.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
93 cp ${S}/sysdeps/wordsize-32/bits/wordsize.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
94 cp ${WORKDIR}/generic-bits_select.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/select.h
95 cp ${WORKDIR}/generic-bits_types.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/types.h
96 cp ${WORKDIR}/generic-bits_typesizes.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
97 cp ${WORKDIR}/generic-bits_time.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/time.h
98 # Copy in generic stuff for not yet implemented headers
99 for i in ${S}/bits/*.h; do
100 F=`basename $i`
101 [ "$F" = "local_lim.h" ] && continue
102 [ "$F" = "errno.h" ] && continue
103 test -e ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/$F || test -e ${S}/ports/sysdeps/arm/bits/$F || test -e ${S}/sysdeps/unix/sysv/linux/bits/$F || test -e ${S}/sysdeps/ieee754/bits/$F || cp $i ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
104 done
105 # This is harmful; we need to get the one from nptl/sysdeps/pthreads
106 rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/libc-lock.h
107 # Obsoleted by sysdeps/arm/{fpu,eabi}/bits/fenv.h
108 rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/fenv.h
109 # Obsoleted by sysdeps/gnu/bits/utmp.h
110 rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/utmp.h
111}
112
113addtask munge before do_patch after do_unpack
114
115
116do_configure () {
117# override this function to avoid the autoconf/automake/aclocal/autoheader
118# calls for now
119# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
120# version check and doesn't really help with anything
121 if [ -z "`which rpcgen`" ]; then
122 echo "rpcgen not found. Install glibc-devel."
123 exit 1
124 fi
125 (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
126 CPPFLAGS="" oe_runconf
127}
128
129rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
130 yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
131 rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
132
133do_compile () {
134 # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
135 unset LDFLAGS
136 base_do_compile
137 (
138 cd ${S}/sunrpc/rpcsvc
139 for r in ${rpcsvc}; do
140 h=`echo $r|sed -e's,\.x$,.h,'`
141 rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
142 done
143 )
144}
145
146require glibc-stage.inc
147
148require glibc-package.inc
diff --git a/meta/packages/glibc/glibc_2.6.1.bb b/meta/packages/glibc/glibc_2.6.1.bb
deleted file mode 100644
index f1f5b290e8..0000000000
--- a/meta/packages/glibc/glibc_2.6.1.bb
+++ /dev/null
@@ -1,156 +0,0 @@
1require glibc.inc
2PR = "r6"
3
4ARM_INSTRUCTION_SET = "arm"
5
6PACKAGES_DYNAMIC = "libc6*"
7RPROVIDES_${PN}-dev = "libc6-dev"
8
9# the -isystem in bitbake.conf screws up glibc do_stage
10BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
11TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
12
13
14FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4"
15
16GLIBC_ADDONS ?= "ports,nptl,libidn"
17
18GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN"
19
20#
21# For now, we will skip building of a gcc package if it is a uclibc one
22# and our build is not a uclibc one, and we skip a glibc one if our build
23# is a uclibc build.
24#
25# See the note in gcc/gcc_3.4.0.oe
26#
27
28python __anonymous () {
29 import bb, re
30 uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
31 if uc_os:
32 raise bb.parse.SkipPackage("incompatible with target %s" %
33 bb.data.getVar('TARGET_OS', d, 1))
34}
35
36RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
37
38SRC_URI = "\
39 ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
40 ftp://ftp.gnu.org/pub/gnu/glibc/glibc-ports-${PV}.tar.bz2 \
41 ftp://ftp.gnu.org/pub/gnu/glibc/glibc-libidn-${PV}.tar.bz2 \
42 file://arm-memcpy.patch;patch=1 \
43 file://arm-longlong.patch;patch=1 \
44 file://fhs-linux-paths.patch;patch=1 \
45 file://dl-cache-libcmp.patch;patch=1 \
46 file://ldsocache-varrun.patch;patch=1 \
47 file://nptl-crosscompile.patch;patch=1 \
48 file://glibc-2.5-local-dynamic-resolvconf.patch;patch=1;pnum=0 \
49 file://glibc-check_pf.patch;patch=1;pnum=0 \
50 file://zecke-sane-readelf.patch;patch=1 \
51 file://ldd-unbash.patch;patch=1 \
52 file://generic-bits_select.h \
53 file://generic-bits_types.h \
54 file://generic-bits_typesizes.h \
55 file://generic-bits_time.h \
56 file://etc/ld.so.conf \
57 file://generate-supported.mk \
58 file://glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch;patch=1 \
59 file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
60 file://glibc-include-fixed.patch;patch=1;pnum=0 \
61 file://no-hwcaps.patch;patch=1 \
62 file://nopageheader.patch;patch=1 \
63"
64
65# Build fails on sh3 and sh4 without additional patches
66SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1"
67SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1"
68
69# PowerPC Patches to add support for soft-float
70SRC_URI_append_powerpc = "file://powerpc-sqrt-hack.diff;patch=1"
71
72S = "${WORKDIR}/glibc-${PV}"
73B = "${WORKDIR}/build-${TARGET_SYS}"
74
75EXTRA_OECONF = "\
76 --enable-kernel=${OLDEST_KERNEL} \
77 --without-cvs --disable-profile --disable-debug --without-gd \
78 --enable-clocale=gnu \
79 --enable-add-ons=${GLIBC_ADDONS} \
80 --with-headers=${STAGING_INCDIR} \
81 --without-selinux \
82 ${GLIBC_EXTRA_OECONF} \
83"
84
85EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
86
87do_munge() {
88 # Integrate ports and libidn into tree
89 mv ${WORKDIR}/glibc-ports-${PV} ${S}/ports
90 mv ${WORKDIR}/glibc-libidn-${PV} ${S}/libidn
91
92 # Ports isn't really working... Fix it
93 # Some of this is rather dirty, but it seems to be the only
94 # quick way to get this cruft to compile
95 rm -rf ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
96 ln -s nptl ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
97 cp ${S}/nptl/sysdeps/pthread/bits/sigthread.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
98 cp ${S}/sysdeps/unix/sysv/linux/i386/bits/wchar.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
99 cp ${S}/sysdeps/wordsize-32/bits/wordsize.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
100 cp ${WORKDIR}/generic-bits_select.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/select.h
101 cp ${WORKDIR}/generic-bits_types.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/types.h
102 cp ${WORKDIR}/generic-bits_typesizes.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
103 cp ${WORKDIR}/generic-bits_time.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/time.h
104 # Copy in generic stuff for not yet implemented headers
105 for i in ${S}/bits/*.h; do
106 F=`basename $i`
107 [ "$F" = "local_lim.h" ] && continue
108 [ "$F" = "errno.h" ] && continue
109 test -e ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/$F || test -e ${S}/ports/sysdeps/arm/bits/$F || test -e ${S}/sysdeps/unix/sysv/linux/bits/$F || test -e ${S}/sysdeps/ieee754/bits/$F || cp $i ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
110 done
111 # This is harmful; we need to get the one from nptl/sysdeps/pthreads
112 rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/libc-lock.h
113 # Obsoleted by sysdeps/arm/{fpu,eabi}/bits/fenv.h
114 rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/fenv.h
115 # Obsoleted by sysdeps/gnu/bits/utmp.h
116 rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/utmp.h
117}
118
119addtask munge before do_patch after do_unpack
120
121
122do_configure () {
123# override this function to avoid the autoconf/automake/aclocal/autoheader
124# calls for now
125# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
126# version check and doesn't really help with anything
127 if [ -z "`which rpcgen`" ]; then
128 echo "rpcgen not found. Install glibc-devel."
129 exit 1
130 fi
131 (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
132 CPPFLAGS="" oe_runconf
133}
134
135rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
136 yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
137 rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
138
139do_compile () {
140 # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
141 unset LDFLAGS
142 base_do_compile
143 (
144 cd ${S}/sunrpc/rpcsvc
145 for r in ${rpcsvc}; do
146 h=`echo $r|sed -e's,\.x$,.h,'`
147 rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
148 done
149 )
150}
151
152require glibc-stage.inc
153
154require glibc-package.inc
155
156BBCLASSEXTEND = "nativesdk"
diff --git a/meta/packages/glibc/glibc_2.9.bb b/meta/packages/glibc/glibc_2.9.bb
deleted file mode 100644
index 15b625b760..0000000000
--- a/meta/packages/glibc/glibc_2.9.bb
+++ /dev/null
@@ -1,161 +0,0 @@
1require glibc.inc
2
3ARM_INSTRUCTION_SET = "arm"
4
5PACKAGES_DYNAMIC = "libc6*"
6RPROVIDES_${PN}-dev = "libc6-dev virtual-libc-dev"
7
8PR = "r2"
9
10# the -isystem in bitbake.conf screws up glibc do_stage
11BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
12TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
13
14GLIBC_ADDONS ?= "ports,nptl,libidn"
15
16GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN"
17
18FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-${PV}', '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
19
20#
21# For now, we will skip building of a gcc package if it is a uclibc one
22# and our build is not a uclibc one, and we skip a glibc one if our build
23# is a uclibc build.
24#
25# See the note in gcc/gcc_3.4.0.oe
26#
27
28python __anonymous () {
29 import bb, re
30 uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
31 if uc_os:
32 raise bb.parse.SkipPackage("incompatible with target %s" %
33 bb.data.getVar('TARGET_OS', d, 1))
34}
35
36RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
37
38# file://noinfo.patch;patch=1
39# file://ldconfig.patch;patch=1;pnum=0
40# file://arm-machine-gmon.patch;patch=1;pnum=0 \
41# \
42# file://arm-ioperm.patch;patch=1;pnum=0 \
43# file://ldd.patch;patch=1;pnum=0 \
44SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
45 ftp://ftp.gnu.org/pub/gnu/glibc/glibc-ports-${PV}.tar.bz2 \
46 ftp://ftp.gnu.org/pub/gnu/glibc/glibc-libidn-${PV}.tar.bz2 \
47 file://nscd-init.patch;patch=1;pnum=0 \
48 file://arm-memcpy.patch;patch=1 \
49 file://arm-longlong.patch;patch=1 \
50 file://fhs-linux-paths.patch;patch=1 \
51 file://dl-cache-libcmp.patch;patch=1 \
52 file://ldsocache-varrun.patch;patch=1 \
53 file://nptl-crosscompile.patch;patch=1 \
54 file://glibc-check_pf.patch;patch=1;pnum=0 \
55 file://ldd-unbash.patch;patch=1 \
56 file://glibc-arm-IO-acquire-lock-fix.diff;patch=1 \
57 file://generic-bits_select.h \
58 file://generic-bits_types.h \
59 file://generic-bits_typesizes.h \
60 file://generic-bits_time.h \
61 file://etc/ld.so.conf \
62 file://generate-supported.mk \
63 file://march-i686.patch;patch=1;pnum=0 \
64 file://tls_i486.patch;patch=1 \
65 file://rulesfix.patch;patch=1 \
66 file://glibc-2.9-use-_begin.patch;patch=1 \
67 file://glibc-2.9-enable-binutils-2.2.patch;patch=1 \
68 "
69
70# Build fails on sh3 and sh4 without additional patches
71SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1"
72SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1"
73
74#powerpc patches to add support for soft-float
75SRC_URI_append_powerpc= " file://powerpc-sqrt-hack.diff;patch=1"
76
77S = "${WORKDIR}/glibc-${PV}"
78B = "${WORKDIR}/build-${TARGET_SYS}"
79
80EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
81 --without-cvs --disable-profile --disable-debug --without-gd \
82 --enable-clocale=gnu \
83 --enable-add-ons=${GLIBC_ADDONS} \
84 --with-headers=${STAGING_INCDIR} \
85 --without-selinux \
86 ${GLIBC_EXTRA_OECONF}"
87
88EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
89
90do_munge() {
91 # Integrate ports and libidn into tree
92 mv ${WORKDIR}/glibc-ports-${PV} ${S}/ports
93 mv ${WORKDIR}/glibc-libidn-${PV} ${S}/libidn
94
95 # Ports isn't really working... Fix it
96 # Some of this is rather dirty, but it seems to be the only
97 # quick way to get this cruft to compile
98 rm -rf ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
99 ln -s nptl ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
100 cp ${S}/nptl/sysdeps/pthread/bits/sigthread.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
101 cp ${S}/sysdeps/unix/sysv/linux/i386/bits/wchar.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
102 cp ${S}/sysdeps/wordsize-32/bits/wordsize.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
103 cp ${WORKDIR}/generic-bits_select.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/select.h
104 cp ${WORKDIR}/generic-bits_types.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/types.h
105 cp ${WORKDIR}/generic-bits_typesizes.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
106 cp ${WORKDIR}/generic-bits_time.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/time.h
107 # Copy in generic stuff for not yet implemented headers
108 for i in ${S}/bits/*.h; do
109 F=`basename $i`
110 [ "$F" = "local_lim.h" ] && continue
111 [ "$F" = "errno.h" ] && continue
112 test -e ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/$F || test -e ${S}/ports/sysdeps/arm/bits/$F || test -e ${S}/sysdeps/unix/sysv/linux/bits/$F || test -e ${S}/sysdeps/ieee754/bits/$F || cp $i ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
113 done
114 # This is harmful; we need to get the one from nptl/sysdeps/pthreads
115 rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/libc-lock.h
116 # Obsoleted by sysdeps/arm/{fpu,eabi}/bits/fenv.h
117 rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/fenv.h
118 # Obsoleted by sysdeps/gnu/bits/utmp.h
119 rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/utmp.h
120}
121
122addtask munge before do_patch after do_unpack
123
124
125do_configure () {
126# /var/db was not included to FHS
127 sed -i s:/var/db/nscd:/var/run/nscd: ${S}/nscd/nscd.h
128# override this function to avoid the autoconf/automake/aclocal/autoheader
129# calls for now
130# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
131# version check and doesn't really help with anything
132 if [ -z "`which rpcgen`" ]; then
133 echo "rpcgen not found. Install glibc-devel."
134 exit 1
135 fi
136 (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
137 CPPFLAGS="" oe_runconf
138}
139
140rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
141 yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
142 rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
143
144do_compile () {
145 # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
146 unset LDFLAGS
147 base_do_compile
148 (
149 cd ${S}/sunrpc/rpcsvc
150 for r in ${rpcsvc}; do
151 h=`echo $r|sed -e's,\.x$,.h,'`
152 rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
153 done
154 )
155}
156
157require glibc-stage.inc
158
159require glibc-package.inc
160
161BBCLASSEXTEND = "nativesdk"
diff --git a/meta/packages/glibc/glibc_csl-2005q3-2.bb b/meta/packages/glibc/glibc_csl-2005q3-2.bb
deleted file mode 100644
index b1ea27dec5..0000000000
--- a/meta/packages/glibc/glibc_csl-2005q3-2.bb
+++ /dev/null
@@ -1,89 +0,0 @@
1require glibc.inc
2
3# DEFAULT_PREFERENCE = "-1"
4PV = "2.3.6+csl-arm-2005q3-2"
5PR = "r11"
6
7# the -isystem in bitbake.conf screws up glibc do_stage
8BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
9TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
10
11GLIBC_ADDONS ?= "nptl,libidn"
12
13GLIBC_BROKEN_LOCALES = "sid_ET tr_TR mn_MN gez_ET bn_BD gez_ER te_IN"
14
15#
16# For now, we will skip building of a gcc package if it is a uclibc one
17# and our build is not a uclibc one, and we skip a glibc one if our build
18# is a uclibc build.
19#
20# See the note in gcc/gcc_3.4.0.oe
21#
22
23python __anonymous () {
24 import bb, re
25 uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
26 if uc_os:
27 raise bb.parse.SkipPackage("incompatible with target %s" %
28 bb.data.getVar('TARGET_OS', d, 1))
29}
30
31SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2005q3-2-arm-none-linux-gnueabi.src.tar.bz2 \
32 file://nptl-crosscompile-2.3.6.patch;patch=1 \
33 file://etc/ld.so.conf \
34 file://generate-supported.mk \
35 "
36
37do_unpack2() {
38 cd ${WORKDIR}
39 tar -xvjf ./arm-2005q3-2-arm-none-linux-gnueabi/glibc-2005q3-2.tar.bz2
40 rm -rf ./arm-2005q3-2-arm-none-linux-gnueabi
41}
42
43addtask unpack2 after do_unpack before do_patch
44
45S = "${WORKDIR}/glibc-2.3.5pre"
46B = "${WORKDIR}/build-${TARGET_SYS}"
47
48EXTRA_OECONF = "--without-cvs --disable-profile --disable-debug --without-gd \
49 --enable-clocale=gnu \
50 --enable-add-ons \
51 --with-headers=${STAGING_INCDIR} \
52 --without-selinux \
53 ${GLIBC_EXTRA_OECONF}"
54
55EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
56
57do_configure () {
58# override this function to avoid the autoconf/automake/aclocal/autoheader
59# calls for now
60# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
61# version check and doesn't really help with anything
62 if [ -z "`which rpcgen`" ]; then
63 echo "rpcgen not found. Install glibc-devel."
64 exit 1
65 fi
66 (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
67 CPPFLAGS="" oe_runconf
68}
69
70rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
71 yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
72 rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
73
74do_compile () {
75 # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
76 unset LDFLAGS
77 base_do_compile
78 (
79 cd ${S}/sunrpc/rpcsvc
80 for r in ${rpcsvc}; do
81 h=`echo $r|sed -e's,\.x$,.h,'`
82 rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
83 done
84 )
85}
86
87require glibc-stage.inc
88
89require glibc-package.inc