mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 00:20:08 +00:00
glibc: deleted
Glibc 2.10.1 is outdated now and eglibc seems to provide a superset of its functionality. (From OE-Core rev: 1d9866a2c4fe93202749a56c7ad89a3cbd07d9f8) Signed-off-by: Phil Blundell <philb@gnu.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
e464fb9a28
commit
7dc2732b28
@@ -1,32 +0,0 @@
|
||||
#
|
||||
# glibc specific configuration
|
||||
#
|
||||
|
||||
LIBCEXTENSION = "${@['', '-gnu'][(d.getVar('ABIEXTENSION', True) or '') != '']}"
|
||||
|
||||
# Add glibc to the overrides.
|
||||
OVERRIDES =. "libc-glibc:"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/libiconv ?= "glibc"
|
||||
PREFERRED_PROVIDER_virtual/libiconv-nativesdk ?= "glibc-nativesdk"
|
||||
PREFERRED_PROVIDER_virtual/libintl ?= "glibc"
|
||||
PREFERRED_PROVIDER_virtual/libc ?= "glibc"
|
||||
PREFERRED_PROVIDER_virtual/libc-nativesdk ?= "glibc-nativesdk"
|
||||
PREFERRED_PROVIDER_virtual/libc-locale ?= "glibc-locale"
|
||||
|
||||
CXXFLAGS += "-fvisibility-inlines-hidden"
|
||||
|
||||
LIBC_DEPENDENCIES = "\
|
||||
libsegfault \
|
||||
glibc \
|
||||
glibc-dbg \
|
||||
glibc-dev \
|
||||
glibc-utils \
|
||||
glibc-thread-db \
|
||||
glibc-localedata-i18n \
|
||||
glibc-gconv-ibm850 \
|
||||
glibc-gconv-cp1252 \
|
||||
glibc-gconv-iso8859-1 \
|
||||
glibc-gconv-iso8859-15 \
|
||||
locale-base-en-gb \
|
||||
"
|
||||
@@ -49,11 +49,6 @@ PREFERRED_VERSION_binutils-crosssdk ?= "${BINUVERSION}"
|
||||
PREFERRED_VERSION_binutils-cross-canadian ?= "${BINUVERSION}"
|
||||
PREFERRED_VERSION_linux-libc-headers ?= "${LINUXLIBCVERSION}"
|
||||
PREFERRED_VERSION_linux-libc-headers-nativesdk ?= "${LINUXLIBCVERSION}"
|
||||
PREFERRED_VERSION_glibc ?= "${GLIBCVERSION}"
|
||||
PREFERRED_VERSION_glibc-locale ?= "${GLIBCVERSION}"
|
||||
PREFERRED_VERSION_glibc-nativesdk ?= "${GLIBCVERSION}"
|
||||
PREFERRED_VERSION_glibc-initial ?= "${GLIBCVERSION}"
|
||||
PREFERRED_VERSION_glibc-initial-nativesdk ?= "${GLIBCVERSION}"
|
||||
PREFERRED_VERSION_eglibc ?= "${EGLIBCVERSION}"
|
||||
PREFERRED_VERSION_eglibc-locale ?= "${EGLIBCVERSION}"
|
||||
PREFERRED_VERSION_eglibc-nativesdk ?= "${EGLIBCVERSION}"
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
Upstream-Status: Inappropriate [not used]
|
||||
|
||||
--- 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
|
||||
@@ -1,760 +0,0 @@
|
||||
Upstream-Status: Inappropriate [not used]
|
||||
|
||||
--- /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)
|
||||
+
|
||||
@@ -1,12 +0,0 @@
|
||||
Upstream-Status: Inappropriate [not used]
|
||||
|
||||
--- 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;
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
/usr/local/lib
|
||||
include /etc/ld.so.conf.d/*
|
||||
@@ -1,13 +0,0 @@
|
||||
Upstream-Status: Inappropriate [not used]
|
||||
|
||||
--- glibc-2.1.1/sysdeps/unix/sysv/linux/paths.h~ Thu May 27 13:16:33 1999
|
||||
+++ glibc-2.1.1/sysdeps/unix/sysv/linux/paths.h Thu May 27 13:17:55 1999
|
||||
@@ -71,7 +71,7 @@
|
||||
/* Provide trailing slash, since mostly used for building pathnames. */
|
||||
#define _PATH_DEV "/dev/"
|
||||
#define _PATH_TMP "/tmp/"
|
||||
-#define _PATH_VARDB "/var/db/"
|
||||
+#define _PATH_VARDB "/var/lib/misc/"
|
||||
#define _PATH_VARRUN "/var/run/"
|
||||
#define _PATH_VARTMP "/var/tmp/"
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/usr/bin/make
|
||||
|
||||
include $(IN)
|
||||
|
||||
all:
|
||||
rm -f $(OUT)
|
||||
touch $(OUT)
|
||||
for locale in $(SUPPORTED-LOCALES); do \
|
||||
[ $$locale = true ] && continue; \
|
||||
echo $$locale | sed 's,/, ,' >> $(OUT); \
|
||||
done
|
||||
@@ -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)
|
||||
@@ -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 */
|
||||
@@ -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 */
|
||||
@@ -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 */
|
||||
@@ -1,37 +0,0 @@
|
||||
Upstream-Status: Inappropriate [configuration]
|
||||
|
||||
--- 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;;
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
Arm needs a similar fix as http://sourceware.org/ml/libc-ports/2007-12/msg00000.html
|
||||
|
||||
Upstream-Status: Inappropriate [not used]
|
||||
|
||||
--- /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)
|
||||
@@ -1,17 +0,0 @@
|
||||
http://sourceware.org/ml/libc-ports/2008-04/msg00005.html
|
||||
|
||||
Upstream-Status: Inappropriate [not used]
|
||||
|
||||
|
||||
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"
|
||||
@@ -1,345 +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.
|
||||
|
||||
Upstream-Status: Inappropriate [not used]
|
||||
|
||||
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>
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
Upstream-Status: Inappropriate [not used]
|
||||
|
||||
--- 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
|
||||
}
|
||||
@@ -1,20 +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
|
||||
#
|
||||
|
||||
Upstream-Status: Inappropriate [not used]
|
||||
|
||||
--- 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
|
||||
@@ -1,39 +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.
|
||||
|
||||
|
||||
Upstream-Status: Inappropriate [not used]
|
||||
|
||||
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*/");
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
On mips target, binutils currently sets DT_MIPS_RLD_MAP to 0 in dynamic
|
||||
section if a --version-script sets _RLD_MAP to local. This is apparently
|
||||
a binutils bug, but libc shouldn't segfault in this case.
|
||||
|
||||
see also: http://sourceware.org/bugilla/show_bug.cgi?id=11615
|
||||
|
||||
Upstream-Status: Inappropriate [not used]
|
||||
|
||||
9/19/2010 - added by Qing He <qing.he@intel.com>
|
||||
---
|
||||
diff -ru glibc-2.10.1.orig/ports/sysdeps/mips/dl-machine.h glibc-2.10.1/ports/sysdeps/mips/dl-machine.h
|
||||
--- glibc-2.10.1.orig/ports/sysdeps/mips/dl-machine.h 2009-05-16 16:36:20.000000000 +0800
|
||||
+++ glibc-2.10.1/ports/sysdeps/mips/dl-machine.h 2010-09-19 09:11:53.000000000 +0800
|
||||
@@ -70,7 +70,8 @@
|
||||
/* If there is a DT_MIPS_RLD_MAP entry in the dynamic section, fill it in
|
||||
with the run-time address of the r_debug structure */
|
||||
#define ELF_MACHINE_DEBUG_SETUP(l,r) \
|
||||
-do { if ((l)->l_info[DT_MIPS (RLD_MAP)]) \
|
||||
+do { if ((l)->l_info[DT_MIPS (RLD_MAP)] && \
|
||||
+ (l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) \
|
||||
*(ElfW(Addr) *)((l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) = \
|
||||
(ElfW(Addr)) (r); \
|
||||
} while (0)
|
||||
@@ -1,28 +0,0 @@
|
||||
Upstream-Status: Inappropriate [not used]
|
||||
|
||||
--- 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
|
||||
@@ -1,41 +0,0 @@
|
||||
Upstream-Status: Inappropriate [not used]
|
||||
|
||||
--- 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
|
||||
;;
|
||||
@@ -1,27 +0,0 @@
|
||||
Upstream-Status: Inappropriate [not used]
|
||||
|
||||
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 };
|
||||
@@ -1,15 +0,0 @@
|
||||
Upstream-Status: Inappropriate [not used]
|
||||
|
||||
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)'
|
||||
@@ -1,67 +0,0 @@
|
||||
SECTION = "libs"
|
||||
DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers"
|
||||
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
|
||||
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-${PV}', '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
|
||||
|
||||
PACKAGES = ""
|
||||
PACKAGES_DYNAMIC = ""
|
||||
|
||||
STAGINGCC = "gcc-cross-initial"
|
||||
STAGINGCC_virtclass-nativesdk = "gcc-crosssdk-initial"
|
||||
|
||||
do_configure () {
|
||||
sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
|
||||
chmod +x ${S}/configure
|
||||
find ${S} -name "configure" | xargs touch
|
||||
${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
|
||||
--without-cvs --disable-sanity-checks \
|
||||
--with-headers=${STAGING_DIR_TARGET}${includedir} \
|
||||
--enable-hacker-mode
|
||||
if grep -q GLIBC_2.3 ${S}/ChangeLog; then
|
||||
# glibc-2.3.x passes cross options to $(CC) when generating errlist-compat.c, which fails without a real cross-compiler.
|
||||
# Fortunately, we don't need errlist-compat.c, since we just need .h files,
|
||||
# so work around this by creating a fake errlist-compat.c and satisfying its dependencies.
|
||||
# Another workaround might be to tell configure to not use any cross options to $(CC).
|
||||
# The real fix would be to get install-headers to not generate errlist-compat.c.
|
||||
make sysdeps/gnu/errlist.c
|
||||
mkdir -p stdio-common
|
||||
touch stdio-common/errlist-compat.c
|
||||
fi
|
||||
}
|
||||
|
||||
do_compile () {
|
||||
:
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_runmake cross-compiling=yes install_root=${D} \
|
||||
includedir='${includedir}' prefix='${prefix}' \
|
||||
install-bootstrap-headers=yes install-headers
|
||||
|
||||
oe_runmake csu/subdir_lib
|
||||
# Two headers -- stubs.h and features.h -- aren't installed by install-headers,
|
||||
# so do them by hand. We can tolerate an empty stubs.h for the moment.
|
||||
# See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html
|
||||
mkdir -p ${D}${includedir}/gnu/
|
||||
touch ${D}${includedir}/gnu/stubs.h
|
||||
cp ${S}/include/features.h ${D}${includedir}/features.h
|
||||
|
||||
if [ -e ${B}/bits/stdio_lim.h ]; then
|
||||
cp ${B}/bits/stdio_lim.h ${D}${includedir}/bits/
|
||||
fi
|
||||
mkdir -p ${D}${libdir}/
|
||||
install -m 644 csu/crt[1in].o ${D}${libdir}
|
||||
${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
|
||||
-o ${D}${libdir}/libc.so
|
||||
|
||||
# add links to linux-libc-headers: gcc-{cross,crossdk}-intermediate need this.
|
||||
for t in linux asm asm-generic; do
|
||||
ln -s ${STAGING_DIR_TARGET}${includedir}/$t ${D}${includedir}/
|
||||
done
|
||||
}
|
||||
|
||||
do_siteconfig () {
|
||||
:
|
||||
}
|
||||
|
||||
do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR_TCBOOTSTRAP}"
|
||||
@@ -1,10 +0,0 @@
|
||||
require glibc_${PV}.bb
|
||||
require glibc-initial.inc
|
||||
|
||||
do_install_locale() {
|
||||
:
|
||||
}
|
||||
|
||||
do_configure_prepend () {
|
||||
unset CFLAGS
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
LICENSE = "LGPL"
|
||||
|
||||
BPN = "glibc"
|
||||
|
||||
do_fetch[noexec] = "1"
|
||||
do_unpack[noexec] = "1"
|
||||
do_patch[noexec] = "1"
|
||||
do_configure[noexec] = "1"
|
||||
do_compile[noexec] = "1"
|
||||
|
||||
# Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION
|
||||
# is set. The idea is to avoid running localedef on the target (at first boot)
|
||||
# to decrease initial boot time and avoid localedef being killed by the OOM
|
||||
# killer which used to effectively break i18n on machines with < 128MB RAM.
|
||||
|
||||
# default to disabled
|
||||
ENABLE_BINARY_LOCALE_GENERATION ?= "0"
|
||||
ENABLE_BINARY_LOCALE_GENERATION_pn-glibc-locale-nativesdk = "0"
|
||||
|
||||
#enable locale generation on these arches
|
||||
# BINARY_LOCALE_ARCHES is a space separated list of regular expressions
|
||||
BINARY_LOCALE_ARCHES ?= "arm.* i[3-6]86 x86_64 powerpc mips"
|
||||
|
||||
# set "1" to use cross-localedef for locale generation
|
||||
# set "0" for qemu emulation of native localedef for locale generation
|
||||
LOCALE_GENERATION_WITH_CROSS-LOCALEDEF = "1"
|
||||
|
||||
PR = "r1"
|
||||
|
||||
PKGSUFFIX = ""
|
||||
PKGSUFFIX_virtclass-nativesdk = "-nativesdk"
|
||||
|
||||
PROVIDES = "virtual/libc-locale${PKGSUFFIX}"
|
||||
|
||||
PACKAGES = "localedef${PKGSUFFIX} ${PN}-dbg"
|
||||
|
||||
PACKAGES_DYNAMIC = "locale-base-* \
|
||||
glibc-gconv-*${PKGSUFFIX} glibc-charmap-* glibc-localedata-* glibc-binary-localedata-*"
|
||||
|
||||
|
||||
DESCRIPTION_localedef = "glibc: compile locale definition files"
|
||||
|
||||
FILES_${PN}-dbg += "${libdir}/gconv/.debug/*"
|
||||
FILES_localedef${PKGSUFFIX} = "${bindir}/localedef"
|
||||
|
||||
LOCALETREESRC = "${STAGING_INCDIR}/glibc-locale-internal-${MULTIMACH_TARGET_SYS}"
|
||||
|
||||
do_install () {
|
||||
mkdir -p ${D}${bindir} ${D}${datadir} ${D}${libdir}
|
||||
cp -fpPR ${LOCALETREESRC}/${bindir}/* ${D}${bindir}
|
||||
cp -fpPR ${LOCALETREESRC}/${libdir}/locale ${D}${libdir}
|
||||
cp -fpPR ${LOCALETREESRC}/${libdir}/gconv ${D}${libdir}
|
||||
cp -fpPR ${LOCALETREESRC}/${datadir}/i18n ${D}${datadir}
|
||||
cp -fpPR ${LOCALETREESRC}/${datadir}/locale ${D}${datadir}
|
||||
cp -fpPR ${LOCALETREESRC}/SUPPORTED ${WORKDIR}
|
||||
}
|
||||
|
||||
inherit libc-package
|
||||
|
||||
do_install[depends] += "virtual/libc${PKGSUFFIX}:do_populate_sysroot"
|
||||
|
||||
BBCLASSEXTEND = "nativesdk"
|
||||
@@ -1,96 +0,0 @@
|
||||
#
|
||||
# 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))
|
||||
}
|
||||
|
||||
PKGSUFFIX = ""
|
||||
PKGSUFFIX_virtclass-nativesdk = "-nativesdk"
|
||||
|
||||
PACKAGES = "${PN}-dbg ${PN} catchsegv${PKGSUFFIX} sln${PKGSUFFIX} nscd${PKGSUFFIX} \
|
||||
ldd${PKGSUFFIX} ${PN}-utils ${PN}-dev ${PN}-doc \
|
||||
libsegfault${PKGSUFFIX} ${PN}-extra-nss ${PN}-thread-db \
|
||||
${PN}-pcprofile"
|
||||
|
||||
libc_baselibs = "${base_libdir}/libc* ${base_libdir}/libm* ${base_libdir}/ld* \
|
||||
${base_libdir}/libpthread* ${base_libdir}/libresolv* ${base_libdir}/librt* \
|
||||
${base_libdir}/libutil* ${base_libdir}/libnsl* ${base_libdir}/libnss_files* \
|
||||
${base_libdir}/libnss_compat* ${base_libdir}/libnss_dns* ${base_libdir}/libdl* \
|
||||
${base_libdir}/libanl* ${base_libdir}/libBrokenLocale*"
|
||||
|
||||
# The problem is that if PN = "glibc", FILES_${PN} will overwrite FILES_glibc
|
||||
# Solution: Make them both the same thing, then it doesn't matter
|
||||
|
||||
glibcfiles = "${sysconfdir} ${libc_baselibs} ${base_sbindir}/ldconfig \
|
||||
${libexecdir}/* ${datadir}/zoneinfo"
|
||||
glibcdbgfiles = "${bindir}/.debug ${sbindir}/.debug ${libdir}/.debug \
|
||||
${base_bindir}/.debug ${base_sbindir}/.debug ${base_libdir}/.debug \
|
||||
${libdir}/gconv/.debug ${libexecdir}/*/.debug"
|
||||
glibcdevfiles = "${bindir}/rpcgen ${includedir} ${libdir}/lib*${SOLIBSDEV} ${libdir}/*.la \
|
||||
${libdir}/*.a ${libdir}/*.o ${libdir}/pkgconfig \
|
||||
${base_libdir}/*.a ${base_libdir}/*.o ${datadir}/aclocal"
|
||||
|
||||
FILES_glibc = "${glibcfiles}"
|
||||
FILES_${PN} = "${glibcfiles}"
|
||||
FILES_ldd${PKGSUFFIX} = "${bindir}/ldd"
|
||||
FILES_libsegfault${PKGSUFFIX} = "${base_libdir}/libSegFault*"
|
||||
FILES_glibc-extra-nss = "${base_libdir}/libnss*"
|
||||
FILES_sln = "${base_sbindir}/sln"
|
||||
FILES_glibc-dev = "${glibcdevfiles}"
|
||||
FILES_${PN}-dev = "${glibcdevfiles}"
|
||||
FILES_glibc-dbg = "${glibcdbgfiles}"
|
||||
FILES_${PN}-dbg = "${glibcdbgfiles}"
|
||||
FILES_nscd${PKGSUFFIX} = "${sbindir}/nscd* ${sysconfdir}/nscd* ${sysconfdir}/init.d/nscd*"
|
||||
FILES_glibc-utils = "${bindir}/* ${sbindir}/*"
|
||||
FILES_glibc-gconv = "${libdir}/gconv/*"
|
||||
FILES_catchsegv${PKGSUFFIX} = "${bindir}/catchsegv"
|
||||
RDEPENDS_catchsegv${PKGSUFFIX} = "libsegfault"
|
||||
FILES_glibc-pcprofile = "${base_libdir}/libpcprofile.so"
|
||||
FILES_glibc-thread-db = "${base_libdir}/libthread_db*"
|
||||
RPROVIDES_glibc-dev += "libc-dev"
|
||||
|
||||
SUMMARY_sln = "The static ln."
|
||||
DESCRIPTION_sln = "Similar to the 'ln' utility, but statically linked. sln is useful to make symbolic links to dynamic libraries if the dynamic linking system, for some reason, is not functional."
|
||||
SUMMARY_nscd = "Name service cache daemon"
|
||||
DESCRIPTION_nscd = "nscd, name service cache daemon, caches name service lookups for the passwd, group and hosts information. It can damatically improvide performance with remote, such as NIS or NIS+, name services."
|
||||
SUMMARY_glibc-extra-nss = "hesiod, NIS and NIS+ nss libraries"
|
||||
DESCRIPTION_glibc-extra-nss = "glibc: nis, nisplus and hesiod search services.
|
||||
SUMMARY_ldd = "print shared library dependencies"
|
||||
DESCRIPTION_ldd = "/usr/bin/ldd prints shared library dependencies for each program or shared library specified on the command line."
|
||||
SUMMARY_glibc-utils = "Miscellaneous utilities provided by glibc"
|
||||
DESCRIPTION_glibc-utils = "Miscellaneous utilities including getconf, iconf, locale, gencat, tzselect, zic, rpcinfo, ..."
|
||||
|
||||
EXTRA_OEMAKE += "rootsbindir=${base_sbindir}"
|
||||
|
||||
inherit libc-common
|
||||
|
||||
do_install_locale () {
|
||||
dest=${D}/${includedir}/glibc-locale-internal-${MULTIMACH_TARGET_SYS}
|
||||
install -d ${dest}${base_libdir} ${dest}${bindir} ${dest}${libdir} ${dest}${datadir}
|
||||
cp -fpPR ${D}${base_libdir}/* ${dest}${base_libdir}
|
||||
cp -fpP ${D}${bindir}/localedef ${dest}${bindir}
|
||||
mv ${D}${libdir}/gconv ${dest}${libdir}
|
||||
cp -fpPR ${D}${libdir}/* ${dest}${libdir}
|
||||
mv ${D}${datadir}/i18n ${dest}${datadir}
|
||||
cp -fpPR ${D}${datadir}/* ${dest}${datadir}
|
||||
cp -fpPR ${WORKDIR}/SUPPORTED ${dest}
|
||||
}
|
||||
|
||||
addtask do_install_locale after do_install before do_populate_sysroot
|
||||
|
||||
PACKAGE_PREPROCESS_FUNCS += "glibc_package_preprocess"
|
||||
|
||||
glibc_package_preprocess () {
|
||||
rm -rf ${PKGD}/${includedir}/eglibc-locale-internal-${MULTIMACH_TARGET_SYS}
|
||||
}
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
DESCRIPTION = "GNU C Library"
|
||||
HOMEPAGE = "http://www.gnu.org/software/libc/libc.html"
|
||||
BUGTRACKER = "http://sources.redhat.com/bugzilla/"
|
||||
SECTION = "libs"
|
||||
LICENSE = "LGPLv2.1+ & GPLv2+"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \
|
||||
file://elf/cache.c;beginline=1;endline=17;md5=926aac25497b1de7d630b4749005d208 \
|
||||
file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff \
|
||||
file://bits/types.h;beginline=1;endline=18;md5=267938e7c0538e76f734551ec6ea908d"
|
||||
# nptl needs unwind support in gcc, which can't be built without glibc.
|
||||
DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers"
|
||||
RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
|
||||
#this leads to circular deps, so lets not add it yet
|
||||
#RDEPENDS_ldd += " bash"
|
||||
#RDEPENDS_${PN} += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
|
||||
PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
|
||||
PROVIDES += "virtual/libintl virtual/libiconv"
|
||||
|
||||
STAGINGCC = "gcc-cross-intermediate"
|
||||
STAGINGCC_virtclass-nativesdk = "gcc-crosssdk-intermediate"
|
||||
PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"
|
||||
|
||||
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TCBOOTSTRAP}"
|
||||
|
||||
# siteconfig.bbclass runs configure which needs a working compiler
|
||||
# For the compiler to work we need a working libc yet libc isn't
|
||||
# in the sysroots directory at this point. This means the libc.so
|
||||
# linker script won't work as the --sysroot setting isn't correct.
|
||||
# Here we create a hacked up libc linker script and pass in the right
|
||||
# flags to let configure work. Ugly.
|
||||
EXTRASITECONFIG = "CFLAGS='${CFLAGS} -Wl,-L${WORKDIR}/site_config_libc -L${WORKDIR}/site_config_libc -L${SYSROOT_DESTDIR}${libdir} -L${SYSROOT_DESTDIR}${base_libdir} -Wl,-L${SYSROOT_DESTDIR}${libdir} -Wl,-L${SYSROOT_DESTDIR}${base_libdir}'"
|
||||
siteconfig_do_siteconfig_gencache_prepend = " \
|
||||
mkdir -p ${WORKDIR}/site_config_libc; \
|
||||
cp ${SYSROOT_DESTDIR}${libdir}/libc.so ${WORKDIR}/site_config_libc; \
|
||||
sed -i -e 's# ${base_libdir}# ${SYSROOT_DESTDIR}${base_libdir}#g' -e 's# ${libdir}# ${SYSROOT_DESTDIR}${libdir}#g' ${WORKDIR}/site_config_libc/libc.so; \
|
||||
"
|
||||
|
||||
inherit autotools
|
||||
|
||||
GLIBC_EXTRA_OECONF ?= ""
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
|
||||
do_rig_locales() {
|
||||
# If indicated, only build a limited selection of locales
|
||||
if [ "x${LIMIT_BUILT_LOCALES}" != "x" ]; then
|
||||
INFILE="${S}/localedata/SUPPORTED"
|
||||
OUTFILE="${S}/localedata/SUPPORTED.tmp"
|
||||
head -n 3 $INFILE > $OUTFILE
|
||||
for i in ${LIMIT_BUILT_LOCALES}; do
|
||||
echo
|
||||
grep $i $INFILE >> $OUTFILE || true
|
||||
done
|
||||
head --lines=-1 $OUTFILE > $INFILE
|
||||
tail --lines=1 $OUTFILE | sed 's#\\##' >> $INFILE
|
||||
fi
|
||||
}
|
||||
|
||||
addtask rig_locales before do_compile after do_configure
|
||||
|
||||
ARM_INSTRUCTION_SET = "arm"
|
||||
@@ -1,161 +0,0 @@
|
||||
require glibc.inc
|
||||
|
||||
ARM_INSTRUCTION_SET = "arm"
|
||||
|
||||
PACKAGES_DYNAMIC = "libc6*"
|
||||
RPROVIDES_${PN}-dev = "libc6-dev virtual-libc-dev"
|
||||
|
||||
PR = "r7"
|
||||
|
||||
# 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 = "${GNU_MIRROR}/glibc/glibc-${PV}.tar.bz2 \
|
||||
${GNU_MIRROR}/glibc/glibc-ports-${PV}.tar.bz2 \
|
||||
${GNU_MIRROR}/glibc/glibc-libidn-${PV}.tar.bz2 \
|
||||
file://nscd-init.patch;striplevel=0 \
|
||||
file://arm-memcpy.patch \
|
||||
file://arm-longlong.patch \
|
||||
file://fhs-linux-paths.patch \
|
||||
file://dl-cache-libcmp.patch \
|
||||
file://ldsocache-varrun.patch \
|
||||
file://nptl-crosscompile.patch \
|
||||
file://glibc-check_pf.patch;striplevel=0 \
|
||||
file://ldd-unbash.patch \
|
||||
file://glibc-arm-IO-acquire-lock-fix.diff \
|
||||
file://mips-rld-map-check.patch \
|
||||
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;striplevel=0 \
|
||||
file://rulesfix.patch \
|
||||
file://glibc-2.9-enable-binutils-2.2.patch"
|
||||
|
||||
# Build fails on sh3 and sh4 without additional patches
|
||||
SRC_URI_append_sh3 = " file://no-z-defs.patch"
|
||||
SRC_URI_append_sh4 = " file://no-z-defs.patch"
|
||||
|
||||
#powerpc patches to add support for soft-float
|
||||
SRC_URI_append_powerpc= " file://powerpc-sqrt-hack.diff"
|
||||
|
||||
S = "${WORKDIR}/glibc-${PV}"
|
||||
B = "${WORKDIR}/build-${TARGET_SYS}"
|
||||
|
||||
# We need this for nativesdk
|
||||
export libc_cv_slibdir = "${base_libdir}"
|
||||
|
||||
EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
|
||||
--without-cvs --disable-profile --disable-debug --without-gd \
|
||||
--enable-clocale=gnu \
|
||||
--enable-add-ons=${GLIBC_ADDONS} \
|
||||
--with-headers=${STAGING_INCDIR} \
|
||||
--without-selinux \
|
||||
${GLIBC_EXTRA_OECONF}"
|
||||
|
||||
EXTRA_OECONF += "${@get_libc_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 || bbwarn "unable to generate header for $r"
|
||||
done
|
||||
)
|
||||
}
|
||||
|
||||
require glibc-stage.inc
|
||||
|
||||
require glibc-package.inc
|
||||
|
||||
BBCLASSEXTEND = "nativesdk"
|
||||
@@ -1,474 +0,0 @@
|
||||
a64l
|
||||
abs
|
||||
access
|
||||
__adjtimex
|
||||
alarm
|
||||
alphasort
|
||||
argz_append
|
||||
__argz_count
|
||||
argz_create_sep
|
||||
argz_insert
|
||||
__argz_next
|
||||
argz_next
|
||||
__argz_stringify
|
||||
argz_stringify
|
||||
asprintf
|
||||
atexit
|
||||
atof
|
||||
atoi
|
||||
bcmp
|
||||
bcopy
|
||||
bindresvport
|
||||
bind_textdomain_codeset
|
||||
btowc
|
||||
bzero
|
||||
calloc
|
||||
canonicalize_file_name
|
||||
catgets
|
||||
cfgetospeed
|
||||
cfsetispeed
|
||||
cfsetspeed
|
||||
chmod
|
||||
chown
|
||||
chroot
|
||||
clock
|
||||
close
|
||||
closedir
|
||||
closelog
|
||||
confstr
|
||||
connect
|
||||
daemon
|
||||
dcgettext
|
||||
difftime
|
||||
dirfd
|
||||
dirname
|
||||
dngettext
|
||||
dup2
|
||||
ecvt
|
||||
endgrent
|
||||
endmntent
|
||||
endpwent
|
||||
endutent
|
||||
endutxent
|
||||
epoll_ctl
|
||||
err
|
||||
ether_hostton
|
||||
ether_ntohost
|
||||
euidaccess
|
||||
execv
|
||||
fchdir
|
||||
fchmod
|
||||
fchmodat
|
||||
fchown
|
||||
fchownat
|
||||
fcntl
|
||||
fcvt
|
||||
fdatasync
|
||||
fdopendir
|
||||
feof_unlocked
|
||||
fgets_unlocked
|
||||
fgetxattr
|
||||
finite
|
||||
flistxattr
|
||||
flock
|
||||
flockfile
|
||||
fnmatch
|
||||
fork
|
||||
fpathconf
|
||||
__fpending
|
||||
fprintf
|
||||
free
|
||||
freeaddrinfo
|
||||
freeifaddrs
|
||||
fseeko
|
||||
__fsetlocking
|
||||
fsetxattr
|
||||
fstat64
|
||||
fstat
|
||||
fstatfs
|
||||
fsync
|
||||
ftello
|
||||
ftime
|
||||
ftruncate
|
||||
funlockfile
|
||||
futimes
|
||||
futimesat
|
||||
gai_strerror
|
||||
gcvt
|
||||
getaddrinfo
|
||||
getc_unlocked
|
||||
getcwd
|
||||
getdelim
|
||||
getdomainname
|
||||
getdtablesize
|
||||
getegid
|
||||
getenv
|
||||
geteuid
|
||||
getgid
|
||||
getgrent
|
||||
getgrent_r
|
||||
getgrgid_r
|
||||
getgrnam
|
||||
getgrnam_r
|
||||
getgrouplist
|
||||
getgroups
|
||||
gethostbyaddr_r
|
||||
gethostbyname2
|
||||
gethostbyname
|
||||
gethostbyname_r
|
||||
gethostent
|
||||
gethostid
|
||||
gethostname
|
||||
getifaddrs
|
||||
getline
|
||||
getloadavg
|
||||
getmntent
|
||||
getmsg
|
||||
getnameinfo
|
||||
getnetbyaddr_r
|
||||
getnetgrent_r
|
||||
getopt
|
||||
getopt_long
|
||||
getopt_long_only
|
||||
getpagesize
|
||||
getpass
|
||||
getpeername
|
||||
getpgrp
|
||||
getpid
|
||||
getppid
|
||||
getprotoent_r
|
||||
getpwent
|
||||
getpwent_r
|
||||
getpwnam
|
||||
getpwnam_r
|
||||
getpwuid
|
||||
getpwuid_r
|
||||
getresuid
|
||||
getrlimit
|
||||
getrusage
|
||||
getservbyname
|
||||
getservbyname_r
|
||||
getservbyport_r
|
||||
getservent
|
||||
getservent_r
|
||||
getspnam
|
||||
getspnam_r
|
||||
gettimeofday
|
||||
getttyent
|
||||
getttynam
|
||||
getuid
|
||||
getusershell
|
||||
getutent
|
||||
getutid
|
||||
getutline
|
||||
getutmp
|
||||
getutmpx
|
||||
getutxent
|
||||
getutxid
|
||||
getutxline
|
||||
getwd
|
||||
getxattr
|
||||
glob
|
||||
gmtime
|
||||
gmtime_r
|
||||
grantpt
|
||||
group_member
|
||||
herror
|
||||
hstrerror
|
||||
iconv
|
||||
iconv_open
|
||||
if_freenameindex
|
||||
if_indextoname
|
||||
if_nameindex
|
||||
if_nametoindex
|
||||
index
|
||||
inet_addr
|
||||
inet_aton
|
||||
inet_ntoa
|
||||
inet_ntop
|
||||
inet_pton
|
||||
initgroups
|
||||
innetgr
|
||||
iruserok
|
||||
isascii
|
||||
isatty
|
||||
isblank
|
||||
isgraph
|
||||
isinf
|
||||
isnan
|
||||
isprint
|
||||
isspace
|
||||
iswalnum
|
||||
iswcntrl
|
||||
iswctype
|
||||
iswprint
|
||||
iswspace
|
||||
iswupper
|
||||
isxdigit
|
||||
kill
|
||||
killpg
|
||||
lchown
|
||||
lckpwdf
|
||||
lgetxattr
|
||||
link
|
||||
listxattr
|
||||
llistxattr
|
||||
localtime
|
||||
localtime_r
|
||||
lockf
|
||||
lrand48
|
||||
lsearch
|
||||
lseek64
|
||||
lsetxattr
|
||||
lstat
|
||||
mallinfo
|
||||
malloc
|
||||
mblen
|
||||
mbrlen
|
||||
mbrtowc
|
||||
mbsinit
|
||||
mbsrtowcs
|
||||
mbtowc
|
||||
memalign
|
||||
memchr
|
||||
memcmp
|
||||
memcpy
|
||||
memmove
|
||||
mempcpy
|
||||
memrchr
|
||||
memset
|
||||
mkdir
|
||||
mkdirat
|
||||
mkdtemp
|
||||
mkfifo
|
||||
mknod
|
||||
mkstemp64
|
||||
mkstemp
|
||||
mktime
|
||||
mlock
|
||||
mmap
|
||||
mtrace
|
||||
munlock
|
||||
munmap
|
||||
nanosleep
|
||||
nice
|
||||
nl_langinfo
|
||||
ntp_adjtime
|
||||
ntp_gettime
|
||||
_obstack_free
|
||||
on_exit
|
||||
open64
|
||||
open
|
||||
openat
|
||||
opendir
|
||||
openlog
|
||||
pathconf
|
||||
pipe
|
||||
poll
|
||||
popen
|
||||
posix_memalign
|
||||
prctl
|
||||
pread
|
||||
printf
|
||||
__progname
|
||||
pselect
|
||||
pthread_mutex_lock
|
||||
ptsname
|
||||
putenv
|
||||
putgrent
|
||||
putpwent
|
||||
putspent
|
||||
pututline
|
||||
pututxline
|
||||
putwc
|
||||
pwrite
|
||||
qsort
|
||||
raise
|
||||
rand
|
||||
random
|
||||
rand_r
|
||||
read
|
||||
readdir
|
||||
readdir_r
|
||||
readlink
|
||||
realloc
|
||||
realpath
|
||||
re_comp
|
||||
recvmsg
|
||||
re_exec
|
||||
regcomp
|
||||
regexec
|
||||
remove
|
||||
rename
|
||||
re_search
|
||||
rmdir
|
||||
rpmatch
|
||||
rresvport_af
|
||||
ruserok
|
||||
ruserok_af
|
||||
sbrk
|
||||
scandir
|
||||
sched_setscheduler
|
||||
sched_yield
|
||||
__secure_getenv
|
||||
select
|
||||
semctl
|
||||
semget
|
||||
sendmsg
|
||||
setbuf
|
||||
setbuffer
|
||||
setegid
|
||||
setenv
|
||||
seteuid
|
||||
setgid
|
||||
setgroups
|
||||
sethostname
|
||||
setitimer
|
||||
_setjmp
|
||||
setjmp
|
||||
setlinebuf
|
||||
setlocale
|
||||
setmntent
|
||||
setpgid
|
||||
setpgrp
|
||||
setpriority
|
||||
setregid
|
||||
setresgid
|
||||
setresuid
|
||||
setreuid
|
||||
setrlimit
|
||||
setsid
|
||||
setsockopt
|
||||
settimeofday
|
||||
setuid
|
||||
setutent
|
||||
setutxent
|
||||
setvbuf
|
||||
setxattr
|
||||
sgetspent
|
||||
shmat
|
||||
shmctl
|
||||
shmdt
|
||||
shmget
|
||||
shutdown
|
||||
sigaction
|
||||
sigaddset
|
||||
sigaltstack
|
||||
sigblock
|
||||
sigemptyset
|
||||
sighold
|
||||
siginterrupt
|
||||
signal
|
||||
sigprocmask
|
||||
sigset
|
||||
sigsetmask
|
||||
sigstack
|
||||
sigsuspend
|
||||
sigvec
|
||||
snprintf
|
||||
socket
|
||||
socketpair
|
||||
sprintf
|
||||
srand48
|
||||
srand
|
||||
srandom
|
||||
sscanf
|
||||
stat
|
||||
statfs
|
||||
statvfs
|
||||
stime
|
||||
stpcpy
|
||||
strcasecmp
|
||||
strcasestr
|
||||
strchr
|
||||
strchrnul
|
||||
strcmp
|
||||
strcspn
|
||||
strdup
|
||||
strerror
|
||||
strerror_r
|
||||
strftime
|
||||
strlen
|
||||
strncasecmp
|
||||
strncmp
|
||||
strndup
|
||||
strnlen
|
||||
strpbrk
|
||||
strptime
|
||||
strrchr
|
||||
strsep
|
||||
strsignal
|
||||
strspn
|
||||
strstr
|
||||
strtod
|
||||
strtoimax
|
||||
strtok_r
|
||||
strtol
|
||||
strtoll
|
||||
strtoul
|
||||
strtoull
|
||||
strtoumax
|
||||
strverscmp
|
||||
strxfrm
|
||||
symlink
|
||||
sync
|
||||
sysconf
|
||||
sysctl
|
||||
sysinfo
|
||||
syslog
|
||||
_sys_siglist
|
||||
sys_siglist
|
||||
system
|
||||
tcgetattr
|
||||
tcgetpgrp
|
||||
tcsetattr
|
||||
tcsetpgrp
|
||||
time
|
||||
timegm
|
||||
times
|
||||
timezone
|
||||
tmpnam
|
||||
towlower
|
||||
towupper
|
||||
truncate
|
||||
tsearch
|
||||
ttyname
|
||||
tzset
|
||||
ulimit
|
||||
umask
|
||||
uname
|
||||
unlink
|
||||
unsetenv
|
||||
unshare
|
||||
updwtmp
|
||||
updwtmpx
|
||||
usleep
|
||||
ustat
|
||||
utime
|
||||
utimes
|
||||
utmpname
|
||||
utmpxname
|
||||
valloc
|
||||
vasprintf
|
||||
verrx
|
||||
vfork
|
||||
vfprintf
|
||||
vfscanf
|
||||
vhangup
|
||||
vprintf
|
||||
vsnprintf
|
||||
vsprintf
|
||||
wait3
|
||||
wait4
|
||||
waitpid
|
||||
wcrtomb
|
||||
wcscoll
|
||||
wcsdup
|
||||
wcslen
|
||||
wctob
|
||||
wctomb
|
||||
wctype
|
||||
wcwidth
|
||||
wmemchr
|
||||
wmemcpy
|
||||
wmempcpy
|
||||
@@ -1,156 +0,0 @@
|
||||
aio.h
|
||||
alloca.h
|
||||
argz.h
|
||||
arpa/inet.h
|
||||
arpa/nameser.h
|
||||
asm/byteorder.h
|
||||
asm/ioctls.h
|
||||
asm/page.h
|
||||
asm/types.h
|
||||
assert.h
|
||||
byteswap.h
|
||||
crypt.h
|
||||
ctype.h
|
||||
dirent.h
|
||||
dlfcn.h
|
||||
elf.h
|
||||
endian.h
|
||||
err.h
|
||||
errno.h
|
||||
execinfo.h
|
||||
fcntl.h
|
||||
features.h
|
||||
float.h
|
||||
fstab.h
|
||||
ftw.h
|
||||
getopt.h
|
||||
glob.h
|
||||
grp.h
|
||||
iconv.h
|
||||
ifaddrs.h
|
||||
inttypes.h
|
||||
langinfo.h
|
||||
lastlog.h
|
||||
libgen.h
|
||||
libintl.h
|
||||
limits.h
|
||||
linux/capability.h
|
||||
linux/fd.h
|
||||
linux/fs.h
|
||||
linux/hayesesp.h
|
||||
linux/hdreg.h
|
||||
linux/icmp.h
|
||||
linux/in6.h
|
||||
linux/joystick.h
|
||||
linux/ptrace.h
|
||||
linux/serial.h
|
||||
linux/sonypi.h
|
||||
linux/unistd.h
|
||||
linux/utsname.h
|
||||
linux/version.h
|
||||
locale.h
|
||||
malloc.h
|
||||
math.h
|
||||
mcheck.h
|
||||
memory.h
|
||||
mntent.h
|
||||
mqueue.h
|
||||
netdb.h
|
||||
net/if.h
|
||||
netinet/ether.h
|
||||
netinet/in.h
|
||||
netinet/ip6.h
|
||||
netinet/ip.h
|
||||
netinet/tcp.h
|
||||
netinet/udp.h
|
||||
netipx/ipx.h
|
||||
net/route.h
|
||||
paths.h
|
||||
poll.h
|
||||
pthread.h
|
||||
pty.h
|
||||
pwd.h
|
||||
regex.h
|
||||
resolv.h
|
||||
rpc/rpc.h
|
||||
rpc/types.h
|
||||
sched.h
|
||||
scsi/scsi.h
|
||||
search.h
|
||||
semaphore.h
|
||||
setjmp.h
|
||||
sgtty.h
|
||||
shadow.h
|
||||
signal.h
|
||||
stdarg.h
|
||||
stdbool.h
|
||||
stdc
|
||||
stddef.h
|
||||
stdint.h
|
||||
stdio.h
|
||||
stdlib.h
|
||||
string.h
|
||||
strings.h
|
||||
stropts.h
|
||||
sys/bitypes.h
|
||||
sys/cdefs.h
|
||||
sys/dir.h
|
||||
sys/epoll.h
|
||||
sysexits.h
|
||||
sys/fcntl.h
|
||||
sys/file.h
|
||||
sys/fsuid.h
|
||||
sys/ioctl.h
|
||||
sys/ipc.h
|
||||
syslog.h
|
||||
sys/mman.h
|
||||
sys/mount.h
|
||||
sys/mtio.h
|
||||
sys/param.h
|
||||
sys/poll.h
|
||||
sys/prctl.h
|
||||
sys/ptrace.h
|
||||
sys/queue.h
|
||||
sys/reg.h
|
||||
sys/resource.h
|
||||
sys/select.h
|
||||
sys/sem.h
|
||||
sys/shm.h
|
||||
sys/signal.h
|
||||
sys/socket.h
|
||||
sys/socketvar.h
|
||||
sys/soundcard.h
|
||||
sys/statfs.h
|
||||
sys/stat.h
|
||||
sys/statvfs.h
|
||||
sys/stropts.h
|
||||
sys/swap.h
|
||||
sys/sysctl.h
|
||||
sys/sysinfo.h
|
||||
sys/sysmacros.h
|
||||
sys/termios.h
|
||||
sys/timeb.h
|
||||
sys/time.h
|
||||
sys/times.h
|
||||
sys/timex.h
|
||||
sys/types.h
|
||||
sys/uio.h
|
||||
sys/un.h
|
||||
sys/unistd.h
|
||||
sys/user.h
|
||||
sys/utsname.h
|
||||
sys/vfs.h
|
||||
sys/wait.h
|
||||
termio.h
|
||||
termios.h
|
||||
time.h
|
||||
ttyent.h
|
||||
ulimit.h
|
||||
unistd.h
|
||||
ustat.h
|
||||
utime.h
|
||||
utmp.h
|
||||
utmpx.h
|
||||
values.h
|
||||
wchar.h
|
||||
wctype.h
|
||||
@@ -1,21 +0,0 @@
|
||||
char
|
||||
char *
|
||||
double
|
||||
float
|
||||
int
|
||||
long
|
||||
long double
|
||||
long int
|
||||
long long
|
||||
long long int
|
||||
short
|
||||
short int
|
||||
signed char
|
||||
unsigned char
|
||||
unsigned int
|
||||
unsigned long
|
||||
unsigned long int
|
||||
unsigned long long int
|
||||
unsigned short
|
||||
unsigned short int
|
||||
void *
|
||||
Reference in New Issue
Block a user