diff options
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 @@ | |||
| 1 | Index: Makerules | ||
| 2 | =================================================================== | ||
| 3 | RCS file: /cvs/glibc/libc/Makerules,v | ||
| 4 | retrieving revision 1.430 | ||
| 5 | diff -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 | |||
| 9 | Index: 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 @@ | |||
| 1 | Submitted By: Joe Ciccone <jciccone@linuxfromscratch.org> | ||
| 2 | Date: 07-02-2007 | ||
| 3 | Initial Package Version: 2.6 | ||
| 4 | Origin: http://sourceware.org/ml/libc-ports/2007-05/msg00051.html | ||
| 5 | Upstream Status: Unknown | ||
| 6 | Description: Defines RTLD_SINGLE_THREAD_P for arm. | ||
| 7 | |||
| 8 | diff -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 @@ | |||
| 1 | Source: http://sourceware.org/ml/libc-alpha/2008-01/msg00017.html | ||
| 2 | |||
| 3 | I am checking this x86 assembler patch: | ||
| 4 | |||
| 5 | http://sourceware.org/ml/binutils/2008-01/msg00148.html | ||
| 6 | |||
| 7 | to check operand size. fnstsw stores 16bit into %ax. The upper | ||
| 8 | 16bit of %eax is unchanged. The new assembler will disallow | ||
| 9 | "fnstsw %eax". Here is a patch for glibc. | ||
| 10 | |||
| 11 | |||
| 12 | H.J. | ||
| 13 | |||
| 14 | --- | ||
| 15 | sysdeps/i386/fpu/ftestexcept.c | 2 +- | ||
| 16 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 17 | |||
| 18 | Index: 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 @@ | |||
| 1 | Disable the extra hwcaps fields, they cause ld.so to look in many strange paths | ||
| 2 | before searching for binaries in /lib. We don't install binaries into any other | ||
| 3 | place so this just wastes time. | ||
| 4 | |||
| 5 | RP - 20/08/2008 | ||
| 6 | |||
| 7 | Index: 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 @@ | |||
| 1 | Index: 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 @@ | |||
| 1 | diff | ||
| 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) | ||
| 35 | diff | ||
| 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 @@ | |||
| 1 | From libc-ports-return-430-listarch-libc-ports=sources dot redhat dot com at sourceware dot org Mon Aug 21 20:08:57 2006 | ||
| 2 | Return-Path: <libc-ports-return-430-listarch-libc-ports=sources dot redhat dot com at sourceware dot org> | ||
| 3 | Delivered-To: listarch-libc-ports at sources dot redhat dot com | ||
| 4 | Received: (qmail 9913 invoked by alias); 21 Aug 2006 20:08:56 -0000 | ||
| 5 | Received: (qmail 9893 invoked by uid 22791); 21 Aug 2006 20:08:53 -0000 | ||
| 6 | X-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,TW_HM,TW_SG,TW_SN | ||
| 7 | X-Spam-Check-By: sourceware.org | ||
| 8 | Received: 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 | ||
| 9 | Received: 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 | ||
| 10 | Date: Mon, 21 Aug 2006 16:08:41 -0400 | ||
| 11 | From: Daniel Jacobowitz <drow at false dot org> | ||
| 12 | To: libc-ports at sourceware dot org | ||
| 13 | Subject: ARM IPC fix | ||
| 14 | Message-ID: <20060821200841.GA29502@nevyn.them.org> | ||
| 15 | MIME-Version: 1.0 | ||
| 16 | Content-Type: text/plain; charset=us-ascii | ||
| 17 | Content-Disposition: inline | ||
| 18 | User-Agent: Mutt/1.5.11+cvs20060403 | ||
| 19 | X-IsSubscribed: yes | ||
| 20 | Mailing-List: contact libc-ports-help at sourceware dot org; run by ezmlm | ||
| 21 | Precedence: bulk | ||
| 22 | List-Subscribe: <mailto:libc-ports-subscribe at sourceware dot org> | ||
| 23 | List-Post: <mailto:libc-ports at sourceware dot org> | ||
| 24 | List-Help: <mailto:libc-ports-help at sourceware dot org>, <http://sourceware dot org/lists dot html#faqs> | ||
| 25 | Sender: libc-ports-owner at sourceware dot org | ||
| 26 | Delivered-To: mailing list libc-ports at sourceware dot org | ||
| 27 | |||
| 28 | We can't treat msgctl as a real syscall; if we don't add __IPC_64, we'll get | ||
| 29 | a mismatched type for ipc_perm. Fixed by using the Alpha implementation, | ||
| 30 | which is similar to the standard i386 implementation but doesn't use | ||
| 31 | the multiplexer syscall. | ||
| 32 | |||
| 33 | -- | ||
| 34 | Daniel Jacobowitz | ||
| 35 | CodeSourcery | ||
| 36 | |||
| 37 | 2006-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 | |||
| 45 | Index: 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 | |||
| 71 | Property changes on: sysdeps/unix/sysv/linux/arm/eabi/syscalls.list | ||
| 72 | ___________________________________________________________________ | ||
| 73 | Name: svn:mime-type | ||
| 74 | - application/octet-stream | ||
| 75 | |||
| 76 | Index: 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> | ||
| 82 | Index: 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> | ||
| 88 | Index: 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 | |||
| 6 | Index: 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 | ||
| 17 | Index: 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 @@ | |||
| 1 | Fix up ARM EABI for removed syscalls | ||
| 2 | http://sourceware.org/ml/libc-ports/2006-03/msg00029.html | ||
| 3 | |||
| 4 | Index: 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 | ||
| 140 | Index: 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 | ||
| 179 | Index: 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) | ||
| 207 | Index: 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) | ||
| 235 | Index: 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 | ||
| 258 | Index: 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); | ||
| 294 | Index: 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> | ||
| 40 | extern 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. */ | ||
| 69 | struct 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. */ | ||
| 34 | typedef unsigned char __u_char; | ||
| 35 | typedef unsigned short int __u_short; | ||
| 36 | typedef unsigned int __u_int; | ||
| 37 | typedef unsigned long int __u_long; | ||
| 38 | |||
| 39 | /* Fixed-size types, underlying types depend on word size and compiler. */ | ||
| 40 | typedef signed char __int8_t; | ||
| 41 | typedef unsigned char __uint8_t; | ||
| 42 | typedef signed short int __int16_t; | ||
| 43 | typedef unsigned short int __uint16_t; | ||
| 44 | typedef signed int __int32_t; | ||
| 45 | typedef unsigned int __uint32_t; | ||
| 46 | #if __WORDSIZE == 64 | ||
| 47 | typedef signed long int __int64_t; | ||
| 48 | typedef 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 | ||
| 56 | typedef long int __quad_t; | ||
| 57 | typedef 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 | ||
| 62 | typedef struct | ||
| 63 | { | ||
| 64 | long __val[2]; | ||
| 65 | } __quad_t; | ||
| 66 | typedef 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. */ | ||
| 187 | typedef __off64_t __loff_t; /* Type of file sizes and offsets (LFS). */ | ||
| 188 | typedef __quad_t *__qaddr_t; | ||
| 189 | typedef 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 @@ | |||
| 1 | Submitted By: Jim Gifford (patches at jg555 dot com) | ||
| 2 | Date: 2006-08-18 | ||
| 3 | Initial Package Version: 2.4 | ||
| 4 | Origin: http://sourceware.org/bugzilla/show_bug.cgi?id=2873 | ||
| 5 | Upstream Status: Applied | ||
| 6 | Description: 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 | |||
| 11 | diff -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 | } | ||
| 112 | diff -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 @@ | |||
| 1 | http://sources.redhat.com/ml/libc-ports/2006-10/msg00040.html | ||
| 2 | Avoid 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 | |||
| 9 | I previously noted | ||
| 10 | <http://sourceware.org/ml/libc-ports/2006-08/msg00023.html> that the | ||
| 11 | use of <asm/procinfo.h>, a Linux-specific kernel header, in | ||
| 12 | sysdeps/arm/eabi, is an abstraction violation, and that in principle | ||
| 13 | all the files in sysdeps/arm/eabi should use sysdep.h not | ||
| 14 | asm/procinfo.h for HWCAP_VFP. | ||
| 15 | |||
| 16 | The ARM kernel maintainers have now declared that <asm/procinfo.h> | ||
| 17 | should not be used outside the kernel at all (and in particular that | ||
| 18 | headers_install is correct in not exporting it), and that these | ||
| 19 | definitions will move to a different kernel header. This gives a | ||
| 20 | concrete reason for making the change to use glibc's internal | ||
| 21 | definitions, which this patch does, thereby allowing glibc to build | ||
| 22 | with the exported headers. | ||
| 23 | |||
| 24 | 2006-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 | |||
| 41 | Index: libc/ports/sysdeps/arm/eabi/fclrexcpt.c | ||
| 42 | =================================================================== | ||
| 43 | RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fclrexcpt.c,v | ||
| 44 | retrieving revision 1.1 | ||
| 45 | diff -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 | |||
| 63 | Index: libc/ports/sysdeps/arm/eabi/fedisblxcpt.c | ||
| 64 | =================================================================== | ||
| 65 | RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fedisblxcpt.c,v | ||
| 66 | retrieving revision 1.1 | ||
| 67 | diff -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 | |||
| 85 | Index: libc/ports/sysdeps/arm/eabi/feenablxcpt.c | ||
| 86 | =================================================================== | ||
| 87 | RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/feenablxcpt.c,v | ||
| 88 | retrieving revision 1.1 | ||
| 89 | diff -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 | |||
| 107 | Index: libc/ports/sysdeps/arm/eabi/fegetenv.c | ||
| 108 | =================================================================== | ||
| 109 | RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fegetenv.c,v | ||
| 110 | retrieving revision 1.1 | ||
| 111 | diff -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); | ||
| 129 | Index: libc/ports/sysdeps/arm/eabi/fegetexcept.c | ||
| 130 | =================================================================== | ||
| 131 | RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fegetexcept.c,v | ||
| 132 | retrieving revision 1.1 | ||
| 133 | diff -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 | |||
| 151 | Index: libc/ports/sysdeps/arm/eabi/fegetround.c | ||
| 152 | =================================================================== | ||
| 153 | RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fegetround.c,v | ||
| 154 | retrieving revision 1.1 | ||
| 155 | diff -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 | |||
| 173 | Index: libc/ports/sysdeps/arm/eabi/feholdexcpt.c | ||
| 174 | =================================================================== | ||
| 175 | RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/feholdexcpt.c,v | ||
| 176 | retrieving revision 1.1 | ||
| 177 | diff -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 | |||
| 195 | Index: libc/ports/sysdeps/arm/eabi/fesetenv.c | ||
| 196 | =================================================================== | ||
| 197 | RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fesetenv.c,v | ||
| 198 | retrieving revision 1.1 | ||
| 199 | diff -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 | |||
| 217 | Index: libc/ports/sysdeps/arm/eabi/fesetround.c | ||
| 218 | =================================================================== | ||
| 219 | RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fesetround.c,v | ||
| 220 | retrieving revision 1.1 | ||
| 221 | diff -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 | |||
| 239 | Index: libc/ports/sysdeps/arm/eabi/fraiseexcpt.c | ||
| 240 | =================================================================== | ||
| 241 | RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fraiseexcpt.c,v | ||
| 242 | retrieving revision 1.1 | ||
| 243 | diff -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, | ||
| 261 | Index: libc/ports/sysdeps/arm/eabi/fsetexcptflg.c | ||
| 262 | =================================================================== | ||
| 263 | RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fsetexcptflg.c,v | ||
| 264 | retrieving revision 1.1 | ||
| 265 | diff -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 | |||
| 283 | Index: libc/ports/sysdeps/arm/eabi/ftestexcept.c | ||
| 284 | =================================================================== | ||
| 285 | RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/ftestexcept.c,v | ||
| 286 | retrieving revision 1.1 | ||
| 287 | diff -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 | |||
| 305 | Index: libc/ports/sysdeps/arm/eabi/setfpucw.c | ||
| 306 | =================================================================== | ||
| 307 | RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/setfpucw.c,v | ||
| 308 | retrieving revision 1.1 | ||
| 309 | diff -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 @@ | |||
| 1 | From libc-ports-return-550-listarch-libc-ports=sources dot redhat dot com at sourceware dot org Tue Oct 31 17:37:21 2006 | ||
| 2 | Return-Path: <libc-ports-return-550-listarch-libc-ports=sources dot redhat dot com at sourceware dot org> | ||
| 3 | Delivered-To: listarch-libc-ports at sources dot redhat dot com | ||
| 4 | Received: (qmail 17273 invoked by alias); 31 Oct 2006 17:37:20 -0000 | ||
| 5 | Received: (qmail 17262 invoked by uid 22791); 31 Oct 2006 17:37:19 -0000 | ||
| 6 | X-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,TW_CP | ||
| 7 | X-Spam-Check-By: sourceware.org | ||
| 8 | Received: 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 | ||
| 9 | Received: from drow by nevyn.them.org with local (Exim 4.54) id 1GexXw-0007Dj-30; Tue, 31 Oct 2006 12:37:08 -0500 | ||
| 10 | Date: Tue, 31 Oct 2006 12:37:08 -0500 | ||
| 11 | From: Daniel Jacobowitz <drow at false dot org> | ||
| 12 | To: Mike Frysinger <vapier at gentoo dot org> | ||
| 13 | Cc: libc-ports at sourceware dot org, Philip Balister <philip dot balister at gmail dot com> | ||
| 14 | Subject: Re: Problem with glibc-2.5 on ARM | ||
| 15 | Message-ID: <20061031173708.GJ20468@nevyn.them.org> | ||
| 16 | References: <499146270610241149ibe030e0nd9d6b177a95b346e@mail.gmail.com> <499146270610241254u7cadf63ej2edf05cedbc5266f@mail.gmail.com> <20061024195837.GA20181@nevyn.them.org> <200610291954.27022.vapier@gentoo.org> | ||
| 17 | MIME-Version: 1.0 | ||
| 18 | Content-Type: text/plain; charset=us-ascii | ||
| 19 | Content-Disposition: inline | ||
| 20 | In-Reply-To: <200610291954 dot 27022 dot vapier at gentoo dot org> | ||
| 21 | User-Agent: Mutt/1.5.13 (2006-08-11) | ||
| 22 | X-IsSubscribed: yes | ||
| 23 | Mailing-List: contact libc-ports-help at sourceware dot org; run by ezmlm | ||
| 24 | Precedence: bulk | ||
| 25 | List-Subscribe: <mailto:libc-ports-subscribe at sourceware dot org> | ||
| 26 | List-Post: <mailto:libc-ports at sourceware dot org> | ||
| 27 | List-Help: <mailto:libc-ports-help at sourceware dot org>, <http://sourceware dot org/lists dot html#faqs> | ||
| 28 | Sender: libc-ports-owner at sourceware dot org | ||
| 29 | Delivered-To: mailing list libc-ports at sourceware dot org | ||
| 30 | |||
| 31 | On 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 | |||
| 39 | Nope. "struct rtgenmsg" would still have size 4. | ||
| 40 | |||
| 41 | Philip, are you still at all interested in this for the old ABI? | ||
| 42 | I don't have time to test this patch right now, but I think it | ||
| 43 | will work. | ||
| 44 | |||
| 45 | -- | ||
| 46 | Daniel Jacobowitz | ||
| 47 | CodeSourcery | ||
| 48 | |||
| 49 | 2006-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 | |||
| 54 | Index: sysdeps/unix/sysv/linux/arm/check_pf.c | ||
| 55 | =================================================================== | ||
| 56 | RCS file: sysdeps/unix/sysv/linux/arm/check_pf.c | ||
| 57 | diff -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 | +} | ||
| 335 | Index: sysdeps/unix/sysv/linux/arm/eabi/check_pf.c | ||
| 336 | =================================================================== | ||
| 337 | RCS file: sysdeps/unix/sysv/linux/arm/eabi/check_pf.c | ||
| 338 | diff -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 @@ | |||
| 1 | With the -nostdinc that we get --with-headers, we need to pull in GCC | ||
| 2 | 4.3's include-fixed subdir too, because that's what contains limits.h | ||
| 3 | and syslimits.h now. | ||
| 4 | |||
| 5 | |||
| 6 | for ChangeLog | ||
| 7 | 2008-01-30 Alexandre Oliva <aoliva@redhat.com> | ||
| 8 | |||
| 9 | * configure.in (SYSINCLUDES): Add GCC's include-fixed after include. | ||
| 10 | * configure: Rebuilt. | ||
| 11 | |||
| 12 | Index: 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` && | ||
| 30 | Index: 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 | -- | ||
| 50 | Alexandre Oliva http://www.lsd.ic.unicamp.br/~oliva/ | ||
| 51 | FSF Latin America Board Member http://www.fsfla.org/ | ||
| 52 | Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org} | ||
| 53 | Free 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 @@ | |||
| 1 | This patch moves ld.so.cache from /etc to /var/run. This is for devices | ||
| 2 | where /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 @@ | |||
| 1 | Create a configparms file which disabled no-z-defs. | ||
| 2 | This is required to build a working glibs for sh4, | ||
| 3 | without there will be a lot linker errors during the build. | ||
| 4 | |||
| 5 | diff -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 @@ | |||
| 1 | diff -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 }; | ||
| 14 | diff -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 @@ | |||
| 1 | Index: 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 | ||
| 119 | Index: 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 @@ | |||
| 1 | Index: 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 @@ | |||
| 1 | Index: 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 @@ | |||
| 1 | From 7c8a67320e26b8c11108bf0a3410d3aef9cf3486 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Ulrich Drepper <drepper@redhat.com> | ||
| 3 | Date: Sat, 31 Jan 2009 00:21:15 +0000 | ||
| 4 | Subject: [PATCH] * elf/Makefile (ld.so): Adjust the sed script to insert _begin in to newer linker scripts. | ||
| 5 | --- | ||
| 6 | diff --git a/elf/Makefile b/elf/Makefile | ||
| 7 | index 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 | -- | ||
| 26 | 1.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 @@ | |||
| 1 | Arm 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 @@ | |||
| 1 | http://sourceware.org/ml/libc-ports/2008-04/msg00005.html | ||
| 2 | |||
| 3 | |||
| 4 | Index: 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 @@ | |||
| 1 | 2007-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 | |||
| 8 | Index: 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 | ||
| 23 | Index: 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 @@ | |||
| 1 | Index: 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 @@ | |||
| 1 | Index: 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 @@ | |||
| 1 | 2005-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 | |||
| 7 | Index: 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 | |||
| 41 | Index: 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 @@ | |||
| 1 | Index: ports/sysdeps/arm/dl-machine.h | ||
| 2 | =================================================================== | ||
| 3 | RCS file: /cvs/glibc/ports/sysdeps/arm/dl-machine.h,v | ||
| 4 | retrieving revision 1.53 | ||
| 5 | diff -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 @@ | |||
| 1 | Without this, do_compile fails, unable to find linux/errno.h | ||
| 2 | |||
| 3 | RP - 27/11/2007 | ||
| 4 | |||
| 5 | Index: 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 @@ | |||
| 1 | This patch moves ld.so.cache from /etc to /var/run. This is for devices | ||
| 2 | where /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 @@ | |||
| 1 | require glibc_${PV}.bb | ||
| 2 | require 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 @@ | |||
| 1 | require glibc_${PV}.bb | ||
| 2 | require 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 @@ | |||
| 1 | require glibc_${PV}.bb | ||
| 2 | require glibc-initial.inc | ||
| 3 | |||
| 4 | do_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 @@ | |||
| 1 | require glibc_${PV}.bb | ||
| 2 | require glibc-initial.inc | ||
| 3 | |||
| 4 | do_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 @@ | |||
| 1 | require glibc_${PV}.bb | ||
| 2 | require 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 @@ | |||
| 1 | require glibc.inc | ||
| 2 | |||
| 3 | FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs-2.3.5" | ||
| 4 | SRCDATE = "20050627" | ||
| 5 | PR = "r6" | ||
| 6 | |||
| 7 | GLIBC_ADDONS ?= "ports,linuxthreads" | ||
| 8 | |||
| 9 | GLIBC_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 | |||
| 19 | python __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 \ | ||
| 33 | SRC_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 | ||
| 48 | SRC_URI_append_arm = " file://dyn-ldconfig-20041128.patch;patch=1" | ||
| 49 | |||
| 50 | S = "${WORKDIR}/libc" | ||
| 51 | B = "${WORKDIR}/build-${TARGET_SYS}" | ||
| 52 | |||
| 53 | EXTRA_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 | |||
| 61 | EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}" | ||
| 62 | |||
| 63 | do_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 | |||
| 76 | addtask munge before do_patch after do_unpack | ||
| 77 | |||
| 78 | do_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 | |||
| 91 | rpcsvc = "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 | |||
| 95 | do_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 | |||
| 108 | require glibc-stage.inc | ||
| 109 | |||
| 110 | require 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 @@ | |||
| 1 | require glibc.inc | ||
| 2 | |||
| 3 | PR = "r14" | ||
| 4 | |||
| 5 | # the -isystem in bitbake.conf screws up glibc do_stage | ||
| 6 | BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" | ||
| 7 | TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}" | ||
| 8 | |||
| 9 | FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4" | ||
| 10 | |||
| 11 | GLIBC_ADDONS ?= "ports,nptl,libidn" | ||
| 12 | |||
| 13 | GLIBC_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 | |||
| 23 | python __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 \ | ||
| 37 | SRC_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 | ||
| 56 | SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1" | ||
| 57 | SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1" | ||
| 58 | |||
| 59 | S = "${WORKDIR}/glibc-2.4" | ||
| 60 | B = "${WORKDIR}/build-${TARGET_SYS}" | ||
| 61 | |||
| 62 | EXTRA_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 | |||
| 70 | EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}" | ||
| 71 | |||
| 72 | do_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 | |||
| 103 | addtask munge before do_patch after do_unpack | ||
| 104 | |||
| 105 | do_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 | |||
| 118 | rpcsvc = "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 | |||
| 122 | do_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 | |||
| 135 | require glibc-stage.inc | ||
| 136 | |||
| 137 | require 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 @@ | |||
| 1 | require glibc.inc | ||
| 2 | |||
| 3 | PR = "r8" | ||
| 4 | |||
| 5 | # the -isystem in bitbake.conf screws up glibc do_stage | ||
| 6 | BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" | ||
| 7 | TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}" | ||
| 8 | |||
| 9 | FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4" | ||
| 10 | |||
| 11 | GLIBC_ADDONS ?= "ports,nptl,libidn" | ||
| 12 | |||
| 13 | GLIBC_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 | |||
| 23 | python __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 \ | ||
| 37 | SRC_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 | ||
| 63 | SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1" | ||
| 64 | SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1" | ||
| 65 | |||
| 66 | SRC_URI_append_powerpc = " file://powerpc-sqrt-hack.diff;patch=1" | ||
| 67 | |||
| 68 | S = "${WORKDIR}/glibc-${PV}" | ||
| 69 | B = "${WORKDIR}/build-${TARGET_SYS}" | ||
| 70 | |||
| 71 | EXTRA_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 | |||
| 79 | EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}" | ||
| 80 | |||
| 81 | do_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 | |||
| 113 | addtask munge before do_patch after do_unpack | ||
| 114 | |||
| 115 | |||
| 116 | do_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 | |||
| 129 | rpcsvc = "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 | |||
| 133 | do_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 | |||
| 146 | require glibc-stage.inc | ||
| 147 | |||
| 148 | require 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 @@ | |||
| 1 | require glibc.inc | ||
| 2 | PR = "r6" | ||
| 3 | |||
| 4 | ARM_INSTRUCTION_SET = "arm" | ||
| 5 | |||
| 6 | PACKAGES_DYNAMIC = "libc6*" | ||
| 7 | RPROVIDES_${PN}-dev = "libc6-dev" | ||
| 8 | |||
| 9 | # the -isystem in bitbake.conf screws up glibc do_stage | ||
| 10 | BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" | ||
| 11 | TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}" | ||
| 12 | |||
| 13 | |||
| 14 | FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4" | ||
| 15 | |||
| 16 | GLIBC_ADDONS ?= "ports,nptl,libidn" | ||
| 17 | |||
| 18 | GLIBC_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 | |||
| 28 | python __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 | |||
| 36 | RDEPENDS_${PN}-dev = "linux-libc-headers-dev" | ||
| 37 | |||
| 38 | SRC_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 | ||
| 66 | SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1" | ||
| 67 | SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1" | ||
| 68 | |||
| 69 | # PowerPC Patches to add support for soft-float | ||
| 70 | SRC_URI_append_powerpc = "file://powerpc-sqrt-hack.diff;patch=1" | ||
| 71 | |||
| 72 | S = "${WORKDIR}/glibc-${PV}" | ||
| 73 | B = "${WORKDIR}/build-${TARGET_SYS}" | ||
| 74 | |||
| 75 | EXTRA_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 | |||
| 85 | EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}" | ||
| 86 | |||
| 87 | do_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 | |||
| 119 | addtask munge before do_patch after do_unpack | ||
| 120 | |||
| 121 | |||
| 122 | do_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 | |||
| 135 | rpcsvc = "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 | |||
| 139 | do_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 | |||
| 152 | require glibc-stage.inc | ||
| 153 | |||
| 154 | require glibc-package.inc | ||
| 155 | |||
| 156 | BBCLASSEXTEND = "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 @@ | |||
| 1 | require glibc.inc | ||
| 2 | |||
| 3 | ARM_INSTRUCTION_SET = "arm" | ||
| 4 | |||
| 5 | PACKAGES_DYNAMIC = "libc6*" | ||
| 6 | RPROVIDES_${PN}-dev = "libc6-dev virtual-libc-dev" | ||
| 7 | |||
| 8 | PR = "r2" | ||
| 9 | |||
| 10 | # the -isystem in bitbake.conf screws up glibc do_stage | ||
| 11 | BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" | ||
| 12 | TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}" | ||
| 13 | |||
| 14 | GLIBC_ADDONS ?= "ports,nptl,libidn" | ||
| 15 | |||
| 16 | GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN" | ||
| 17 | |||
| 18 | FILESPATH = "${@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 | |||
| 28 | python __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 | |||
| 36 | RDEPENDS_${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 \ | ||
| 44 | SRC_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 | ||
| 71 | SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1" | ||
| 72 | SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1" | ||
| 73 | |||
| 74 | #powerpc patches to add support for soft-float | ||
| 75 | SRC_URI_append_powerpc= " file://powerpc-sqrt-hack.diff;patch=1" | ||
| 76 | |||
| 77 | S = "${WORKDIR}/glibc-${PV}" | ||
| 78 | B = "${WORKDIR}/build-${TARGET_SYS}" | ||
| 79 | |||
| 80 | EXTRA_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 | |||
| 88 | EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}" | ||
| 89 | |||
| 90 | do_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 | |||
| 122 | addtask munge before do_patch after do_unpack | ||
| 123 | |||
| 124 | |||
| 125 | do_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 | |||
| 140 | rpcsvc = "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 | |||
| 144 | do_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 | |||
| 157 | require glibc-stage.inc | ||
| 158 | |||
| 159 | require glibc-package.inc | ||
| 160 | |||
| 161 | BBCLASSEXTEND = "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 @@ | |||
| 1 | require glibc.inc | ||
| 2 | |||
| 3 | # DEFAULT_PREFERENCE = "-1" | ||
| 4 | PV = "2.3.6+csl-arm-2005q3-2" | ||
| 5 | PR = "r11" | ||
| 6 | |||
| 7 | # the -isystem in bitbake.conf screws up glibc do_stage | ||
| 8 | BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" | ||
| 9 | TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}" | ||
| 10 | |||
| 11 | GLIBC_ADDONS ?= "nptl,libidn" | ||
| 12 | |||
| 13 | GLIBC_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 | |||
| 23 | python __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 | SRC_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 | |||
| 37 | do_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 | |||
| 43 | addtask unpack2 after do_unpack before do_patch | ||
| 44 | |||
| 45 | S = "${WORKDIR}/glibc-2.3.5pre" | ||
| 46 | B = "${WORKDIR}/build-${TARGET_SYS}" | ||
| 47 | |||
| 48 | EXTRA_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 | |||
| 55 | EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}" | ||
| 56 | |||
| 57 | do_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 | |||
| 70 | rpcsvc = "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 | |||
| 74 | do_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 | |||
| 87 | require glibc-stage.inc | ||
| 88 | |||
| 89 | require glibc-package.inc | ||
