glibc: remove all old recipes

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
This commit is contained in:
Nitin A Kamble
2010-08-19 16:18:28 -07:00
committed by Richard Purdie
parent 7e8f14d2d8
commit 735210556d
68 changed files with 0 additions and 6111 deletions

View File

@@ -1,39 +0,0 @@
Index: Makerules
===================================================================
RCS file: /cvs/glibc/libc/Makerules,v
retrieving revision 1.430
diff -u -r1.430 Makerules
--- libc/Makerules 5 Mar 2005 19:24:32 -0000 1.430
+++ libc/Makerules 22 Apr 2005 18:31:27 -0000
@@ -1390,15 +1390,26 @@
$(addprefix $(objpfx),$(extra-objs))
$(objpfx)stubs: $(objs-for-stubs)
ifneq (,$(strip $(objs-for-stubs)))
- $(OBJDUMP) -h $^ | \
- $(AWK) '/\.gnu\.glibc-stub\./ { \
- sub(/\.gnu\.glibc-stub\./, "", $$2); \
- stubs[$$2] = 1; } \
- END { for (s in stubs) print "#define __stub_" s }' > $@T
+ $(stub-obj-list)
+ cat $@L | xargs \
+ $(OBJDUMP) -h | \
+ $(AWK) '/\.gnu\.glibc-stub\./ { \
+ sub(/\.gnu\.glibc-stub\./, "", $$2); \
+ stubs[$$2] = 1; } \
+ END { for (s in stubs) print "#define __stub_" s }' \
+ > $@T
+ -rm -f $@L
mv -f $@T $@
else
> $@
endif
+
+define stub-obj-list
+-@rm -f $@L
+-@echo "Generating stub obj list..."
+$(foreach file,$^,
+@echo >> $@L '$(file)')
+endef
# This information is not used for making distributions any more.
# But it's used by MakeTAGS for making TAGS files and the .pot files.

View File

@@ -1,41 +0,0 @@
# All lines beginning with `# DP:' are a description of the patch.
# DP: Description: allow dynamic long-running processes to
# DP: re-read a dynamically updated resolv.conf on the fly
# DP: Dpatch author: Adam Conrad <adconrad@ubuntu.com>
# DP: Patch author: Thorsten Kukuk <kukuk@suse.de>
# DP: Upstream status: Ubuntu-Specific
# DP: Date: 2006-01-13 08:14:21 UTC
Index: resolv/res_libc.c
===================================================================
--- resolv/res_libc.c.orig
+++ resolv/res_libc.c
@@ -22,7 +22,7 @@
#include <arpa/nameser.h>
#include <resolv.h>
#include <bits/libc-lock.h>
-
+#include <sys/stat.h>
/* The following bit is copied from res_data.c (where it is #ifdef'ed
out) since res_init() should go into libc.so but the rest of that
@@ -94,8 +94,17 @@
int
__res_maybe_init (res_state resp, int preinit)
{
- if (resp->options & RES_INIT) {
- if (__res_initstamp != resp->_u._ext.initstamp) {
+ static time_t last_mtime;
+ struct stat statbuf;
+ int ret;
+
+
+ if (resp->options & RES_INIT) {
+ ret = stat (_PATH_RESCONF, &statbuf);
+ if (__res_initstamp != resp->_u._ext.initstamp
+ || (ret == 0) && (last_mtime != statbuf.st_mtime))
+ {
+ last_mtime = statbuf.st_mtime;
if (resp->nscount > 0) {
__res_iclose (resp, true);
return __res_vinit (resp, 1);

View File

@@ -1,20 +0,0 @@
Submitted By: Joe Ciccone <jciccone@linuxfromscratch.org>
Date: 07-02-2007
Initial Package Version: 2.6
Origin: http://sourceware.org/ml/libc-ports/2007-05/msg00051.html
Upstream Status: Unknown
Description: Defines RTLD_SINGLE_THREAD_P for arm.
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
--- glibc-2.6.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h 2007-07-02 17:39:22.000000000 -0400
+++ glibc-2.6/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h 2007-07-02 17:39:36.000000000 -0400
@@ -126,3 +126,9 @@
# define NO_CANCELLATION 1
#endif
+
+#ifndef __ASSEMBLER__
+# define RTLD_SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+#endif

View File

@@ -1,30 +0,0 @@
Source: http://sourceware.org/ml/libc-alpha/2008-01/msg00017.html
I am checking this x86 assembler patch:
http://sourceware.org/ml/binutils/2008-01/msg00148.html
to check operand size. fnstsw stores 16bit into %ax. The upper
16bit of %eax is unchanged. The new assembler will disallow
"fnstsw %eax". Here is a patch for glibc.
H.J.
---
sysdeps/i386/fpu/ftestexcept.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c
===================================================================
--- glibc-2.6.1.orig/sysdeps/i386/fpu/ftestexcept.c 2008-07-19 11:00:45.000000000 -0700
+++ glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c 2008-07-19 11:01:25.000000000 -0700
@@ -26,7 +26,7 @@
int
fetestexcept (int excepts)
{
- int temp;
+ short temp;
int xtemp = 0;
/* Get current exceptions. */

View File

@@ -1,52 +0,0 @@
Disable the extra hwcaps fields, they cause ld.so to look in many strange paths
before searching for binaries in /lib. We don't install binaries into any other
place so this just wastes time.
RP - 20/08/2008
Index: glibc-2.6.1/elf/dl-sysdep.c
===================================================================
--- glibc-2.6.1.orig/elf/dl-sysdep.c 2008-08-15 15:54:49.000000000 +0100
+++ glibc-2.6.1/elf/dl-sysdep.c 2008-08-15 17:45:28.000000000 +0100
@@ -346,7 +346,7 @@
{
/* Determine how many important bits are set. */
uint64_t masked = GLRO(dl_hwcap) & GLRO(dl_hwcap_mask);
- size_t cnt = platform != NULL;
+ size_t cnt = 0;
size_t n, m;
size_t total;
struct r_strlenpair *temp;
@@ -354,11 +354,6 @@
struct r_strlenpair *rp;
char *cp;
- /* Count the number of bits set in the masked value. */
- for (n = 0; (~((1ULL << n) - 1) & masked) != 0; ++n)
- if ((masked & (1ULL << n)) != 0)
- ++cnt;
-
#if (defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO) && defined SHARED
/* The system-supplied DSO can contain a note of type 2, vendor "GNU".
This gives us a list of names to treat as fake hwcap bits. */
@@ -434,20 +429,6 @@
}
}
#endif
- for (n = 0; masked != 0; ++n)
- if ((masked & (1ULL << n)) != 0)
- {
- temp[m].str = _dl_hwcap_string (n);
- temp[m].len = strlen (temp[m].str);
- masked ^= 1ULL << n;
- ++m;
- }
- if (platform != NULL)
- {
- temp[m].str = platform;
- temp[m].len = platform_len;
- ++m;
- }
temp[m].str = "tls";
temp[m].len = 3;

View File

@@ -1,12 +0,0 @@
Index: glibc-2.6.1/ports/sysdeps/unix/sysv/linux/arm/ioperm.c
===================================================================
--- glibc-2.6.1.orig/ports/sysdeps/unix/sysv/linux/arm/ioperm.c 2005-06-10 11:12:09.000000000 +0000
+++ glibc-2.6.1/ports/sysdeps/unix/sysv/linux/arm/ioperm.c 2009-06-16 21:16:16.007016198 +0000
@@ -45,7 +45,6 @@
#include <sys/mman.h>
#include <linux/version.h>
-#include <asm/page.h>
#include <sys/sysctl.h>
#define PATH_ARM_SYSTYPE "/etc/arm_systype"

View File

@@ -1,175 +0,0 @@
diff
--- glibc-2.3.6/nptl/sysdeps/pthread/configure.in.orig 2006-09-14 11:12:16.000000000 +0100
+++ glibc-2.3.6/nptl/sysdeps/pthread/configure.in 2006-09-14 11:12:16.000000000 +0100
@@ -21,29 +21,4 @@
dnl Iff <unwind.h> is available, make sure it is the right one and it
dnl contains struct _Unwind_Exception.
-AC_CACHE_CHECK(dnl
-for forced unwind support, libc_cv_forced_unwind, [dnl
-AC_TRY_LINK([#include <unwind.h>], [
-struct _Unwind_Exception exc;
-struct _Unwind_Context *context;
-_Unwind_GetCFA (context)],
-libc_cv_forced_unwind=yes, libc_cv_forced_unwind=no)])
-if test $libc_cv_forced_unwind = yes; then
- AC_DEFINE(HAVE_FORCED_UNWIND)
-dnl Check for C cleanup handling.
- old_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror -fexceptions"
- AC_CACHE_CHECK([for C cleanup handling], libc_cv_c_cleanup, [dnl
- AC_TRY_LINK([
-#include <stdio.h>
-void cl (void *a) { }], [
- int a __attribute__ ((cleanup (cl)));
- puts ("test")],
-libc_cv_c_cleanup=yes, libc_cv_c_cleanup=no)])
- CFLAGS="$old_CFLAGS"
- if test $libc_cv_c_cleanup = no; then
- AC_MSG_ERROR([the compiler must support C cleanup handling])
- fi
-else
- AC_MSG_ERROR(forced unwind support is required)
-fi
+AC_DEFINE(HAVE_FORCED_UNWIND)
diff
--- glibc-2.3.6/nptl/sysdeps/pthread/configure.orig 2006-09-14 11:11:12.000000000 +0100
+++ glibc-2.3.6/nptl/sysdeps/pthread/configure 2006-09-14 11:11:12.000000000 +0100
@@ -24,136 +24,7 @@
fi
-echo "$as_me:$LINENO: checking for forced unwind support" >&5
-echo $ECHO_N "checking for forced unwind support... $ECHO_C" >&6
-if test "${libc_cv_forced_unwind+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <unwind.h>
-int
-main ()
-{
-
-struct _Unwind_Exception exc;
-struct _Unwind_Context *context;
-_Unwind_GetCFA (context)
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- libc_cv_forced_unwind=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-libc_cv_forced_unwind=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $libc_cv_forced_unwind" >&5
-echo "${ECHO_T}$libc_cv_forced_unwind" >&6
-if test $libc_cv_forced_unwind = yes; then
- cat >>confdefs.h <<\_ACEOF
+cat >>confdefs.h <<\_ACEOF
#define HAVE_FORCED_UNWIND 1
_ACEOF
- old_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror -fexceptions"
- echo "$as_me:$LINENO: checking for C cleanup handling" >&5
-echo $ECHO_N "checking for C cleanup handling... $ECHO_C" >&6
-if test "${libc_cv_c_cleanup+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-#include <stdio.h>
-void cl (void *a) { }
-int
-main ()
-{
-
- int a __attribute__ ((cleanup (cl)));
- puts ("test")
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- libc_cv_c_cleanup=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-libc_cv_c_cleanup=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $libc_cv_c_cleanup" >&5
-echo "${ECHO_T}$libc_cv_c_cleanup" >&6
- CFLAGS="$old_CFLAGS"
- if test $libc_cv_c_cleanup = no; then
- { { echo "$as_me:$LINENO: error: the compiler must support C cleanup handling" >&5
-echo "$as_me: error: the compiler must support C cleanup handling" >&2;}
- { (exit 1); exit 1; }; }
- fi
-else
- { { echo "$as_me:$LINENO: error: forced unwind support is required" >&5
-echo "$as_me: error: forced unwind support is required" >&2;}
- { (exit 1); exit 1; }; }
-fi

View File

@@ -1,58 +0,0 @@
--- glibc-2.4/stdlib/longlong.h.ark 2006-03-11 22:49:27.000000000 +0100
+++ glibc-2.4/stdlib/longlong.h 2006-03-11 22:55:12.000000000 +0100
@@ -206,6 +206,14 @@
"rI" ((USItype) (bh)), \
"r" ((USItype) (al)), \
"rI" ((USItype) (bl)) __CLOBBER_CC)
+/* v3m and all higher arches have long multiply support. */
+#if !defined(__ARM_ARCH_2__) && !defined(__ARM_ARCH_3__)
+#define umul_ppmm(xh, xl, a, b) \
+ __asm__ ("umull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
+#define UMUL_TIME 5
+#define smul_ppmm(xh, xl, a, b) \
+ __asm__ ("smull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
+#else
#define umul_ppmm(xh, xl, a, b) \
{register USItype __t0, __t1, __t2; \
__asm__ ("%@ Inlined umul_ppmm\n" \
@@ -227,7 +235,13 @@
: "r" ((USItype) (a)), \
"r" ((USItype) (b)) __CLOBBER_CC );}
#define UMUL_TIME 20
+#endif
#define UDIV_TIME 100
+#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
+#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X))
+#define COUNT_LEADING_ZEROS_0 32
+#endif
+
#endif /* __arm__ */
#if defined (__hppa) && W_TYPE_SIZE == 32
--- glibc-2.4/ports/sysdeps/arm/mp_clz_tab.c.ark 2006-03-11 22:56:43.000000000 +0100
+++ glibc-2.4/ports/sysdeps/arm/mp_clz_tab.c 2006-03-11 22:58:19.000000000 +0100
@@ -0,0 +1,24 @@
+/* __clz_tab -- support for longlong.h
+ Copyright (C) 2004 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
+/* Nothing required. */
+#else
+#include <stdlib/mp_clz_tab.c>
+#endif

View File

@@ -1,758 +0,0 @@
--- /dev/null 2004-02-02 20:32:13.000000000 +0000
+++ sysdeps/arm/memmove.S 2004-03-20 18:37:23.000000000 +0000
@@ -0,0 +1,251 @@
+/*
+ * Optimized memmove implementation for ARM processors
+ *
+ * Author: Nicolas Pitre
+ * Created: Dec 23, 2003
+ * Copyright: (C) MontaVista Software, Inc.
+ *
+ * This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ */
+
+#include <sysdep.h>
+
+
+/*
+ * Endian independent macros for shifting bytes within registers.
+ */
+#ifndef __ARMEB__
+#define pull lsr
+#define push lsl
+#else
+#define pull lsl
+#define push lsr
+#endif
+
+/*
+ * Enable data preload for architectures that support it (ARMv5 and above)
+ */
+#if defined(__ARM_ARCH_5__) || \
+ defined(__ARM_ARCH_5T__) || \
+ defined(__ARM_ARCH_5TE__)
+#define PLD(code...) code
+#else
+#define PLD(code...)
+#endif
+
+
+/* char * memmove (char *dst, const char *src) */
+ENTRY(memmove)
+ subs ip, r0, r1
+ cmphi r2, ip
+ bls memcpy(PLT)
+
+ stmfd sp!, {r0, r4, lr}
+ add r1, r1, r2
+ add r0, r0, r2
+ subs r2, r2, #4
+ blt 25f
+ ands ip, r0, #3
+ PLD( pld [r1, #-4] )
+ bne 26f
+ ands ip, r1, #3
+ bne 27f
+
+19: subs r2, r2, #4
+ blt 24f
+ subs r2, r2, #8
+ blt 23f
+ subs r2, r2, #16
+ blt 22f
+
+ PLD( pld [r1, #-32] )
+ PLD( subs r2, r2, #96 )
+ stmfd sp!, {r5 - r8}
+ PLD( blt 21f )
+
+ PLD( @ cache alignment )
+ PLD( ands ip, r1, #31 )
+ PLD( pld [r1, #-64] )
+ PLD( beq 20f )
+ PLD( cmp r2, ip )
+ PLD( pld [r1, #-96] )
+ PLD( blt 20f )
+ PLD( cmp ip, #16 )
+ PLD( sub r2, r2, ip )
+ PLD( ldmgedb r1!, {r3 - r6} )
+ PLD( stmgedb r0!, {r3 - r6} )
+ PLD( beq 20f )
+ PLD( and ip, ip, #15 )
+ PLD( cmp ip, #8 )
+ PLD( ldr r3, [r1, #-4]! )
+ PLD( ldrge r4, [r1, #-4]! )
+ PLD( ldrgt r5, [r1, #-4]! )
+ PLD( str r3, [r0, #-4]! )
+ PLD( strge r4, [r0, #-4]! )
+ PLD( strgt r5, [r0, #-4]! )
+
+20: PLD( pld [r1, #-96] )
+ PLD( pld [r1, #-128] )
+21: ldmdb r1!, {r3, r4, ip, lr}
+ subs r2, r2, #32
+ stmdb r0!, {r3, r4, ip, lr}
+ ldmdb r1!, {r3, r4, ip, lr}
+ stmgedb r0!, {r3, r4, ip, lr}
+ ldmgedb r1!, {r3, r4, ip, lr}
+ stmgedb r0!, {r3, r4, ip, lr}
+ ldmgedb r1!, {r3, r4, ip, lr}
+ subges r2, r2, #32
+ stmdb r0!, {r3, r4, ip, lr}
+ bge 20b
+ PLD( cmn r2, #96 )
+ PLD( bge 21b )
+ PLD( add r2, r2, #96 )
+ tst r2, #31
+ ldmfd sp!, {r5 - r8}
+ ldmeqfd sp!, {r0, r4, pc}
+
+ tst r2, #16
+22: ldmnedb r1!, {r3, r4, ip, lr}
+ stmnedb r0!, {r3, r4, ip, lr}
+
+ tst r2, #8
+23: ldmnedb r1!, {r3, r4}
+ stmnedb r0!, {r3, r4}
+
+ tst r2, #4
+24: ldrne r3, [r1, #-4]!
+ strne r3, [r0, #-4]!
+
+25: ands r2, r2, #3
+ ldmeqfd sp!, {r0, r4, pc}
+
+ cmp r2, #2
+ ldrb r3, [r1, #-1]
+ ldrgeb r4, [r1, #-2]
+ ldrgtb ip, [r1, #-3]
+ strb r3, [r0, #-1]
+ strgeb r4, [r0, #-2]
+ strgtb ip, [r0, #-3]
+ ldmfd sp!, {r0, r4, pc}
+
+26: cmp ip, #2
+ ldrb r3, [r1, #-1]!
+ ldrgeb r4, [r1, #-1]!
+ ldrgtb lr, [r1, #-1]!
+ strb r3, [r0, #-1]!
+ strgeb r4, [r0, #-1]!
+ strgtb lr, [r0, #-1]!
+ subs r2, r2, ip
+ blt 25b
+ ands ip, r1, #3
+ beq 19b
+
+27: bic r1, r1, #3
+ cmp ip, #2
+ ldr r3, [r1]
+ beq 35f
+ blt 36f
+
+
+ .macro backward_copy_shift push pull
+
+ cmp r2, #12
+ PLD( pld [r1, #-4] )
+ blt 33f
+ subs r2, r2, #28
+ stmfd sp!, {r5 - r9}
+ blt 31f
+
+ PLD( subs r2, r2, #96 )
+ PLD( pld [r1, #-32] )
+ PLD( blt 30f )
+ PLD( pld [r1, #-64] )
+
+ PLD( @ cache alignment )
+ PLD( ands ip, r1, #31 )
+ PLD( pld [r1, #-96] )
+ PLD( beq 29f )
+ PLD( cmp r2, ip )
+ PLD( pld [r1, #-128] )
+ PLD( blt 29f )
+ PLD( sub r2, r2, ip )
+28: PLD( mov r4, r3, push #\push )
+ PLD( ldr r3, [r1, #-4]! )
+ PLD( subs ip, ip, #4 )
+ PLD( orr r4, r4, r3, pull #\pull )
+ PLD( str r4, [r0, #-4]! )
+ PLD( bgt 28b )
+
+29: PLD( pld [r1, #-128] )
+30: mov lr, r3, push #\push
+ ldmdb r1!, {r3 - r9, ip}
+ subs r2, r2, #32
+ orr lr, lr, ip, pull #\pull
+ mov ip, ip, push #\push
+ orr ip, ip, r9, pull #\pull
+ mov r9, r9, push #\push
+ orr r9, r9, r8, pull #\pull
+ mov r8, r8, push #\push
+ orr r8, r8, r7, pull #\pull
+ mov r7, r7, push #\push
+ orr r7, r7, r6, pull #\pull
+ mov r6, r6, push #\push
+ orr r6, r6, r5, pull #\pull
+ mov r5, r5, push #\push
+ orr r5, r5, r4, pull #\pull
+ mov r4, r4, push #\push
+ orr r4, r4, r3, pull #\pull
+ stmdb r0!, {r4 - r9, ip, lr}
+ bge 29b
+ PLD( cmn r2, #96 )
+ PLD( bge 30b )
+ PLD( add r2, r2, #96 )
+ cmn r2, #16
+ blt 32f
+31: mov r7, r3, push #\push
+ ldmdb r1!, {r3 - r6}
+ sub r2, r2, #16
+ orr r7, r7, r6, pull #\pull
+ mov r6, r6, push #\push
+ orr r6, r6, r5, pull #\pull
+ mov r5, r5, push #\push
+ orr r5, r5, r4, pull #\pull
+ mov r4, r4, push #\push
+ orr r4, r4, r3, pull #\pull
+ stmdb r0!, {r4 - r7}
+32: adds r2, r2, #28
+ ldmfd sp!, {r5 - r9}
+ blt 34f
+33: mov r4, r3, push #\push
+ ldr r3, [r1, #-4]!
+ subs r2, r2, #4
+ orr r4, r4, r3, pull #\pull
+ str r4, [r0, #-4]!
+ bge 33b
+34:
+ .endm
+
+
+ backward_copy_shift push=8 pull=24
+ add r1, r1, #3
+ b 25b
+
+35: backward_copy_shift push=16 pull=16
+ add r1, r1, #2
+ b 25b
+
+36: backward_copy_shift push=24 pull=8
+ add r1, r1, #1
+ b 25b
+
+ .size memmove, . - memmove
+END(memmove)
+libc_hidden_builtin_def (memmove)
--- /dev/null 2004-02-02 20:32:13.000000000 +0000
+++ sysdeps/arm/bcopy.S 2004-03-20 18:37:48.000000000 +0000
@@ -0,0 +1,255 @@
+/*
+ * Optimized memmove implementation for ARM processors
+ *
+ * Author: Nicolas Pitre
+ * Created: Dec 23, 2003
+ * Copyright: (C) MontaVista Software, Inc.
+ *
+ * This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ */
+
+#include <sysdep.h>
+
+
+/*
+ * Endian independent macros for shifting bytes within registers.
+ */
+#ifndef __ARMEB__
+#define pull lsr
+#define push lsl
+#else
+#define pull lsl
+#define push lsr
+#endif
+
+/*
+ * Enable data preload for architectures that support it (ARMv5 and above)
+ */
+#if defined(__ARM_ARCH_5__) || \
+ defined(__ARM_ARCH_5T__) || \
+ defined(__ARM_ARCH_5TE__)
+#define PLD(code...) code
+#else
+#define PLD(code...)
+#endif
+
+dst .req r1
+src .req r0
+
+/* void *bcopy (const char *src, char *dst, size_t size) */
+ENTRY(bcopy)
+ subs ip, dst, src
+ cmphi r2, ip
+ movls r3, r0
+ movls r0, r1
+ movls r1, r3
+ bls memcpy(PLT)
+
+ stmfd sp!, {r4, lr}
+ add src, src, r2
+ add dst, dst, r2
+ subs r2, r2, #4
+ blt 25f
+ ands ip, dst, #3
+ PLD( pld [src, #-4] )
+ bne 26f
+ ands ip, src, #3
+ bne 27f
+
+19: subs r2, r2, #4
+ blt 24f
+ subs r2, r2, #8
+ blt 23f
+ subs r2, r2, #16
+ blt 22f
+
+ PLD( pld [src, #-32] )
+ PLD( subs r2, r2, #96 )
+ stmfd sp!, {r5 - r8}
+ PLD( blt 21f )
+
+ PLD( @ cache alignment )
+ PLD( ands ip, src, #31 )
+ PLD( pld [src, #-64] )
+ PLD( beq 20f )
+ PLD( cmp r2, ip )
+ PLD( pld [src, #-96] )
+ PLD( blt 20f )
+ PLD( cmp ip, #16 )
+ PLD( sub r2, r2, ip )
+ PLD( ldmgedb src!, {r3 - r6} )
+ PLD( stmgedb dst!, {r3 - r6} )
+ PLD( beq 20f )
+ PLD( and ip, ip, #15 )
+ PLD( cmp ip, #8 )
+ PLD( ldr r3, [src, #-4]! )
+ PLD( ldrge r4, [src, #-4]! )
+ PLD( ldrgt r5, [src, #-4]! )
+ PLD( str r3, [dst, #-4]! )
+ PLD( strge r4, [dst, #-4]! )
+ PLD( strgt r5, [dst, #-4]! )
+
+20: PLD( pld [src, #-96] )
+ PLD( pld [src, #-128] )
+21: ldmdb src!, {r3, r4, ip, lr}
+ subs r2, r2, #32
+ stmdb dst!, {r3, r4, ip, lr}
+ ldmdb src!, {r3, r4, ip, lr}
+ stmgedb dst!, {r3, r4, ip, lr}
+ ldmgedb src!, {r3, r4, ip, lr}
+ stmgedb dst!, {r3, r4, ip, lr}
+ ldmgedb src!, {r3, r4, ip, lr}
+ subges r2, r2, #32
+ stmdb dst!, {r3, r4, ip, lr}
+ bge 20b
+ PLD( cmn r2, #96 )
+ PLD( bge 21b )
+ PLD( add r2, r2, #96 )
+ tst r2, #31
+ ldmfd sp!, {r5 - r8}
+ ldmeqfd sp!, {r4, pc}
+
+ tst r2, #16
+22: ldmnedb src!, {r3, r4, ip, lr}
+ stmnedb dst!, {r3, r4, ip, lr}
+
+ tst r2, #8
+23: ldmnedb src!, {r3, r4}
+ stmnedb dst!, {r3, r4}
+
+ tst r2, #4
+24: ldrne r3, [src, #-4]!
+ strne r3, [dst, #-4]!
+
+25: ands r2, r2, #3
+ ldmeqfd sp!, {dst, r4, pc}
+
+ cmp r2, #2
+ ldrb r3, [src, #-1]
+ ldrgeb r4, [src, #-2]
+ ldrgtb ip, [src, #-3]
+ strb r3, [dst, #-1]
+ strgeb r4, [dst, #-2]
+ strgtb ip, [dst, #-3]
+ ldmfd sp!, {dst, r4, pc}
+
+26: cmp ip, #2
+ ldrb r3, [src, #-1]!
+ ldrgeb r4, [src, #-1]!
+ ldrgtb lr, [src, #-1]!
+ strb r3, [dst, #-1]!
+ strgeb r4, [dst, #-1]!
+ strgtb lr, [dst, #-1]!
+ subs r2, r2, ip
+ blt 25b
+ ands ip, src, #3
+ beq 19b
+
+27: bic src, src, #3
+ cmp ip, #2
+ ldr r3, [src]
+ beq 35f
+ blt 36f
+
+
+ .macro backward_copy_shift push pull
+
+ cmp r2, #12
+ PLD( pld [src, #-4] )
+ blt 33f
+ subs r2, r2, #28
+ stmfd sp!, {r5 - r9}
+ blt 31f
+
+ PLD( subs r2, r2, #96 )
+ PLD( pld [src, #-32] )
+ PLD( blt 30f )
+ PLD( pld [src, #-64] )
+
+ PLD( @ cache alignment )
+ PLD( ands ip, src, #31 )
+ PLD( pld [src, #-96] )
+ PLD( beq 29f )
+ PLD( cmp r2, ip )
+ PLD( pld [src, #-128] )
+ PLD( blt 29f )
+ PLD( sub r2, r2, ip )
+28: PLD( mov r4, r3, push #\push )
+ PLD( ldr r3, [src, #-4]! )
+ PLD( subs ip, ip, #4 )
+ PLD( orr r4, r4, r3, pull #\pull )
+ PLD( str r4, [dst, #-4]! )
+ PLD( bgt 28b )
+
+29: PLD( pld [src, #-128] )
+30: mov lr, r3, push #\push
+ ldmdb src!, {r3 - r9, ip}
+ subs r2, r2, #32
+ orr lr, lr, ip, pull #\pull
+ mov ip, ip, push #\push
+ orr ip, ip, r9, pull #\pull
+ mov r9, r9, push #\push
+ orr r9, r9, r8, pull #\pull
+ mov r8, r8, push #\push
+ orr r8, r8, r7, pull #\pull
+ mov r7, r7, push #\push
+ orr r7, r7, r6, pull #\pull
+ mov r6, r6, push #\push
+ orr r6, r6, r5, pull #\pull
+ mov r5, r5, push #\push
+ orr r5, r5, r4, pull #\pull
+ mov r4, r4, push #\push
+ orr r4, r4, r3, pull #\pull
+ stmdb dst!, {r4 - r9, ip, lr}
+ bge 29b
+ PLD( cmn r2, #96 )
+ PLD( bge 30b )
+ PLD( add r2, r2, #96 )
+ cmn r2, #16
+ blt 32f
+31: mov r7, r3, push #\push
+ ldmdb src!, {r3 - r6}
+ sub r2, r2, #16
+ orr r7, r7, r6, pull #\pull
+ mov r6, r6, push #\push
+ orr r6, r6, r5, pull #\pull
+ mov r5, r5, push #\push
+ orr r5, r5, r4, pull #\pull
+ mov r4, r4, push #\push
+ orr r4, r4, r3, pull #\pull
+ stmdb dst!, {r4 - r7}
+32: adds r2, r2, #28
+ ldmfd sp!, {r5 - r9}
+ blt 34f
+33: mov r4, r3, push #\push
+ ldr r3, [src, #-4]!
+ subs r2, r2, #4
+ orr r4, r4, r3, pull #\pull
+ str r4, [dst, #-4]!
+ bge 33b
+34:
+ .endm
+
+
+ backward_copy_shift push=8 pull=24
+ add src, src, #3
+ b 25b
+
+35: backward_copy_shift push=16 pull=16
+ add src, src, #2
+ b 25b
+
+36: backward_copy_shift push=24 pull=8
+ add src, src, #1
+ b 25b
+
+ .size bcopy, . - bcopy
+END(bcopy)
--- /dev/null 2004-02-02 20:32:13.000000000 +0000
+++ sysdeps/arm/memcpy.S 2004-05-02 14:33:22.000000000 +0100
@@ -0,0 +1,242 @@
+/*
+ * Optimized memcpy implementation for ARM processors
+ *
+ * Author: Nicolas Pitre
+ * Created: Dec 23, 2003
+ * Copyright: (C) MontaVista Software, Inc.
+ *
+ * This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ */
+
+#include <sysdep.h>
+
+
+/*
+ * Endian independent macros for shifting bytes within registers.
+ */
+#ifndef __ARMEB__
+#define pull lsr
+#define push lsl
+#else
+#define pull lsl
+#define push lsr
+#endif
+
+/*
+ * Enable data preload for architectures that support it (ARMv5 and above)
+ */
+#if defined(__ARM_ARCH_5__) || \
+ defined(__ARM_ARCH_5T__) || \
+ defined(__ARM_ARCH_5TE__)
+#define PLD(code...) code
+#else
+#define PLD(code...)
+#endif
+
+
+/* char * memcpy (char *dst, const char *src) */
+
+ENTRY(memcpy)
+ subs r2, r2, #4
+ stmfd sp!, {r0, r4, lr}
+ blt 7f
+ ands ip, r0, #3
+ PLD( pld [r1, #0] )
+ bne 8f
+ ands ip, r1, #3
+ bne 9f
+
+1: subs r2, r2, #4
+ blt 6f
+ subs r2, r2, #8
+ blt 5f
+ subs r2, r2, #16
+ blt 4f
+
+ PLD( subs r2, r2, #65 )
+ stmfd sp!, {r5 - r8}
+ PLD( blt 3f )
+ PLD( pld [r1, #32] )
+
+ PLD( @ cache alignment )
+ PLD( ands ip, r1, #31 )
+ PLD( pld [r1, #64] )
+ PLD( beq 2f )
+ PLD( rsb ip, ip, #32 )
+ PLD( cmp r2, ip )
+ PLD( pld [r1, #96] )
+ PLD( blt 2f )
+ PLD( cmp ip, #16 )
+ PLD( sub r2, r2, ip )
+ PLD( ldmgeia r1!, {r3 - r6} )
+ PLD( stmgeia r0!, {r3 - r6} )
+ PLD( beq 2f )
+ PLD( and ip, ip, #15 )
+ PLD( cmp ip, #8 )
+ PLD( ldr r3, [r1], #4 )
+ PLD( ldrge r4, [r1], #4 )
+ PLD( ldrgt r5, [r1], #4 )
+ PLD( str r3, [r0], #4 )
+ PLD( strge r4, [r0], #4 )
+ PLD( strgt r5, [r0], #4 )
+
+2: PLD( pld [r1, #96] )
+3: ldmia r1!, {r3 - r8, ip, lr}
+ subs r2, r2, #32
+ stmia r0!, {r3 - r8, ip, lr}
+ bge 2b
+ PLD( cmn r2, #65 )
+ PLD( bge 3b )
+ PLD( add r2, r2, #65 )
+ tst r2, #31
+ ldmfd sp!, {r5 - r8}
+ ldmeqfd sp!, {r0, r4, pc}
+
+ tst r2, #16
+4: ldmneia r1!, {r3, r4, ip, lr}
+ stmneia r0!, {r3, r4, ip, lr}
+
+ tst r2, #8
+5: ldmneia r1!, {r3, r4}
+ stmneia r0!, {r3, r4}
+
+ tst r2, #4
+6: ldrne r3, [r1], #4
+ strne r3, [r0], #4
+
+7: ands r2, r2, #3
+ ldmeqfd sp!, {r0, r4, pc}
+
+ cmp r2, #2
+ ldrb r3, [r1], #1
+ ldrgeb r4, [r1], #1
+ ldrgtb ip, [r1]
+ strb r3, [r0], #1
+ strgeb r4, [r0], #1
+ strgtb ip, [r0]
+ ldmfd sp!, {r0, r4, pc}
+
+8: rsb ip, ip, #4
+ cmp ip, #2
+ ldrb r3, [r1], #1
+ ldrgeb r4, [r1], #1
+ ldrgtb lr, [r1], #1
+ strb r3, [r0], #1
+ strgeb r4, [r0], #1
+ strgtb lr, [r0], #1
+ subs r2, r2, ip
+ blt 7b
+ ands ip, r1, #3
+ beq 1b
+
+9: bic r1, r1, #3
+ cmp ip, #2
+ ldr lr, [r1], #4
+ beq 17f
+ bgt 18f
+
+
+ .macro forward_copy_shift pull push
+
+ cmp r2, #12
+ PLD( pld [r1, #0] )
+ blt 15f
+ subs r2, r2, #28
+ stmfd sp!, {r5 - r9}
+ blt 13f
+
+ PLD( subs r2, r2, #97 )
+ PLD( blt 12f )
+ PLD( pld [r1, #32] )
+
+ PLD( @ cache alignment )
+ PLD( rsb ip, r1, #36 )
+ PLD( pld [r1, #64] )
+ PLD( ands ip, ip, #31 )
+ PLD( pld [r1, #96] )
+ PLD( beq 11f )
+ PLD( cmp r2, ip )
+ PLD( pld [r1, #128] )
+ PLD( blt 11f )
+ PLD( sub r2, r2, ip )
+10: PLD( mov r3, lr, pull #\pull )
+ PLD( ldr lr, [r1], #4 )
+ PLD( subs ip, ip, #4 )
+ PLD( orr r3, r3, lr, push #\push )
+ PLD( str r3, [r0], #4 )
+ PLD( bgt 10b )
+
+11: PLD( pld [r1, #128] )
+12: mov r3, lr, pull #\pull
+ ldmia r1!, {r4 - r9, ip, lr}
+ subs r2, r2, #32
+ orr r3, r3, r4, push #\push
+ mov r4, r4, pull #\pull
+ orr r4, r4, r5, push #\push
+ mov r5, r5, pull #\pull
+ orr r5, r5, r6, push #\push
+ mov r6, r6, pull #\pull
+ orr r6, r6, r7, push #\push
+ mov r7, r7, pull #\pull
+ orr r7, r7, r8, push #\push
+ mov r8, r8, pull #\pull
+ orr r8, r8, r9, push #\push
+ mov r9, r9, pull #\pull
+ orr r9, r9, ip, push #\push
+ mov ip, ip, pull #\pull
+ orr ip, ip, lr, push #\push
+ stmia r0!, {r3 - r9, ip}
+ bge 11b
+ PLD( cmn r2, #97 )
+ PLD( bge 12b )
+ PLD( add r2, r2, #97 )
+ cmn r2, #16
+ blt 14f
+13: mov r3, lr, pull #\pull
+ ldmia r1!, {r4 - r6, lr}
+ sub r2, r2, #16
+ orr r3, r3, r4, push #\push
+ mov r4, r4, pull #\pull
+ orr r4, r4, r5, push #\push
+ mov r5, r5, pull #\pull
+ orr r5, r5, r6, push #\push
+ mov r6, r6, pull #\pull
+ orr r6, r6, lr, push #\push
+ stmia r0!, {r3 - r6}
+14: adds r2, r2, #28
+ ldmfd sp!, {r5 - r9}
+ blt 16f
+15: mov r3, lr, pull #\pull
+ ldr lr, [r1], #4
+ subs r2, r2, #4
+ orr r3, r3, lr, push #\push
+ str r3, [r0], #4
+ bge 15b
+16:
+ .endm
+
+
+ forward_copy_shift pull=8 push=24
+ sub r1, r1, #3
+ b 7b
+
+17: forward_copy_shift pull=16 push=16
+ sub r1, r1, #2
+ b 7b
+
+18: forward_copy_shift pull=24 push=8
+ sub r1, r1, #1
+ b 7b
+
+ .size memcpy, . - memcpy
+END(memcpy)
+libc_hidden_builtin_def (memcpy)
+

View File

@@ -1,94 +0,0 @@
From libc-ports-return-430-listarch-libc-ports=sources dot redhat dot com at sourceware dot org Mon Aug 21 20:08:57 2006
Return-Path: <libc-ports-return-430-listarch-libc-ports=sources dot redhat dot com at sourceware dot org>
Delivered-To: listarch-libc-ports at sources dot redhat dot com
Received: (qmail 9913 invoked by alias); 21 Aug 2006 20:08:56 -0000
Received: (qmail 9893 invoked by uid 22791); 21 Aug 2006 20:08:53 -0000
X-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,TW_HM,TW_SG,TW_SN
X-Spam-Check-By: sourceware.org
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
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
Date: Mon, 21 Aug 2006 16:08:41 -0400
From: Daniel Jacobowitz <drow at false dot org>
To: libc-ports at sourceware dot org
Subject: ARM IPC fix
Message-ID: <20060821200841.GA29502@nevyn.them.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.5.11+cvs20060403
X-IsSubscribed: yes
Mailing-List: contact libc-ports-help at sourceware dot org; run by ezmlm
Precedence: bulk
List-Subscribe: <mailto:libc-ports-subscribe at sourceware dot org>
List-Post: <mailto:libc-ports at sourceware dot org>
List-Help: <mailto:libc-ports-help at sourceware dot org>, <http://sourceware dot org/lists dot html#faqs>
Sender: libc-ports-owner at sourceware dot org
Delivered-To: mailing list libc-ports at sourceware dot org
We can't treat msgctl as a real syscall; if we don't add __IPC_64, we'll get
a mismatched type for ipc_perm. Fixed by using the Alpha implementation,
which is similar to the standard i386 implementation but doesn't use
the multiplexer syscall.
--
Daniel Jacobowitz
CodeSourcery
2006-08-21 Daniel Jacobowitz <dan@codesourcery.com>
* sysdeps/unix/sysv/linux/arm/eabi/syscalls.list: Remove msgctl,
shmctl, and semctl.
* sysdeps/unix/sysv/linux/arm/eabi/semctl.c,
sysdeps/unix/sysv/linux/arm/eabi/shmctl.c,
sysdeps/unix/sysv/linux/arm/eabi/msgctl.c: New files.
Index: a/ports/sysdeps/unix/sysv/linux/arm/eabi/syscalls.list
===================================================================
--- a/ports/sysdeps/unix/sysv/linux/arm/eabi/syscalls.list (revision 147209)
+++ b/ports/sysdeps/unix/sysv/linux/arm/eabi/syscalls.list (working copy)
@@ -1,18 +1,16 @@
# File name Caller Syscall name # args Strong name Weak names
-# semaphore and shm system calls
-msgctl - msgctl i:iip __msgctl msgctl
+# Semaphore and shm system calls. msgctl, shmctl, and semctl have C
+# wrappers (to set __IPC_64).
msgget - msgget i:ii __msgget msgget
msgrcv - msgrcv Ci:ibnii __msgrcv msgrcv
msgsnd - msgsnd Ci:ibni __msgsnd msgsnd
shmat - shmat i:ipi __shmat shmat
-shmctl - shmctl i:iip __shmctl shmctl
shmdt - shmdt i:s __shmdt shmdt
shmget - shmget i:iii __shmget shmget
semop - semop i:ipi __semop semop
semtimedop - semtimedop i:ipip semtimedop
semget - semget i:iii __semget semget
-semctl - semctl i:iiii __semctl semctl
# proper socket implementations:
accept - accept Ci:iBN __libc_accept __accept accept
Property changes on: sysdeps/unix/sysv/linux/arm/eabi/syscalls.list
___________________________________________________________________
Name: svn:mime-type
- application/octet-stream
Index: a/ports/sysdeps/unix/sysv/linux/arm/eabi/semctl.c
===================================================================
--- a/ports/sysdeps/unix/sysv/linux/arm/eabi/semctl.c (revision 0)
+++ b/ports/sysdeps/unix/sysv/linux/arm/eabi/semctl.c (revision 0)
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/semctl.c>
Index: a/ports/sysdeps/unix/sysv/linux/arm/eabi/msgctl.c
===================================================================
--- a/ports/sysdeps/unix/sysv/linux/arm/eabi/msgctl.c (revision 0)
+++ b/ports/sysdeps/unix/sysv/linux/arm/eabi/msgctl.c (revision 0)
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/msgctl.c>
Index: a/ports/sysdeps/unix/sysv/linux/arm/eabi/shmctl.c
===================================================================
--- a/ports/sysdeps/unix/sysv/linux/arm/eabi/shmctl.c (revision 0)
+++ b/ports/sysdeps/unix/sysv/linux/arm/eabi/shmctl.c (revision 0)
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/shmctl.c>

View File

@@ -1,10 +0,0 @@
--- glibc-2.4/elf/Versions.ark 2006-03-11 23:30:09.000000000 +0100
+++ glibc-2.4/elf/Versions 2006-03-11 23:31:44.000000000 +0100
@@ -63,5 +63,7 @@
_dl_debug_state;
# Pointer protection.
__pointer_chk_guard;
+ # for ldconfig
+ _dl_cache_libcmp;
}
}

View File

@@ -1,22 +0,0 @@
#
# Patch managed by http://www.holgerschurig.de/patcher.html
#
--- libc/elf/Makefile~dyn-ldconfig-20041128
+++ libc/elf/Makefile
@@ -118,12 +118,13 @@
ifeq (yes,$(use-ldconfig))
ifeq (yes,$(build-shared))
-others-static += ldconfig
+#others-static += ldconfig
others += ldconfig
install-rootsbin += ldconfig
ldconfig-modules := cache readlib xmalloc xstrdup chroot_canon
extra-objs += $(ldconfig-modules:=.o)
+CPPFLAGS-readlib.c = -DNOT_IN_libc=1
# To find xmalloc.c and xstrdup.c
vpath %.c ../locale/programs

View File

@@ -1,62 +0,0 @@
--- elf/Makefile 13 Mar 2003 21:50:57 -0000 1.258
+++ elf/Makefile 27 Mar 2003 20:36:07 -0000
@@ -109,12 +109,13 @@
ifeq (yes,$(use-ldconfig))
ifeq (yes,$(build-shared))
-others-static += ldconfig
+#others-static += ldconfig
others += ldconfig
install-rootsbin += ldconfig
ldconfig-modules := cache readlib xmalloc xstrdup chroot_canon
extra-objs += $(ldconfig-modules:=.o)
+CPPFLAGS-readlib.c = -DNOT_IN_libc=1
# To find xmalloc.c and xstrdup.c
vpath %.c ../locale/programs
--- elf/ldconfig.c 13 Jan 2003 08:53:14 -0000 1.31
+++ elf/ldconfig.c 27 Mar 2003 20:36:09 -0000
@@ -149,6 +149,9 @@
static int
is_hwcap_platform (const char *name)
{
+#if 1
+ return 0;
+#else
int hwcap_idx = _dl_string_hwcap (name);
if (hwcap_idx != -1 && ((1 << hwcap_idx) & hwcap_mask))
@@ -164,6 +167,7 @@
#endif
return 0;
+#endif
}
/* Get hwcap (including platform) encoding of path. */
@@ -175,6 +179,7 @@
uint64_t hwcap = 0;
uint64_t h;
+#if 0
size_t len;
len = strlen (str);
@@ -210,6 +215,7 @@
*ptr = '\0';
}
+#endif
free (str);
return hwcap;
}
--- elf/Versions.old 2004-06-26 13:18:35.000000000 +0100
+++ elf/Versions 2004-06-26 14:41:09.000000000 +0100
@@ -54,5 +54,6 @@
_dl_get_tls_static_info; _dl_allocate_tls_init;
_dl_tls_setup; _dl_rtld_di_serinfo;
_dl_make_stack_executable;
+ _dl_cache_libcmp;
}
}

View File

@@ -1,27 +0,0 @@
---
ports/sysdeps/unix/sysv/linux/arm/eabi/configure | 2 +-
ports/sysdeps/unix/sysv/linux/arm/eabi/configure.in | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
Index: glibc-2.5/ports/sysdeps/unix/sysv/linux/arm/eabi/configure
===================================================================
--- glibc-2.5.orig/ports/sysdeps/unix/sysv/linux/arm/eabi/configure 2007-12-20 17:39:25.000000000 +0000
+++ glibc-2.5/ports/sysdeps/unix/sysv/linux/arm/eabi/configure 2007-12-20 17:39:30.000000000 +0000
@@ -1,5 +1,5 @@
# This file is generated from configure.in by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/unix/sysv/linux/arm/eabi.
-arch_minimum_kernel=2.6.14
+arch_minimum_kernel=2.6.10
libc_cv_gcc_unwind_find_fde=no
Index: glibc-2.5/ports/sysdeps/unix/sysv/linux/arm/eabi/configure.in
===================================================================
--- glibc-2.5.orig/ports/sysdeps/unix/sysv/linux/arm/eabi/configure.in 2007-12-20 17:39:27.000000000 +0000
+++ glibc-2.5/ports/sysdeps/unix/sysv/linux/arm/eabi/configure.in 2007-12-20 17:39:36.000000000 +0000
@@ -1,5 +1,5 @@
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/unix/sysv/linux/arm/eabi.
-arch_minimum_kernel=2.6.14
+arch_minimum_kernel=2.6.10
libc_cv_gcc_unwind_find_fde=no

View File

@@ -1,329 +0,0 @@
Fix up ARM EABI for removed syscalls
http://sourceware.org/ml/libc-ports/2006-03/msg00029.html
Index: glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/socket.S
===================================================================
--- glibc.orig/ports/sysdeps/unix/sysv/linux/arm/eabi/socket.S 2006-03-21 15:58:10.000000000 -0500
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,131 +0,0 @@
-/* Copyright (C) 1995, 1996, 1997, 1998, 2003, 2005
- Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep-cancel.h>
-#include <socketcall.h>
-
-#define P(a, b) P2(a, b)
-#define P2(a, b) a##b
-
- .text
-/* The socket-oriented system calls are handled unusally in Linux.
- They are all gated through the single `socketcall' system call number.
- `socketcall' takes two arguments: the first is the subcode, specifying
- which socket function is being called; and the second is a pointer to
- the arguments to the specific function.
-
- The .S files for the other calls just #define socket and #include this. */
-
-#ifndef __socket
-# ifndef NO_WEAK_ALIAS
-# define __socket P(__,socket)
-# else
-# define __socket socket
-# endif
-#endif
-
-#define PUSHARGS_1 str a1, [sp, $-8]!; .pad #8
-#define PUSHARGS_2 stmfd sp!, {a1, a2}; .pad #8
-#define PUSHARGS_3 stmfd sp!, {a1, a2, a3, a4}; .pad #16 /* a4 pushed for padding */
-#define PUSHARGS_4 stmfd sp!, {a1, a2, a3, a4}; .pad #16
-#define PUSHARGS_5 stmfd sp!, {a1, a2, a3, a4}; .pad #16 /* Caller has already pushed arg 5 */
-#define PUSHARGS_6 stmfd sp!, {a1, a2, a3, a4}; .pad #16
-
-#define POPARGS_1 add sp, sp, #8
-#define POPARGS_2 add sp, sp, #8
-#define POPARGS_3 add sp, sp, #16
-#define POPARGS_4 add sp, sp, #16
-#define POPARGS_5 add sp, sp, #16
-#define POPARGS_6 add sp, sp, #16
-
-#ifndef NARGS
-#define NARGS 3 /* If we were called with no wrapper, this is really socket() */
-#endif
-
-#if defined NEED_CANCELLATION && defined CENABLE
- PSEUDO_PROLOGUE
-#endif
-
-.globl __socket
-ENTRY (__socket)
- .fnstart
-
- /* This code previously moved sp into ip and stored the args using
- stmdb ip!, {a1-a4}. It did not modify sp, so the stack never had
- to be restored after the syscall completed. It saved an
- instruction and meant no stack cleanup work was required.
-
- This will not work in the case of a socket call being interrupted
- by a signal. If the signal handler uses any stack the arguments
- to socket will be trashed. The results of a restart of any
- socket call are then unpredictable. */
-
- /* Push args onto the stack. */
- P(PUSHARGS_,NARGS)
-
-#if defined NEED_CANCELLATION && defined CENABLE
- SINGLE_THREAD_P
- bne 1f
-#endif
-
- /* Do the system call trap. */
- mov a1, $P(SOCKOP_,socket)
- mov a2, sp
- DO_CALL (socketcall, 0)
-
- /* Pop args off the stack */
- P(POPARGS_,NARGS)
-
- /* r0 is < 0 if there was an error. */
- cmn r0, $124
- RETINSTR(cc, r14)
- b PLTJMP(SYSCALL_ERROR)
-
-#if defined NEED_CANCELLATION && defined CENABLE
-1:
- stmfd sp!, {r7, lr}
- .save {r7, lr}
- CENABLE
- mov ip, r0
-
- mov r0, #P(SOCKOP_,socket)
- add r1, sp, #8
- mov r7, #SYS_ify(socketcall)
- swi 0x0
-
- mov r7, r0
- mov r0, ip
- CDISABLE
- mov r0, r7
- ldmfd sp!, {r7, lr}
-
- P(POPARGS_,NARGS)
-
- /* r0 is < 0 if there was an error. */
- cmn r0, $124
- RETINSTR(cc, r14)
- b PLTJMP(SYSCALL_ERROR)
-#endif
-
- .fnend
-PSEUDO_END (__socket)
-
-#ifndef NO_WEAK_ALIAS
-weak_alias (__socket, socket)
-#endif
Index: glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/syscalls.list
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/syscalls.list 2006-03-21 15:58:46.000000000 -0500
@@ -0,0 +1,34 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+# semaphore and shm system calls
+msgctl - msgctl i:iip __msgctl msgctl
+msgget - msgget i:ii __msgget msgget
+msgrcv - msgrcv Ci:ibnii __msgrcv msgrcv
+msgsnd - msgsnd Ci:ibni __msgsnd msgsnd
+shmat - shmat i:ipi __shmat shmat
+shmctl - shmctl i:iip __shmctl shmctl
+shmdt - shmdt i:s __shmdt shmdt
+shmget - shmget i:iii __shmget shmget
+semop - semop i:ipi __semop semop
+semtimedop - semtimedop i:ipip semtimedop
+semget - semget i:iii __semget semget
+semctl - semctl i:iiii __semctl semctl
+
+# proper socket implementations:
+accept - accept Ci:iBN __libc_accept __accept accept
+bind - bind i:ipi __bind bind
+connect - connect Ci:ipi __libc_connect __connect_internal __connect connect
+getpeername - getpeername i:ipp __getpeername getpeername
+getsockname - getsockname i:ipp __getsockname getsockname
+getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
+listen - listen i:ii __listen listen
+recv - recv Ci:ibni __libc_recv __recv recv
+recvfrom - recvfrom Ci:ibniBN __libc_recvfrom __recvfrom recvfrom
+recvmsg - recvmsg Ci:ipi __libc_recvmsg __recvmsg recvmsg
+send - send Ci:ibni __libc_send __send send
+sendmsg - sendmsg Ci:ipi __libc_sendmsg __sendmsg sendmsg
+sendto - sendto Ci:ibnibn __libc_sendto __sendto sendto
+setsockopt - setsockopt i:iiibn __setsockopt setsockopt
+shutdown - shutdown i:ii __shutdown shutdown
+socket - socket i:iii __socket socket
+socketpair - socketpair i:iiif __socketpair socketpair
Index: glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/linuxthreads/sysdep-cancel.h
===================================================================
--- glibc.orig/ports/sysdeps/unix/sysv/linux/arm/eabi/linuxthreads/sysdep-cancel.h 2006-03-21 15:58:10.000000000 -0500
+++ glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/linuxthreads/sysdep-cancel.h 2006-03-21 15:58:46.000000000 -0500
@@ -53,9 +53,9 @@
UNDOARGS_##args; \
cmn r0, $4096;
-/* DOARGS pushes four bytes on the stack for five arguments, and nothing
- otherwise. In order to preserve doubleword alignment, sometimes we must
- save an extra register. */
+/* DOARGS pushes four bytes on the stack for five arguments, eight bytes for
+ six arguments, and nothing for fewer. In order to preserve doubleword
+ alignment, sometimes we must save an extra register. */
# define DOCARGS_0 stmfd sp!, {r7, lr}
# define UNDOCARGS_0
@@ -81,6 +81,10 @@
# define UNDOCARGS_5 ldmfd sp!, {r0, r1, r2, r3}
# define RESTORE_LR_5 ldmfd sp!, {r4, r7, lr}
+# define DOCARGS_6 stmfd sp!, {r0, r1, r2, r3, r7, lr}
+# define UNDOCARGS_6 ldmfd sp!, {r0, r1, r2, r3}
+# define RESTORE_LR_6 RESTORE_LR_0
+
# ifdef IS_IN_libpthread
# define CENABLE bl PLTJMP(__pthread_enable_asynccancel)
# define CDISABLE bl PLTJMP(__pthread_disable_asynccancel)
Index: glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/nptl/sysdep-cancel.h
===================================================================
--- glibc.orig/ports/sysdeps/unix/sysv/linux/arm/eabi/nptl/sysdep-cancel.h 2006-03-21 15:58:10.000000000 -0500
+++ glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/nptl/sysdep-cancel.h 2006-03-21 15:58:46.000000000 -0500
@@ -64,9 +64,9 @@
UNDOARGS_##args; \
cmn r0, $4096;
-/* DOARGS pushes four bytes on the stack for five arguments, and nothing
- otherwise. In order to preserve doubleword alignment, sometimes we must
- save an extra register. */
+/* DOARGS pushes four bytes on the stack for five arguments, eight bytes for
+ six arguments, and nothing for fewer. In order to preserve doubleword
+ alignment, sometimes we must save an extra register. */
# define RESTART_UNWIND .fnend; .fnstart; .save {r7, lr}
@@ -94,6 +94,10 @@
# define UNDOCARGS_5 ldmfd sp!, {r0, r1, r2, r3}; .fnend; .fnstart; .save {r4}; .save {r7, lr}; .pad #4
# define RESTORE_LR_5 ldmfd sp!, {r4, r7, lr}
+# define DOCARGS_6 .save {r4, r5}; stmfd sp!, {r0, r1, r2, r3, r7, lr}; .save {r7, lr}; .pad #20
+# define UNDOCARGS_6 ldmfd sp!, {r0, r1, r2, r3}; .fnend; .fnstart; .save {r4, r5}; .save {r7, lr}
+# define RESTORE_LR_6 RESTORE_LR_0
+
# ifdef IS_IN_libpthread
# define CENABLE bl PLTJMP(__pthread_enable_asynccancel)
# define CDISABLE bl PLTJMP(__pthread_disable_asynccancel)
Index: glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h
===================================================================
--- glibc.orig/ports/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h 2006-03-21 15:58:10.000000000 -0500
+++ glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h 2006-03-21 15:58:46.000000000 -0500
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005
+/* Copyright (C) 2005, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -29,6 +29,12 @@
# error Kernel headers are too old
#endif
+/* Don't use stime, even if the kernel headers define it. We have
+ settimeofday, and some EABI kernels have removed stime. Similarly
+ use setitimer to implement alarm. */
+#undef __NR_stime
+#undef __NR_alarm
+
/* The ARM EABI user interface passes the syscall number in r7, instead
of in the swi. This is more efficient, because the kernel does not need
to fetch the swi from memory to find out the number; which can be painful
Index: glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/umount.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/umount.c 2006-03-21 15:58:46.000000000 -0500
@@ -0,0 +1,31 @@
+/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Huggins-Daines <dhd@debian.org>, 2000.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+/* Since we don't have an oldumount system call, do what the kernel
+ does down here. */
+
+extern long int __umount2 (const char *name, int flags);
+
+long int
+__umount (const char *name)
+{
+ return __umount2 (name, 0);
+}
+
+weak_alias (__umount, umount);
Index: glibc/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ glibc/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h 2006-03-20 17:26:58.000000000 -0500
@@ -0,0 +1,31 @@
+/* Set flags signalling availability of kernel features based on given
+ kernel version number.
+ Copyright (C) 2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+/* The utimes syscall was added before 2.6.1. */
+#if __LINUX_KERNEL_VERSION >= 132609
+# define __ASSUME_UTIMES 1
+#endif
+
+/* The new getrlimit syscall was added sometime before 2.4.6. */
+#if __LINUX_KERNEL_VERSION >= 132102
+#define __ASSUME_NEW_GETRLIMIT_SYSCALL 1
+#endif
+
+#include_next <kernel-features.h>

View File

@@ -1,35 +0,0 @@
/* Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#ifndef _SYS_SELECT_H
# error "Never use <bits/select.h> directly; include <sys/select.h> instead."
#endif
/* We don't use `memset' because this would require a prototype and
the array isn't too big. */
#define __FD_ZERO(s) \
do { \
unsigned int __i; \
fd_set *__arr = (s); \
for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) \
__FDS_BITS (__arr)[__i] = 0; \
} while (0)
#define __FD_SET(d, s) (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d))
#define __FD_CLR(d, s) (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d))
#define __FD_ISSET(d, s) ((__FDS_BITS (s)[__FDELT(d)] & __FDMASK(d)) != 0)

View File

@@ -1,75 +0,0 @@
/* System-dependent timing definitions. Generic version.
Copyright (C) 1996,1997,1999-2002,2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
/*
* Never include this file directly; use <time.h> instead.
*/
#ifndef __need_timeval
# ifndef _BITS_TIME_H
# define _BITS_TIME_H 1
/* ISO/IEC 9899:1990 7.12.1: <time.h>
The macro `CLOCKS_PER_SEC' is the number per second of the value
returned by the `clock' function. */
/* CAE XSH, Issue 4, Version 2: <time.h>
The value of CLOCKS_PER_SEC is required to be 1 million on all
XSI-conformant systems. */
# define CLOCKS_PER_SEC 1000000l
# if !defined __STRICT_ANSI__ && !defined __USE_XOPEN2K
/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK
presents the real value for clock ticks per second for the system. */
# include <bits/types.h>
extern long int __sysconf (int);
# define CLK_TCK ((__clock_t) __sysconf (2)) /* 2 is _SC_CLK_TCK */
# endif
# ifdef __USE_POSIX199309
/* Identifier for system-wide realtime clock. */
# define CLOCK_REALTIME 0
/* Monotonic system-wide clock. */
# define CLOCK_MONOTONIC 1
/* High-resolution timer from the CPU. */
# define CLOCK_PROCESS_CPUTIME_ID 2
/* Thread-specific CPU-time clock. */
# define CLOCK_THREAD_CPUTIME_ID 3
/* Flag to indicate time is absolute. */
# define TIMER_ABSTIME 1
# endif
# endif /* bits/time.h */
#endif
#ifdef __need_timeval
# undef __need_timeval
# ifndef _STRUCT_TIMEVAL
# define _STRUCT_TIMEVAL 1
# include <bits/types.h>
/* A time value that is accurate to the nearest
microsecond but also has a range of years. */
struct timeval
{
__time_t tv_sec; /* Seconds. */
__suseconds_t tv_usec; /* Microseconds. */
};
# endif /* struct timeval */
#endif /* need timeval */

View File

@@ -1,200 +0,0 @@
/* bits/types.h -- definitions of __*_t types underlying *_t types.
Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
/*
* Never include this file directly; use <sys/types.h> instead.
*/
#ifndef _BITS_TYPES_H
#define _BITS_TYPES_H 1
#include <features.h>
#include <bits/wordsize.h>
#define __need_size_t
#include <stddef.h>
/* Convenience types. */
typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;
/* Fixed-size types, underlying types depend on word size and compiler. */
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
#if __WORDSIZE == 64
typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;
#elif defined __GLIBC_HAVE_LONG_LONG
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
#endif
/* quad_t is also 64 bits. */
#if __WORDSIZE == 64
typedef long int __quad_t;
typedef unsigned long int __u_quad_t;
#elif defined __GLIBC_HAVE_LONG_LONG
__extension__ typedef long long int __quad_t;
__extension__ typedef unsigned long long int __u_quad_t;
#else
typedef struct
{
long __val[2];
} __quad_t;
typedef struct
{
__u_long __val[2];
} __u_quad_t;
#endif
/* The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
macros for each of the OS types we define below. The definitions
of those macros must use the following macros for underlying types.
We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
variants of each of the following integer types on this machine.
16 -- "natural" 16-bit type (always short)
32 -- "natural" 32-bit type (always int)
64 -- "natural" 64-bit type (long or long long)
LONG32 -- 32-bit type, traditionally long
QUAD -- 64-bit type, always long long
WORD -- natural type of __WORDSIZE bits (int or long)
LONGWORD -- type of __WORDSIZE bits, traditionally long
We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
conventional uses of `long' or `long long' type modifiers match the
types we define, even when a less-adorned type would be the same size.
This matters for (somewhat) portably writing printf/scanf formats for
these types, where using the appropriate l or ll format modifiers can
make the typedefs and the formats match up across all GNU platforms. If
we used `long' when it's 64 bits where `long long' is expected, then the
compiler would warn about the formats not matching the argument types,
and the programmer changing them to shut up the compiler would break the
program's portability.
Here we assume what is presently the case in all the GCC configurations
we support: long long is always 64 bits, long is always word/address size,
and int is always 32 bits. */
#define __S16_TYPE short int
#define __U16_TYPE unsigned short int
#define __S32_TYPE int
#define __U32_TYPE unsigned int
#define __SLONGWORD_TYPE long int
#define __ULONGWORD_TYPE unsigned long int
#if __WORDSIZE == 32
# define __SQUAD_TYPE __quad_t
# define __UQUAD_TYPE __u_quad_t
# define __SWORD_TYPE int
# define __UWORD_TYPE unsigned int
# define __SLONG32_TYPE long int
# define __ULONG32_TYPE unsigned long int
# define __S64_TYPE __quad_t
# define __U64_TYPE __u_quad_t
/* We want __extension__ before typedef's that use nonstandard base types
such as `long long' in C89 mode. */
# define __STD_TYPE __extension__ typedef
#elif __WORDSIZE == 64
# define __SQUAD_TYPE long int
# define __UQUAD_TYPE unsigned long int
# define __SWORD_TYPE long int
# define __UWORD_TYPE unsigned long int
# define __SLONG32_TYPE int
# define __ULONG32_TYPE unsigned int
# define __S64_TYPE long int
# define __U64_TYPE unsigned long int
/* No need to mark the typedef with __extension__. */
# define __STD_TYPE typedef
#else
# error
#endif
#include <bits/typesizes.h> /* Defines __*_T_TYPE macros. */
__STD_TYPE __DEV_T_TYPE __dev_t; /* Type of device numbers. */
__STD_TYPE __UID_T_TYPE __uid_t; /* Type of user identifications. */
__STD_TYPE __GID_T_TYPE __gid_t; /* Type of group identifications. */
__STD_TYPE __INO_T_TYPE __ino_t; /* Type of file serial numbers. */
__STD_TYPE __INO64_T_TYPE __ino64_t; /* Type of file serial numbers (LFS).*/
__STD_TYPE __MODE_T_TYPE __mode_t; /* Type of file attribute bitmasks. */
__STD_TYPE __NLINK_T_TYPE __nlink_t; /* Type of file link counts. */
__STD_TYPE __OFF_T_TYPE __off_t; /* Type of file sizes and offsets. */
__STD_TYPE __OFF64_T_TYPE __off64_t; /* Type of file sizes and offsets (LFS). */
__STD_TYPE __PID_T_TYPE __pid_t; /* Type of process identifications. */
__STD_TYPE __FSID_T_TYPE __fsid_t; /* Type of file system IDs. */
__STD_TYPE __CLOCK_T_TYPE __clock_t; /* Type of CPU usage counts. */
__STD_TYPE __RLIM_T_TYPE __rlim_t; /* Type for resource measurement. */
__STD_TYPE __RLIM64_T_TYPE __rlim64_t; /* Type for resource measurement (LFS). */
__STD_TYPE __ID_T_TYPE __id_t; /* General type for IDs. */
__STD_TYPE __TIME_T_TYPE __time_t; /* Seconds since the Epoch. */
__STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds. */
__STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds. */
__STD_TYPE __DADDR_T_TYPE __daddr_t; /* The type of a disk address. */
__STD_TYPE __SWBLK_T_TYPE __swblk_t; /* Type of a swap block maybe? */
__STD_TYPE __KEY_T_TYPE __key_t; /* Type of an IPC key. */
/* Clock ID used in clock and timer functions. */
__STD_TYPE __CLOCKID_T_TYPE __clockid_t;
/* Timer ID returned by `timer_create'. */
__STD_TYPE __TIMER_T_TYPE __timer_t;
/* Type to represent block size. */
__STD_TYPE __BLKSIZE_T_TYPE __blksize_t;
/* Types from the Large File Support interface. */
/* Type to count number of disk blocks. */
__STD_TYPE __BLKCNT_T_TYPE __blkcnt_t;
__STD_TYPE __BLKCNT64_T_TYPE __blkcnt64_t;
/* Type to count file system blocks. */
__STD_TYPE __FSBLKCNT_T_TYPE __fsblkcnt_t;
__STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcnt64_t;
/* Type to count file system nodes. */
__STD_TYPE __FSFILCNT_T_TYPE __fsfilcnt_t;
__STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t;
__STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error. */
/* These few don't really vary by system, they always correspond
to one of the other defined types. */
typedef __off64_t __loff_t; /* Type of file sizes and offsets (LFS). */
typedef __quad_t *__qaddr_t;
typedef char *__caddr_t;
/* Duplicates info from stdint.h but this is used in unistd.h. */
__STD_TYPE __SWORD_TYPE __intptr_t;
/* Duplicate info from sys/socket.h. */
__STD_TYPE __U32_TYPE __socklen_t;
#undef __STD_TYPE
#endif /* bits/types.h */

View File

@@ -1,66 +0,0 @@
/* bits/typesizes.h -- underlying types for *_t. Generic version.
Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#ifndef _BITS_TYPES_H
# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
#endif
#ifndef _BITS_TYPESIZES_H
#define _BITS_TYPESIZES_H 1
/* See <bits/types.h> for the meaning of these macros. This file exists so
that <bits/types.h> need not vary across different GNU platforms. */
#define __DEV_T_TYPE __UQUAD_TYPE
#define __UID_T_TYPE __U32_TYPE
#define __GID_T_TYPE __U32_TYPE
#define __INO_T_TYPE __ULONGWORD_TYPE
#define __INO64_T_TYPE __UQUAD_TYPE
#define __MODE_T_TYPE __U32_TYPE
#define __NLINK_T_TYPE __UWORD_TYPE
#define __OFF_T_TYPE __SLONGWORD_TYPE
#define __OFF64_T_TYPE __SQUAD_TYPE
#define __PID_T_TYPE __S32_TYPE
#define __RLIM_T_TYPE __ULONGWORD_TYPE
#define __RLIM64_T_TYPE __UQUAD_TYPE
#define __BLKCNT_T_TYPE __SLONGWORD_TYPE
#define __BLKCNT64_T_TYPE __SQUAD_TYPE
#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE
#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE
#define __FSFILCNT64_T_TYPE __UQUAD_TYPE
#define __ID_T_TYPE __U32_TYPE
#define __CLOCK_T_TYPE __SLONGWORD_TYPE
#define __TIME_T_TYPE __SLONGWORD_TYPE
#define __USECONDS_T_TYPE __U32_TYPE
#define __SUSECONDS_T_TYPE __SLONGWORD_TYPE
#define __DADDR_T_TYPE __S32_TYPE
#define __SWBLK_T_TYPE __SLONGWORD_TYPE
#define __KEY_T_TYPE __S32_TYPE
#define __CLOCKID_T_TYPE __S32_TYPE
#define __TIMER_T_TYPE void *
#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
#define __FSID_T_TYPE struct { int __val[2]; }
#define __SSIZE_T_TYPE __SWORD_TYPE
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 1024
#endif /* bits/typesizes.h */

View File

@@ -1,29 +0,0 @@
--- glibc-2.4/csu/libc-start.c.ark 2006-03-13 03:07:15.000000000 +0100
+++ glibc-2.4/csu/libc-start.c 2006-03-13 03:08:51.000000000 +0100
@@ -59,6 +59,11 @@
# define LIBC_START_MAIN BP_SYM (__libc_start_main)
#endif
+#ifdef SHARED
+#include <pthread-functions.h>
+extern struct pthread_functions __libc_pthread_functions;
+#endif
+
#ifdef MAIN_AUXVEC_ARG
/* main gets passed a pointer to the auxiliary. */
# define MAIN_AUXVEC_DECL , void *
--- glibc-2.4/nscd/Makefile.ark 2006-03-13 14:05:47.000000000 +0100
+++ glibc-2.4/nscd/Makefile 2006-03-13 14:06:12.000000000 +0100
@@ -67,8 +67,10 @@
# contains only the basic kernel interface headers, not something like
# libselinux. So the simplest thing is to presume that the standard
# system headers will be ok for this file.
-$(objpfx)nscd_stat.o: sysincludes = # nothing
-$(objpfx)selinux.o: sysincludes = # nothing
+# Except, of course, this breaks crosscompiling with kernel headers in
+# a nonstandard location...
+#$(objpfx)nscd_stat.o: sysincludes = # nothing
+#$(objpfx)selinux.o: sysincludes = # nothing
distribute := nscd.h nscd-client.h dbg_log.h \
$(addsuffix .c, $(filter-out xmalloc,$(all-nscd-modules))) \

View File

@@ -1,133 +0,0 @@
Submitted By: Jim Gifford (patches at jg555 dot com)
Date: 2006-08-18
Initial Package Version: 2.4
Origin: http://sourceware.org/bugzilla/show_bug.cgi?id=2873
Upstream Status: Applied
Description: Fixes http://sourceware.org/bugzilla/show_bug.cgi?id=2873
http://sourceware.org/bugzilla/show_bug.cgi?id=3040
http://linuxfromscratch.org/pipermail/lfs-dev/2006-June/057562.html
Updated by Joe Ciccone
diff -Naur glibc-2.4.orig/sysdeps/unix/sysv/linux/i386/fchownat.c glibc-2.4/sysdeps/unix/sysv/linux/i386/fchownat.c
--- glibc-2.4.orig/sysdeps/unix/sysv/linux/i386/fchownat.c 2006-02-23 14:50:21.000000000 -0800
+++ glibc-2.4/sysdeps/unix/sysv/linux/i386/fchownat.c 2006-08-18 20:38:21.773288795 -0700
@@ -61,6 +61,24 @@
int
fchownat (int fd, const char *file, uid_t owner, gid_t group, int flag)
{
+ int result;
+
+#ifdef __NR_fchownat
+# ifndef __ASSUME_ATFCTS
+ if (__have_atfcts >= 0)
+# endif
+ {
+ result = INLINE_SYSCALL (fchownat, 5, fd, file, owner, group, flag);
+# ifndef __ASSUME_ATFCTS
+ if (result == -1 && errno == ENOSYS)
+ __have_atfcts = -1;
+ else
+# endif
+ return result;
+ }
+#endif
+
+#ifndef __ASSUME_ATFCTS
if (flag & ~AT_SYMLINK_NOFOLLOW)
{
__set_errno (EINVAL);
@@ -87,14 +105,13 @@
file = buf;
}
- int result;
INTERNAL_SYSCALL_DECL (err);
-#if defined __NR_lchown || __ASSUME_LCHOWN_SYSCALL > 0
-# if __ASSUME_LCHOWN_SYSCALL == 0
+# if defined __NR_lchown || __ASSUME_LCHOWN_SYSCALL > 0
+# if __ASSUME_LCHOWN_SYSCALL == 0
static int __libc_old_chown;
-# ifdef __NR_chown32
+# ifdef __NR_chown32
if (__libc_missing_32bit_uids <= 0)
{
if (flag & AT_SYMLINK_NOFOLLOW)
@@ -111,7 +128,7 @@
__libc_missing_32bit_uids = 1;
}
-# endif /* __NR_chown32 */
+# endif /* __NR_chown32 */
if (((owner + 1) > (uid_t) ((__kernel_uid_t) -1U))
|| ((group + 1) > (gid_t) ((__kernel_gid_t) -1U)))
@@ -135,13 +152,13 @@
result = INTERNAL_SYSCALL (lchown, err, 3, CHECK_STRING (file), owner,
group);
-# elif __ASSUME_32BITUIDS
+# elif __ASSUME_32BITUIDS
/* This implies __ASSUME_LCHOWN_SYSCALL. */
result = INTERNAL_SYSCALL (chown32, err, 3, CHECK_STRING (file), owner,
group);
-# else
+# else
/* !__ASSUME_32BITUIDS && ASSUME_LCHOWN_SYSCALL */
-# ifdef __NR_chown32
+# ifdef __NR_chown32
if (__libc_missing_32bit_uids <= 0)
{
result = INTERNAL_SYSCALL (chown32, err, 3, CHECK_STRING (file), owner,
@@ -153,7 +170,7 @@
__libc_missing_32bit_uids = 1;
}
-# endif /* __NR_chown32 */
+# endif /* __NR_chown32 */
if (((owner + 1) > (uid_t) ((__kernel_uid_t) -1U))
|| ((group + 1) > (gid_t) ((__kernel_gid_t) -1U)))
{
@@ -162,10 +179,10 @@
}
result = INTERNAL_SYSCALL (chown, err, 3, CHECK_STRING (file), owner, group);
-# endif
-#else
+# endif
+# else
result = INTERNAL_SYSCALL (chown, err, 3, CHECK_STRING (file), owner, group);
-#endif
+# endif
if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0))
goto fail;
@@ -175,4 +192,5 @@
fail:
__atfct_seterrno (INTERNAL_SYSCALL_ERRNO (result, err), fd, buf);
return -1;
+#endif
}
diff -Naur glibc-2.4.orig/sysdeps/unix/sysv/linux/openat.c glibc-2.4/sysdeps/unix/sysv/linux/openat.c
--- glibc-2.4.orig/sysdeps/unix/sysv/linux/openat.c 2006-02-28 21:32:42.000000000 -0800
+++ glibc-2.4/sysdeps/unix/sysv/linux/openat.c 2006-08-18 20:39:14.360012706 -0700
@@ -29,8 +29,6 @@
#if !defined OPENAT && !defined __ASSUME_ATFCTS
-# define OPENAT openat
-
/* Set errno after a failed call. If BUF is not null,
it is a /proc/self/fd/ path name we just tried to use. */
void
@@ -63,6 +61,9 @@
int __have_atfcts;
#endif
+#ifndef OPENAT
+# define OPENAT openat
+#endif
#define OPENAT_NOT_CANCEL CONCAT (OPENAT)
#define CONCAT(name) CONCAT2 (name)

View File

@@ -1,325 +0,0 @@
http://sources.redhat.com/ml/libc-ports/2006-10/msg00040.html
Avoid using asm/procinfo.h
* From: "Joseph S. Myers" <joseph at codesourcery dot com>
* To: libc-ports at sourceware dot org
* Date: Tue, 24 Oct 2006 19:25:12 +0000 (UTC)
* Subject: Avoid using asm/procinfo.h
I previously noted
<http://sourceware.org/ml/libc-ports/2006-08/msg00023.html> that the
use of <asm/procinfo.h>, a Linux-specific kernel header, in
sysdeps/arm/eabi, is an abstraction violation, and that in principle
all the files in sysdeps/arm/eabi should use sysdep.h not
asm/procinfo.h for HWCAP_VFP.
The ARM kernel maintainers have now declared that <asm/procinfo.h>
should not be used outside the kernel at all (and in particular that
headers_install is correct in not exporting it), and that these
definitions will move to a different kernel header. This gives a
concrete reason for making the change to use glibc's internal
definitions, which this patch does, thereby allowing glibc to build
with the exported headers.
2006-10-24 Joseph S. Myers <joseph@codesourcery.com>
* sysdeps/arm/eabi/fclrexcpt.c: Include <sysdep.h> instead of
<asm/procinfo.h>. Use HWCAP_ARM_VFP instead of HWCAP_VFP.
* sysdeps/arm/eabi/fedisblxcpt.c: Likewise.
* sysdeps/arm/eabi/feenablxcpt.c: Likewise.
* sysdeps/arm/eabi/fegetenv.c: Likewise.
* sysdeps/arm/eabi/fegetexcept.c: Likewise.
* sysdeps/arm/eabi/fegetround.c: Likewise.
* sysdeps/arm/eabi/feholdexcpt.c: Likewise.
* sysdeps/arm/eabi/fesetenv.c: Likewise.
* sysdeps/arm/eabi/fesetround.c: Likewise.
* sysdeps/arm/eabi/fraiseexcpt.c: Likewise.
* sysdeps/arm/eabi/fsetexcptflg.c: Likewise.
* sysdeps/arm/eabi/ftestexcept.c: Likewise.
* sysdeps/arm/eabi/setfpucw.c: Likewise.
Index: libc/ports/sysdeps/arm/eabi/fclrexcpt.c
===================================================================
RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fclrexcpt.c,v
retrieving revision 1.1
diff -u -r1.1 fclrexcpt.c
--- libc/ports/sysdeps/arm/eabi/fclrexcpt.c 10 Oct 2005 15:29:32 -0000 1.1
+++ libc/ports/sysdeps/arm/eabi/fclrexcpt.c 24 Oct 2006 19:17:51 -0000
@@ -23,12 +23,12 @@
#include <unistd.h>
#include <ldsodefs.h>
#include <dl-procinfo.h>
-#include <asm/procinfo.h>
+#include <sysdep.h>
int
__feclearexcept (int excepts)
{
- if (GLRO (dl_hwcap) & HWCAP_VFP)
+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
{
unsigned long int temp;
Index: libc/ports/sysdeps/arm/eabi/fedisblxcpt.c
===================================================================
RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fedisblxcpt.c,v
retrieving revision 1.1
diff -u -r1.1 fedisblxcpt.c
--- libc/ports/sysdeps/arm/eabi/fedisblxcpt.c 10 Oct 2005 15:29:32 -0000 1.1
+++ libc/ports/sysdeps/arm/eabi/fedisblxcpt.c 24 Oct 2006 19:17:51 -0000
@@ -24,12 +24,12 @@
#include <unistd.h>
#include <ldsodefs.h>
#include <dl-procinfo.h>
-#include <asm/procinfo.h>
+#include <sysdep.h>
int
fedisableexcept (int excepts)
{
- if (GLRO (dl_hwcap) & HWCAP_VFP)
+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
{
unsigned long int new_exc, old_exc;
Index: libc/ports/sysdeps/arm/eabi/feenablxcpt.c
===================================================================
RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/feenablxcpt.c,v
retrieving revision 1.1
diff -u -r1.1 feenablxcpt.c
--- libc/ports/sysdeps/arm/eabi/feenablxcpt.c 10 Oct 2005 15:29:32 -0000 1.1
+++ libc/ports/sysdeps/arm/eabi/feenablxcpt.c 24 Oct 2006 19:17:51 -0000
@@ -24,12 +24,12 @@
#include <unistd.h>
#include <ldsodefs.h>
#include <dl-procinfo.h>
-#include <asm/procinfo.h>
+#include <sysdep.h>
int
feenableexcept (int excepts)
{
- if (GLRO (dl_hwcap) & HWCAP_VFP)
+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
{
unsigned long int new_exc, old_exc;
Index: libc/ports/sysdeps/arm/eabi/fegetenv.c
===================================================================
RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fegetenv.c,v
retrieving revision 1.1
diff -u -r1.1 fegetenv.c
--- libc/ports/sysdeps/arm/eabi/fegetenv.c 10 Oct 2005 15:29:32 -0000 1.1
+++ libc/ports/sysdeps/arm/eabi/fegetenv.c 24 Oct 2006 19:17:51 -0000
@@ -23,12 +23,12 @@
#include <unistd.h>
#include <ldsodefs.h>
#include <dl-procinfo.h>
-#include <asm/procinfo.h>
+#include <sysdep.h>
int
__fegetenv (fenv_t *envp)
{
- if (GLRO (dl_hwcap) & HWCAP_VFP)
+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
{
unsigned long int temp;
_FPU_GETCW (temp);
Index: libc/ports/sysdeps/arm/eabi/fegetexcept.c
===================================================================
RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fegetexcept.c,v
retrieving revision 1.1
diff -u -r1.1 fegetexcept.c
--- libc/ports/sysdeps/arm/eabi/fegetexcept.c 10 Oct 2005 15:29:32 -0000 1.1
+++ libc/ports/sysdeps/arm/eabi/fegetexcept.c 24 Oct 2006 19:17:51 -0000
@@ -24,12 +24,12 @@
#include <unistd.h>
#include <ldsodefs.h>
#include <dl-procinfo.h>
-#include <asm/procinfo.h>
+#include <sysdep.h>
int
fegetexcept (void)
{
- if (GLRO (dl_hwcap) & HWCAP_VFP)
+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
{
unsigned long temp;
Index: libc/ports/sysdeps/arm/eabi/fegetround.c
===================================================================
RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fegetround.c,v
retrieving revision 1.1
diff -u -r1.1 fegetround.c
--- libc/ports/sysdeps/arm/eabi/fegetround.c 10 Oct 2005 15:29:32 -0000 1.1
+++ libc/ports/sysdeps/arm/eabi/fegetround.c 24 Oct 2006 19:17:51 -0000
@@ -23,12 +23,12 @@
#include <unistd.h>
#include <ldsodefs.h>
#include <dl-procinfo.h>
-#include <asm/procinfo.h>
+#include <sysdep.h>
int
fegetround (void)
{
- if (GLRO (dl_hwcap) & HWCAP_VFP)
+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
{
unsigned int temp;
Index: libc/ports/sysdeps/arm/eabi/feholdexcpt.c
===================================================================
RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/feholdexcpt.c,v
retrieving revision 1.1
diff -u -r1.1 feholdexcpt.c
--- libc/ports/sysdeps/arm/eabi/feholdexcpt.c 10 Oct 2005 15:29:32 -0000 1.1
+++ libc/ports/sysdeps/arm/eabi/feholdexcpt.c 24 Oct 2006 19:17:51 -0000
@@ -23,12 +23,12 @@
#include <unistd.h>
#include <ldsodefs.h>
#include <dl-procinfo.h>
-#include <asm/procinfo.h>
+#include <sysdep.h>
int
feholdexcept (fenv_t *envp)
{
- if (GLRO (dl_hwcap) & HWCAP_VFP)
+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
{
unsigned long int temp;
Index: libc/ports/sysdeps/arm/eabi/fesetenv.c
===================================================================
RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fesetenv.c,v
retrieving revision 1.1
diff -u -r1.1 fesetenv.c
--- libc/ports/sysdeps/arm/eabi/fesetenv.c 10 Oct 2005 15:29:32 -0000 1.1
+++ libc/ports/sysdeps/arm/eabi/fesetenv.c 24 Oct 2006 19:17:51 -0000
@@ -23,12 +23,12 @@
#include <unistd.h>
#include <ldsodefs.h>
#include <dl-procinfo.h>
-#include <asm/procinfo.h>
+#include <sysdep.h>
int
__fesetenv (const fenv_t *envp)
{
- if (GLRO (dl_hwcap) & HWCAP_VFP)
+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
{
unsigned int temp;
Index: libc/ports/sysdeps/arm/eabi/fesetround.c
===================================================================
RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fesetround.c,v
retrieving revision 1.1
diff -u -r1.1 fesetround.c
--- libc/ports/sysdeps/arm/eabi/fesetround.c 10 Oct 2005 15:29:32 -0000 1.1
+++ libc/ports/sysdeps/arm/eabi/fesetround.c 24 Oct 2006 19:17:51 -0000
@@ -23,12 +23,12 @@
#include <unistd.h>
#include <ldsodefs.h>
#include <dl-procinfo.h>
-#include <asm/procinfo.h>
+#include <sysdep.h>
int
fesetround (int round)
{
- if (GLRO (dl_hwcap) & HWCAP_VFP)
+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
{
fpu_control_t temp;
Index: libc/ports/sysdeps/arm/eabi/fraiseexcpt.c
===================================================================
RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fraiseexcpt.c,v
retrieving revision 1.1
diff -u -r1.1 fraiseexcpt.c
--- libc/ports/sysdeps/arm/eabi/fraiseexcpt.c 10 Oct 2005 15:29:32 -0000 1.1
+++ libc/ports/sysdeps/arm/eabi/fraiseexcpt.c 24 Oct 2006 19:17:51 -0000
@@ -24,12 +24,12 @@
#include <unistd.h>
#include <ldsodefs.h>
#include <dl-procinfo.h>
-#include <asm/procinfo.h>
+#include <sysdep.h>
int
feraiseexcept (int excepts)
{
- if (GLRO (dl_hwcap) & HWCAP_VFP)
+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
{
int fpscr;
const float fp_zero = 0.0, fp_one = 1.0, fp_max = FLT_MAX,
Index: libc/ports/sysdeps/arm/eabi/fsetexcptflg.c
===================================================================
RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/fsetexcptflg.c,v
retrieving revision 1.1
diff -u -r1.1 fsetexcptflg.c
--- libc/ports/sysdeps/arm/eabi/fsetexcptflg.c 10 Oct 2005 15:29:32 -0000 1.1
+++ libc/ports/sysdeps/arm/eabi/fsetexcptflg.c 24 Oct 2006 19:17:51 -0000
@@ -24,12 +24,12 @@
#include <unistd.h>
#include <ldsodefs.h>
#include <dl-procinfo.h>
-#include <asm/procinfo.h>
+#include <sysdep.h>
int
__fesetexceptflag (const fexcept_t *flagp, int excepts)
{
- if (GLRO (dl_hwcap) & HWCAP_VFP)
+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
{
fexcept_t temp;
Index: libc/ports/sysdeps/arm/eabi/ftestexcept.c
===================================================================
RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/ftestexcept.c,v
retrieving revision 1.1
diff -u -r1.1 ftestexcept.c
--- libc/ports/sysdeps/arm/eabi/ftestexcept.c 10 Oct 2005 15:29:32 -0000 1.1
+++ libc/ports/sysdeps/arm/eabi/ftestexcept.c 24 Oct 2006 19:17:51 -0000
@@ -23,12 +23,12 @@
#include <unistd.h>
#include <ldsodefs.h>
#include <dl-procinfo.h>
-#include <asm/procinfo.h>
+#include <sysdep.h>
int
fetestexcept (int excepts)
{
- if (GLRO (dl_hwcap) & HWCAP_VFP)
+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
{
fexcept_t temp;
Index: libc/ports/sysdeps/arm/eabi/setfpucw.c
===================================================================
RCS file: /cvs/glibc/ports/sysdeps/arm/eabi/setfpucw.c,v
retrieving revision 1.1
diff -u -r1.1 setfpucw.c
--- libc/ports/sysdeps/arm/eabi/setfpucw.c 10 Oct 2005 15:29:32 -0000 1.1
+++ libc/ports/sysdeps/arm/eabi/setfpucw.c 24 Oct 2006 19:17:51 -0000
@@ -23,12 +23,12 @@
#include <unistd.h>
#include <ldsodefs.h>
#include <dl-procinfo.h>
-#include <asm/procinfo.h>
+#include <sysdep.h>
void
__setfpucw (fpu_control_t set)
{
- if (GLRO (dl_hwcap) & HWCAP_VFP)
+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
{
fpu_control_t cw;

View File

@@ -1,343 +0,0 @@
From libc-ports-return-550-listarch-libc-ports=sources dot redhat dot com at sourceware dot org Tue Oct 31 17:37:21 2006
Return-Path: <libc-ports-return-550-listarch-libc-ports=sources dot redhat dot com at sourceware dot org>
Delivered-To: listarch-libc-ports at sources dot redhat dot com
Received: (qmail 17273 invoked by alias); 31 Oct 2006 17:37:20 -0000
Received: (qmail 17262 invoked by uid 22791); 31 Oct 2006 17:37:19 -0000
X-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,TW_CP
X-Spam-Check-By: sourceware.org
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
Received: from drow by nevyn.them.org with local (Exim 4.54) id 1GexXw-0007Dj-30; Tue, 31 Oct 2006 12:37:08 -0500
Date: Tue, 31 Oct 2006 12:37:08 -0500
From: Daniel Jacobowitz <drow at false dot org>
To: Mike Frysinger <vapier at gentoo dot org>
Cc: libc-ports at sourceware dot org, Philip Balister <philip dot balister at gmail dot com>
Subject: Re: Problem with glibc-2.5 on ARM
Message-ID: <20061031173708.GJ20468@nevyn.them.org>
References: <499146270610241149ibe030e0nd9d6b177a95b346e@mail.gmail.com> <499146270610241254u7cadf63ej2edf05cedbc5266f@mail.gmail.com> <20061024195837.GA20181@nevyn.them.org> <200610291954.27022.vapier@gentoo.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <200610291954 dot 27022 dot vapier at gentoo dot org>
User-Agent: Mutt/1.5.13 (2006-08-11)
X-IsSubscribed: yes
Mailing-List: contact libc-ports-help at sourceware dot org; run by ezmlm
Precedence: bulk
List-Subscribe: <mailto:libc-ports-subscribe at sourceware dot org>
List-Post: <mailto:libc-ports at sourceware dot org>
List-Help: <mailto:libc-ports-help at sourceware dot org>, <http://sourceware dot org/lists dot html#faqs>
Sender: libc-ports-owner at sourceware dot org
Delivered-To: mailing list libc-ports at sourceware dot org
On Sun, Oct 29, 2006 at 07:54:25PM -0500, Mike Frysinger wrote:
> On Tuesday 24 October 2006 15:58, Daniel Jacobowitz wrote:
> > ARM is going to need a slightly different version of that file, I
> > guess.
>
> would declaring req with attribute packed not help ?
> -mike
Nope. "struct rtgenmsg" would still have size 4.
Philip, are you still at all interested in this for the old ABI?
I don't have time to test this patch right now, but I think it
will work.
--
Daniel Jacobowitz
CodeSourcery
2006-10-31 Daniel Jacobowitz <dan@codesourcery.com>
* sysdeps/unix/sysv/linux/arm/check_pf.c: New file.
* sysdeps/unix/sysv/linux/arm/eabi/check_pf.c: New file.
Index: sysdeps/unix/sysv/linux/arm/check_pf.c
===================================================================
RCS file: sysdeps/unix/sysv/linux/arm/check_pf.c
diff -N sysdeps/unix/sysv/linux/arm/check_pf.c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ sysdeps/unix/sysv/linux/arm/check_pf.c 31 Oct 2006 17:29:58 -0000
@@ -0,0 +1,274 @@
+/* Determine protocol families for which interfaces exist. ARM Linux version.
+ Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <assert.h>
+#include <errno.h>
+#include <ifaddrs.h>
+#include <netdb.h>
+#include <stddef.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+#include <sys/socket.h>
+
+#include <asm/types.h>
+#include <linux/netlink.h>
+#include <linux/rtnetlink.h>
+
+#include <not-cancel.h>
+#include <kernel-features.h>
+
+
+#ifndef IFA_F_TEMPORARY
+# define IFA_F_TEMPORARY IFA_F_SECONDARY
+#endif
+#ifndef IFA_F_HOMEADDRESS
+# define IFA_F_HOMEADDRESS 0
+#endif
+
+
+static int
+make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6,
+ struct in6addrinfo **in6ai, size_t *in6ailen)
+{
+ struct req
+ {
+ struct nlmsghdr nlh;
+ struct rtgenmsg g;
+ } req;
+ struct sockaddr_nl nladdr;
+
+ /* struct rtgenmsg consists of a single byte but the ARM ABI rounds
+ it up to a word. Clear the padding explicitly here. */
+ assert (sizeof (req.g) == 4);
+ memset (&req.g, '\0', sizeof (req.g));
+
+ req.nlh.nlmsg_len = sizeof (req);
+ req.nlh.nlmsg_type = RTM_GETADDR;
+ req.nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST;
+ req.nlh.nlmsg_pid = 0;
+ req.nlh.nlmsg_seq = time (NULL);
+ req.g.rtgen_family = AF_UNSPEC;
+
+ memset (&nladdr, '\0', sizeof (nladdr));
+ nladdr.nl_family = AF_NETLINK;
+
+ if (TEMP_FAILURE_RETRY (__sendto (fd, (void *) &req, sizeof (req), 0,
+ (struct sockaddr *) &nladdr,
+ sizeof (nladdr))) < 0)
+ return -1;
+
+ *seen_ipv4 = false;
+ *seen_ipv6 = false;
+
+ bool done = false;
+ char buf[4096];
+ struct iovec iov = { buf, sizeof (buf) };
+ struct in6ailist
+ {
+ struct in6addrinfo info;
+ struct in6ailist *next;
+ } *in6ailist = NULL;
+ size_t in6ailistlen = 0;
+
+ do
+ {
+ struct msghdr msg =
+ {
+ (void *) &nladdr, sizeof (nladdr),
+ &iov, 1,
+ NULL, 0,
+ 0
+ };
+
+ ssize_t read_len = TEMP_FAILURE_RETRY (__recvmsg (fd, &msg, 0));
+ if (read_len < 0)
+ return -1;
+
+ if (msg.msg_flags & MSG_TRUNC)
+ return -1;
+
+ struct nlmsghdr *nlmh;
+ for (nlmh = (struct nlmsghdr *) buf;
+ NLMSG_OK (nlmh, (size_t) read_len);
+ nlmh = (struct nlmsghdr *) NLMSG_NEXT (nlmh, read_len))
+ {
+ if (nladdr.nl_pid != 0 || (pid_t) nlmh->nlmsg_pid != pid
+ || nlmh->nlmsg_seq != req.nlh.nlmsg_seq)
+ continue;
+
+ if (nlmh->nlmsg_type == RTM_NEWADDR)
+ {
+ struct ifaddrmsg *ifam = (struct ifaddrmsg *) NLMSG_DATA (nlmh);
+
+ switch (ifam->ifa_family)
+ {
+ case AF_INET:
+ *seen_ipv4 = true;
+ break;
+ case AF_INET6:
+ *seen_ipv6 = true;
+
+ if (ifam->ifa_flags & (IFA_F_DEPRECATED
+ | IFA_F_TEMPORARY
+ | IFA_F_HOMEADDRESS))
+ {
+ struct rtattr *rta = IFA_RTA (ifam);
+ size_t len = (nlmh->nlmsg_len
+ - NLMSG_LENGTH (sizeof (*ifam)));
+ void *local = NULL;
+ void *address = NULL;
+ while (RTA_OK (rta, len))
+ {
+ switch (rta->rta_type)
+ {
+ case IFA_LOCAL:
+ local = RTA_DATA (rta);
+ break;
+
+ case IFA_ADDRESS:
+ address = RTA_DATA (rta);
+ break;
+ }
+
+ rta = RTA_NEXT (rta, len);
+ }
+
+ struct in6ailist *newp = alloca (sizeof (*newp));
+ newp->info.flags = (((ifam->ifa_flags & IFA_F_DEPRECATED)
+ ? in6ai_deprecated : 0)
+ | ((ifam->ifa_flags
+ & IFA_F_TEMPORARY)
+ ? in6ai_temporary : 0)
+ | ((ifam->ifa_flags
+ & IFA_F_HOMEADDRESS)
+ ? in6ai_homeaddress : 0));
+ memcpy (newp->info.addr, address ?: local,
+ sizeof (newp->info.addr));
+ newp->next = in6ailist;
+ in6ailist = newp;
+ ++in6ailistlen;
+ }
+ break;
+ default:
+ /* Ignore. */
+ break;
+ }
+ }
+ else if (nlmh->nlmsg_type == NLMSG_DONE)
+ /* We found the end, leave the loop. */
+ done = true;
+ }
+ }
+ while (! done);
+
+ close_not_cancel_no_status (fd);
+
+ if (in6ailist != NULL)
+ {
+ *in6ai = malloc (in6ailistlen * sizeof (**in6ai));
+ if (*in6ai == NULL)
+ return -1;
+
+ *in6ailen = in6ailistlen;
+
+ do
+ {
+ (*in6ai)[--in6ailistlen] = in6ailist->info;
+ in6ailist = in6ailist->next;
+ }
+ while (in6ailist != NULL);
+ }
+
+ return 0;
+}
+
+
+/* We don't know if we have NETLINK support compiled in in our
+ Kernel. */
+#if __ASSUME_NETLINK_SUPPORT == 0
+/* Define in ifaddrs.h. */
+extern int __no_netlink_support attribute_hidden;
+#else
+# define __no_netlink_support 0
+#endif
+
+
+void
+attribute_hidden
+__check_pf (bool *seen_ipv4, bool *seen_ipv6,
+ struct in6addrinfo **in6ai, size_t *in6ailen)
+{
+ *in6ai = NULL;
+ *in6ailen = 0;
+
+ if (! __no_netlink_support)
+ {
+ int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
+
+ struct sockaddr_nl nladdr;
+ memset (&nladdr, '\0', sizeof (nladdr));
+ nladdr.nl_family = AF_NETLINK;
+
+ socklen_t addr_len = sizeof (nladdr);
+
+ if (fd >= 0
+ && __bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0
+ && __getsockname (fd, (struct sockaddr *) &nladdr, &addr_len) == 0
+ && make_request (fd, nladdr.nl_pid, seen_ipv4, seen_ipv6,
+ in6ai, in6ailen) == 0)
+ /* It worked. */
+ return;
+
+ if (fd >= 0)
+ __close (fd);
+
+#if __ASSUME_NETLINK_SUPPORT == 0
+ /* Remember that there is no netlink support. */
+ __no_netlink_support = 1;
+#else
+ /* We cannot determine what interfaces are available. Be
+ pessimistic. */
+ *seen_ipv4 = true;
+ *seen_ipv6 = true;
+#endif
+ }
+
+#if __ASSUME_NETLINK_SUPPORT == 0
+ /* No netlink. Get the interface list via getifaddrs. */
+ struct ifaddrs *ifa = NULL;
+ if (getifaddrs (&ifa) != 0)
+ {
+ /* We cannot determine what interfaces are available. Be
+ pessimistic. */
+ *seen_ipv4 = true;
+ *seen_ipv6 = true;
+ return;
+ }
+
+ struct ifaddrs *runp;
+ for (runp = ifa; runp != NULL; runp = runp->ifa_next)
+ if (runp->ifa_addr->sa_family == PF_INET)
+ *seen_ipv4 = true;
+ else if (runp->ifa_addr->sa_family == PF_INET6)
+ *seen_ipv6 = true;
+
+ (void) freeifaddrs (ifa);
+#endif
+}
Index: sysdeps/unix/sysv/linux/arm/eabi/check_pf.c
===================================================================
RCS file: sysdeps/unix/sysv/linux/arm/eabi/check_pf.c
diff -N sysdeps/unix/sysv/linux/arm/eabi/check_pf.c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ sysdeps/unix/sysv/linux/arm/eabi/check_pf.c 31 Oct 2006 17:29:58 -0000
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/check_pf.c>

View File

@@ -1,54 +0,0 @@
With the -nostdinc that we get --with-headers, we need to pull in GCC
4.3's include-fixed subdir too, because that's what contains limits.h
and syslimits.h now.
for ChangeLog
2008-01-30 Alexandre Oliva <aoliva@redhat.com>
* configure.in (SYSINCLUDES): Add GCC's include-fixed after include.
* configure: Rebuilt.
Index: configure
===================================================================
--- configure.orig 2008-01-30 15:40:55.000000000 -0200
+++ configure 2008-01-31 03:24:36.000000000 -0200
@@ -5066,7 +5066,12 @@ echo "$as_me: WARNING:
# thing on a system that doesn't need fixincludes. (Not presently a problem.)
if test -n "$sysheaders"; then
ccheaders=`$CC -print-file-name=include`
- SYSINCLUDES="-nostdinc -isystem $ccheaders \
+ if test -d "${ccheaders}-fixed"; then
+ fixedccheaders="-isystem ${ccheaders}-fixed"
+ else
+ fixedccheaders=
+ fi
+ SYSINCLUDES="-nostdinc -isystem $ccheaders $fixedccheaders \
-isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
if test -n "$CXX"; then
cxxversion=`$CXX -dumpversion 2>&5` &&
Index: configure.in
===================================================================
--- configure.in.orig 2008-01-30 15:40:55.000000000 -0200
+++ configure.in 2008-01-31 03:24:30.000000000 -0200
@@ -915,7 +915,12 @@ test -n "$aux_missing" && AC_MSG_WARN([
# thing on a system that doesn't need fixincludes. (Not presently a problem.)
if test -n "$sysheaders"; then
ccheaders=`$CC -print-file-name=include`
- SYSINCLUDES="-nostdinc -isystem $ccheaders \
+ if test -d "${ccheaders}-fixed"; then
+ fixedccheaders="-isystem ${ccheaders}-fixed"
+ else
+ fixedccheaders=
+ fi
+ SYSINCLUDES="-nostdinc -isystem $ccheaders $fixedccheaders \
-isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
if test -n "$CXX"; then
cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
--
Alexandre Oliva http://www.lsd.ic.unicamp.br/~oliva/
FSF Latin America Board Member http://www.fsfla.org/
Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}

View File

@@ -1,11 +0,0 @@
--- glibc-2.5/elf/ldd.bash.in.org 2006-04-30 16:06:20.000000000 +0000
+++ glibc-2.5/elf/ldd.bash.in 2007-03-30 19:18:57.000000000 +0000
@@ -110,7 +110,7 @@
# environments where the executed program might not have permissions
# to write to the console/tty. But only bash 3.x supports the pipefail
# option, and we don't bother to handle the case for older bash versions.
-if set -o pipefail 2> /dev/null; then
+if false; then
try_trace() {
eval $add_env '"$@"' | cat
}

View File

@@ -1,18 +0,0 @@
This patch moves ld.so.cache from /etc to /var/run. This is for devices
where /etc is JFFS2 or CRAMFS but /var is a ramdisk.
#
# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
#
--- libc/sysdeps/generic/dl-cache.h~ldsocache-varrun
+++ libc/sysdeps/generic/dl-cache.h
@@ -29,7 +29,7 @@
#endif
#ifndef LD_SO_CACHE
-# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache"
+# define LD_SO_CACHE "/var/run/ld.so.cache"
#endif
#ifndef add_system_dir

View File

@@ -1,34 +0,0 @@
---
bits/stdio-lock.h | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
--- glibc-2.7.orig/bits/stdio-lock.h
+++ glibc-2.7/bits/stdio-lock.h
@@ -45,14 +45,23 @@ __libc_lock_define_recursive (typedef, _
#define _IO_cleanup_region_end(_doit) \
__libc_cleanup_region_end (_doit)
#if defined _LIBC && !defined NOT_IN_libc
# define _IO_acquire_lock(_fp) \
- _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp)); \
- _IO_flockfile (_fp)
+ { \
+ _IO_FILE *_IO_acquire_lock_file = _fp; \
+ __libc_cleanup_region_start (1, (void (*) (void *)) _IO_acquire_lock_fct, &_IO_acquire_lock_file); \
+ _IO_flockfile (_IO_acquire_lock_file)
+
+# define _IO_acquire_lock_clear_flags2(_fp) \
+ { \
+ _IO_FILE *_IO_acquire_lock_file = _fp; \
+ __libc_cleanup_region_start (1, (void (*) (void *)) _IO_acquire_lock_clear_flags2_fct, &_IO_acquire_lock_file); \
+ _IO_flockfile (_IO_acquire_lock_file)
# define _IO_release_lock(_fp) \
- _IO_funlockfile (_fp); \
- _IO_cleanup_region_end (0)
+ __libc_cleanup_region_end (1); \
+ }
+
#endif
#endif /* bits/stdio-lock.h */

View File

@@ -1,9 +0,0 @@
Create a configparms file which disabled no-z-defs.
This is required to build a working glibs for sh4,
without there will be a lot linker errors during the build.
diff -duNr libc.orig/configparms libc/configparms
--- libc.orig/configparms 1970-01-01 10:00:00.000000000 +1000
+++ libc/configparms 2006-02-23 14:08:18.000000000 +1100
@@ -0,0 +1 @@
+no-z-defs=yes

View File

@@ -1,26 +0,0 @@
--- glibc-2.4/nptl/sysdeps/pthread/configure.in.ark 2006-03-12 00:41:40.000000000 +0100
+++ glibc-2.4/nptl/sysdeps/pthread/configure.in 2006-03-12 00:44:08.000000000 +0100
@@ -45,5 +45,6 @@
AC_MSG_ERROR([the compiler must support C cleanup handling])
fi
else
- AC_MSG_ERROR(forced unwind support is required)
+ AC_MSG_WARN([forced unwind support is required, can't be verified while crosscompiling])
+ AC_DEFINE(HAVE_FORCED_UNWIND)
fi
--- glibc-2.4/nptl/sysdeps/pthread/configure.ark 2006-03-12 00:42:47.000000000 +0100
+++ glibc-2.4/nptl/sysdeps/pthread/configure 2006-03-12 00:44:08.000000000 +0100
@@ -153,7 +153,10 @@
{ (exit 1); exit 1; }; }
fi
else
- { { echo "$as_me:$LINENO: error: forced unwind support is required" >&5
-echo "$as_me: error: forced unwind support is required" >&2;}
- { (exit 1); exit 1; }; }
+ { echo "$as_me:$LINENO: WARNING: forced unwind support is required, can't be verified while crosscompiling" >&5
+echo "$as_me: WARNING: forced unwind support is required, can't be verified while crosscompiling" >&2;}
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_FORCED_UNWIND 1
+_ACEOF
+
fi

View File

@@ -1,25 +0,0 @@
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
--- ../glibc-initial-2.5-r4/glibc-2.5/sysdeps/powerpc/fpu/e_sqrt.c 2006-04-14 07:44:30.000000000 +0200
+++ glibc-2.5/sysdeps/powerpc/fpu/e_sqrt.c 2006-12-08 12:53:32.202227000 +0100
@@ -25,6 +25,9 @@
#include <sysdep.h>
#include <ldsodefs.h>
+#define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0)
+
+
static const double almost_half = 0.5000000000000001; /* 0.5 + 2^-53 */
static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };
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
--- ../glibc-initial-2.5-r4/glibc-2.5/sysdeps/powerpc/fpu/e_sqrtf.c 2006-04-14 07:44:30.000000000 +0200
+++ glibc-2.5/sysdeps/powerpc/fpu/e_sqrtf.c 2006-12-08 12:53:36.992227000 +0100
@@ -25,6 +25,8 @@
#include <sysdep.h>
#include <ldsodefs.h>
+#define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0)
+
static const float almost_half = 0.50000006; /* 0.5 + 2^-24 */
static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 };
static const ieee_float_shape_type a_inf = {.word = 0x7f800000 };

View File

@@ -1,149 +0,0 @@
Index: glibc-2.4/configure
===================================================================
--- glibc-2.4.orig/configure 2006-03-06 12:18:56.000000000 +0100
+++ glibc-2.4/configure 2006-08-06 14:10:51.000000000 +0200
@@ -5488,6 +5488,95 @@
fi
fi
+### XXXX copy and pasted
+# Check for readelf
+# Extract the first word of "$target_alias-readelf", so it can be a program name with args.
+set dummy $target_alias-readelf; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_READELF+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$READELF"; then
+ ac_cv_prog_READELF="$READELF" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_READELF="$target_alias-readelf"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+READELF=$ac_cv_prog_READELF
+if test -n "$READELF"; then
+ { echo "$as_me:$LINENO: result: $READELF" >&5
+echo "${ECHO_T}$READELF" >&6; }
+else
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+if test -z "$ac_cv_prog_READELF"; then
+ if test "$build" = "$target"; then
+ ac_ct_READELF=$READELF
+ # Extract the first word of "readelf", so it can be a program name with args.
+set dummy readelf; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_READELF+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_READELF"; then
+ ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_READELF="readelf"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_prog_ac_ct_READELF" && ac_cv_prog_ac_ct_READELF="readelf"
+fi
+fi
+ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
+if test -n "$ac_ct_READELF"; then
+ { echo "$as_me:$LINENO: result: $ac_ct_READELF" >&5
+echo "${ECHO_T}$ac_ct_READELF" >&6; }
+else
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+ READELF=ac_ct_READELF
+ else
+ READELF="readelf"
+ fi
+else
+ READELF="$ac_cv_prog_READELF"
+fi
+
+### XXXX copy and pasted
+
echo "$as_me:$LINENO: checking for .preinit_array/.init_array/.fini_array support" >&5
echo $ECHO_N "checking for .preinit_array/.init_array/.fini_array support... $ECHO_C" >&6
if test "${libc_cv_initfini_array+set}" = set; then
@@ -5507,7 +5596,7 @@
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }
then
- if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
+ if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then
libc_cv_initfini_array=yes
else
libc_cv_initfini_array=no
@@ -5801,7 +5890,7 @@
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }
then
- if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
+ if $READELF -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
libc_cv_z_combreloc=yes
else
libc_cv_z_combreloc=no
Index: glibc-2.4/configure.in
===================================================================
--- glibc-2.4.orig/configure.in 2006-03-01 10:17:40.000000000 +0100
+++ glibc-2.4/configure.in 2006-08-06 14:09:31.000000000 +0200
@@ -1350,6 +1350,8 @@
fi
fi
+ AC_CHECK_TARGET_TOOL([READELF],[readelf],[readelf],[$PATH])
+
AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
libc_cv_initfini_array, [dnl
cat > conftest.c <<EOF
@@ -1361,7 +1363,7 @@
if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
-static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
then
- if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
+ if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then
libc_cv_initfini_array=yes
else
libc_cv_initfini_array=no
@@ -1543,7 +1545,7 @@
dnl introducing new options this is not easily doable. Instead use a tool
dnl which always is cross-platform: readelf. To detect whether -z combreloc
dnl look for a section named .rel.dyn.
- if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
+ if $READELF -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
libc_cv_z_combreloc=yes
else
libc_cv_z_combreloc=no

View File

@@ -1,14 +0,0 @@
Index: glibc-2.9/ports/sysdeps/unix/sysv/linux/arm/check_pf.c
===================================================================
--- glibc-2.9.orig/ports/sysdeps/unix/sysv/linux/arm/check_pf.c 2009-06-19 20:45:32.451372131 +0400
+++ glibc-2.9/ports/sysdeps/unix/sysv/linux/arm/check_pf.c 2009-06-19 20:45:51.351313426 +0400
@@ -207,9 +207,6 @@
newp->info.flags = (((ifam->ifa_flags & IFA_F_DEPRECATED)
? in6ai_deprecated : 0)
| ((ifam->ifa_flags
- & IFA_F_TEMPORARY)
- ? in6ai_temporary : 0)
- | ((ifam->ifa_flags
& IFA_F_HOMEADDRESS)
? in6ai_homeaddress : 0));
memcpy (newp->info.addr, address ?: local,

View File

@@ -1,58 +0,0 @@
--- glibc-2.4/stdlib/longlong.h.ark 2006-03-11 22:49:27.000000000 +0100
+++ glibc-2.4/stdlib/longlong.h 2006-03-11 22:55:12.000000000 +0100
@@ -206,6 +206,14 @@
"rI" ((USItype) (bh)), \
"r" ((USItype) (al)), \
"rI" ((USItype) (bl)) __CLOBBER_CC)
+/* v3m and all higher arches have long multiply support. */
+#if !defined(__ARM_ARCH_2__) && !defined(__ARM_ARCH_3__)
+#define umul_ppmm(xh, xl, a, b) \
+ __asm__ ("umull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
+#define UMUL_TIME 5
+#define smul_ppmm(xh, xl, a, b) \
+ __asm__ ("smull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
+#else
#define umul_ppmm(xh, xl, a, b) \
{register USItype __t0, __t1, __t2; \
__asm__ ("%@ Inlined umul_ppmm\n" \
@@ -227,7 +235,13 @@
: "r" ((USItype) (a)), \
"r" ((USItype) (b)) __CLOBBER_CC );}
#define UMUL_TIME 20
+#endif
#define UDIV_TIME 100
+#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
+#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X))
+#define COUNT_LEADING_ZEROS_0 32
+#endif
+
#endif /* __arm__ */
#if defined (__hppa) && W_TYPE_SIZE == 32
--- glibc-2.4/ports/sysdeps/arm/mp_clz_tab.c.ark 2006-03-11 22:56:43.000000000 +0100
+++ glibc-2.4/ports/sysdeps/arm/mp_clz_tab.c 2006-03-11 22:58:19.000000000 +0100
@@ -0,0 +1,24 @@
+/* __clz_tab -- support for longlong.h
+ Copyright (C) 2004 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
+/* Nothing required. */
+#else
+#include <stdlib/mp_clz_tab.c>
+#endif

View File

@@ -1,12 +0,0 @@
Index: glibc-2.9/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
===================================================================
--- glibc-2.9.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h 2009-06-19 20:54:35.446686910 +0400
+++ glibc-2.9/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h 2009-06-19 20:54:43.774683370 +0400
@@ -25,6 +25,7 @@
#include <atomic.h>
#include <sysdep.h>
#include <kernel-features.h>
+#include <tls.h>
#define FUTEX_WAIT 0
#define FUTEX_WAKE 1

View File

@@ -1,758 +0,0 @@
--- /dev/null 2004-02-02 20:32:13.000000000 +0000
+++ sysdeps/arm/memmove.S 2004-03-20 18:37:23.000000000 +0000
@@ -0,0 +1,251 @@
+/*
+ * Optimized memmove implementation for ARM processors
+ *
+ * Author: Nicolas Pitre
+ * Created: Dec 23, 2003
+ * Copyright: (C) MontaVista Software, Inc.
+ *
+ * This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ */
+
+#include <sysdep.h>
+
+
+/*
+ * Endian independent macros for shifting bytes within registers.
+ */
+#ifndef __ARMEB__
+#define pull lsr
+#define push lsl
+#else
+#define pull lsl
+#define push lsr
+#endif
+
+/*
+ * Enable data preload for architectures that support it (ARMv5 and above)
+ */
+#if defined(__ARM_ARCH_5__) || \
+ defined(__ARM_ARCH_5T__) || \
+ defined(__ARM_ARCH_5TE__)
+#define PLD(code...) code
+#else
+#define PLD(code...)
+#endif
+
+
+/* char * memmove (char *dst, const char *src) */
+ENTRY(memmove)
+ subs ip, r0, r1
+ cmphi r2, ip
+ bls memcpy(PLT)
+
+ stmfd sp!, {r0, r4, lr}
+ add r1, r1, r2
+ add r0, r0, r2
+ subs r2, r2, #4
+ blt 25f
+ ands ip, r0, #3
+ PLD( pld [r1, #-4] )
+ bne 26f
+ ands ip, r1, #3
+ bne 27f
+
+19: subs r2, r2, #4
+ blt 24f
+ subs r2, r2, #8
+ blt 23f
+ subs r2, r2, #16
+ blt 22f
+
+ PLD( pld [r1, #-32] )
+ PLD( subs r2, r2, #96 )
+ stmfd sp!, {r5 - r8}
+ PLD( blt 21f )
+
+ PLD( @ cache alignment )
+ PLD( ands ip, r1, #31 )
+ PLD( pld [r1, #-64] )
+ PLD( beq 20f )
+ PLD( cmp r2, ip )
+ PLD( pld [r1, #-96] )
+ PLD( blt 20f )
+ PLD( cmp ip, #16 )
+ PLD( sub r2, r2, ip )
+ PLD( ldmgedb r1!, {r3 - r6} )
+ PLD( stmgedb r0!, {r3 - r6} )
+ PLD( beq 20f )
+ PLD( and ip, ip, #15 )
+ PLD( cmp ip, #8 )
+ PLD( ldr r3, [r1, #-4]! )
+ PLD( ldrge r4, [r1, #-4]! )
+ PLD( ldrgt r5, [r1, #-4]! )
+ PLD( str r3, [r0, #-4]! )
+ PLD( strge r4, [r0, #-4]! )
+ PLD( strgt r5, [r0, #-4]! )
+
+20: PLD( pld [r1, #-96] )
+ PLD( pld [r1, #-128] )
+21: ldmdb r1!, {r3, r4, ip, lr}
+ subs r2, r2, #32
+ stmdb r0!, {r3, r4, ip, lr}
+ ldmdb r1!, {r3, r4, ip, lr}
+ stmgedb r0!, {r3, r4, ip, lr}
+ ldmgedb r1!, {r3, r4, ip, lr}
+ stmgedb r0!, {r3, r4, ip, lr}
+ ldmgedb r1!, {r3, r4, ip, lr}
+ subges r2, r2, #32
+ stmdb r0!, {r3, r4, ip, lr}
+ bge 20b
+ PLD( cmn r2, #96 )
+ PLD( bge 21b )
+ PLD( add r2, r2, #96 )
+ tst r2, #31
+ ldmfd sp!, {r5 - r8}
+ ldmeqfd sp!, {r0, r4, pc}
+
+ tst r2, #16
+22: ldmnedb r1!, {r3, r4, ip, lr}
+ stmnedb r0!, {r3, r4, ip, lr}
+
+ tst r2, #8
+23: ldmnedb r1!, {r3, r4}
+ stmnedb r0!, {r3, r4}
+
+ tst r2, #4
+24: ldrne r3, [r1, #-4]!
+ strne r3, [r0, #-4]!
+
+25: ands r2, r2, #3
+ ldmeqfd sp!, {r0, r4, pc}
+
+ cmp r2, #2
+ ldrb r3, [r1, #-1]
+ ldrgeb r4, [r1, #-2]
+ ldrgtb ip, [r1, #-3]
+ strb r3, [r0, #-1]
+ strgeb r4, [r0, #-2]
+ strgtb ip, [r0, #-3]
+ ldmfd sp!, {r0, r4, pc}
+
+26: cmp ip, #2
+ ldrb r3, [r1, #-1]!
+ ldrgeb r4, [r1, #-1]!
+ ldrgtb lr, [r1, #-1]!
+ strb r3, [r0, #-1]!
+ strgeb r4, [r0, #-1]!
+ strgtb lr, [r0, #-1]!
+ subs r2, r2, ip
+ blt 25b
+ ands ip, r1, #3
+ beq 19b
+
+27: bic r1, r1, #3
+ cmp ip, #2
+ ldr r3, [r1]
+ beq 35f
+ blt 36f
+
+
+ .macro backward_copy_shift push pull
+
+ cmp r2, #12
+ PLD( pld [r1, #-4] )
+ blt 33f
+ subs r2, r2, #28
+ stmfd sp!, {r5 - r9}
+ blt 31f
+
+ PLD( subs r2, r2, #96 )
+ PLD( pld [r1, #-32] )
+ PLD( blt 30f )
+ PLD( pld [r1, #-64] )
+
+ PLD( @ cache alignment )
+ PLD( ands ip, r1, #31 )
+ PLD( pld [r1, #-96] )
+ PLD( beq 29f )
+ PLD( cmp r2, ip )
+ PLD( pld [r1, #-128] )
+ PLD( blt 29f )
+ PLD( sub r2, r2, ip )
+28: PLD( mov r4, r3, push #\push )
+ PLD( ldr r3, [r1, #-4]! )
+ PLD( subs ip, ip, #4 )
+ PLD( orr r4, r4, r3, pull #\pull )
+ PLD( str r4, [r0, #-4]! )
+ PLD( bgt 28b )
+
+29: PLD( pld [r1, #-128] )
+30: mov lr, r3, push #\push
+ ldmdb r1!, {r3 - r9, ip}
+ subs r2, r2, #32
+ orr lr, lr, ip, pull #\pull
+ mov ip, ip, push #\push
+ orr ip, ip, r9, pull #\pull
+ mov r9, r9, push #\push
+ orr r9, r9, r8, pull #\pull
+ mov r8, r8, push #\push
+ orr r8, r8, r7, pull #\pull
+ mov r7, r7, push #\push
+ orr r7, r7, r6, pull #\pull
+ mov r6, r6, push #\push
+ orr r6, r6, r5, pull #\pull
+ mov r5, r5, push #\push
+ orr r5, r5, r4, pull #\pull
+ mov r4, r4, push #\push
+ orr r4, r4, r3, pull #\pull
+ stmdb r0!, {r4 - r9, ip, lr}
+ bge 29b
+ PLD( cmn r2, #96 )
+ PLD( bge 30b )
+ PLD( add r2, r2, #96 )
+ cmn r2, #16
+ blt 32f
+31: mov r7, r3, push #\push
+ ldmdb r1!, {r3 - r6}
+ sub r2, r2, #16
+ orr r7, r7, r6, pull #\pull
+ mov r6, r6, push #\push
+ orr r6, r6, r5, pull #\pull
+ mov r5, r5, push #\push
+ orr r5, r5, r4, pull #\pull
+ mov r4, r4, push #\push
+ orr r4, r4, r3, pull #\pull
+ stmdb r0!, {r4 - r7}
+32: adds r2, r2, #28
+ ldmfd sp!, {r5 - r9}
+ blt 34f
+33: mov r4, r3, push #\push
+ ldr r3, [r1, #-4]!
+ subs r2, r2, #4
+ orr r4, r4, r3, pull #\pull
+ str r4, [r0, #-4]!
+ bge 33b
+34:
+ .endm
+
+
+ backward_copy_shift push=8 pull=24
+ add r1, r1, #3
+ b 25b
+
+35: backward_copy_shift push=16 pull=16
+ add r1, r1, #2
+ b 25b
+
+36: backward_copy_shift push=24 pull=8
+ add r1, r1, #1
+ b 25b
+
+ .size memmove, . - memmove
+END(memmove)
+libc_hidden_builtin_def (memmove)
--- /dev/null 2004-02-02 20:32:13.000000000 +0000
+++ sysdeps/arm/bcopy.S 2004-03-20 18:37:48.000000000 +0000
@@ -0,0 +1,255 @@
+/*
+ * Optimized memmove implementation for ARM processors
+ *
+ * Author: Nicolas Pitre
+ * Created: Dec 23, 2003
+ * Copyright: (C) MontaVista Software, Inc.
+ *
+ * This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ */
+
+#include <sysdep.h>
+
+
+/*
+ * Endian independent macros for shifting bytes within registers.
+ */
+#ifndef __ARMEB__
+#define pull lsr
+#define push lsl
+#else
+#define pull lsl
+#define push lsr
+#endif
+
+/*
+ * Enable data preload for architectures that support it (ARMv5 and above)
+ */
+#if defined(__ARM_ARCH_5__) || \
+ defined(__ARM_ARCH_5T__) || \
+ defined(__ARM_ARCH_5TE__)
+#define PLD(code...) code
+#else
+#define PLD(code...)
+#endif
+
+dst .req r1
+src .req r0
+
+/* void *bcopy (const char *src, char *dst, size_t size) */
+ENTRY(bcopy)
+ subs ip, dst, src
+ cmphi r2, ip
+ movls r3, r0
+ movls r0, r1
+ movls r1, r3
+ bls memcpy(PLT)
+
+ stmfd sp!, {r4, lr}
+ add src, src, r2
+ add dst, dst, r2
+ subs r2, r2, #4
+ blt 25f
+ ands ip, dst, #3
+ PLD( pld [src, #-4] )
+ bne 26f
+ ands ip, src, #3
+ bne 27f
+
+19: subs r2, r2, #4
+ blt 24f
+ subs r2, r2, #8
+ blt 23f
+ subs r2, r2, #16
+ blt 22f
+
+ PLD( pld [src, #-32] )
+ PLD( subs r2, r2, #96 )
+ stmfd sp!, {r5 - r8}
+ PLD( blt 21f )
+
+ PLD( @ cache alignment )
+ PLD( ands ip, src, #31 )
+ PLD( pld [src, #-64] )
+ PLD( beq 20f )
+ PLD( cmp r2, ip )
+ PLD( pld [src, #-96] )
+ PLD( blt 20f )
+ PLD( cmp ip, #16 )
+ PLD( sub r2, r2, ip )
+ PLD( ldmgedb src!, {r3 - r6} )
+ PLD( stmgedb dst!, {r3 - r6} )
+ PLD( beq 20f )
+ PLD( and ip, ip, #15 )
+ PLD( cmp ip, #8 )
+ PLD( ldr r3, [src, #-4]! )
+ PLD( ldrge r4, [src, #-4]! )
+ PLD( ldrgt r5, [src, #-4]! )
+ PLD( str r3, [dst, #-4]! )
+ PLD( strge r4, [dst, #-4]! )
+ PLD( strgt r5, [dst, #-4]! )
+
+20: PLD( pld [src, #-96] )
+ PLD( pld [src, #-128] )
+21: ldmdb src!, {r3, r4, ip, lr}
+ subs r2, r2, #32
+ stmdb dst!, {r3, r4, ip, lr}
+ ldmdb src!, {r3, r4, ip, lr}
+ stmgedb dst!, {r3, r4, ip, lr}
+ ldmgedb src!, {r3, r4, ip, lr}
+ stmgedb dst!, {r3, r4, ip, lr}
+ ldmgedb src!, {r3, r4, ip, lr}
+ subges r2, r2, #32
+ stmdb dst!, {r3, r4, ip, lr}
+ bge 20b
+ PLD( cmn r2, #96 )
+ PLD( bge 21b )
+ PLD( add r2, r2, #96 )
+ tst r2, #31
+ ldmfd sp!, {r5 - r8}
+ ldmeqfd sp!, {r4, pc}
+
+ tst r2, #16
+22: ldmnedb src!, {r3, r4, ip, lr}
+ stmnedb dst!, {r3, r4, ip, lr}
+
+ tst r2, #8
+23: ldmnedb src!, {r3, r4}
+ stmnedb dst!, {r3, r4}
+
+ tst r2, #4
+24: ldrne r3, [src, #-4]!
+ strne r3, [dst, #-4]!
+
+25: ands r2, r2, #3
+ ldmeqfd sp!, {dst, r4, pc}
+
+ cmp r2, #2
+ ldrb r3, [src, #-1]
+ ldrgeb r4, [src, #-2]
+ ldrgtb ip, [src, #-3]
+ strb r3, [dst, #-1]
+ strgeb r4, [dst, #-2]
+ strgtb ip, [dst, #-3]
+ ldmfd sp!, {dst, r4, pc}
+
+26: cmp ip, #2
+ ldrb r3, [src, #-1]!
+ ldrgeb r4, [src, #-1]!
+ ldrgtb lr, [src, #-1]!
+ strb r3, [dst, #-1]!
+ strgeb r4, [dst, #-1]!
+ strgtb lr, [dst, #-1]!
+ subs r2, r2, ip
+ blt 25b
+ ands ip, src, #3
+ beq 19b
+
+27: bic src, src, #3
+ cmp ip, #2
+ ldr r3, [src]
+ beq 35f
+ blt 36f
+
+
+ .macro backward_copy_shift push pull
+
+ cmp r2, #12
+ PLD( pld [src, #-4] )
+ blt 33f
+ subs r2, r2, #28
+ stmfd sp!, {r5 - r9}
+ blt 31f
+
+ PLD( subs r2, r2, #96 )
+ PLD( pld [src, #-32] )
+ PLD( blt 30f )
+ PLD( pld [src, #-64] )
+
+ PLD( @ cache alignment )
+ PLD( ands ip, src, #31 )
+ PLD( pld [src, #-96] )
+ PLD( beq 29f )
+ PLD( cmp r2, ip )
+ PLD( pld [src, #-128] )
+ PLD( blt 29f )
+ PLD( sub r2, r2, ip )
+28: PLD( mov r4, r3, push #\push )
+ PLD( ldr r3, [src, #-4]! )
+ PLD( subs ip, ip, #4 )
+ PLD( orr r4, r4, r3, pull #\pull )
+ PLD( str r4, [dst, #-4]! )
+ PLD( bgt 28b )
+
+29: PLD( pld [src, #-128] )
+30: mov lr, r3, push #\push
+ ldmdb src!, {r3 - r9, ip}
+ subs r2, r2, #32
+ orr lr, lr, ip, pull #\pull
+ mov ip, ip, push #\push
+ orr ip, ip, r9, pull #\pull
+ mov r9, r9, push #\push
+ orr r9, r9, r8, pull #\pull
+ mov r8, r8, push #\push
+ orr r8, r8, r7, pull #\pull
+ mov r7, r7, push #\push
+ orr r7, r7, r6, pull #\pull
+ mov r6, r6, push #\push
+ orr r6, r6, r5, pull #\pull
+ mov r5, r5, push #\push
+ orr r5, r5, r4, pull #\pull
+ mov r4, r4, push #\push
+ orr r4, r4, r3, pull #\pull
+ stmdb dst!, {r4 - r9, ip, lr}
+ bge 29b
+ PLD( cmn r2, #96 )
+ PLD( bge 30b )
+ PLD( add r2, r2, #96 )
+ cmn r2, #16
+ blt 32f
+31: mov r7, r3, push #\push
+ ldmdb src!, {r3 - r6}
+ sub r2, r2, #16
+ orr r7, r7, r6, pull #\pull
+ mov r6, r6, push #\push
+ orr r6, r6, r5, pull #\pull
+ mov r5, r5, push #\push
+ orr r5, r5, r4, pull #\pull
+ mov r4, r4, push #\push
+ orr r4, r4, r3, pull #\pull
+ stmdb dst!, {r4 - r7}
+32: adds r2, r2, #28
+ ldmfd sp!, {r5 - r9}
+ blt 34f
+33: mov r4, r3, push #\push
+ ldr r3, [src, #-4]!
+ subs r2, r2, #4
+ orr r4, r4, r3, pull #\pull
+ str r4, [dst, #-4]!
+ bge 33b
+34:
+ .endm
+
+
+ backward_copy_shift push=8 pull=24
+ add src, src, #3
+ b 25b
+
+35: backward_copy_shift push=16 pull=16
+ add src, src, #2
+ b 25b
+
+36: backward_copy_shift push=24 pull=8
+ add src, src, #1
+ b 25b
+
+ .size bcopy, . - bcopy
+END(bcopy)
--- /dev/null 2004-02-02 20:32:13.000000000 +0000
+++ sysdeps/arm/memcpy.S 2004-05-02 14:33:22.000000000 +0100
@@ -0,0 +1,242 @@
+/*
+ * Optimized memcpy implementation for ARM processors
+ *
+ * Author: Nicolas Pitre
+ * Created: Dec 23, 2003
+ * Copyright: (C) MontaVista Software, Inc.
+ *
+ * This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ */
+
+#include <sysdep.h>
+
+
+/*
+ * Endian independent macros for shifting bytes within registers.
+ */
+#ifndef __ARMEB__
+#define pull lsr
+#define push lsl
+#else
+#define pull lsl
+#define push lsr
+#endif
+
+/*
+ * Enable data preload for architectures that support it (ARMv5 and above)
+ */
+#if defined(__ARM_ARCH_5__) || \
+ defined(__ARM_ARCH_5T__) || \
+ defined(__ARM_ARCH_5TE__)
+#define PLD(code...) code
+#else
+#define PLD(code...)
+#endif
+
+
+/* char * memcpy (char *dst, const char *src) */
+
+ENTRY(memcpy)
+ subs r2, r2, #4
+ stmfd sp!, {r0, r4, lr}
+ blt 7f
+ ands ip, r0, #3
+ PLD( pld [r1, #0] )
+ bne 8f
+ ands ip, r1, #3
+ bne 9f
+
+1: subs r2, r2, #4
+ blt 6f
+ subs r2, r2, #8
+ blt 5f
+ subs r2, r2, #16
+ blt 4f
+
+ PLD( subs r2, r2, #65 )
+ stmfd sp!, {r5 - r8}
+ PLD( blt 3f )
+ PLD( pld [r1, #32] )
+
+ PLD( @ cache alignment )
+ PLD( ands ip, r1, #31 )
+ PLD( pld [r1, #64] )
+ PLD( beq 2f )
+ PLD( rsb ip, ip, #32 )
+ PLD( cmp r2, ip )
+ PLD( pld [r1, #96] )
+ PLD( blt 2f )
+ PLD( cmp ip, #16 )
+ PLD( sub r2, r2, ip )
+ PLD( ldmgeia r1!, {r3 - r6} )
+ PLD( stmgeia r0!, {r3 - r6} )
+ PLD( beq 2f )
+ PLD( and ip, ip, #15 )
+ PLD( cmp ip, #8 )
+ PLD( ldr r3, [r1], #4 )
+ PLD( ldrge r4, [r1], #4 )
+ PLD( ldrgt r5, [r1], #4 )
+ PLD( str r3, [r0], #4 )
+ PLD( strge r4, [r0], #4 )
+ PLD( strgt r5, [r0], #4 )
+
+2: PLD( pld [r1, #96] )
+3: ldmia r1!, {r3 - r8, ip, lr}
+ subs r2, r2, #32
+ stmia r0!, {r3 - r8, ip, lr}
+ bge 2b
+ PLD( cmn r2, #65 )
+ PLD( bge 3b )
+ PLD( add r2, r2, #65 )
+ tst r2, #31
+ ldmfd sp!, {r5 - r8}
+ ldmeqfd sp!, {r0, r4, pc}
+
+ tst r2, #16
+4: ldmneia r1!, {r3, r4, ip, lr}
+ stmneia r0!, {r3, r4, ip, lr}
+
+ tst r2, #8
+5: ldmneia r1!, {r3, r4}
+ stmneia r0!, {r3, r4}
+
+ tst r2, #4
+6: ldrne r3, [r1], #4
+ strne r3, [r0], #4
+
+7: ands r2, r2, #3
+ ldmeqfd sp!, {r0, r4, pc}
+
+ cmp r2, #2
+ ldrb r3, [r1], #1
+ ldrgeb r4, [r1], #1
+ ldrgtb ip, [r1]
+ strb r3, [r0], #1
+ strgeb r4, [r0], #1
+ strgtb ip, [r0]
+ ldmfd sp!, {r0, r4, pc}
+
+8: rsb ip, ip, #4
+ cmp ip, #2
+ ldrb r3, [r1], #1
+ ldrgeb r4, [r1], #1
+ ldrgtb lr, [r1], #1
+ strb r3, [r0], #1
+ strgeb r4, [r0], #1
+ strgtb lr, [r0], #1
+ subs r2, r2, ip
+ blt 7b
+ ands ip, r1, #3
+ beq 1b
+
+9: bic r1, r1, #3
+ cmp ip, #2
+ ldr lr, [r1], #4
+ beq 17f
+ bgt 18f
+
+
+ .macro forward_copy_shift pull push
+
+ cmp r2, #12
+ PLD( pld [r1, #0] )
+ blt 15f
+ subs r2, r2, #28
+ stmfd sp!, {r5 - r9}
+ blt 13f
+
+ PLD( subs r2, r2, #97 )
+ PLD( blt 12f )
+ PLD( pld [r1, #32] )
+
+ PLD( @ cache alignment )
+ PLD( rsb ip, r1, #36 )
+ PLD( pld [r1, #64] )
+ PLD( ands ip, ip, #31 )
+ PLD( pld [r1, #96] )
+ PLD( beq 11f )
+ PLD( cmp r2, ip )
+ PLD( pld [r1, #128] )
+ PLD( blt 11f )
+ PLD( sub r2, r2, ip )
+10: PLD( mov r3, lr, pull #\pull )
+ PLD( ldr lr, [r1], #4 )
+ PLD( subs ip, ip, #4 )
+ PLD( orr r3, r3, lr, push #\push )
+ PLD( str r3, [r0], #4 )
+ PLD( bgt 10b )
+
+11: PLD( pld [r1, #128] )
+12: mov r3, lr, pull #\pull
+ ldmia r1!, {r4 - r9, ip, lr}
+ subs r2, r2, #32
+ orr r3, r3, r4, push #\push
+ mov r4, r4, pull #\pull
+ orr r4, r4, r5, push #\push
+ mov r5, r5, pull #\pull
+ orr r5, r5, r6, push #\push
+ mov r6, r6, pull #\pull
+ orr r6, r6, r7, push #\push
+ mov r7, r7, pull #\pull
+ orr r7, r7, r8, push #\push
+ mov r8, r8, pull #\pull
+ orr r8, r8, r9, push #\push
+ mov r9, r9, pull #\pull
+ orr r9, r9, ip, push #\push
+ mov ip, ip, pull #\pull
+ orr ip, ip, lr, push #\push
+ stmia r0!, {r3 - r9, ip}
+ bge 11b
+ PLD( cmn r2, #97 )
+ PLD( bge 12b )
+ PLD( add r2, r2, #97 )
+ cmn r2, #16
+ blt 14f
+13: mov r3, lr, pull #\pull
+ ldmia r1!, {r4 - r6, lr}
+ sub r2, r2, #16
+ orr r3, r3, r4, push #\push
+ mov r4, r4, pull #\pull
+ orr r4, r4, r5, push #\push
+ mov r5, r5, pull #\pull
+ orr r5, r5, r6, push #\push
+ mov r6, r6, pull #\pull
+ orr r6, r6, lr, push #\push
+ stmia r0!, {r3 - r6}
+14: adds r2, r2, #28
+ ldmfd sp!, {r5 - r9}
+ blt 16f
+15: mov r3, lr, pull #\pull
+ ldr lr, [r1], #4
+ subs r2, r2, #4
+ orr r3, r3, lr, push #\push
+ str r3, [r0], #4
+ bge 15b
+16:
+ .endm
+
+
+ forward_copy_shift pull=8 push=24
+ sub r1, r1, #3
+ b 7b
+
+17: forward_copy_shift pull=16 push=16
+ sub r1, r1, #2
+ b 7b
+
+18: forward_copy_shift pull=24 push=8
+ sub r1, r1, #1
+ b 7b
+
+ .size memcpy, . - memcpy
+END(memcpy)
+libc_hidden_builtin_def (memcpy)
+

View File

@@ -1,10 +0,0 @@
--- glibc-2.4/elf/Versions.ark 2006-03-11 23:30:09.000000000 +0100
+++ glibc-2.4/elf/Versions 2006-03-11 23:31:44.000000000 +0100
@@ -63,5 +63,7 @@
_dl_debug_state;
# Pointer protection.
__pointer_chk_guard;
+ # for ldconfig
+ _dl_cache_libcmp;
}
}

View File

@@ -1,35 +0,0 @@
--- glibc-2.9.orig/configure.in 2009-10-22 15:38:13.000000000 +0200
+++ glibc-2.9/configure.in 2009-10-22 15:37:33.000000000 +0200
@@ -844,10 +844,10 @@
# Accept binutils 2.13 or newer.
AC_CHECK_PROG_VER(AS, $AS, --version,
[GNU assembler.* \([0-9]*\.[0-9.]*\)],
- [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
+ [2.1[3-9]* | 2.2* ], AS=: critic_missing="$critic_missing as")
AC_CHECK_PROG_VER(LD, $LD, --version,
[GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
- [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
+ [2.1[3-9]* | 2.2* ], LD=: critic_missing="$critic_missing ld")
# We need the physical current working directory. We cannot use the
# "pwd -P" shell builtin since that's not portable. Instead we try to
--- glibc-2.9.orig/configure 2009-02-26 22:28:17.000000000 +0100
+++ glibc-2.9/configure 2009-10-22 15:43:11.000000000 +0200
@@ -4531,7 +4531,7 @@
ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 2.1[3-9]*)
+ 2.1[3-9]* | 2.2*)
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
@@ -4594,7 +4594,7 @@
ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 2.1[3-9]*)
+ 2.1[3-9]* | 2.2*)
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;

View File

@@ -1,28 +0,0 @@
From 7c8a67320e26b8c11108bf0a3410d3aef9cf3486 Mon Sep 17 00:00:00 2001
From: Ulrich Drepper <drepper@redhat.com>
Date: Sat, 31 Jan 2009 00:21:15 +0000
Subject: [PATCH] * elf/Makefile (ld.so): Adjust the sed script to insert _begin in to newer linker scripts.
---
diff --git a/elf/Makefile b/elf/Makefile
index 8079fe9..e44ff1d 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1995-2007, 2008 Free Software Foundation, Inc.
+# Copyright (C) 1995-2007, 2008, 2009 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -304,7 +304,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld-map)
$(LDFLAGS-rtld) -Wl,-z,defs -Wl,--verbose 2>&1 | \
LC_ALL=C \
sed -e '/^=========/,/^=========/!d;/^=========/d' \
- -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
+ -e 's/\. = .* + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
> $@.lds
$(LINK.o) -nostdlib -nostartfiles -shared -o $@ \
$(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now)) \
--
1.6.3.2

View File

@@ -1,13 +0,0 @@
Arm needs a similar fix as http://sourceware.org/ml/libc-ports/2007-12/msg00000.html
--- /tmp/stdio-lock.h 2008-03-04 18:51:15.555038993 +0100
+++ glibc-2.7/ports/sysdeps/unix/sysv/linux/arm/bits/stdio-lock.h 2008-03-04 18:51:28.445035052 +0100
@@ -50,6 +50,8 @@
_IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp)); \
_IO_flockfile (_fp)
+# define _IO_acquire_lock_clear_flags2(_fp) _IO_acquire_lock (_fp)
+
# define _IO_release_lock(_fp) \
_IO_funlockfile (_fp); \
_IO_cleanup_region_end (0)

View File

@@ -1,15 +0,0 @@
http://sourceware.org/ml/libc-ports/2008-04/msg00005.html
Index: glibc-2.6.1/ports/sysdeps/unix/sysv/linux/arm/ioperm.c
===================================================================
--- glibc-2.6.1.orig/ports/sysdeps/unix/sysv/linux/arm/ioperm.c 2008-09-12 18:08:18.000000000 -0700
+++ glibc-2.6.1/ports/sysdeps/unix/sysv/linux/arm/ioperm.c 2008-09-12 18:08:28.000000000 -0700
@@ -45,7 +45,6 @@
#include <sys/mman.h>
#include <linux/version.h>
-#include <asm/page.h>
#include <sys/sysctl.h>
#define PATH_ARM_SYSTYPE "/etc/arm_systype"

View File

@@ -1,12 +0,0 @@
--- glibc-2.7/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h.orig
+++ glibc-2.7/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
@@ -73,6 +73,9 @@
# define DOCARGS_5 DOCARGS_4
# define UNDOCARGS_5 UNDOCARGS_4
+# define DOCARGS_6 DOCARGS_5
+# define UNDOCARGS_6 UNDOCARGS_5
+
# ifdef IS_IN_libpthread
# define CENABLE bl PLTJMP(__pthread_enable_asynccancel)
# define CDISABLE bl PLTJMP(__pthread_disable_asynccancel)

View File

@@ -1,38 +0,0 @@
2007-02-15 Khem Raj <kraj@xxxxxxxxxx>
* sysdeps/unix/sysv/linux/i386/sysdep.h: Re-define __i686.
* nptl/sysdeps/pthread/pt-initfini.c: Ditto.
Index: sysdeps/unix/sysv/linux/i386/sysdep.h
===================================================================
--- sysdeps/unix/sysv/linux/i386/sysdep.h (revision 1469)
+++ sysdeps/unix/sysv/linux/i386/sysdep.h (working copy)
@@ -29,6 +29,10 @@
#include <dl-sysdep.h>
#include <tls.h>
+#if defined __i686 && defined __ASSEMBLER__
+#undef __i686
+#define __i686 __i686
+#endif
/* For Linux we can use the system call table in the header file
/usr/include/asm/unistd.h
Index: nptl/sysdeps/pthread/pt-initfini.c
===================================================================
--- nptl/sysdeps/pthread/pt-initfini.c (revision 1469)
+++ nptl/sysdeps/pthread/pt-initfini.c (working copy)
@@ -45,6 +45,11 @@
/* Embed an #include to pull in the alignment and .end directives. */
asm ("\n#include \"defs.h\"");
+asm ("\n#if defined __i686 && defined __ASSEMBLER__");
+asm ("\n#undef __i686");
+asm ("\n#define __i686 __i686");
+asm ("\n#endif");
+
/* The initial common code ends here. */
asm ("\n/*@HEADER_ENDS*/");

View File

@@ -1,39 +0,0 @@
--- nscd/nscd.init
+++ nscd/nscd.init
@@ -48,9 +48,8 @@
start () {
[ -d /var/run/nscd ] || mkdir /var/run/nscd
- [ -d /var/db/nscd ] || mkdir /var/db/nscd
echo -n $"Starting $prog: "
- daemon /usr/sbin/nscd
+ /usr/sbin/nscd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd
@@ -67,12 +66,10 @@
# a non-privileged user
rm -f /var/run/nscd/nscd.pid
rm -f /var/run/nscd/socket
- success $"$prog shutdown"
- else
- failure $"$prog shutdown"
fi
- echo
- return $RETVAL
+ echo "Done."
+ # If nscd did not run, return 0 according to LSB.
+ return 0
}
restart() {
@@ -104,7 +101,8 @@
;;
force-reload | reload)
echo -n $"Reloading $prog: "
- killproc /usr/sbin/nscd -HUP
+ # Use killall, initscripts-1.0-r115 don't support -HUP yet.
+ killall -HUP /usr/sbin/nscd
RETVAL=$?
echo
;;

View File

@@ -1,13 +0,0 @@
Index: glibc-2.9/Makerules
===================================================================
--- glibc-2.9.orig/Makerules 2009-09-14 16:39:21.000000000 +0100
+++ glibc-2.9/Makerules 2009-09-14 16:39:50.000000000 +0100
@@ -173,6 +173,8 @@
# it's used in sysd-rules, below.
$(common-objpfx)%.h $(common-objpfx)%.h.d: $(..)scripts/gen-as-const.awk \
%.sym $(common-before-compile)
+ rm -f $(@:.h=.h.d)
+ rm -f $(@:.h.d=.h)
$(AWK) -f $< $(filter %.sym,$^) \
| $(CC) -S -o $(@:.h.d=.h)T3 $(CFLAGS) $(CPPFLAGS) -x c - \
-MD -MP -MF $(@:.h=.h.d)T -MT '$(@:.h=.h.d) $(@:.h.d=.h)'

View File

@@ -1,14 +0,0 @@
Index: glibc-2.9/sysdeps/i386/dl-tlsdesc.S
===================================================================
--- glibc-2.9.orig/sysdeps/i386/dl-tlsdesc.S 2009-07-07 23:21:11.647664128 +0200
+++ glibc-2.9/sysdeps/i386/dl-tlsdesc.S 2009-07-07 23:21:32.802555992 +0200
@@ -128,8 +128,7 @@
.Lslow:
cfi_adjust_cfa_offset (28)
movl %ebx, 16(%esp)
- call __i686.get_pc_thunk.bx
- addl $_GLOBAL_OFFSET_TABLE_, %ebx
+ LOAD_PIC_REG (bx)
call ___tls_get_addr@PLT
movl 16(%esp), %ebx
jmp .Lret

View File

@@ -1,58 +0,0 @@
2005-05-09 Daniel Jacobowitz <dan@codesourcery.com>
Mark Mitchell <mark@codesourcery.com>
* sysdeps/generic/ldsodefs.h (struct audit_ifaces): Add ARM entries.
* elf/tst-auditmod1.c: Add ARM definitions.
Index: glibc/sysdeps/generic/ldsodefs.h
===================================================================
--- glibc.orig/sysdeps/generic/ldsodefs.h 2005-04-05 17:36:52.000000000 -0400
+++ glibc/sysdeps/generic/ldsodefs.h 2005-05-06 15:54:44.000000000 -0400
@@ -203,6 +203,8 @@ struct La_sparc32_regs;
struct La_sparc32_retval;
struct La_sparc64_regs;
struct La_sparc64_retval;
+struct La_arm_regs;
+struct La_arm_retval;
struct audit_ifaces
{
@@ -284,6 +286,10 @@ struct audit_ifaces
const struct La_sparc64_regs *,
unsigned int *, const char *name,
long int *framesizep);
+ Elf32_Addr (*arm_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *,
+ uintptr_t *, struct La_arm_regs *,
+ unsigned int *, const char *name,
+ long int *framesizep);
};
union
{
@@ -352,6 +358,9 @@ struct audit_ifaces
const struct La_sparc32_regs *,
struct La_sparc32_retval *,
const char *);
+ unsigned int (*arm_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *,
+ uintptr_t *, const struct La_arm_regs *,
+ struct La_arm_retval *, const char *);
};
unsigned int (*objclose) (uintptr_t *);
Index: glibc/elf/tst-auditmod1.c
===================================================================
--- glibc.orig/elf/tst-auditmod1.c 2005-04-05 17:36:53.000000000 -0400
+++ glibc/elf/tst-auditmod1.c 2005-05-06 15:53:28.000000000 -0400
@@ -192,6 +192,12 @@ la_symbind64 (Elf64_Sym *sym, unsigned i
# define La_regs La_sparc64_regs
# define La_retval La_sparc64_retval
# define int_retval lrv_reg[0]
+#elif __arm__
+# define pltenter la_arm_gnu_pltenter
+# define pltext la_arm_gnu_pltexit
+# define La_regs La_arm_regs
+# define La_retval La_arm_retval
+# define int_retval lrv_reg[0]
#else
# error "architecture specific code needed"
#endif

View File

@@ -1,18 +0,0 @@
Index: ports/sysdeps/arm/dl-machine.h
===================================================================
RCS file: /cvs/glibc/ports/sysdeps/arm/dl-machine.h,v
retrieving revision 1.53
diff -u -r1.53 dl-machine.h
--- libc/ports/sysdeps/arm/dl-machine.h 10 Jun 2005 11:33:52 -0000 1.53
+++ libc/ports/sysdeps/arm/dl-machine.h 11 Jun 2005 08:58:04 -0000
@@ -243,6 +243,10 @@
Prelinked libraries may use Elf32_Rela though. */
#define ELF_MACHINE_NO_RELA defined RTLD_BOOTSTRAP
+/* Names of the architecture-specific auditing callback functions. */
+#define ARCH_LA_PLTENTER arm_gnu_pltenter
+#define ARCH_LA_PLTEXIT arm_gnu_pltexit
+
#ifdef RESOLVE_MAP
/* Deal with an out-of-range PC24 reloc. */

View File

@@ -1,59 +0,0 @@
--- stdlib/longlong.h~ 2002-09-29 18:45:58.000000000 +0100
+++ stdlib/longlong.h 2004-03-20 19:16:44.000000000 +0000
@@ -210,6 +210,14 @@
"rI" ((USItype) (bh)), \
"r" ((USItype) (al)), \
"rI" ((USItype) (bl)))
+/* v3m and all higher arches have long multiply support. */
+#if !defined(__ARM_ARCH_2__) && !defined(__ARM_ARCH_3__)
+#define umul_ppmm(xh, xl, a, b) \
+ __asm__ ("umull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
+#define UMUL_TIME 5
+#define smul_ppmm(xh, xl, a, b) \
+ __asm__ ("smull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
+#else
#define umul_ppmm(xh, xl, a, b) \
{register USItype __t0, __t1, __t2; \
__asm__ ("%@ Inlined umul_ppmm\n" \
@@ -231,7 +239,14 @@
: "r" ((USItype) (a)), \
"r" ((USItype) (b)));}
#define UMUL_TIME 20
+#endif
#define UDIV_TIME 100
+
+#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
+#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X))
+#define COUNT_LEADING_ZEROS_0 32
+#endif
+
#endif /* __arm__ */
#if defined (__hppa) && W_TYPE_SIZE == 32
--- /dev/null 2004-02-02 20:32:13.000000000 +0000
+++ ports/sysdeps/arm/mp_clz_tab.c 2004-03-20 19:24:26.000000000 +0000
@@ -0,0 +1,24 @@
+/* __clz_tab -- support for longlong.h
+ Copyright (C) 2004 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
+/* Nothing required. */
+#else
+#include <sysdeps/generic/mp_clz_tab.c>
+#endif

View File

@@ -1,758 +0,0 @@
--- /dev/null 2004-02-02 20:32:13.000000000 +0000
+++ libc/ports/sysdeps/arm/memmove.S 2004-03-20 18:37:23.000000000 +0000
@@ -0,0 +1,251 @@
+/*
+ * Optimized memmove implementation for ARM processors
+ *
+ * Author: Nicolas Pitre
+ * Created: Dec 23, 2003
+ * Copyright: (C) MontaVista Software, Inc.
+ *
+ * This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ */
+
+#include <sysdep.h>
+
+
+/*
+ * Endian independent macros for shifting bytes within registers.
+ */
+#ifndef __ARMEB__
+#define pull lsr
+#define push lsl
+#else
+#define pull lsl
+#define push lsr
+#endif
+
+/*
+ * Enable data preload for architectures that support it (ARMv5 and above)
+ */
+#if defined(__ARM_ARCH_5__) || \
+ defined(__ARM_ARCH_5T__) || \
+ defined(__ARM_ARCH_5TE__)
+#define PLD(code...) code
+#else
+#define PLD(code...)
+#endif
+
+
+/* char * memmove (char *dst, const char *src) */
+ENTRY(memmove)
+ subs ip, r0, r1
+ cmphi r2, ip
+ bls memcpy(PLT)
+
+ stmfd sp!, {r0, r4, lr}
+ add r1, r1, r2
+ add r0, r0, r2
+ subs r2, r2, #4
+ blt 25f
+ ands ip, r0, #3
+ PLD( pld [r1, #-4] )
+ bne 26f
+ ands ip, r1, #3
+ bne 27f
+
+19: subs r2, r2, #4
+ blt 24f
+ subs r2, r2, #8
+ blt 23f
+ subs r2, r2, #16
+ blt 22f
+
+ PLD( pld [r1, #-32] )
+ PLD( subs r2, r2, #96 )
+ stmfd sp!, {r5 - r8}
+ PLD( blt 21f )
+
+ PLD( @ cache alignment )
+ PLD( ands ip, r1, #31 )
+ PLD( pld [r1, #-64] )
+ PLD( beq 20f )
+ PLD( cmp r2, ip )
+ PLD( pld [r1, #-96] )
+ PLD( blt 20f )
+ PLD( cmp ip, #16 )
+ PLD( sub r2, r2, ip )
+ PLD( ldmgedb r1!, {r3 - r6} )
+ PLD( stmgedb r0!, {r3 - r6} )
+ PLD( beq 20f )
+ PLD( and ip, ip, #15 )
+ PLD( cmp ip, #8 )
+ PLD( ldr r3, [r1, #-4]! )
+ PLD( ldrge r4, [r1, #-4]! )
+ PLD( ldrgt r5, [r1, #-4]! )
+ PLD( str r3, [r0, #-4]! )
+ PLD( strge r4, [r0, #-4]! )
+ PLD( strgt r5, [r0, #-4]! )
+
+20: PLD( pld [r1, #-96] )
+ PLD( pld [r1, #-128] )
+21: ldmdb r1!, {r3, r4, ip, lr}
+ subs r2, r2, #32
+ stmdb r0!, {r3, r4, ip, lr}
+ ldmdb r1!, {r3, r4, ip, lr}
+ stmgedb r0!, {r3, r4, ip, lr}
+ ldmgedb r1!, {r3, r4, ip, lr}
+ stmgedb r0!, {r3, r4, ip, lr}
+ ldmgedb r1!, {r3, r4, ip, lr}
+ subges r2, r2, #32
+ stmdb r0!, {r3, r4, ip, lr}
+ bge 20b
+ PLD( cmn r2, #96 )
+ PLD( bge 21b )
+ PLD( add r2, r2, #96 )
+ tst r2, #31
+ ldmfd sp!, {r5 - r8}
+ ldmeqfd sp!, {r0, r4, pc}
+
+ tst r2, #16
+22: ldmnedb r1!, {r3, r4, ip, lr}
+ stmnedb r0!, {r3, r4, ip, lr}
+
+ tst r2, #8
+23: ldmnedb r1!, {r3, r4}
+ stmnedb r0!, {r3, r4}
+
+ tst r2, #4
+24: ldrne r3, [r1, #-4]!
+ strne r3, [r0, #-4]!
+
+25: ands r2, r2, #3
+ ldmeqfd sp!, {r0, r4, pc}
+
+ cmp r2, #2
+ ldrb r3, [r1, #-1]
+ ldrgeb r4, [r1, #-2]
+ ldrgtb ip, [r1, #-3]
+ strb r3, [r0, #-1]
+ strgeb r4, [r0, #-2]
+ strgtb ip, [r0, #-3]
+ ldmfd sp!, {r0, r4, pc}
+
+26: cmp ip, #2
+ ldrb r3, [r1, #-1]!
+ ldrgeb r4, [r1, #-1]!
+ ldrgtb lr, [r1, #-1]!
+ strb r3, [r0, #-1]!
+ strgeb r4, [r0, #-1]!
+ strgtb lr, [r0, #-1]!
+ subs r2, r2, ip
+ blt 25b
+ ands ip, r1, #3
+ beq 19b
+
+27: bic r1, r1, #3
+ cmp ip, #2
+ ldr r3, [r1]
+ beq 35f
+ blt 36f
+
+
+ .macro backward_copy_shift push pull
+
+ cmp r2, #12
+ PLD( pld [r1, #-4] )
+ blt 33f
+ subs r2, r2, #28
+ stmfd sp!, {r5 - r9}
+ blt 31f
+
+ PLD( subs r2, r2, #96 )
+ PLD( pld [r1, #-32] )
+ PLD( blt 30f )
+ PLD( pld [r1, #-64] )
+
+ PLD( @ cache alignment )
+ PLD( ands ip, r1, #31 )
+ PLD( pld [r1, #-96] )
+ PLD( beq 29f )
+ PLD( cmp r2, ip )
+ PLD( pld [r1, #-128] )
+ PLD( blt 29f )
+ PLD( sub r2, r2, ip )
+28: PLD( mov r4, r3, push #\push )
+ PLD( ldr r3, [r1, #-4]! )
+ PLD( subs ip, ip, #4 )
+ PLD( orr r4, r4, r3, pull #\pull )
+ PLD( str r4, [r0, #-4]! )
+ PLD( bgt 28b )
+
+29: PLD( pld [r1, #-128] )
+30: mov lr, r3, push #\push
+ ldmdb r1!, {r3 - r9, ip}
+ subs r2, r2, #32
+ orr lr, lr, ip, pull #\pull
+ mov ip, ip, push #\push
+ orr ip, ip, r9, pull #\pull
+ mov r9, r9, push #\push
+ orr r9, r9, r8, pull #\pull
+ mov r8, r8, push #\push
+ orr r8, r8, r7, pull #\pull
+ mov r7, r7, push #\push
+ orr r7, r7, r6, pull #\pull
+ mov r6, r6, push #\push
+ orr r6, r6, r5, pull #\pull
+ mov r5, r5, push #\push
+ orr r5, r5, r4, pull #\pull
+ mov r4, r4, push #\push
+ orr r4, r4, r3, pull #\pull
+ stmdb r0!, {r4 - r9, ip, lr}
+ bge 29b
+ PLD( cmn r2, #96 )
+ PLD( bge 30b )
+ PLD( add r2, r2, #96 )
+ cmn r2, #16
+ blt 32f
+31: mov r7, r3, push #\push
+ ldmdb r1!, {r3 - r6}
+ sub r2, r2, #16
+ orr r7, r7, r6, pull #\pull
+ mov r6, r6, push #\push
+ orr r6, r6, r5, pull #\pull
+ mov r5, r5, push #\push
+ orr r5, r5, r4, pull #\pull
+ mov r4, r4, push #\push
+ orr r4, r4, r3, pull #\pull
+ stmdb r0!, {r4 - r7}
+32: adds r2, r2, #28
+ ldmfd sp!, {r5 - r9}
+ blt 34f
+33: mov r4, r3, push #\push
+ ldr r3, [r1, #-4]!
+ subs r2, r2, #4
+ orr r4, r4, r3, pull #\pull
+ str r4, [r0, #-4]!
+ bge 33b
+34:
+ .endm
+
+
+ backward_copy_shift push=8 pull=24
+ add r1, r1, #3
+ b 25b
+
+35: backward_copy_shift push=16 pull=16
+ add r1, r1, #2
+ b 25b
+
+36: backward_copy_shift push=24 pull=8
+ add r1, r1, #1
+ b 25b
+
+ .size memmove, . - memmove
+END(memmove)
+libc_hidden_builtin_def (memmove)
--- /dev/null 2004-02-02 20:32:13.000000000 +0000
+++ libc/ports/sysdeps/arm/bcopy.S 2004-03-20 18:37:48.000000000 +0000
@@ -0,0 +1,255 @@
+/*
+ * Optimized memmove implementation for ARM processors
+ *
+ * Author: Nicolas Pitre
+ * Created: Dec 23, 2003
+ * Copyright: (C) MontaVista Software, Inc.
+ *
+ * This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ */
+
+#include <sysdep.h>
+
+
+/*
+ * Endian independent macros for shifting bytes within registers.
+ */
+#ifndef __ARMEB__
+#define pull lsr
+#define push lsl
+#else
+#define pull lsl
+#define push lsr
+#endif
+
+/*
+ * Enable data preload for architectures that support it (ARMv5 and above)
+ */
+#if defined(__ARM_ARCH_5__) || \
+ defined(__ARM_ARCH_5T__) || \
+ defined(__ARM_ARCH_5TE__)
+#define PLD(code...) code
+#else
+#define PLD(code...)
+#endif
+
+dst .req r1
+src .req r0
+
+/* void *bcopy (const char *src, char *dst, size_t size) */
+ENTRY(bcopy)
+ subs ip, dst, src
+ cmphi r2, ip
+ movls r3, r0
+ movls r0, r1
+ movls r1, r3
+ bls memcpy(PLT)
+
+ stmfd sp!, {r4, lr}
+ add src, src, r2
+ add dst, dst, r2
+ subs r2, r2, #4
+ blt 25f
+ ands ip, dst, #3
+ PLD( pld [src, #-4] )
+ bne 26f
+ ands ip, src, #3
+ bne 27f
+
+19: subs r2, r2, #4
+ blt 24f
+ subs r2, r2, #8
+ blt 23f
+ subs r2, r2, #16
+ blt 22f
+
+ PLD( pld [src, #-32] )
+ PLD( subs r2, r2, #96 )
+ stmfd sp!, {r5 - r8}
+ PLD( blt 21f )
+
+ PLD( @ cache alignment )
+ PLD( ands ip, src, #31 )
+ PLD( pld [src, #-64] )
+ PLD( beq 20f )
+ PLD( cmp r2, ip )
+ PLD( pld [src, #-96] )
+ PLD( blt 20f )
+ PLD( cmp ip, #16 )
+ PLD( sub r2, r2, ip )
+ PLD( ldmgedb src!, {r3 - r6} )
+ PLD( stmgedb dst!, {r3 - r6} )
+ PLD( beq 20f )
+ PLD( and ip, ip, #15 )
+ PLD( cmp ip, #8 )
+ PLD( ldr r3, [src, #-4]! )
+ PLD( ldrge r4, [src, #-4]! )
+ PLD( ldrgt r5, [src, #-4]! )
+ PLD( str r3, [dst, #-4]! )
+ PLD( strge r4, [dst, #-4]! )
+ PLD( strgt r5, [dst, #-4]! )
+
+20: PLD( pld [src, #-96] )
+ PLD( pld [src, #-128] )
+21: ldmdb src!, {r3, r4, ip, lr}
+ subs r2, r2, #32
+ stmdb dst!, {r3, r4, ip, lr}
+ ldmdb src!, {r3, r4, ip, lr}
+ stmgedb dst!, {r3, r4, ip, lr}
+ ldmgedb src!, {r3, r4, ip, lr}
+ stmgedb dst!, {r3, r4, ip, lr}
+ ldmgedb src!, {r3, r4, ip, lr}
+ subges r2, r2, #32
+ stmdb dst!, {r3, r4, ip, lr}
+ bge 20b
+ PLD( cmn r2, #96 )
+ PLD( bge 21b )
+ PLD( add r2, r2, #96 )
+ tst r2, #31
+ ldmfd sp!, {r5 - r8}
+ ldmeqfd sp!, {r4, pc}
+
+ tst r2, #16
+22: ldmnedb src!, {r3, r4, ip, lr}
+ stmnedb dst!, {r3, r4, ip, lr}
+
+ tst r2, #8
+23: ldmnedb src!, {r3, r4}
+ stmnedb dst!, {r3, r4}
+
+ tst r2, #4
+24: ldrne r3, [src, #-4]!
+ strne r3, [dst, #-4]!
+
+25: ands r2, r2, #3
+ ldmeqfd sp!, {dst, r4, pc}
+
+ cmp r2, #2
+ ldrb r3, [src, #-1]
+ ldrgeb r4, [src, #-2]
+ ldrgtb ip, [src, #-3]
+ strb r3, [dst, #-1]
+ strgeb r4, [dst, #-2]
+ strgtb ip, [dst, #-3]
+ ldmfd sp!, {dst, r4, pc}
+
+26: cmp ip, #2
+ ldrb r3, [src, #-1]!
+ ldrgeb r4, [src, #-1]!
+ ldrgtb lr, [src, #-1]!
+ strb r3, [dst, #-1]!
+ strgeb r4, [dst, #-1]!
+ strgtb lr, [dst, #-1]!
+ subs r2, r2, ip
+ blt 25b
+ ands ip, src, #3
+ beq 19b
+
+27: bic src, src, #3
+ cmp ip, #2
+ ldr r3, [src]
+ beq 35f
+ blt 36f
+
+
+ .macro backward_copy_shift push pull
+
+ cmp r2, #12
+ PLD( pld [src, #-4] )
+ blt 33f
+ subs r2, r2, #28
+ stmfd sp!, {r5 - r9}
+ blt 31f
+
+ PLD( subs r2, r2, #96 )
+ PLD( pld [src, #-32] )
+ PLD( blt 30f )
+ PLD( pld [src, #-64] )
+
+ PLD( @ cache alignment )
+ PLD( ands ip, src, #31 )
+ PLD( pld [src, #-96] )
+ PLD( beq 29f )
+ PLD( cmp r2, ip )
+ PLD( pld [src, #-128] )
+ PLD( blt 29f )
+ PLD( sub r2, r2, ip )
+28: PLD( mov r4, r3, push #\push )
+ PLD( ldr r3, [src, #-4]! )
+ PLD( subs ip, ip, #4 )
+ PLD( orr r4, r4, r3, pull #\pull )
+ PLD( str r4, [dst, #-4]! )
+ PLD( bgt 28b )
+
+29: PLD( pld [src, #-128] )
+30: mov lr, r3, push #\push
+ ldmdb src!, {r3 - r9, ip}
+ subs r2, r2, #32
+ orr lr, lr, ip, pull #\pull
+ mov ip, ip, push #\push
+ orr ip, ip, r9, pull #\pull
+ mov r9, r9, push #\push
+ orr r9, r9, r8, pull #\pull
+ mov r8, r8, push #\push
+ orr r8, r8, r7, pull #\pull
+ mov r7, r7, push #\push
+ orr r7, r7, r6, pull #\pull
+ mov r6, r6, push #\push
+ orr r6, r6, r5, pull #\pull
+ mov r5, r5, push #\push
+ orr r5, r5, r4, pull #\pull
+ mov r4, r4, push #\push
+ orr r4, r4, r3, pull #\pull
+ stmdb dst!, {r4 - r9, ip, lr}
+ bge 29b
+ PLD( cmn r2, #96 )
+ PLD( bge 30b )
+ PLD( add r2, r2, #96 )
+ cmn r2, #16
+ blt 32f
+31: mov r7, r3, push #\push
+ ldmdb src!, {r3 - r6}
+ sub r2, r2, #16
+ orr r7, r7, r6, pull #\pull
+ mov r6, r6, push #\push
+ orr r6, r6, r5, pull #\pull
+ mov r5, r5, push #\push
+ orr r5, r5, r4, pull #\pull
+ mov r4, r4, push #\push
+ orr r4, r4, r3, pull #\pull
+ stmdb dst!, {r4 - r7}
+32: adds r2, r2, #28
+ ldmfd sp!, {r5 - r9}
+ blt 34f
+33: mov r4, r3, push #\push
+ ldr r3, [src, #-4]!
+ subs r2, r2, #4
+ orr r4, r4, r3, pull #\pull
+ str r4, [dst, #-4]!
+ bge 33b
+34:
+ .endm
+
+
+ backward_copy_shift push=8 pull=24
+ add src, src, #3
+ b 25b
+
+35: backward_copy_shift push=16 pull=16
+ add src, src, #2
+ b 25b
+
+36: backward_copy_shift push=24 pull=8
+ add src, src, #1
+ b 25b
+
+ .size bcopy, . - bcopy
+END(bcopy)
--- /dev/null 2004-02-02 20:32:13.000000000 +0000
+++ libc/ports/sysdeps/arm/memcpy.S 2004-05-02 14:33:22.000000000 +0100
@@ -0,0 +1,242 @@
+/*
+ * Optimized memcpy implementation for ARM processors
+ *
+ * Author: Nicolas Pitre
+ * Created: Dec 23, 2003
+ * Copyright: (C) MontaVista Software, Inc.
+ *
+ * This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ */
+
+#include <sysdep.h>
+
+
+/*
+ * Endian independent macros for shifting bytes within registers.
+ */
+#ifndef __ARMEB__
+#define pull lsr
+#define push lsl
+#else
+#define pull lsl
+#define push lsr
+#endif
+
+/*
+ * Enable data preload for architectures that support it (ARMv5 and above)
+ */
+#if defined(__ARM_ARCH_5__) || \
+ defined(__ARM_ARCH_5T__) || \
+ defined(__ARM_ARCH_5TE__)
+#define PLD(code...) code
+#else
+#define PLD(code...)
+#endif
+
+
+/* char * memcpy (char *dst, const char *src) */
+
+ENTRY(memcpy)
+ subs r2, r2, #4
+ stmfd sp!, {r0, r4, lr}
+ blt 7f
+ ands ip, r0, #3
+ PLD( pld [r1, #0] )
+ bne 8f
+ ands ip, r1, #3
+ bne 9f
+
+1: subs r2, r2, #4
+ blt 6f
+ subs r2, r2, #8
+ blt 5f
+ subs r2, r2, #16
+ blt 4f
+
+ PLD( subs r2, r2, #65 )
+ stmfd sp!, {r5 - r8}
+ PLD( blt 3f )
+ PLD( pld [r1, #32] )
+
+ PLD( @ cache alignment )
+ PLD( ands ip, r1, #31 )
+ PLD( pld [r1, #64] )
+ PLD( beq 2f )
+ PLD( rsb ip, ip, #32 )
+ PLD( cmp r2, ip )
+ PLD( pld [r1, #96] )
+ PLD( blt 2f )
+ PLD( cmp ip, #16 )
+ PLD( sub r2, r2, ip )
+ PLD( ldmgeia r1!, {r3 - r6} )
+ PLD( stmgeia r0!, {r3 - r6} )
+ PLD( beq 2f )
+ PLD( and ip, ip, #15 )
+ PLD( cmp ip, #8 )
+ PLD( ldr r3, [r1], #4 )
+ PLD( ldrge r4, [r1], #4 )
+ PLD( ldrgt r5, [r1], #4 )
+ PLD( str r3, [r0], #4 )
+ PLD( strge r4, [r0], #4 )
+ PLD( strgt r5, [r0], #4 )
+
+2: PLD( pld [r1, #96] )
+3: ldmia r1!, {r3 - r8, ip, lr}
+ subs r2, r2, #32
+ stmia r0!, {r3 - r8, ip, lr}
+ bge 2b
+ PLD( cmn r2, #65 )
+ PLD( bge 3b )
+ PLD( add r2, r2, #65 )
+ tst r2, #31
+ ldmfd sp!, {r5 - r8}
+ ldmeqfd sp!, {r0, r4, pc}
+
+ tst r2, #16
+4: ldmneia r1!, {r3, r4, ip, lr}
+ stmneia r0!, {r3, r4, ip, lr}
+
+ tst r2, #8
+5: ldmneia r1!, {r3, r4}
+ stmneia r0!, {r3, r4}
+
+ tst r2, #4
+6: ldrne r3, [r1], #4
+ strne r3, [r0], #4
+
+7: ands r2, r2, #3
+ ldmeqfd sp!, {r0, r4, pc}
+
+ cmp r2, #2
+ ldrb r3, [r1], #1
+ ldrgeb r4, [r1], #1
+ ldrgtb ip, [r1]
+ strb r3, [r0], #1
+ strgeb r4, [r0], #1
+ strgtb ip, [r0]
+ ldmfd sp!, {r0, r4, pc}
+
+8: rsb ip, ip, #4
+ cmp ip, #2
+ ldrb r3, [r1], #1
+ ldrgeb r4, [r1], #1
+ ldrgtb lr, [r1], #1
+ strb r3, [r0], #1
+ strgeb r4, [r0], #1
+ strgtb lr, [r0], #1
+ subs r2, r2, ip
+ blt 7b
+ ands ip, r1, #3
+ beq 1b
+
+9: bic r1, r1, #3
+ cmp ip, #2
+ ldr lr, [r1], #4
+ beq 17f
+ bgt 18f
+
+
+ .macro forward_copy_shift pull push
+
+ cmp r2, #12
+ PLD( pld [r1, #0] )
+ blt 15f
+ subs r2, r2, #28
+ stmfd sp!, {r5 - r9}
+ blt 13f
+
+ PLD( subs r2, r2, #97 )
+ PLD( blt 12f )
+ PLD( pld [r1, #32] )
+
+ PLD( @ cache alignment )
+ PLD( rsb ip, r1, #36 )
+ PLD( pld [r1, #64] )
+ PLD( ands ip, ip, #31 )
+ PLD( pld [r1, #96] )
+ PLD( beq 11f )
+ PLD( cmp r2, ip )
+ PLD( pld [r1, #128] )
+ PLD( blt 11f )
+ PLD( sub r2, r2, ip )
+10: PLD( mov r3, lr, pull #\pull )
+ PLD( ldr lr, [r1], #4 )
+ PLD( subs ip, ip, #4 )
+ PLD( orr r3, r3, lr, push #\push )
+ PLD( str r3, [r0], #4 )
+ PLD( bgt 10b )
+
+11: PLD( pld [r1, #128] )
+12: mov r3, lr, pull #\pull
+ ldmia r1!, {r4 - r9, ip, lr}
+ subs r2, r2, #32
+ orr r3, r3, r4, push #\push
+ mov r4, r4, pull #\pull
+ orr r4, r4, r5, push #\push
+ mov r5, r5, pull #\pull
+ orr r5, r5, r6, push #\push
+ mov r6, r6, pull #\pull
+ orr r6, r6, r7, push #\push
+ mov r7, r7, pull #\pull
+ orr r7, r7, r8, push #\push
+ mov r8, r8, pull #\pull
+ orr r8, r8, r9, push #\push
+ mov r9, r9, pull #\pull
+ orr r9, r9, ip, push #\push
+ mov ip, ip, pull #\pull
+ orr ip, ip, lr, push #\push
+ stmia r0!, {r3 - r9, ip}
+ bge 11b
+ PLD( cmn r2, #97 )
+ PLD( bge 12b )
+ PLD( add r2, r2, #97 )
+ cmn r2, #16
+ blt 14f
+13: mov r3, lr, pull #\pull
+ ldmia r1!, {r4 - r6, lr}
+ sub r2, r2, #16
+ orr r3, r3, r4, push #\push
+ mov r4, r4, pull #\pull
+ orr r4, r4, r5, push #\push
+ mov r5, r5, pull #\pull
+ orr r5, r5, r6, push #\push
+ mov r6, r6, pull #\pull
+ orr r6, r6, lr, push #\push
+ stmia r0!, {r3 - r6}
+14: adds r2, r2, #28
+ ldmfd sp!, {r5 - r9}
+ blt 16f
+15: mov r3, lr, pull #\pull
+ ldr lr, [r1], #4
+ subs r2, r2, #4
+ orr r3, r3, lr, push #\push
+ str r3, [r0], #4
+ bge 15b
+16:
+ .endm
+
+
+ forward_copy_shift pull=8 push=24
+ sub r1, r1, #3
+ b 7b
+
+17: forward_copy_shift pull=16 push=16
+ sub r1, r1, #2
+ b 7b
+
+18: forward_copy_shift pull=24 push=8
+ sub r1, r1, #1
+ b 7b
+
+ .size memcpy, . - memcpy
+END(memcpy)
+libc_hidden_builtin_def (memcpy)
+

View File

@@ -1,11 +0,0 @@
--- libc/ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h.orig 2005-12-11 14:49:51 +0100
+++ libc/ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h 2005-12-11 14:51:28 +0100
@@ -64,7 +64,7 @@
HWCAP_ARM_VFP = 1 << 6,
HWCAP_ARM_EDSP = 1 << 7,
- HWCAP_IMPORTANT = (HWCAP_ARM_HALF | HWCAP_ARM_FAST_MULT)
+ HWCAP_IMPORTANT = HWCAP_ARM_FAST_MULT
};
static inline int

View File

@@ -1,10 +0,0 @@
--- libc/elf/Versions.old 2005-06-27 13:38:25.000000000 +0100
+++ libc/elf/Versions 2005-06-27 14:03:54.000000000 +0100
@@ -56,5 +56,7 @@
_dl_make_stack_executable;
# Only here for gdb while a better method is developed.
_dl_debug_state;
+ # for ldconfig
+ _dl_cache_libcmp;
}
}

View File

@@ -1,22 +0,0 @@
#
# Patch managed by http://www.holgerschurig.de/patcher.html
#
--- libc/elf/Makefile~dyn-ldconfig-20041128
+++ libc/elf/Makefile
@@ -118,12 +118,13 @@
ifeq (yes,$(use-ldconfig))
ifeq (yes,$(build-shared))
-others-static += ldconfig
+#others-static += ldconfig
others += ldconfig
install-rootsbin += ldconfig
ldconfig-modules := cache readlib xmalloc xstrdup chroot_canon
extra-objs += $(ldconfig-modules:=.o)
+CPPFLAGS-readlib.c = -DNOT_IN_libc=1
# To find xmalloc.c and xstrdup.c
vpath %.c ../locale/programs

View File

@@ -1,16 +0,0 @@
Without this, do_compile fails, unable to find linux/errno.h
RP - 27/11/2007
Index: libc/nscd/Makefile
===================================================================
--- libc.orig/nscd/Makefile 2005-06-14 22:51:24.000000000 +0000
+++ libc/nscd/Makefile 2007-11-27 16:31:02.000000000 +0000
@@ -68,7 +68,6 @@
# contains only the basic kernel interface headers, not something like
# libselinux. So the simplest thing is to presume that the standard
# system headers will be ok for this file.
-$(objpfx)nscd_stat.o: sysincludes = # nothing
$(objpfx)selinux.o: sysincludes = # nothing
distribute := nscd.h nscd-client.h dbg_log.h \

View File

@@ -1,18 +0,0 @@
This patch moves ld.so.cache from /etc to /var/run. This is for devices
where /etc is JFFS2 or CRAMFS but /var is a ramdisk.
#
# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
#
--- libc/sysdeps/generic/dl-cache.h~ldsocache-varrun
+++ libc/sysdeps/generic/dl-cache.h
@@ -29,7 +29,7 @@
#endif
#ifndef LD_SO_CACHE
-# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache"
+# define LD_SO_CACHE "/var/run/ld.so.cache"
#endif
#ifndef add_system_dir

View File

@@ -1,2 +0,0 @@
require glibc_${PV}.bb
require glibc-initial.inc

View File

@@ -1,3 +0,0 @@
require glibc_${PV}.bb
require glibc-initial.inc

View File

@@ -1,6 +0,0 @@
require glibc_${PV}.bb
require glibc-initial.inc
do_configure_prepend () {
unset CFLAGS
}

View File

@@ -1,6 +0,0 @@
require glibc_${PV}.bb
require glibc-initial.inc
do_configure_prepend () {
unset CFLAGS
}

View File

@@ -1,3 +0,0 @@
require glibc_${PV}.bb
require glibc-initial.inc

View File

@@ -1,110 +0,0 @@
require glibc.inc
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs-2.3.5"
SRCDATE = "20050627"
PR = "r6"
GLIBC_ADDONS ?= "ports,linuxthreads"
GLIBC_BROKEN_LOCALES = "sid_ET tr_TR mn_MN"
#
# For now, we will skip building of a gcc package if it is a uclibc one
# and our build is not a uclibc one, and we skip a glibc one if our build
# is a uclibc build.
#
# See the note in gcc/gcc_3.4.0.oe
#
python __anonymous () {
import bb, re
uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
if uc_os:
raise bb.parse.SkipPackage("incompatible with target %s" %
bb.data.getVar('TARGET_OS', d, 1))
}
# file://noinfo.patch;patch=1
# file://ldconfig.patch;patch=1;pnum=0
# file://arm-machine-gmon.patch;patch=1;pnum=0 \
# \
# file://arm-ioperm.patch;patch=1;pnum=0 \
# file://ldd.patch;patch=1;pnum=0 \
SRC_URI = "http://familiar.handhelds.org/source/v0.8.3/stash_libc_sources.redhat.com__20050627.tar.gz \
http://familiar.handhelds.org/source/v0.8.3/stash_ports_sources.redhat.com__20050627.tar.gz \
file://arm-audit.patch;patch=1 \
file://arm-audit2.patch;patch=1 \
file://arm-no-hwcap.patch;patch=1 \
file://arm-memcpy.patch;patch=1 \
file://arm-longlong.patch;patch=1;pnum=0 \
file://fhs-linux-paths.patch;patch=1 \
file://dl-cache-libcmp.patch;patch=1 \
file://headers_fix.patch;patch=1 \
file://5090_all_stubs-rule-fix.patch;patch=1 \
file://etc/ld.so.conf \
file://generate-supported.mk"
# seems to fail on tls platforms
SRC_URI_append_arm = " file://dyn-ldconfig-20041128.patch;patch=1"
S = "${WORKDIR}/libc"
B = "${WORKDIR}/build-${TARGET_SYS}"
EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
--without-cvs --disable-profile --disable-debug --without-gd \
--enable-clocale=gnu \
--enable-add-ons=${GLIBC_ADDONS} \
--with-headers=${STAGING_INCDIR} \
--without-selinux \
${GLIBC_EXTRA_OECONF}"
EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
do_munge() {
# Integrate ports into tree
mv ${WORKDIR}/ports ${S}
# http://www.handhelds.org/hypermail/oe/51/5135.html
# Some files were moved around between directories on
# 2005-12-21, which means that any attempt to check out
# from CVS using a datestamp older than that will be doomed.
#
# This is a workaround for that problem.
rm -rf ${S}/bits
}
addtask munge before do_patch after do_unpack
do_configure () {
# override this function to avoid the autoconf/automake/aclocal/autoheader
# calls for now
# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
# version check and doesn't really help with anything
if [ -z "`which rpcgen`" ]; then
echo "rpcgen not found. Install glibc-devel."
exit 1
fi
(cd ${S} && gnu-configize) || die "failure in running gnu-configize"
CPPFLAGS="" oe_runconf
}
rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
do_compile () {
# -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
unset LDFLAGS
base_do_compile
(
cd ${S}/sunrpc/rpcsvc
for r in ${rpcsvc}; do
h=`echo $r|sed -e's,\.x$,.h,'`
rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
done
)
}
require glibc-stage.inc
require glibc-package.inc

View File

@@ -1,137 +0,0 @@
require glibc.inc
PR = "r14"
# the -isystem in bitbake.conf screws up glibc do_stage
BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4"
GLIBC_ADDONS ?= "ports,nptl,libidn"
GLIBC_BROKEN_LOCALES = "sid_ET tr_TR mn_MN gez_ET bn_BD gez_ER te_IN"
#
# For now, we will skip building of a gcc package if it is a uclibc one
# and our build is not a uclibc one, and we skip a glibc one if our build
# is a uclibc build.
#
# See the note in gcc/gcc_3.4.0.oe
#
python __anonymous () {
import bb, re
uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
if uc_os:
raise bb.parse.SkipPackage("incompatible with target %s" %
bb.data.getVar('TARGET_OS', d, 1))
}
# file://noinfo.patch;patch=1
# file://ldconfig.patch;patch=1;pnum=0
# file://arm-machine-gmon.patch;patch=1;pnum=0 \
# \
# file://arm-ioperm.patch;patch=1;pnum=0 \
# file://ldd.patch;patch=1;pnum=0 \
SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-2.4.tar.bz2 \
ftp://ftp.gnu.org/pub/gnu/glibc/glibc-ports-2.4.tar.bz2 \
ftp://ftp.gnu.org/pub/gnu/glibc/glibc-libidn-2.4.tar.bz2 \
file://arm-memcpy.patch;patch=1 \
file://arm-longlong.patch;patch=1 \
file://fhs-linux-paths.patch;patch=1 \
file://dl-cache-libcmp.patch;patch=1 \
file://nptl-crosscompile.patch;patch=1 \
file://glibc-2.4-compile.patch;patch=1 \
file://fixup-aeabi-syscalls.patch;patch=1 \
file://zecke-sane-readelf.patch;patch=1 \
file://generic-bits_select.h \
file://generic-bits_types.h \
file://generic-bits_typesizes.h \
file://generic-bits_time.h \
file://etc/ld.so.conf \
file://generate-supported.mk"
# Build fails on sh3 and sh4 without additional patches
SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1"
SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1"
S = "${WORKDIR}/glibc-2.4"
B = "${WORKDIR}/build-${TARGET_SYS}"
EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
--without-cvs --disable-profile --disable-debug --without-gd \
--enable-clocale=gnu \
--enable-add-ons=${GLIBC_ADDONS} \
--with-headers=${STAGING_INCDIR} \
--without-selinux \
${GLIBC_EXTRA_OECONF}"
EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
do_munge() {
# Integrate ports and libidn into tree
mv ${WORKDIR}/glibc-ports-${PV} ${S}/ports
mv ${WORKDIR}/glibc-libidn-${PV} ${S}/libidn
# Ports isn't really working... Fix it
# Some of this is rather dirty, but it seems to be the only
# quick way to get this cruft to compile
rm -rf ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
ln -s nptl ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
cp ${S}/sysdeps/unix/sysv/linux/i386/bits/wchar.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
cp ${S}/sysdeps/wordsize-32/bits/wordsize.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
cp ${WORKDIR}/generic-bits_select.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/select.h
cp ${WORKDIR}/generic-bits_types.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/types.h
cp ${WORKDIR}/generic-bits_typesizes.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
cp ${WORKDIR}/generic-bits_time.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/time.h
# Copy in generic stuff for not yet implemented headers
for i in ${S}/bits/*.h; do
F=`basename $i`
[ "$F" = "local_lim.h" ] && continue
[ "$F" = "errno.h" ] && continue
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/
done
# This is harmful; we need to get the one from nptl/sysdeps/pthreads
rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/libc-lock.h
# Obsoleted by sysdeps/arm/{fpu,eabi}/bits/fenv.h
rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/fenv.h
# Obsoleted by sysdeps/gnu/bits/utmp.h
rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/utmp.h
}
addtask munge before do_patch after do_unpack
do_configure () {
# override this function to avoid the autoconf/automake/aclocal/autoheader
# calls for now
# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
# version check and doesn't really help with anything
if [ -z "`which rpcgen`" ]; then
echo "rpcgen not found. Install glibc-devel."
exit 1
fi
(cd ${S} && gnu-configize) || die "failure in running gnu-configize"
CPPFLAGS="" oe_runconf
}
rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
do_compile () {
# -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
unset LDFLAGS
base_do_compile
(
cd ${S}/sunrpc/rpcsvc
for r in ${rpcsvc}; do
h=`echo $r|sed -e's,\.x$,.h,'`
rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
done
)
}
require glibc-stage.inc
require glibc-package.inc

View File

@@ -1,148 +0,0 @@
require glibc.inc
PR = "r8"
# the -isystem in bitbake.conf screws up glibc do_stage
BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4"
GLIBC_ADDONS ?= "ports,nptl,libidn"
GLIBC_BROKEN_LOCALES = "sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN"
#
# For now, we will skip building of a gcc package if it is a uclibc one
# and our build is not a uclibc one, and we skip a glibc one if our build
# is a uclibc build.
#
# See the note in gcc/gcc_3.4.0.oe
#
python __anonymous () {
import bb, re
uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
if uc_os:
raise bb.parse.SkipPackage("incompatible with target %s" %
bb.data.getVar('TARGET_OS', d, 1))
}
# file://noinfo.patch;patch=1
# file://ldconfig.patch;patch=1;pnum=0
# file://arm-machine-gmon.patch;patch=1;pnum=0 \
# \
# file://arm-ioperm.patch;patch=1;pnum=0 \
# file://ldd.patch;patch=1;pnum=0 \
SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
ftp://ftp.gnu.org/pub/gnu/glibc/glibc-ports-${PV}.tar.bz2 \
ftp://ftp.gnu.org/pub/gnu/glibc/glibc-libidn-${PV}.tar.bz2 \
file://arm-memcpy.patch;patch=1 \
file://arm-longlong.patch;patch=1 \
file://fhs-linux-paths.patch;patch=1 \
file://dl-cache-libcmp.patch;patch=1 \
file://nptl-crosscompile.patch;patch=1 \
file://glibc-check_pf.patch;patch=1;pnum=0 \
# file://glibc-2.4-compile.patch;patch=1 \
# file://glibc-2.4-openat-3.patch;patch=1 \
# file://fixup-aeabi-syscalls.patch;patch=1 \
file://zecke-sane-readelf.patch;patch=1 \
file://eabi_kernel_version_hack.patch;patch=1 \
file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
file://generic-bits_select.h \
file://generic-bits_types.h \
file://generic-bits_typesizes.h \
file://generic-bits_time.h \
file://etc/ld.so.conf \
file://generate-supported.mk \
file://glibc-arm-no-procinfo_h.patch;patch=1 \
file://glibc-include-fixed.patch;patch=1;pnum=0"
# Build fails on sh3 and sh4 without additional patches
SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1"
SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1"
SRC_URI_append_powerpc = " file://powerpc-sqrt-hack.diff;patch=1"
S = "${WORKDIR}/glibc-${PV}"
B = "${WORKDIR}/build-${TARGET_SYS}"
EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
--without-cvs --disable-profile --disable-debug --without-gd \
--enable-clocale=gnu \
--enable-add-ons=${GLIBC_ADDONS} \
--with-headers=${STAGING_INCDIR} \
--without-selinux \
${GLIBC_EXTRA_OECONF}"
EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
do_munge() {
# Integrate ports and libidn into tree
mv ${WORKDIR}/glibc-ports-${PV} ${S}/ports
mv ${WORKDIR}/glibc-libidn-${PV} ${S}/libidn
# Ports isn't really working... Fix it
# Some of this is rather dirty, but it seems to be the only
# quick way to get this cruft to compile
rm -rf ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
ln -s nptl ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
cp ${S}/nptl/sysdeps/pthread/bits/sigthread.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
cp ${S}/sysdeps/unix/sysv/linux/i386/bits/wchar.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
cp ${S}/sysdeps/wordsize-32/bits/wordsize.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
cp ${WORKDIR}/generic-bits_select.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/select.h
cp ${WORKDIR}/generic-bits_types.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/types.h
cp ${WORKDIR}/generic-bits_typesizes.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
cp ${WORKDIR}/generic-bits_time.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/time.h
# Copy in generic stuff for not yet implemented headers
for i in ${S}/bits/*.h; do
F=`basename $i`
[ "$F" = "local_lim.h" ] && continue
[ "$F" = "errno.h" ] && continue
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/
done
# This is harmful; we need to get the one from nptl/sysdeps/pthreads
rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/libc-lock.h
# Obsoleted by sysdeps/arm/{fpu,eabi}/bits/fenv.h
rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/fenv.h
# Obsoleted by sysdeps/gnu/bits/utmp.h
rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/utmp.h
}
addtask munge before do_patch after do_unpack
do_configure () {
# override this function to avoid the autoconf/automake/aclocal/autoheader
# calls for now
# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
# version check and doesn't really help with anything
if [ -z "`which rpcgen`" ]; then
echo "rpcgen not found. Install glibc-devel."
exit 1
fi
(cd ${S} && gnu-configize) || die "failure in running gnu-configize"
CPPFLAGS="" oe_runconf
}
rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
do_compile () {
# -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
unset LDFLAGS
base_do_compile
(
cd ${S}/sunrpc/rpcsvc
for r in ${rpcsvc}; do
h=`echo $r|sed -e's,\.x$,.h,'`
rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
done
)
}
require glibc-stage.inc
require glibc-package.inc

View File

@@ -1,156 +0,0 @@
require glibc.inc
PR = "r6"
ARM_INSTRUCTION_SET = "arm"
PACKAGES_DYNAMIC = "libc6*"
RPROVIDES_${PN}-dev = "libc6-dev"
# the -isystem in bitbake.conf screws up glibc do_stage
BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4"
GLIBC_ADDONS ?= "ports,nptl,libidn"
GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN"
#
# For now, we will skip building of a gcc package if it is a uclibc one
# and our build is not a uclibc one, and we skip a glibc one if our build
# is a uclibc build.
#
# See the note in gcc/gcc_3.4.0.oe
#
python __anonymous () {
import bb, re
uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
if uc_os:
raise bb.parse.SkipPackage("incompatible with target %s" %
bb.data.getVar('TARGET_OS', d, 1))
}
RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
SRC_URI = "\
ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
ftp://ftp.gnu.org/pub/gnu/glibc/glibc-ports-${PV}.tar.bz2 \
ftp://ftp.gnu.org/pub/gnu/glibc/glibc-libidn-${PV}.tar.bz2 \
file://arm-memcpy.patch;patch=1 \
file://arm-longlong.patch;patch=1 \
file://fhs-linux-paths.patch;patch=1 \
file://dl-cache-libcmp.patch;patch=1 \
file://ldsocache-varrun.patch;patch=1 \
file://nptl-crosscompile.patch;patch=1 \
file://glibc-2.5-local-dynamic-resolvconf.patch;patch=1;pnum=0 \
file://glibc-check_pf.patch;patch=1;pnum=0 \
file://zecke-sane-readelf.patch;patch=1 \
file://ldd-unbash.patch;patch=1 \
file://generic-bits_select.h \
file://generic-bits_types.h \
file://generic-bits_typesizes.h \
file://generic-bits_time.h \
file://etc/ld.so.conf \
file://generate-supported.mk \
file://glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch;patch=1 \
file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
file://glibc-include-fixed.patch;patch=1;pnum=0 \
file://no-hwcaps.patch;patch=1 \
file://nopageheader.patch;patch=1 \
"
# Build fails on sh3 and sh4 without additional patches
SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1"
SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1"
# PowerPC Patches to add support for soft-float
SRC_URI_append_powerpc = "file://powerpc-sqrt-hack.diff;patch=1"
S = "${WORKDIR}/glibc-${PV}"
B = "${WORKDIR}/build-${TARGET_SYS}"
EXTRA_OECONF = "\
--enable-kernel=${OLDEST_KERNEL} \
--without-cvs --disable-profile --disable-debug --without-gd \
--enable-clocale=gnu \
--enable-add-ons=${GLIBC_ADDONS} \
--with-headers=${STAGING_INCDIR} \
--without-selinux \
${GLIBC_EXTRA_OECONF} \
"
EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
do_munge() {
# Integrate ports and libidn into tree
mv ${WORKDIR}/glibc-ports-${PV} ${S}/ports
mv ${WORKDIR}/glibc-libidn-${PV} ${S}/libidn
# Ports isn't really working... Fix it
# Some of this is rather dirty, but it seems to be the only
# quick way to get this cruft to compile
rm -rf ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
ln -s nptl ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
cp ${S}/nptl/sysdeps/pthread/bits/sigthread.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
cp ${S}/sysdeps/unix/sysv/linux/i386/bits/wchar.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
cp ${S}/sysdeps/wordsize-32/bits/wordsize.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
cp ${WORKDIR}/generic-bits_select.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/select.h
cp ${WORKDIR}/generic-bits_types.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/types.h
cp ${WORKDIR}/generic-bits_typesizes.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
cp ${WORKDIR}/generic-bits_time.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/time.h
# Copy in generic stuff for not yet implemented headers
for i in ${S}/bits/*.h; do
F=`basename $i`
[ "$F" = "local_lim.h" ] && continue
[ "$F" = "errno.h" ] && continue
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/
done
# This is harmful; we need to get the one from nptl/sysdeps/pthreads
rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/libc-lock.h
# Obsoleted by sysdeps/arm/{fpu,eabi}/bits/fenv.h
rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/fenv.h
# Obsoleted by sysdeps/gnu/bits/utmp.h
rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/utmp.h
}
addtask munge before do_patch after do_unpack
do_configure () {
# override this function to avoid the autoconf/automake/aclocal/autoheader
# calls for now
# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
# version check and doesn't really help with anything
if [ -z "`which rpcgen`" ]; then
echo "rpcgen not found. Install glibc-devel."
exit 1
fi
(cd ${S} && gnu-configize) || die "failure in running gnu-configize"
CPPFLAGS="" oe_runconf
}
rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
do_compile () {
# -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
unset LDFLAGS
base_do_compile
(
cd ${S}/sunrpc/rpcsvc
for r in ${rpcsvc}; do
h=`echo $r|sed -e's,\.x$,.h,'`
rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
done
)
}
require glibc-stage.inc
require glibc-package.inc
BBCLASSEXTEND = "nativesdk"

View File

@@ -1,161 +0,0 @@
require glibc.inc
ARM_INSTRUCTION_SET = "arm"
PACKAGES_DYNAMIC = "libc6*"
RPROVIDES_${PN}-dev = "libc6-dev virtual-libc-dev"
PR = "r2"
# the -isystem in bitbake.conf screws up glibc do_stage
BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
GLIBC_ADDONS ?= "ports,nptl,libidn"
GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN"
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-${PV}', '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
#
# For now, we will skip building of a gcc package if it is a uclibc one
# and our build is not a uclibc one, and we skip a glibc one if our build
# is a uclibc build.
#
# See the note in gcc/gcc_3.4.0.oe
#
python __anonymous () {
import bb, re
uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
if uc_os:
raise bb.parse.SkipPackage("incompatible with target %s" %
bb.data.getVar('TARGET_OS', d, 1))
}
RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
# file://noinfo.patch;patch=1
# file://ldconfig.patch;patch=1;pnum=0
# file://arm-machine-gmon.patch;patch=1;pnum=0 \
# \
# file://arm-ioperm.patch;patch=1;pnum=0 \
# file://ldd.patch;patch=1;pnum=0 \
SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
ftp://ftp.gnu.org/pub/gnu/glibc/glibc-ports-${PV}.tar.bz2 \
ftp://ftp.gnu.org/pub/gnu/glibc/glibc-libidn-${PV}.tar.bz2 \
file://nscd-init.patch;patch=1;pnum=0 \
file://arm-memcpy.patch;patch=1 \
file://arm-longlong.patch;patch=1 \
file://fhs-linux-paths.patch;patch=1 \
file://dl-cache-libcmp.patch;patch=1 \
file://ldsocache-varrun.patch;patch=1 \
file://nptl-crosscompile.patch;patch=1 \
file://glibc-check_pf.patch;patch=1;pnum=0 \
file://ldd-unbash.patch;patch=1 \
file://glibc-arm-IO-acquire-lock-fix.diff;patch=1 \
file://generic-bits_select.h \
file://generic-bits_types.h \
file://generic-bits_typesizes.h \
file://generic-bits_time.h \
file://etc/ld.so.conf \
file://generate-supported.mk \
file://march-i686.patch;patch=1;pnum=0 \
file://tls_i486.patch;patch=1 \
file://rulesfix.patch;patch=1 \
file://glibc-2.9-use-_begin.patch;patch=1 \
file://glibc-2.9-enable-binutils-2.2.patch;patch=1 \
"
# Build fails on sh3 and sh4 without additional patches
SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1"
SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1"
#powerpc patches to add support for soft-float
SRC_URI_append_powerpc= " file://powerpc-sqrt-hack.diff;patch=1"
S = "${WORKDIR}/glibc-${PV}"
B = "${WORKDIR}/build-${TARGET_SYS}"
EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
--without-cvs --disable-profile --disable-debug --without-gd \
--enable-clocale=gnu \
--enable-add-ons=${GLIBC_ADDONS} \
--with-headers=${STAGING_INCDIR} \
--without-selinux \
${GLIBC_EXTRA_OECONF}"
EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
do_munge() {
# Integrate ports and libidn into tree
mv ${WORKDIR}/glibc-ports-${PV} ${S}/ports
mv ${WORKDIR}/glibc-libidn-${PV} ${S}/libidn
# Ports isn't really working... Fix it
# Some of this is rather dirty, but it seems to be the only
# quick way to get this cruft to compile
rm -rf ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
ln -s nptl ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
cp ${S}/nptl/sysdeps/pthread/bits/sigthread.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
cp ${S}/sysdeps/unix/sysv/linux/i386/bits/wchar.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
cp ${S}/sysdeps/wordsize-32/bits/wordsize.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
cp ${WORKDIR}/generic-bits_select.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/select.h
cp ${WORKDIR}/generic-bits_types.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/types.h
cp ${WORKDIR}/generic-bits_typesizes.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
cp ${WORKDIR}/generic-bits_time.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/time.h
# Copy in generic stuff for not yet implemented headers
for i in ${S}/bits/*.h; do
F=`basename $i`
[ "$F" = "local_lim.h" ] && continue
[ "$F" = "errno.h" ] && continue
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/
done
# This is harmful; we need to get the one from nptl/sysdeps/pthreads
rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/libc-lock.h
# Obsoleted by sysdeps/arm/{fpu,eabi}/bits/fenv.h
rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/fenv.h
# Obsoleted by sysdeps/gnu/bits/utmp.h
rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/utmp.h
}
addtask munge before do_patch after do_unpack
do_configure () {
# /var/db was not included to FHS
sed -i s:/var/db/nscd:/var/run/nscd: ${S}/nscd/nscd.h
# override this function to avoid the autoconf/automake/aclocal/autoheader
# calls for now
# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
# version check and doesn't really help with anything
if [ -z "`which rpcgen`" ]; then
echo "rpcgen not found. Install glibc-devel."
exit 1
fi
(cd ${S} && gnu-configize) || die "failure in running gnu-configize"
CPPFLAGS="" oe_runconf
}
rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
do_compile () {
# -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
unset LDFLAGS
base_do_compile
(
cd ${S}/sunrpc/rpcsvc
for r in ${rpcsvc}; do
h=`echo $r|sed -e's,\.x$,.h,'`
rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
done
)
}
require glibc-stage.inc
require glibc-package.inc
BBCLASSEXTEND = "nativesdk"

View File

@@ -1,89 +0,0 @@
require glibc.inc
# DEFAULT_PREFERENCE = "-1"
PV = "2.3.6+csl-arm-2005q3-2"
PR = "r11"
# the -isystem in bitbake.conf screws up glibc do_stage
BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
GLIBC_ADDONS ?= "nptl,libidn"
GLIBC_BROKEN_LOCALES = "sid_ET tr_TR mn_MN gez_ET bn_BD gez_ER te_IN"
#
# For now, we will skip building of a gcc package if it is a uclibc one
# and our build is not a uclibc one, and we skip a glibc one if our build
# is a uclibc build.
#
# See the note in gcc/gcc_3.4.0.oe
#
python __anonymous () {
import bb, re
uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
if uc_os:
raise bb.parse.SkipPackage("incompatible with target %s" %
bb.data.getVar('TARGET_OS', d, 1))
}
SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2005q3-2-arm-none-linux-gnueabi.src.tar.bz2 \
file://nptl-crosscompile-2.3.6.patch;patch=1 \
file://etc/ld.so.conf \
file://generate-supported.mk \
"
do_unpack2() {
cd ${WORKDIR}
tar -xvjf ./arm-2005q3-2-arm-none-linux-gnueabi/glibc-2005q3-2.tar.bz2
rm -rf ./arm-2005q3-2-arm-none-linux-gnueabi
}
addtask unpack2 after do_unpack before do_patch
S = "${WORKDIR}/glibc-2.3.5pre"
B = "${WORKDIR}/build-${TARGET_SYS}"
EXTRA_OECONF = "--without-cvs --disable-profile --disable-debug --without-gd \
--enable-clocale=gnu \
--enable-add-ons \
--with-headers=${STAGING_INCDIR} \
--without-selinux \
${GLIBC_EXTRA_OECONF}"
EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
do_configure () {
# override this function to avoid the autoconf/automake/aclocal/autoheader
# calls for now
# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
# version check and doesn't really help with anything
if [ -z "`which rpcgen`" ]; then
echo "rpcgen not found. Install glibc-devel."
exit 1
fi
(cd ${S} && gnu-configize) || die "failure in running gnu-configize"
CPPFLAGS="" oe_runconf
}
rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
do_compile () {
# -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
unset LDFLAGS
base_do_compile
(
cd ${S}/sunrpc/rpcsvc
for r in ${rpcsvc}; do
h=`echo $r|sed -e's,\.x$,.h,'`
rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
done
)
}
require glibc-stage.inc
require glibc-package.inc