diff options
author | Chris Larson <clarson@kergoth.com> | 2004-11-09 00:36:47 +0000 |
---|---|---|
committer | Chris Larson <clarson@kergoth.com> | 2004-11-09 00:36:47 +0000 |
commit | f96441b9faf769c9ecdd4d338b605ea3d0cc4010 (patch) | |
tree | edb17ec2c4ea13c5acb1c7350957a249a820e28d /glibc/glibc-2.2.5 | |
parent | b6588aa6851fb220cedc387d21c51513ef8d67f4 (diff) |
Disable bk EOLN_NATIVE conversions on all files in packages FILESPATHs, to prevent it screwing up patches.
BKrev: 4190111fA4MuVozAqwE7xOSL9fr-TA
Diffstat (limited to 'glibc/glibc-2.2.5')
49 files changed, 5932 insertions, 0 deletions
diff --git a/glibc/glibc-2.2.5/alpha-build-failure.patch b/glibc/glibc-2.2.5/alpha-build-failure.patch index e69de29bb2..280a0a556d 100644 --- a/glibc/glibc-2.2.5/alpha-build-failure.patch +++ b/glibc/glibc-2.2.5/alpha-build-failure.patch @@ -0,0 +1,30 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/alpha/divrem.h~alpha-build-failure.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/alpha/divrem.h 2004-09-03 19:00:37.000000000 -0500 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. ++/* Copyright (C) 1996,97,2002 Free Software Foundation, Inc. + Contributed by David Mosberger (davidm@cs.arizona.edu). + This file is part of the GNU C Library. + +@@ -86,6 +86,7 @@ + + .align 3 + UFUNC_NAME: ++$udiv_entry: + lda sp, -STACK(sp) + .frame sp, STACK, retaddr, 0 + #ifdef PROF +@@ -206,7 +207,7 @@ + cmovge AT, AT, arg2 + + /* Do the unsigned division. */ +- bsr retaddr, UFUNC_NAME ++ bsr retaddr, $udiv_entry + + /* Restore originals and adjust the sign of the result. */ + ldq arg1, 0(sp) diff --git a/glibc/glibc-2.2.5/arm-asm-clobber.patch b/glibc/glibc-2.2.5/arm-asm-clobber.patch index e69de29bb2..eff21dc702 100644 --- a/glibc/glibc-2.2.5/arm-asm-clobber.patch +++ b/glibc/glibc-2.2.5/arm-asm-clobber.patch @@ -0,0 +1,16 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h~arm-asm-clobber.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h 2004-09-03 19:01:07.000000000 -0500 +@@ -131,7 +131,7 @@ + asm volatile ("swi %1 @ syscall " #name \ + : "=r" (_a1) \ + : "i" (SYS_ify(name)) ASM_ARGS_##nr \ +- : "a1", "memory"); \ ++ : "memory"); \ + _sys_result = _a1; \ + } \ + if (_sys_result >= (unsigned int) -4095) \ diff --git a/glibc/glibc-2.2.5/arm-ctl_bus_isa.patch b/glibc/glibc-2.2.5/arm-ctl_bus_isa.patch index e69de29bb2..b487d69239 100644 --- a/glibc/glibc-2.2.5/arm-ctl_bus_isa.patch +++ b/glibc/glibc-2.2.5/arm-ctl_bus_isa.patch @@ -0,0 +1,40 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/unix/sysv/linux/arm/ioperm.c~arm-ctl_bus_isa.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/unix/sysv/linux/arm/ioperm.c 2004-09-03 19:00:37.000000000 -0500 +@@ -47,6 +47,12 @@ + #include <asm/page.h> + #include <sys/sysctl.h> + ++/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */ ++#include <linux/version.h> ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23)) ++#define CTL_BUS_ISA BUS_ISA /* and hope it's not the one from linux/input.h */ ++#endif ++ + #define PATH_ARM_SYSTYPE "/etc/arm_systype" + #define PATH_CPUINFO "/proc/cpuinfo" + +@@ -80,7 +86,7 @@ + * Initialize I/O system. There are several ways to get the information + * we need. Each is tried in turn until one succeeds. + * +- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*). This is the preferred method ++ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*). This is the preferred method + * but not all kernels support it. + * + * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE. +@@ -100,8 +106,8 @@ + { + char systype[256]; + int i, n; +- static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE }; +- static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT }; ++ static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE }; ++ static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT }; + size_t len = sizeof(io.base); + + if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0) diff --git a/glibc/glibc-2.2.5/arm-longlong.patch b/glibc/glibc-2.2.5/arm-longlong.patch index e69de29bb2..dfb9309b7b 100644 --- a/glibc/glibc-2.2.5/arm-longlong.patch +++ b/glibc/glibc-2.2.5/arm-longlong.patch @@ -0,0 +1,59 @@ +--- stdlib/longlong.h~ 2002-09-29 18:45:58.000000000 +0100 ++++ stdlib/longlong.h 2004-03-20 19:16:44.000000000 +0000 +@@ -210,6 +210,14 @@ + "rI" ((USItype) (bh)), \ + "r" ((USItype) (al)), \ + "rI" ((USItype) (bl))) ++/* v3m and all higher arches have long multiply support. */ ++#if !defined(__ARM_ARCH_2__) && !defined(__ARM_ARCH_3__) ++#define umul_ppmm(xh, xl, a, b) \ ++ __asm__ ("umull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b)) ++#define UMUL_TIME 5 ++#define smul_ppmm(xh, xl, a, b) \ ++ __asm__ ("smull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b)) ++#else + #define umul_ppmm(xh, xl, a, b) \ + {register USItype __t0, __t1, __t2; \ + __asm__ ("%@ Inlined umul_ppmm\n" \ +@@ -231,7 +239,14 @@ + : "r" ((USItype) (a)), \ + "r" ((USItype) (b)));} + #define UMUL_TIME 20 ++#endif + #define UDIV_TIME 100 ++ ++#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__) ++#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X)) ++#define COUNT_LEADING_ZEROS_0 32 ++#endif ++ + #endif /* __arm__ */ + + #if defined (__hppa) && W_TYPE_SIZE == 32 +--- /dev/null 2004-02-02 20:32:13.000000000 +0000 ++++ sysdeps/arm/mp_clz_tab.c 2004-03-20 19:24:26.000000000 +0000 +@@ -0,0 +1,24 @@ ++/* __clz_tab -- support for longlong.h ++ Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__) ++/* Nothing required. */ ++#else ++#include <sysdeps/generic/mp_clz_tab.c> ++#endif diff --git a/glibc/glibc-2.2.5/arm-machine-gmon.patch b/glibc/glibc-2.2.5/arm-machine-gmon.patch index e69de29bb2..0fa789d86b 100644 --- a/glibc/glibc-2.2.5/arm-machine-gmon.patch +++ b/glibc/glibc-2.2.5/arm-machine-gmon.patch @@ -0,0 +1,11 @@ +--- sysdeps/arm/machine-gmon.h~ 2001-07-06 00:55:48.000000000 -0400 ++++ sysdeps/arm/machine-gmon.h 2004-04-25 03:56:20.000000000 -0400 +@@ -35,7 +35,7 @@ + static void mcount_internal (u_long frompc, u_long selfpc); + + #define _MCOUNT_DECL(frompc, selfpc) \ +-static void mcount_internal (u_long frompc, u_long selfpc) ++static __attribute__((used)) void mcount_internal (u_long frompc, u_long selfpc) + + /* This macro/func MUST save r0, r1 because the compiler inserts + blind calls to _mount(), ignoring the fact that _mcount may diff --git a/glibc/glibc-2.2.5/arm-memcpy.patch b/glibc/glibc-2.2.5/arm-memcpy.patch index e69de29bb2..0f7009e549 100644 --- a/glibc/glibc-2.2.5/arm-memcpy.patch +++ b/glibc/glibc-2.2.5/arm-memcpy.patch @@ -0,0 +1,761 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- /dev/null 2004-06-02 16:28:12.000000000 -0500 ++++ glibc-2.2.5/sysdeps/arm/memcpy.S 2004-09-03 19:00:39.000000000 -0500 +@@ -0,0 +1,241 @@ ++/* ++ * 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) +--- /dev/null 2004-06-02 16:28:12.000000000 -0500 ++++ glibc-2.2.5/sysdeps/arm/memmove.S 2004-09-03 19:00:39.000000000 -0500 +@@ -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-06-02 16:28:12.000000000 -0500 ++++ glibc-2.2.5/sysdeps/arm/bcopy.S 2004-09-03 19:00:39.000000000 -0500 +@@ -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) diff --git a/glibc/glibc-2.2.5/arm-no-hwcap.patch b/glibc/glibc-2.2.5/arm-no-hwcap.patch index e69de29bb2..17bfdcd125 100644 --- a/glibc/glibc-2.2.5/arm-no-hwcap.patch +++ b/glibc/glibc-2.2.5/arm-no-hwcap.patch @@ -0,0 +1,11 @@ +--- sysdeps/unix/sysv/linux/arm/dl-procinfo.h Mon Jul 23 12:57:23 2001 ++++ sysdeps/unix/sysv/linux/arm/dl-procinfo.h Sun Feb 10 06:37:00 2002 +@@ -67,7 +67,7 @@ + HWCAP_ARM_VFP = 1 << 6, + HWCAP_ARM_EDSP = 1 << 7, + +- HWCAP_IMPORTANT = (HWCAP_ARM_HALF | HWCAP_ARM_FAST_MULT) ++ HWCAP_IMPORTANT = HWCAP_ARM_FAST_MULT + }; + + static inline int diff --git a/glibc/glibc-2.2.5/cris-libc-symbols.patch b/glibc/glibc-2.2.5/cris-libc-symbols.patch index e69de29bb2..93fc2c141f 100644 --- a/glibc/glibc-2.2.5/cris-libc-symbols.patch +++ b/glibc/glibc-2.2.5/cris-libc-symbols.patch @@ -0,0 +1,43 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/include/libc-symbols.h~cris-libc-symbols.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/include/libc-symbols.h 2004-09-03 19:00:37.000000000 -0500 +@@ -207,18 +207,29 @@ + # define __make_section_unallocated(section_string) + # endif + +-/* Tacking on "\n\t#" to the section name makes gcc put it's bogus +- section attributes on what looks like a comment to the assembler. */ ++/* Tacking on "\n\t#" to the section name makes gcc put its bogus ++ section attributes on what looks like a comment to the assembler. ++ Furthermore, with gas, we need to add a "#APP" line so the comment ++ is recognized as such. */ ++# ifdef HAVE_GNU_AS ++# define __as_app_line "#APP\n" ++# else ++# define __as_app_line "" ++# endif + # ifdef HAVE_SECTION_QUOTES + # define link_warning(symbol, msg) \ + __make_section_unallocated (".gnu.warning." #symbol) \ +- static const char __evoke_link_warning_##symbol[] \ +- __attribute__ ((section (".gnu.warning." #symbol "\"\n\t#\""))) = msg; ++ static const char __evoke_link_warning_##symbol[] \ ++ __attribute__ \ ++ ((section (".gnu.warning." #symbol "\"\n" __as_app_line "\t#\""))) \ ++ = msg; + # else + # define link_warning(symbol, msg) \ + __make_section_unallocated (".gnu.warning." #symbol) \ +- static const char __evoke_link_warning_##symbol[] \ +- __attribute__ ((section (".gnu.warning." #symbol "\n\t#"))) = msg; ++ static const char __evoke_link_warning_##symbol[] \ ++ __attribute__ \ ++ ((section (".gnu.warning." #symbol "\n" __as_app_line "\t#"))) \ ++ = msg; + # endif + # else /* Not ELF: a.out */ + # ifdef HAVE_XCOFF diff --git a/glibc/glibc-2.2.5/cris-stack-direction.patch b/glibc/glibc-2.2.5/cris-stack-direction.patch index e69de29bb2..785d3a2427 100644 --- a/glibc/glibc-2.2.5/cris-stack-direction.patch +++ b/glibc/glibc-2.2.5/cris-stack-direction.patch @@ -0,0 +1,36 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- /dev/null 2004-06-02 16:28:12.000000000 -0500 ++++ glibc-2.2.5/sysdeps/cris/stackinfo.h 2004-09-03 19:00:37.000000000 -0500 +@@ -0,0 +1,28 @@ ++/* Copyright (C) 2002 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. */ ++ ++/* This file contains a bit of information about the stack allocation ++ of the processor. */ ++ ++#ifndef _STACKINFO_H ++#define _STACKINFO_H 1 ++ ++/* On cris the stack grows down. */ ++#define _STACK_GROWS_DOWN 1 ++ ++#endif /* stackinfo.h */ diff --git a/glibc/glibc-2.2.5/dl-machine-alpha.patch b/glibc/glibc-2.2.5/dl-machine-alpha.patch index e69de29bb2..1d34dba706 100644 --- a/glibc/glibc-2.2.5/dl-machine-alpha.patch +++ b/glibc/glibc-2.2.5/dl-machine-alpha.patch @@ -0,0 +1,420 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/alpha/dl-machine.h~dl-machine-alpha.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/alpha/dl-machine.h 2004-09-03 19:00:37.000000000 -0500 +@@ -134,125 +134,126 @@ + #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name, IMB) \ + extern void tramp_name (void); \ + asm ( "\ +- .globl " #tramp_name " +- .ent " #tramp_name " +-" #tramp_name ": +- lda $sp, -44*8($sp) +- .frame $sp, 44*8, $26 +- /* Preserve all integer registers that C normally doesn't. */ +- stq $26, 0*8($sp) +- stq $0, 1*8($sp) +- stq $1, 2*8($sp) +- stq $2, 3*8($sp) +- stq $3, 4*8($sp) +- stq $4, 5*8($sp) +- stq $5, 6*8($sp) +- stq $6, 7*8($sp) +- stq $7, 8*8($sp) +- stq $8, 9*8($sp) +- stq $16, 10*8($sp) +- stq $17, 11*8($sp) +- stq $18, 12*8($sp) +- stq $19, 13*8($sp) +- stq $20, 14*8($sp) +- stq $21, 15*8($sp) +- stq $22, 16*8($sp) +- stq $23, 17*8($sp) +- stq $24, 18*8($sp) +- stq $25, 19*8($sp) +- stq $29, 20*8($sp) +- stt $f0, 21*8($sp) +- stt $f1, 22*8($sp) +- stt $f10, 23*8($sp) +- stt $f11, 24*8($sp) +- stt $f12, 25*8($sp) +- stt $f13, 26*8($sp) +- stt $f14, 27*8($sp) +- stt $f15, 28*8($sp) +- stt $f16, 29*8($sp) +- stt $f17, 30*8($sp) +- stt $f18, 31*8($sp) +- stt $f19, 32*8($sp) +- stt $f20, 33*8($sp) +- stt $f21, 34*8($sp) +- stt $f22, 35*8($sp) +- stt $f23, 36*8($sp) +- stt $f24, 37*8($sp) +- stt $f25, 38*8($sp) +- stt $f26, 39*8($sp) +- stt $f27, 40*8($sp) +- stt $f28, 41*8($sp) +- stt $f29, 42*8($sp) +- stt $f30, 43*8($sp) +- .mask 0x27ff01ff, -44*8 +- .fmask 0xfffffc03, -(44-21)*8 +- /* Set up our $gp */ +- br $gp, .+4 +- ldgp $gp, 0($gp) +- .prologue 0 +- /* Set up the arguments for fixup: */ +- /* $16 = link_map out of plt0 */ +- /* $17 = offset of reloc entry = ($28 - $27 - 20) /12 * 24 */ +- /* $18 = return address */ +- subq $28, $27, $17 +- ldq $16, 8($27) +- subq $17, 20, $17 +- mov $26, $18 +- addq $17, $17, $17 +- /* Do the fixup */ +- bsr $26, " ASM_ALPHA_NG_SYMBOL_PREFIX #fixup_name "..ng +- /* Move the destination address into position. */ +- mov $0, $27 +- /* Restore program registers. */ +- ldq $26, 0*8($sp) +- ldq $0, 1*8($sp) +- ldq $1, 2*8($sp) +- ldq $2, 3*8($sp) +- ldq $3, 4*8($sp) +- ldq $4, 5*8($sp) +- ldq $5, 6*8($sp) +- ldq $6, 7*8($sp) +- ldq $7, 8*8($sp) +- ldq $8, 9*8($sp) +- ldq $16, 10*8($sp) +- ldq $17, 11*8($sp) +- ldq $18, 12*8($sp) +- ldq $19, 13*8($sp) +- ldq $20, 14*8($sp) +- ldq $21, 15*8($sp) +- ldq $22, 16*8($sp) +- ldq $23, 17*8($sp) +- ldq $24, 18*8($sp) +- ldq $25, 19*8($sp) +- ldq $29, 20*8($sp) +- ldt $f0, 21*8($sp) +- ldt $f1, 22*8($sp) +- ldt $f10, 23*8($sp) +- ldt $f11, 24*8($sp) +- ldt $f12, 25*8($sp) +- ldt $f13, 26*8($sp) +- ldt $f14, 27*8($sp) +- ldt $f15, 28*8($sp) +- ldt $f16, 29*8($sp) +- ldt $f17, 30*8($sp) +- ldt $f18, 31*8($sp) +- ldt $f19, 32*8($sp) +- ldt $f20, 33*8($sp) +- ldt $f21, 34*8($sp) +- ldt $f22, 35*8($sp) +- ldt $f23, 36*8($sp) +- ldt $f24, 37*8($sp) +- ldt $f25, 38*8($sp) +- ldt $f26, 39*8($sp) +- ldt $f27, 40*8($sp) +- ldt $f28, 41*8($sp) +- ldt $f29, 42*8($sp) +- ldt $f30, 43*8($sp) +- /* Flush the Icache after having modified the .plt code. */ +- " #IMB " +- /* Clean up and turn control to the destination */ +- lda $sp, 44*8($sp) +- jmp $31, ($27) ++ .globl " #tramp_name " \n\ ++ .ent " #tramp_name " \n\ ++" #tramp_name ": \n\ ++ lda $sp, -44*8($sp) \n\ ++ .frame $sp, 44*8, $26 \n\ ++ /* Preserve all integer registers that C normally \n\ ++ doesn't. */ \n\ ++ stq $26, 0*8($sp) \n\ ++ stq $0, 1*8($sp) \n\ ++ stq $1, 2*8($sp) \n\ ++ stq $2, 3*8($sp) \n\ ++ stq $3, 4*8($sp) \n\ ++ stq $4, 5*8($sp) \n\ ++ stq $5, 6*8($sp) \n\ ++ stq $6, 7*8($sp) \n\ ++ stq $7, 8*8($sp) \n\ ++ stq $8, 9*8($sp) \n\ ++ stq $16, 10*8($sp) \n\ ++ stq $17, 11*8($sp) \n\ ++ stq $18, 12*8($sp) \n\ ++ stq $19, 13*8($sp) \n\ ++ stq $20, 14*8($sp) \n\ ++ stq $21, 15*8($sp) \n\ ++ stq $22, 16*8($sp) \n\ ++ stq $23, 17*8($sp) \n\ ++ stq $24, 18*8($sp) \n\ ++ stq $25, 19*8($sp) \n\ ++ stq $29, 20*8($sp) \n\ ++ stt $f0, 21*8($sp) \n\ ++ stt $f1, 22*8($sp) \n\ ++ stt $f10, 23*8($sp) \n\ ++ stt $f11, 24*8($sp) \n\ ++ stt $f12, 25*8($sp) \n\ ++ stt $f13, 26*8($sp) \n\ ++ stt $f14, 27*8($sp) \n\ ++ stt $f15, 28*8($sp) \n\ ++ stt $f16, 29*8($sp) \n\ ++ stt $f17, 30*8($sp) \n\ ++ stt $f18, 31*8($sp) \n\ ++ stt $f19, 32*8($sp) \n\ ++ stt $f20, 33*8($sp) \n\ ++ stt $f21, 34*8($sp) \n\ ++ stt $f22, 35*8($sp) \n\ ++ stt $f23, 36*8($sp) \n\ ++ stt $f24, 37*8($sp) \n\ ++ stt $f25, 38*8($sp) \n\ ++ stt $f26, 39*8($sp) \n\ ++ stt $f27, 40*8($sp) \n\ ++ stt $f28, 41*8($sp) \n\ ++ stt $f29, 42*8($sp) \n\ ++ stt $f30, 43*8($sp) \n\ ++ .mask 0x27ff01ff, -44*8 \n\ ++ .fmask 0xfffffc03, -(44-21)*8 \n\ ++ /* Set up our $gp */ \n\ ++ br $gp, .+4 \n\ ++ ldgp $gp, 0($gp) \n\ ++ .prologue 0 \n\ ++ /* Set up the arguments for fixup: */ \n\ ++ /* $16 = link_map out of plt0 */ \n\ ++ /* $17 = offset of reloc entry = ($28 - $27 - 20) /12 * 24 */\n\ ++ /* $18 = return address */ \n\ ++ subq $28, $27, $17 \n\ ++ ldq $16, 8($27) \n\ ++ subq $17, 20, $17 \n\ ++ mov $26, $18 \n\ ++ addq $17, $17, $17 \n\ ++ /* Do the fixup */ \n\ ++ bsr $26, " ASM_ALPHA_NG_SYMBOL_PREFIX #fixup_name "..ng\n\ ++ /* Move the destination address into position. */ \n\ ++ mov $0, $27 \n\ ++ /* Restore program registers. */ \n\ ++ ldq $26, 0*8($sp) \n\ ++ ldq $0, 1*8($sp) \n\ ++ ldq $1, 2*8($sp) \n\ ++ ldq $2, 3*8($sp) \n\ ++ ldq $3, 4*8($sp) \n\ ++ ldq $4, 5*8($sp) \n\ ++ ldq $5, 6*8($sp) \n\ ++ ldq $6, 7*8($sp) \n\ ++ ldq $7, 8*8($sp) \n\ ++ ldq $8, 9*8($sp) \n\ ++ ldq $16, 10*8($sp) \n\ ++ ldq $17, 11*8($sp) \n\ ++ ldq $18, 12*8($sp) \n\ ++ ldq $19, 13*8($sp) \n\ ++ ldq $20, 14*8($sp) \n\ ++ ldq $21, 15*8($sp) \n\ ++ ldq $22, 16*8($sp) \n\ ++ ldq $23, 17*8($sp) \n\ ++ ldq $24, 18*8($sp) \n\ ++ ldq $25, 19*8($sp) \n\ ++ ldq $29, 20*8($sp) \n\ ++ ldt $f0, 21*8($sp) \n\ ++ ldt $f1, 22*8($sp) \n\ ++ ldt $f10, 23*8($sp) \n\ ++ ldt $f11, 24*8($sp) \n\ ++ ldt $f12, 25*8($sp) \n\ ++ ldt $f13, 26*8($sp) \n\ ++ ldt $f14, 27*8($sp) \n\ ++ ldt $f15, 28*8($sp) \n\ ++ ldt $f16, 29*8($sp) \n\ ++ ldt $f17, 30*8($sp) \n\ ++ ldt $f18, 31*8($sp) \n\ ++ ldt $f19, 32*8($sp) \n\ ++ ldt $f20, 33*8($sp) \n\ ++ ldt $f21, 34*8($sp) \n\ ++ ldt $f22, 35*8($sp) \n\ ++ ldt $f23, 36*8($sp) \n\ ++ ldt $f24, 37*8($sp) \n\ ++ ldt $f25, 38*8($sp) \n\ ++ ldt $f26, 39*8($sp) \n\ ++ ldt $f27, 40*8($sp) \n\ ++ ldt $f28, 41*8($sp) \n\ ++ ldt $f29, 42*8($sp) \n\ ++ ldt $f30, 43*8($sp) \n\ ++ /* Flush the Icache after having modified the .plt code. */\n\ ++ " #IMB " \n\ ++ /* Clean up and turn control to the destination */ \n\ ++ lda $sp, 44*8($sp) \n\ ++ jmp $31, ($27) \n\ + .end " #tramp_name) + + #ifndef PROF +@@ -270,85 +271,87 @@ + its return value is the user program's entry point. */ + + #define RTLD_START asm ("\ +-.text +- .set at +- .globl _start +- .ent _start +-_start: +- br $gp, 0f +-0: ldgp $gp, 0($gp) +- .prologue 0 +- /* Pass pointer to argument block to _dl_start. */ +- mov $sp, $16 +- bsr $26, "ASM_ALPHA_NG_SYMBOL_PREFIX"_dl_start..ng +- .end _start +- /* FALLTHRU */ +- .globl _dl_start_user +- .ent _dl_start_user +-_dl_start_user: +- .frame $30,0,$31,0 +- .prologue 0 +- /* Save the user entry point address in s0. */ +- mov $0, $9 +- /* Store the highest stack address. */ +- stq $30, __libc_stack_end +- /* See if we were run as a command with the executable file +- name as an extra leading argument. */ +- ldl $1, _dl_skip_args +- bne $1, $fixup_stack +-$fixup_stack_ret: +- /* The special initializer gets called with the stack just +- as the application's entry point will see it; it can +- switch stacks if it moves these contents over. */ +-" RTLD_START_SPECIAL_INIT " +- /* Call _dl_init(_dl_loaded, argc, argv, envp) to run initializers. */ +- ldq $16, _dl_loaded +- ldq $17, 0($sp) +- lda $18, 8($sp) +- s8addq $17, 8, $19 +- addq $19, $18, $19 +- jsr $26, _dl_init +- /* Pass our finalizer function to the user in $0. */ +- lda $0, _dl_fini +- /* Jump to the user's entry point. */ +- mov $9, $27 +- jmp ($9) +-$fixup_stack: +- /* Adjust the stack pointer to skip _dl_skip_args words. This +- involves copying everything down, since the stack pointer must +- always be 16-byte aligned. */ +- ldq $2, 0($sp) +- ldq $5, _dl_argv +- subq $31, $1, $6 +- subq $2, $1, $2 +- s8addq $6, $5, $5 +- mov $sp, $4 +- s8addq $1, $sp, $3 +- stq $2, 0($sp) +- stq $5, _dl_argv +- /* Copy down argv. */ +-0: ldq $5, 8($3) +- addq $4, 8, $4 +- addq $3, 8, $3 +- stq $5, 0($4) +- bne $5, 0b +- /* Copy down envp. */ +-1: ldq $5, 8($3) +- addq $4, 8, $4 +- addq $3, 8, $3 +- stq $5, 0($4) +- bne $5, 1b +- /* Copy down auxiliary table. */ +-2: ldq $5, 8($3) +- ldq $6, 16($3) +- addq $4, 16, $4 +- addq $3, 16, $3 +- stq $5, -8($4) +- stq $6, 0($4) +- bne $5, 2b +- br $fixup_stack_ret +- .end _dl_start_user +- .set noat ++.text \n\ ++ .set at \n\ ++ .globl _start \n\ ++ .ent _start \n\ ++_start: \n\ ++ br $gp, 0f \n\ ++0: ldgp $gp, 0($gp) \n\ ++ .prologue 0 \n\ ++ /* Pass pointer to argument block to _dl_start. */ \n\ ++ mov $sp, $16 \n\ ++ bsr $26, "ASM_ALPHA_NG_SYMBOL_PREFIX"_dl_start..ng \n\ ++ .end _start \n\ ++ /* FALLTHRU */ \n\ ++ .globl _dl_start_user \n\ ++ .ent _dl_start_user \n\ ++_dl_start_user: \n\ ++ .frame $30,0,$31,0 \n\ ++ .prologue 0 \n\ ++ /* Save the user entry point address in s0. */ \n\ ++ mov $0, $9 \n\ ++ /* Store the highest stack address. */ \n\ ++ stq $30, __libc_stack_end \n\ ++ /* See if we were run as a command with the executable \n\ ++ file name as an extra leading argument. */ \n\ ++ ldl $1, _dl_skip_args \n\ ++ bne $1, $fixup_stack \n\ ++$fixup_stack_ret: \n\ ++ /* The special initializer gets called with the stack \n\ ++ just as the application's entry point will see it; \n\ ++ it can switch stacks if it moves these contents \n\ ++ over. */ \n\ ++" RTLD_START_SPECIAL_INIT " \n\ ++ /* Call _dl_init(_dl_loaded, argc, argv, envp) to run \n\ ++ initializers. */ \n\ ++ ldq $16, _dl_loaded \n\ ++ ldq $17, 0($sp) \n\ ++ lda $18, 8($sp) \n\ ++ s8addq $17, 8, $19 \n\ ++ addq $19, $18, $19 \n\ ++ jsr $26, _dl_init \n\ ++ /* Pass our finalizer function to the user in $0. */ \n\ ++ lda $0, _dl_fini \n\ ++ /* Jump to the user's entry point. */ \n\ ++ mov $9, $27 \n\ ++ jmp ($9) \n\ ++$fixup_stack: \n\ ++ /* Adjust the stack pointer to skip _dl_skip_args words.\n\ ++ This involves copying everything down, since the \n\ ++ stack pointer must always be 16-byte aligned. */ \n\ ++ ldq $2, 0($sp) \n\ ++ ldq $5, _dl_argv \n\ ++ subq $31, $1, $6 \n\ ++ subq $2, $1, $2 \n\ ++ s8addq $6, $5, $5 \n\ ++ mov $sp, $4 \n\ ++ s8addq $1, $sp, $3 \n\ ++ stq $2, 0($sp) \n\ ++ stq $5, _dl_argv \n\ ++ /* Copy down argv. */ \n\ ++0: ldq $5, 8($3) \n\ ++ addq $4, 8, $4 \n\ ++ addq $3, 8, $3 \n\ ++ stq $5, 0($4) \n\ ++ bne $5, 0b \n\ ++ /* Copy down envp. */ \n\ ++1: ldq $5, 8($3) \n\ ++ addq $4, 8, $4 \n\ ++ addq $3, 8, $3 \n\ ++ stq $5, 0($4) \n\ ++ bne $5, 1b \n\ ++ /* Copy down auxiliary table. */ \n\ ++2: ldq $5, 8($3) \n\ ++ ldq $6, 16($3) \n\ ++ addq $4, 16, $4 \n\ ++ addq $3, 16, $3 \n\ ++ stq $5, -8($4) \n\ ++ stq $6, 0($4) \n\ ++ bne $5, 2b \n\ ++ br $fixup_stack_ret \n\ ++ .end _dl_start_user \n\ ++ .set noat \n\ + .previous"); + + #ifndef RTLD_START_SPECIAL_INIT diff --git a/glibc/glibc-2.2.5/dl-machine-arm.patch b/glibc/glibc-2.2.5/dl-machine-arm.patch index e69de29bb2..7684b43b39 100644 --- a/glibc/glibc-2.2.5/dl-machine-arm.patch +++ b/glibc/glibc-2.2.5/dl-machine-arm.patch @@ -0,0 +1,383 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/arm/dl-machine.h~dl-machine-arm.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/arm/dl-machine.h 2004-09-03 19:00:37.000000000 -0500 +@@ -121,14 +121,15 @@ + and then redirect to the address it returns. */ + // macro for handling PIC situation.... + #ifdef PIC +-#define CALL_ROUTINE(x) " ldr sl,0f +- add sl, pc, sl +-1: ldr r2, 2f +- mov lr, pc +- add pc, sl, r2 +- b 3f +-0: .word _GLOBAL_OFFSET_TABLE_ - 1b - 4 +-2: .word " #x "(GOTOFF) ++#define CALL_ROUTINE(x) "\ ++ ldr sl,0f\n\ ++ add sl, pc, sl\n\ ++1: ldr r2, 2f\n\ ++ mov lr, pc\n\ ++ add pc, sl, r2\n\ ++ b 3f\n\ ++0: .word _GLOBAL_OFFSET_TABLE_ - 1b - 4\n\ ++2: .word " #x "(GOTOFF)\n\ + 3: " + #else + #define CALL_ROUTINE(x) " bl " #x +@@ -136,114 +137,114 @@ + + #ifndef PROF + # define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\ +- .text +- .globl _dl_runtime_resolve +- .type _dl_runtime_resolve, #function +- .align 2 +-_dl_runtime_resolve: +- @ we get called with +- @ stack[0] contains the return address from this call +- @ ip contains &GOT[n+3] (pointer to function) +- @ lr points to &GOT[2] +- +- @ save almost everything; lr is already on the stack +- stmdb sp!,{r0-r3,sl,fp} +- +- @ prepare to call fixup() +- @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each +- sub r1, ip, lr +- sub r1, r1, #4 +- add r1, r1, r1 +- +- @ get pointer to linker struct +- ldr r0, [lr, #-4] +- +- @ call fixup routine +- " CALL_ROUTINE(fixup) " +- +- @ save the return +- mov ip, r0 +- +- @ restore the stack +- ldmia sp!,{r0-r3,sl,fp,lr} +- +- @ jump to the newly found address +- mov pc, ip +- +- .size _dl_runtime_resolve, .-_dl_runtime_resolve +- +- .globl _dl_runtime_profile +- .type _dl_runtime_profile, #function +- .align 2 +-_dl_runtime_profile: +- @ save almost everything; lr is already on the stack +- stmdb sp!,{r0-r3,sl,fp} +- +- @ prepare to call fixup() +- @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each +- sub r1, ip, lr +- sub r1, r1, #4 +- add r1, r1, r1 +- +- @ get pointer to linker struct +- ldr r0, [lr, #-4] +- +- @ call profiling fixup routine +- " CALL_ROUTINE(profile_fixup) " +- +- @ save the return +- mov ip, r0 +- +- @ restore the stack +- ldmia sp!,{r0-r3,sl,fp,lr} +- +- @ jump to the newly found address +- mov pc, ip +- +- .size _dl_runtime_resolve, .-_dl_runtime_resolve +- .previous ++ .text\n\ ++ .globl _dl_runtime_resolve\n\ ++ .type _dl_runtime_resolve, #function\n\ ++ .align 2\n\ ++_dl_runtime_resolve:\n\ ++ @ we get called with\n\ ++ @ stack[0] contains the return address from this call\n\ ++ @ ip contains &GOT[n+3] (pointer to function)\n\ ++ @ lr points to &GOT[2]\n\ ++\n\ ++ @ save almost everything; lr is already on the stack\n\ ++ stmdb sp!,{r0-r3,sl,fp}\n\ ++\n\ ++ @ prepare to call fixup()\n\ ++ @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each\n\ ++ sub r1, ip, lr\n\ ++ sub r1, r1, #4\n\ ++ add r1, r1, r1\n\ ++\n\ ++ @ get pointer to linker struct\n\ ++ ldr r0, [lr, #-4]\n\ ++\n\ ++ @ call fixup routine\n\ ++ " CALL_ROUTINE(fixup) "\n\ ++\n\ ++ @ save the return\n\ ++ mov ip, r0\n\ ++\n\ ++ @ restore the stack\n\ ++ ldmia sp!,{r0-r3,sl,fp,lr}\n\ ++\n\ ++ @ jump to the newly found address\n\ ++ mov pc, ip\n\ ++\n\ ++ .size _dl_runtime_resolve, .-_dl_runtime_resolve\n\ ++\n\ ++ .globl _dl_runtime_profile\n\ ++ .type _dl_runtime_profile, #function\n\ ++ .align 2\n\ ++_dl_runtime_profile:\n\ ++ @ save almost everything; lr is already on the stack\n\ ++ stmdb sp!,{r0-r3,sl,fp}\n\ ++\n\ ++ @ prepare to call fixup()\n\ ++ @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each\n\ ++ sub r1, ip, lr\n\ ++ sub r1, r1, #4\n\ ++ add r1, r1, r1\n\ ++\n\ ++ @ get pointer to linker struct\n\ ++ ldr r0, [lr, #-4]\n\ ++\n\ ++ @ call profiling fixup routine\n\ ++ " CALL_ROUTINE(profile_fixup) "\n\ ++\n\ ++ @ save the return\n\ ++ mov ip, r0\n\ ++\n\ ++ @ restore the stack\n\ ++ ldmia sp!,{r0-r3,sl,fp,lr}\n\ ++\n\ ++ @ jump to the newly found address\n\ ++ mov pc, ip\n\ ++\n\ ++ .size _dl_runtime_resolve, .-_dl_runtime_resolve\n\ ++ .previous\n\ + "); + #else // PROF + # define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\ +- .text +- .globl _dl_runtime_resolve +- .globl _dl_runtime_profile +- .type _dl_runtime_resolve, #function +- .type _dl_runtime_profile, #function +- .align 2 +-_dl_runtime_resolve: +-_dl_runtime_profile: +- @ we get called with +- @ stack[0] contains the return address from this call +- @ ip contains &GOT[n+3] (pointer to function) +- @ lr points to &GOT[2] +- +- @ save almost everything; return add is already on the stack +- stmdb sp!,{r0-r3,sl,fp} +- +- @ prepare to call fixup() +- @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each +- sub r1, ip, lr +- sub r1, r1, #4 +- add r1, r1, r1 +- +- @ get pointer to linker struct +- ldr r0, [lr, #-4] +- +- @ call profiling fixup routine +- " CALL_ROUTINE(fixup) " +- +- @ save the return +- mov ip, r0 +- +- @ restore the stack +- ldmia sp!,{r0-r3,sl,fp,lr} +- +- @ jump to the newly found address +- mov pc, ip +- +- .size _dl_runtime_profile, .-_dl_runtime_profile +- .previous ++ .text\n\ ++ .globl _dl_runtime_resolve\n\ ++ .globl _dl_runtime_profile\n\ ++ .type _dl_runtime_resolve, #function\n\ ++ .type _dl_runtime_profile, #function\n\ ++ .align 2\n\ ++_dl_runtime_resolve:\n\ ++_dl_runtime_profile:\n\ ++ @ we get called with\n\ ++ @ stack[0] contains the return address from this call\n\ ++ @ ip contains &GOT[n+3] (pointer to function)\n\ ++ @ lr points to &GOT[2]\n\ ++\n\ ++ @ save almost everything; return add is already on the stack\n\ ++ stmdb sp!,{r0-r3,sl,fp}\n\ ++\n\ ++ @ prepare to call fixup()\n\ ++ @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each\n\ ++ sub r1, ip, lr\n\ ++ sub r1, r1, #4\n\ ++ add r1, r1, r1\n\ ++\n\ ++ @ get pointer to linker struct\n\ ++ ldr r0, [lr, #-4]\n\ ++\n\ ++ @ call profiling fixup routine\n\ ++ " CALL_ROUTINE(fixup) "\n\ ++\n\ ++ @ save the return\n\ ++ mov ip, r0\n\ ++\n\ ++ @ restore the stack\n\ ++ ldmia sp!,{r0-r3,sl,fp,lr}\n\ ++\n\ ++ @ jump to the newly found address\n\ ++ mov pc, ip\n\ ++\n\ ++ .size _dl_runtime_profile, .-_dl_runtime_profile\n\ ++ .previous\n\ + "); + #endif //PROF + +@@ -256,70 +257,70 @@ + its return value is the user program's entry point. */ + + #define RTLD_START asm ("\ +-.text +-.globl _start +-.globl _dl_start_user +-_start: +- @ at start time, all the args are on the stack +- mov r0, sp +- bl _dl_start +- @ returns user entry point in r0 +-_dl_start_user: +- mov r6, r0 +- @ we are PIC code, so get global offset table +- ldr sl, .L_GET_GOT +- add sl, pc, sl +-.L_GOT_GOT: +- @ Store the highest stack address +- ldr r1, .L_STACK_END +- ldr r1, [sl, r1] +- str sp, [r1] +- @ See if we were run as a command with the executable file +- @ name as an extra leading argument. +- ldr r4, .L_SKIP_ARGS +- ldr r4, [sl, r4] +- @ get the original arg count +- ldr r1, [sp] +- @ subtract _dl_skip_args from it +- sub r1, r1, r4 +- @ adjust the stack pointer to skip them +- add sp, sp, r4, lsl #2 +- @ get the argv address +- add r2, sp, #4 +- @ store the new argc in the new stack location +- str r1, [sp] +- @ compute envp +- add r3, r2, r1, lsl #2 +- add r3, r3, #4 +- +- @ now we call _dl_init +- ldr r0, .L_LOADED +- ldr r0, [sl, r0] +- ldr r0, [r0] +- @ call _dl_init +- bl _dl_init(PLT) +- @ clear the startup flag +- ldr r2, .L_STARTUP_FLAG +- ldr r1, [sl, r2] +- mov r0, #0 +- str r0, [r1] +- @ load the finalizer function +- ldr r0, .L_FINI_PROC +- ldr r0, [sl, r0] +- @ jump to the user_s entry point +- mov pc, r6 +-.L_GET_GOT: ++.text\n\ ++.globl _start\n\ ++.globl _dl_start_user\n\ ++_start:\n\ ++ @ at start time, all the args are on the stack\n\ ++ mov r0, sp\n\ ++ bl _dl_start\n\ ++ @ returns user entry point in r0\n\ ++_dl_start_user:\n\ ++ mov r6, r0\n\ ++ @ we are PIC code, so get global offset table\n\ ++ ldr sl, .L_GET_GOT\n\ ++ add sl, pc, sl\n\ ++.L_GOT_GOT:\n\ ++ @ Store the highest stack address\n\ ++ ldr r1, .L_STACK_END\n\ ++ ldr r1, [sl, r1]\n\ ++ str sp, [r1]\n\ ++ @ See if we were run as a command with the executable file\n\ ++ @ name as an extra leading argument.\n\ ++ ldr r4, .L_SKIP_ARGS\n\ ++ ldr r4, [sl, r4]\n\ ++ @ get the original arg count\n\ ++ ldr r1, [sp]\n\ ++ @ subtract _dl_skip_args from it\n\ ++ sub r1, r1, r4\n\ ++ @ adjust the stack pointer to skip them\n\ ++ add sp, sp, r4, lsl #2\n\ ++ @ get the argv address\n\ ++ add r2, sp, #4\n\ ++ @ store the new argc in the new stack location\n\ ++ str r1, [sp]\n\ ++ @ compute envp\n\ ++ add r3, r2, r1, lsl #2\n\ ++ add r3, r3, #4\n\ ++\n\ ++ @ now we call _dl_init\n\ ++ ldr r0, .L_LOADED\n\ ++ ldr r0, [sl, r0]\n\ ++ ldr r0, [r0]\n\ ++ @ call _dl_init\n\ ++ bl _dl_init(PLT)\n\ ++ @ clear the startup flag\n\ ++ ldr r2, .L_STARTUP_FLAG\n\ ++ ldr r1, [sl, r2]\n\ ++ mov r0, #0\n\ ++ str r0, [r1]\n\ ++ @ load the finalizer function\n\ ++ ldr r0, .L_FINI_PROC\n\ ++ ldr r0, [sl, r0]\n\ ++ @ jump to the user_s entry point\n\ ++ mov pc, r6\n\ ++.L_GET_GOT:\n\ + .word _GLOBAL_OFFSET_TABLE_ - .L_GOT_GOT - 4 \n\ + .L_SKIP_ARGS: \n\ + .word _dl_skip_args(GOTOFF) \n\ +-.L_STARTUP_FLAG: +- .word _dl_starting_up(GOT) +-.L_FINI_PROC: +- .word _dl_fini(GOT) +-.L_STACK_END: +- .word __libc_stack_end(GOT) +-.L_LOADED: +- .word _dl_loaded(GOT) ++.L_STARTUP_FLAG:\n\ ++ .word _dl_starting_up(GOT)\n\ ++.L_FINI_PROC:\n\ ++ .word _dl_fini(GOT)\n\ ++.L_STACK_END:\n\ ++ .word __libc_stack_end(GOT)\n\ ++.L_LOADED:\n\ ++ .word _dl_loaded(GOT)\n\ + .previous\n\ + "); + diff --git a/glibc/glibc-2.2.5/dl-machine-m68k.patch b/glibc/glibc-2.2.5/dl-machine-m68k.patch index e69de29bb2..41a6f3a573 100644 --- a/glibc/glibc-2.2.5/dl-machine-m68k.patch +++ b/glibc/glibc-2.2.5/dl-machine-m68k.patch @@ -0,0 +1,171 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/m68k/dl-machine.h~dl-machine-m68k.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/m68k/dl-machine.h 2004-09-03 19:00:37.000000000 -0500 +@@ -1,5 +1,5 @@ + /* Machine-dependent ELF dynamic relocation inline functions. m68k version. +- Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc. ++ Copyright (C) 1996-2001, 2002 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 +@@ -85,11 +85,11 @@ + { + got[2] = (Elf32_Addr) &_dl_runtime_profile; + +- if (_dl_name_match_p (_dl_profile, l)) ++ if (_dl_name_match_p (GL(dl_profile), l)) + { + /* This is the object we are looking for. Say that we really + want profiling and the timers are started. */ +- _dl_profile_map = l; ++ GL(dl_profile_map) = l; + } + } + else +@@ -104,22 +104,22 @@ + /* This code is used in dl-runtime.c to call the `fixup' function + and then redirect to the address it returns. */ + #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \ +-"| Trampoline for " #fixup_name " +- .globl " #tramp_name " +- .type " #tramp_name ", @function +-" #tramp_name ": +- | Save %a0 (struct return address) and %a1. +- move.l %a0, -(%sp) +- move.l %a1, -(%sp) +- | Call the real address resolver. +- jbsr " #fixup_name " +- | Restore register %a0 and %a1. +- move.l (%sp)+, %a1 +- move.l (%sp)+, %a0 +- | Pop parameters +- addq.l #8, %sp +- | Call real function. +- jmp (%d0) ++"| Trampoline for " #fixup_name "\n\ ++ .globl " #tramp_name "\n\ ++ .type " #tramp_name ", @function\n\ ++" #tramp_name ":\n\ ++ | Save %a0 (struct return address) and %a1.\n\ ++ move.l %a0, -(%sp)\n\ ++ move.l %a1, -(%sp)\n\ ++ | Call the real address resolver.\n\ ++ jbsr " #fixup_name "\n\ ++ | Restore register %a0 and %a1.\n\ ++ move.l (%sp)+, %a1\n\ ++ move.l (%sp)+, %a0\n\ ++ | Pop parameters\n\ ++ addq.l #8, %sp\n\ ++ | Call real function.\n\ ++ jmp (%d0)\n\ + .size " #tramp_name ", . - " #tramp_name "\n" + #ifndef PROF + #define ELF_MACHINE_RUNTIME_TRAMPOLINE \ +@@ -143,50 +143,50 @@ + its return value is the user program's entry point. */ + + #define RTLD_START asm ("\ +- .text +- .globl _start +- .type _start,@function +-_start: +- move.l %sp, -(%sp) +- jbsr _dl_start +- addq.l #4, %sp +- /* FALLTHRU */ +- +- .globl _dl_start_user +- .type _dl_start_user,@function +-_dl_start_user: +- | Save the user entry point address in %a4. +- move.l %d0, %a4 +- | Point %a5 at the GOT. +- lea _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a5 +- | Remember the highest stack address. +- move.l %sp, ([__libc_stack_end@GOT.w, %a5]) +- | See if we were run as a command with the executable file +- | name as an extra leading argument. +- move.l ([_dl_skip_args@GOT.w, %a5]), %d0 +- | Pop the original argument count +- move.l (%sp)+, %d1 +- | Subtract _dl_skip_args from it. +- sub.l %d0, %d1 +- | Adjust the stack pointer to skip _dl_skip_args words. +- lea (%sp, %d0*4), %sp +- | Push back the modified argument count. +- move.l %d1, -(%sp) +- # Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env) +- pea 8(%sp, %d1*4) +- pea 8(%sp) +- move.l %d1, -(%sp) +- move.l ([_dl_loaded@GOT.w, %a5]), -(%sp) +- jbsr _dl_init@PLTPC +- addq.l #8, %sp +- addq.l #8, %sp +- | Pass our finalizer function to the user in %a1. +- move.l _dl_fini@GOT.w(%a5), %a1 +- | Initialize %fp with the stack pointer. +- move.l %sp, %fp +- | Jump to the user's entry point. +- jmp (%a4) +- .size _dl_start_user, . - _dl_start_user ++ .text\n\ ++ .globl _start\n\ ++ .type _start,@function\n\ ++_start:\n\ ++ move.l %sp, -(%sp)\n\ ++ jbsr _dl_start\n\ ++ addq.l #4, %sp\n\ ++ /* FALLTHRU */\n\ ++\n\ ++ .globl _dl_start_user\n\ ++ .type _dl_start_user,@function\n\ ++_dl_start_user:\n\ ++ | Save the user entry point address in %a4.\n\ ++ move.l %d0, %a4\n\ ++ | Point %a5 at the GOT.\n\ ++ lea _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a5\n\ ++ | Remember the highest stack address.\n\ ++ move.l %sp, ([__libc_stack_end@GOT.w, %a5])\n\ ++ | See if we were run as a command with the executable file\n\ ++ | name as an extra leading argument.\n\ ++ move.l ([_dl_skip_args@GOT.w, %a5]), %d0\n\ ++ | Pop the original argument count\n\ ++ move.l (%sp)+, %d1\n\ ++ | Subtract _dl_skip_args from it.\n\ ++ sub.l %d0, %d1\n\ ++ | Adjust the stack pointer to skip _dl_skip_args words.\n\ ++ lea (%sp, %d0*4), %sp\n\ ++ | Push back the modified argument count.\n\ ++ move.l %d1, -(%sp)\n\ ++ # Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)\n\ ++ pea 8(%sp, %d1*4)\n\ ++ pea 8(%sp)\n\ ++ move.l %d1, -(%sp)\n\ ++ move.l ([_rtld_global@GOT.w, %a5]), -(%sp)\n\ ++ jbsr _dl_init@PLTPC\n\ ++ addq.l #8, %sp\n\ ++ addq.l #8, %sp\n\ ++ | Pass our finalizer function to the user in %a1.\n\ ++ move.l _dl_fini@GOT.w(%a5), %a1\n\ ++ | Initialize %fp with the stack pointer.\n\ ++ move.l %sp, %fp\n\ ++ | Jump to the user's entry point.\n\ ++ jmp (%a4)\n\ ++ .size _dl_start_user, . - _dl_start_user\n\ + .previous"); + + /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so +@@ -251,7 +251,7 @@ + found. */ + break; + if (sym->st_size > refsym->st_size +- || (sym->st_size < refsym->st_size && _dl_verbose)) ++ || (sym->st_size < refsym->st_size && GL(dl_verbose))) + { + extern char **_dl_argv; + const char *strtab; diff --git a/glibc/glibc-2.2.5/dl-machine-mips.patch b/glibc/glibc-2.2.5/dl-machine-mips.patch index e69de29bb2..b9c7ad8f1e 100644 --- a/glibc/glibc-2.2.5/dl-machine-mips.patch +++ b/glibc/glibc-2.2.5/dl-machine-mips.patch @@ -0,0 +1,16 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/mips/dl-machine.h~dl-machine-mips.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/mips/dl-machine.h 2004-09-03 19:00:37.000000000 -0500 +@@ -450,7 +450,7 @@ + addu $7, $7, 4\n\ + subu $29, 16\n\ + # Call the function to run the initializers.\n\ +- jal _dl_init ++ jal _dl_init_internal\n\ + addiu $29, 16\n\ + # Pass our finalizer function to the user in $2 as per ELF ABI.\n\ + la $2, _dl_fini\n\ diff --git a/glibc/glibc-2.2.5/dl-machine-sh.patch b/glibc/glibc-2.2.5/dl-machine-sh.patch index e69de29bb2..c5f84b42a4 100644 --- a/glibc/glibc-2.2.5/dl-machine-sh.patch +++ b/glibc/glibc-2.2.5/dl-machine-sh.patch @@ -0,0 +1,30 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/sh/dl-machine.h~dl-machine-sh.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/sh/dl-machine.h 2004-09-03 19:00:37.000000000 -0500 +@@ -53,16 +53,16 @@ + elf_machine_load_address (void) + { + Elf32_Addr addr; +- asm ("mov.l .L1,r0\n\ +- mov.l .L3,r2\n\ ++ asm ("mov.l 1f,r0\n\ ++ mov.l 3f,r2\n\ + add r12,r2\n\ + mov.l @(r0,r12),r0\n\ +- bra .L2\n\ ++ bra 2f\n\ + sub r0,r2\n\ + .align 2\n\ +- .L1: .long _dl_start@GOT\n\ +- .L3: .long _dl_start@GOTOFF\n\ +- .L2: mov r2,%0" ++ 1: .long _dl_start@GOT\n\ ++ 3: .long _dl_start@GOTOFF\n\ ++ 2: mov r2,%0" + : "=r" (addr) : : "r0", "r1", "r2"); + return addr; + } diff --git a/glibc/glibc-2.2.5/dl-machine-sparc.patch b/glibc/glibc-2.2.5/dl-machine-sparc.patch index e69de29bb2..910e18035d 100644 --- a/glibc/glibc-2.2.5/dl-machine-sparc.patch +++ b/glibc/glibc-2.2.5/dl-machine-sparc.patch @@ -0,0 +1,235 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/sparc/sparc32/dl-machine.h~dl-machine-sparc.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/sparc/sparc32/dl-machine.h 2004-09-03 19:00:37.000000000 -0500 +@@ -148,23 +148,23 @@ + and then redirect to the address it returns. */ + #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \ + asm ( "\ +- .text +- .globl " #tramp_name " +- .type " #tramp_name ", @function +- .align 32 +-" #tramp_name ": +- /* Set up the arguments to fixup -- +- %o0 = link_map out of plt0 +- %o1 = offset of reloc entry +- %o2 = return address */ +- ld [%o7 + 8], %o0 +- srl %g1, 10, %o1 +- mov %i7, %o2 +- call " #fixup_name " +- sub %o1, 4*12, %o1 +- jmp %o0 +- restore +- .size " #tramp_name ", . - " #tramp_name " ++ .text\n\ ++ .globl " #tramp_name "\n\ ++ .type " #tramp_name ", @function\n\ ++ .align 32\n\ ++" #tramp_name ":\n\ ++ /* Set up the arguments to fixup --\n\ ++ %o0 = link_map out of plt0\n\ ++ %o1 = offset of reloc entry\n\ ++ %o2 = return address */\n\ ++ ld [%o7 + 8], %o0\n\ ++ srl %g1, 10, %o1\n\ ++ mov %i7, %o2\n\ ++ call " #fixup_name "\n\ ++ sub %o1, 4*12, %o1\n\ ++ jmp %o0\n\ ++ restore\n\ ++ .size " #tramp_name ", . - " #tramp_name "\n\ + .previous") + + #ifndef PROF +@@ -199,96 +199,96 @@ + its return value is the user program's entry point. */ + + #define RTLD_START __asm__ ("\ +- .text +- .globl _start +- .type _start, @function +- .align 32 +-_start: +- /* Allocate space for functions to drop their arguments. */ +- sub %sp, 6*4, %sp +- /* Pass pointer to argument block to _dl_start. */ +- call _dl_start +- add %sp, 22*4, %o0 +- /* FALTHRU */ +- .globl _dl_start_user +- .type _dl_start_user, @function +-_dl_start_user: +- /* Load the PIC register. */ +-1: call 2f +- sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7 +-2: or %l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7 +- add %l7, %o7, %l7 +- /* Save the user entry point address in %l0 */ +- mov %o0, %l0 +- /* Store the highest stack address. */ +- sethi %hi(__libc_stack_end), %g2 +- or %g2, %lo(__libc_stack_end), %g2 +- ld [%l7 + %g2], %l1 +- sethi %hi(_dl_skip_args), %g2 +- add %sp, 6*4, %l2 +- or %g2, %lo(_dl_skip_args), %g2 +- st %l2, [%l1] +- /* See if we were run as a command with the executable file name as an +- extra leading argument. If so, adjust the contents of the stack. */ +- ld [%l7+%g2], %i0 +- ld [%i0], %i0 +- tst %i0 +- beq 3f +- ld [%sp+22*4], %i5 /* load argc */ +- /* Find out how far to shift. */ +- sethi %hi(_dl_argv), %l3 +- or %l3, %lo(_dl_argv), %l3 +- ld [%l7+%l3], %l3 +- sub %i5, %i0, %i5 +- ld [%l3], %l4 +- sll %i0, 2, %i2 +- st %i5, [%sp+22*4] +- sub %l4, %i2, %l4 +- add %sp, 23*4, %i1 +- add %i1, %i2, %i2 +- st %l4, [%l3] +- /* Copy down argv */ +-21: ld [%i2], %i3 +- add %i2, 4, %i2 +- tst %i3 +- st %i3, [%i1] +- bne 21b +- add %i1, 4, %i1 +- /* Copy down env */ +-22: ld [%i2], %i3 +- add %i2, 4, %i2 +- tst %i3 +- st %i3, [%i1] +- bne 22b +- add %i1, 4, %i1 +- /* Copy down auxiliary table. */ +-23: ld [%i2], %i3 +- ld [%i2+4], %i4 +- add %i2, 8, %i2 +- tst %i3 +- st %i3, [%i1] +- st %i4, [%i1+4] +- bne 23b +- add %i1, 8, %i1 +- /* %o0 = _dl_loaded, %o1 = argc, %o2 = argv, %o3 = envp. */ +-3: sethi %hi(_dl_loaded), %o0 +- add %sp, 23*4, %o2 +- orcc %o0, %lo(_dl_loaded), %o0 +- sll %i5, 2, %o3 +- ld [%l7+%o0], %o0 +- add %o3, 4, %o3 +- mov %i5, %o1 +- add %o2, %o3, %o3 +- call _dl_init +- ld [%o0], %o0 +- /* Pass our finalizer function to the user in %g1. */ +- sethi %hi(_dl_fini), %g1 +- or %g1, %lo(_dl_fini), %g1 +- ld [%l7+%g1], %g1 +- /* Jump to the user's entry point and deallocate the extra stack we got. */ +- jmp %l0 +- add %sp, 6*4, %sp +- .size _dl_start_user, . - _dl_start_user ++ .text\n\ ++ .globl _start\n\ ++ .type _start, @function\n\ ++ .align 32\n\ ++_start:\n\ ++ /* Allocate space for functions to drop their arguments. */\n\ ++ sub %sp, 6*4, %sp\n\ ++ /* Pass pointer to argument block to _dl_start. */\n\ ++ call _dl_start\n\ ++ add %sp, 22*4, %o0\n\ ++ /* FALTHRU */\n\ ++ .globl _dl_start_user\n\ ++ .type _dl_start_user, @function\n\ ++_dl_start_user:\n\ ++ /* Load the PIC register. */\n\ ++1: call 2f\n\ ++ sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7\n\ ++2: or %l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7\n\ ++ add %l7, %o7, %l7\n\ ++ /* Save the user entry point address in %l0 */\n\ ++ mov %o0, %l0\n\ ++ /* Store the highest stack address. */\n\ ++ sethi %hi(__libc_stack_end), %g2\n\ ++ or %g2, %lo(__libc_stack_end), %g2\n\ ++ ld [%l7 + %g2], %l1\n\ ++ sethi %hi(_dl_skip_args), %g2\n\ ++ add %sp, 6*4, %l2\n\ ++ or %g2, %lo(_dl_skip_args), %g2\n\ ++ st %l2, [%l1]\n\ ++ /* See if we were run as a command with the executable file name as an\n\ ++ extra leading argument. If so, adjust the contents of the stack. */\n\ ++ ld [%l7+%g2], %i0\n\ ++ ld [%i0], %i0\n\ ++ tst %i0\n\ ++ beq 3f\n\ ++ ld [%sp+22*4], %i5 /* load argc */\n\ ++ /* Find out how far to shift. */\n\ ++ sethi %hi(_dl_argv), %l3\n\ ++ or %l3, %lo(_dl_argv), %l3\n\ ++ ld [%l7+%l3], %l3\n\ ++ sub %i5, %i0, %i5\n\ ++ ld [%l3], %l4\n\ ++ sll %i0, 2, %i2\n\ ++ st %i5, [%sp+22*4]\n\ ++ sub %l4, %i2, %l4\n\ ++ add %sp, 23*4, %i1\n\ ++ add %i1, %i2, %i2\n\ ++ st %l4, [%l3]\n\ ++ /* Copy down argv */\n\ ++21: ld [%i2], %i3\n\ ++ add %i2, 4, %i2\n\ ++ tst %i3\n\ ++ st %i3, [%i1]\n\ ++ bne 21b\n\ ++ add %i1, 4, %i1\n\ ++ /* Copy down env */\n\ ++22: ld [%i2], %i3\n\ ++ add %i2, 4, %i2\n\ ++ tst %i3\n\ ++ st %i3, [%i1]\n\ ++ bne 22b\n\ ++ add %i1, 4, %i1\n\ ++ /* Copy down auxiliary table. */\n\ ++23: ld [%i2], %i3\n\ ++ ld [%i2+4], %i4\n\ ++ add %i2, 8, %i2\n\ ++ tst %i3\n\ ++ st %i3, [%i1]\n\ ++ st %i4, [%i1+4]\n\ ++ bne 23b\n\ ++ add %i1, 8, %i1\n\ ++ /* %o0 = _dl_loaded, %o1 = argc, %o2 = argv, %o3 = envp. */\n\ ++3: sethi %hi(_dl_loaded), %o0\n\ ++ add %sp, 23*4, %o2\n\ ++ orcc %o0, %lo(_dl_loaded), %o0\n\ ++ sll %i5, 2, %o3\n\ ++ ld [%l7+%o0], %o0\n\ ++ add %o3, 4, %o3\n\ ++ mov %i5, %o1\n\ ++ add %o2, %o3, %o3\n\ ++ call _dl_init\n\ ++ ld [%o0], %o0\n\ ++ /* Pass our finalizer function to the user in %g1. */\n\ ++ sethi %hi(_dl_fini), %g1\n\ ++ or %g1, %lo(_dl_fini), %g1\n\ ++ ld [%l7+%g1], %g1\n\ ++ /* Jump to the user's entry point and deallocate the extra stack we got. */\n\ ++ jmp %l0\n\ ++ add %sp, 6*4, %sp\n\ ++ .size _dl_start_user, . - _dl_start_user\n\ + .previous"); + + static inline Elf32_Addr diff --git a/glibc/glibc-2.2.5/errlist-1.9.patch b/glibc/glibc-2.2.5/errlist-1.9.patch index e69de29bb2..ced22eecf9 100644 --- a/glibc/glibc-2.2.5/errlist-1.9.patch +++ b/glibc/glibc-2.2.5/errlist-1.9.patch @@ -0,0 +1,25 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/unix/sysv/linux/errlist.c~errlist-1.9.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/unix/sysv/linux/errlist.c 2004-09-03 19:00:37.000000000 -0500 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1998, 2000 Free Software Foundation, Inc. ++/* Copyright (C) 1998, 2000, 2002 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 +@@ -38,10 +38,9 @@ + const int __old_sys_nerr = OLD_ERRLIST_SIZE; + + strong_alias (__old_sys_nerr, _old_sys_nerr); +-weak_alias (__old_sys_nerr, _old_sys_nerr) + compat_symbol (libc, __old_sys_nerr, _sys_nerr, GLIBC_2_0); + compat_symbol (libc, _old_sys_nerr, sys_nerr, GLIBC_2_0); +-weak_alias (__old_sys_errlist, _old_sys_errlist); ++strong_alias (__old_sys_errlist, _old_sys_errlist); + compat_symbol (libc, __old_sys_errlist, _sys_errlist, GLIBC_2_0); + compat_symbol (libc, _old_sys_errlist, sys_errlist, GLIBC_2_0); + #endif diff --git a/glibc/glibc-2.2.5/errlist-arm.patch b/glibc/glibc-2.2.5/errlist-arm.patch index e69de29bb2..a2afbd036e 100644 --- a/glibc/glibc-2.2.5/errlist-arm.patch +++ b/glibc/glibc-2.2.5/errlist-arm.patch @@ -0,0 +1,25 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/unix/sysv/linux/arm/errlist.c~errlist-arm.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/unix/sysv/linux/arm/errlist.c 2004-09-03 19:00:37.000000000 -0500 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1998, 2000 Free Software Foundation, Inc. ++/* Copyright (C) 1998, 2000, 2002 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 +@@ -38,10 +38,9 @@ + const int __old_sys_nerr = OLD_ERRLIST_SIZE; + + strong_alias (__old_sys_nerr, _old_sys_nerr); +-weak_alias (__old_sys_nerr, _old_sys_nerr) + compat_symbol (libc, __old_sys_nerr, _sys_nerr, GLIBC_2_0); + compat_symbol (libc, _old_sys_nerr, sys_nerr, GLIBC_2_0); +-weak_alias (__old_sys_errlist, _old_sys_errlist); ++strong_alias (__old_sys_errlist, _old_sys_errlist); + compat_symbol (libc, __old_sys_errlist, _sys_errlist, GLIBC_2_0); + compat_symbol (libc, _old_sys_errlist, sys_errlist, GLIBC_2_0); + #endif diff --git a/glibc/glibc-2.2.5/fhs-linux-paths.patch b/glibc/glibc-2.2.5/fhs-linux-paths.patch index e69de29bb2..9ba033fd8d 100644 --- a/glibc/glibc-2.2.5/fhs-linux-paths.patch +++ b/glibc/glibc-2.2.5/fhs-linux-paths.patch @@ -0,0 +1,16 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/unix/sysv/linux/paths.h~fhs-linux-paths.patch 2000-11-15 17:06:47.000000000 -0600 ++++ glibc-2.2.5/sysdeps/unix/sysv/linux/paths.h 2004-09-03 19:00:39.000000000 -0500 +@@ -67,7 +67,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/" + diff --git a/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-fixup.patch b/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-fixup.patch index e69de29bb2..e4abfe3f49 100644 --- a/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-fixup.patch +++ b/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-fixup.patch @@ -0,0 +1,55 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/i386/dl-machine.h~glibc-2.2.5-allow-gcc-3.4-fixup.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/i386/dl-machine.h 2004-09-03 19:00:37.000000000 -0500 +@@ -63,11 +63,12 @@ + destroys the passed register information. */ + /* GKM FIXME: Fix trampoline to pass bounds so we can do + without the `__unbounded' qualifier. */ ++#define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), unused)) + static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset) +- __attribute__ ((regparm (2), unused)); ++ ARCH_FIXUP_ATTRIBUTE; + static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset, + ElfW(Addr) retaddr) +- __attribute__ ((regparm (3), unused)); ++ ARCH_FIXUP_ATTRIBUTE; + #endif + + /* Set up the loaded object described by L so its unrelocated PLT +--- glibc-2.2.5/elf/dl-runtime.c~glibc-2.2.5-allow-gcc-3.4-fixup.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/elf/dl-runtime.c 2004-09-03 19:00:37.000000000 -0500 +@@ -33,6 +33,12 @@ + # define VERSYMIDX(sym) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym)) + #endif + ++/* The fixup functions might have need special attributes. If none ++ are provided define the macro as empty. */ ++#ifndef ARCH_FIXUP_ATTRIBUTE ++# define ARCH_FIXUP_ATTRIBUTE ++#endif ++ + + /* This function is called through a special trampoline from the PLT the + first time each PLT entry is called. We must perform the relocation +@@ -42,7 +48,7 @@ + function. */ + + #ifndef ELF_MACHINE_NO_PLT +-static ElfW(Addr) __attribute_used__ ++static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE + fixup ( + # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS + ELF_MACHINE_RUNTIME_FIXUP_ARGS, +@@ -126,7 +132,7 @@ + + #if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__ + +-static ElfW(Addr) __attribute_used__ ++static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE + profile_fixup ( + #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS + ELF_MACHINE_RUNTIME_FIXUP_ARGS, diff --git a/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-grp.patch b/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-grp.patch index e69de29bb2..5a9b3057dd 100644 --- a/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-grp.patch +++ b/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-grp.patch @@ -0,0 +1,36 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/grp/initgroups.c~glibc-2.2.5-allow-gcc-3.4-grp.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/grp/initgroups.c 2004-09-03 19:00:38.000000000 -0500 +@@ -176,7 +176,7 @@ + + /* This is really only for debugging. */ + if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN) +- __libc_fatal ("illegal status in " __FUNCTION__); ++ __libc_fatal ("illegal status in internal_getgrouplist"); + + if (status != NSS_STATUS_SUCCESS + && nss_next_action (nip, status) == NSS_ACTION_RETURN) +@@ -214,7 +214,7 @@ + } + else + *ngroups = result; +- ++ + memcpy (groups, newgroups, *ngroups * sizeof (gid_t)); + + free (newgroups); +--- glibc-2.2.5/nss/nsswitch.c~glibc-2.2.5-allow-gcc-3.4-grp.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/nss/nsswitch.c 2004-09-03 19:00:38.000000000 -0500 +@@ -178,7 +178,7 @@ + { + /* This is really only for debugging. */ + if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN) +- __libc_fatal ("illegal status in " __FUNCTION__); ++ __libc_fatal ("illegal status in __nss_next"); + + if (nss_next_action (*ni, status) == NSS_ACTION_RETURN) + return 1; diff --git a/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-td.patch b/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-td.patch index e69de29bb2..0a6cee11fe 100644 --- a/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-td.patch +++ b/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-td.patch @@ -0,0 +1,881 @@ +Fixes following error building glibc-2.2.5 with gcc-3.4: +td_init.c: In function `td_init': +td_init.c:30: error: parse error before string constant +td_init.c:30: error: parse error before string constant +make[2]: *** [/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.2.5/build-glibc/linuxthreads_db/td_init.os] Error 1 + +# Retrieved by diffing a +-1 day rng around the time mentioned +# in http://sources.redhat.com/ml/glibc-cvs/2001-q4/msg00654.html +# cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/glibc diff -u -D"2001-12-27 08:41:30" -D"2001-12-29 08:41:32" +# then fixing paths. + +Index: ChangeLog +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/ChangeLog,v +retrieving revision 1.41 +retrieving revision 1.42 +diff -u -r1.41 -r1.42 +--- libc/linuxthreads_db/ChangeLog 13 Apr 2001 00:09:54 -0000 1.41 ++++ libc/linuxthreads_db/ChangeLog 29 Dec 2001 00:59:58 -0000 1.42 +@@ -1,3 +1,43 @@ ++2001-12-28 Andreas Jaeger <aj@suse.de> ++ ++ * td_init.c (td_init): Don't use __FUNCTION__ as literal. ++ * td_log.c (td_log): Likewise. ++ * td_ta_delete.c (td_ta_delete): Likewise. ++ * td_ta_get_nthreads.c (td_ta_get_nthreads): Likewise. ++ * td_ta_get_ph.c (td_ta_get_ph): Likewise. ++ * td_ta_map_id2thr.c (td_ta_map_id2thr): Likewise. ++ * td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Likewise. ++ * td_ta_new.c (td_ta_new): Likewise. ++ * td_ta_clear_event.c (td_ta_clear_event): Likewise. ++ * td_ta_enable_stats.c (td_ta_enable_stats): Likewise. ++ * td_ta_event_addr.c (td_ta_event_addr): Likewise. ++ * td_ta_event_getmsg.c (td_ta_event_getmsg): Likewise. ++ * td_ta_get_stats.c (td_ta_get_stats): Likewise. ++ * td_ta_reset_stats.c (td_ta_reset_stats): Likewise. ++ * td_ta_set_event.c (td_ta_set_event): Likewise. ++ * td_ta_setconcurrency.c (td_ta_setconcurrency): Likewise. ++ * td_ta_thr_iter.c (td_ta_thr_iter): Likewise. ++ * td_ta_tsd_iter.c (td_ta_tsd_iter): Likewise. ++ * td_thr_clear_event.c (td_thr_clear_event): Likewise. ++ * td_thr_dbresume.c (td_thr_dbresume): Likewise. ++ * td_thr_dbsuspend.c (td_thr_dbsuspend): Likewise. ++ * td_thr_event_enable.c (td_thr_event_enable): Likewise. ++ * td_thr_event_getmsg.c (td_thr_event_getmsg): Likewise. ++ * td_thr_get_info.c (td_thr_get_info): Likewise. ++ * td_thr_getfpregs.c (td_thr_getfpregs): Likewise. ++ * td_thr_getgregs.c (td_thr_getgregs): Likewise. ++ * td_thr_getxregs.c (td_thr_getxregs): Likewise. ++ * td_thr_getxregsize.c (td_thr_getxregsize): Likewise. ++ * td_thr_set_event.c (td_thr_set_event): Likewise. ++ * td_thr_setfpregs.c (td_thr_setfpregs): Likewise. ++ * td_thr_setgregs.c (td_thr_setgregs): Likewise. ++ * td_thr_setprio.c (td_thr_setprio): Likewise. ++ * td_thr_setsigpending.c (td_thr_setsigpending): Likewise. ++ * td_thr_setxregs.c (td_thr_setxregs): Likewise. ++ * td_thr_sigsetmask.c (td_thr_sigsetmask): Likewise. ++ * td_thr_tsd.c (td_thr_tsd): Likewise. ++ * td_thr_validate.c (td_thr_validate): Likewise. ++ + 2001-04-12 Ulrich Drepper <drepper@redhat.com> + + * td_ta_map_id2thr.c: If thread terminated return TD_NOTHR. +Index: td_init.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_init.c,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -r1.3 -r1.4 +--- libc/linuxthreads_db/td_init.c 6 Jul 2001 05:27:23 -0000 1.3 ++++ libc/linuxthreads_db/td_init.c 28 Dec 2001 16:41:29 -0000 1.4 +@@ -1,5 +1,5 @@ + /* Initialization function of thread debugger support library. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -27,6 +27,6 @@ + td_init (void) + { + /* XXX We have to figure out what has to be done. */ +- LOG (__FUNCTION__); ++ LOG ("td_init"); + return TD_OK; + } +Index: td_log.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_log.c,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -r1.2 -r1.3 +--- libc/linuxthreads_db/td_log.c 6 Jul 2001 05:27:23 -0000 1.2 ++++ libc/linuxthreads_db/td_log.c 28 Dec 2001 16:41:29 -0000 1.3 +@@ -1,5 +1,5 @@ + /* Noop, left for historical reasons. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -25,8 +25,8 @@ + td_log (void) + { + /* This interface is deprecated in the Sun interface. We provide it +- for compatibility but don't do anyhting ourself. We might in ++ for compatibility but don't do anything ourself. We might in + future do some logging if this seems reasonable. */ +- LOG (__FUNCTION__); ++ LOG ("td_log"); + return TD_OK; + } +Index: td_ta_clear_event.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_clear_event.c,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -r1.3 -r1.4 +--- libc/linuxthreads_db/td_ta_clear_event.c 6 Jul 2001 05:27:23 -0000 1.3 ++++ libc/linuxthreads_db/td_ta_clear_event.c 28 Dec 2001 16:41:29 -0000 1.4 +@@ -1,5 +1,5 @@ + /* Globally disable events. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -29,7 +29,7 @@ + td_thr_events_t old_event; + int i; + +- LOG (__FUNCTION__); ++ LOG ("td_ta_clear_event"); + + /* Test whether the TA parameter is ok. */ + if (! ta_ok (ta)) +Index: td_ta_delete.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_delete.c,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -r1.3 -r1.4 +--- libc/linuxthreads_db/td_ta_delete.c 6 Jul 2001 05:27:23 -0000 1.3 ++++ libc/linuxthreads_db/td_ta_delete.c 28 Dec 2001 16:41:29 -0000 1.4 +@@ -1,5 +1,5 @@ + /* Detach to target process. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -26,7 +26,7 @@ + td_err_e + td_ta_delete (td_thragent_t *ta) + { +- LOG (__FUNCTION__); ++ LOG ("td_ta_delete"); + + /* Safety check. */ + if (ta == NULL || __td_agent_list == NULL) +Index: td_ta_enable_stats.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_enable_stats.c,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -r1.3 -r1.4 +--- libc/linuxthreads_db/td_ta_enable_stats.c 6 Jul 2001 05:27:23 -0000 1.3 ++++ libc/linuxthreads_db/td_ta_enable_stats.c 28 Dec 2001 16:41:29 -0000 1.4 +@@ -1,5 +1,5 @@ + /* Enable collection of statistics for process. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -25,7 +25,7 @@ + td_ta_enable_stats (const td_thragent_t *ta, int enable) + { + /* XXX We have to figure out what has to be done. */ +- LOG (__FUNCTION__); ++ LOG ("td_ta_enable_stats"); + + /* Test whether the TA parameter is ok. */ + if (! ta_ok (ta)) +Index: td_ta_event_addr.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_event_addr.c,v +retrieving revision 1.5 +retrieving revision 1.6 +diff -u -r1.5 -r1.6 +--- libc/linuxthreads_db/td_ta_event_addr.c 6 Jul 2001 05:27:23 -0000 1.5 ++++ libc/linuxthreads_db/td_ta_event_addr.c 28 Dec 2001 16:41:29 -0000 1.6 +@@ -27,7 +27,7 @@ + td_err_e res = TD_NOEVENT; + int idx = -1; + +- LOG (__FUNCTION__); ++ LOG ("td_ta_event_addr"); + + /* Test whether the TA parameter is ok. */ + if (! ta_ok (ta)) +Index: td_ta_event_getmsg.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_event_getmsg.c,v +retrieving revision 1.5 +retrieving revision 1.6 +diff -u -r1.5 -r1.6 +--- libc/linuxthreads_db/td_ta_event_getmsg.c 6 Jul 2001 05:27:23 -0000 1.5 ++++ libc/linuxthreads_db/td_ta_event_getmsg.c 28 Dec 2001 16:41:29 -0000 1.6 +@@ -1,5 +1,5 @@ + /* Retrieve event. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -32,7 +32,7 @@ + td_eventbuf_t event; + psaddr_t addr; + +- LOG (__FUNCTION__); ++ LOG ("td_ta_event_getmsg"); + + /* Test whether the TA parameter is ok. */ + if (! ta_ok (ta)) +Index: td_ta_get_nthreads.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_get_nthreads.c,v +retrieving revision 1.5 +retrieving revision 1.6 +diff -u -r1.5 -r1.6 +--- libc/linuxthreads_db/td_ta_get_nthreads.c 6 Jul 2001 05:27:23 -0000 1.5 ++++ libc/linuxthreads_db/td_ta_get_nthreads.c 28 Dec 2001 16:41:29 -0000 1.6 +@@ -25,7 +25,7 @@ + { + psaddr_t addr; + +- LOG (__FUNCTION__); ++ LOG ("td_ta_get_nthreads"); + + /* Test whether the TA parameter is ok. */ + if (! ta_ok (ta)) +Index: td_ta_get_ph.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_get_ph.c,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -r1.3 -r1.4 +--- libc/linuxthreads_db/td_ta_get_ph.c 6 Jul 2001 05:27:23 -0000 1.3 ++++ libc/linuxthreads_db/td_ta_get_ph.c 28 Dec 2001 16:41:29 -0000 1.4 +@@ -1,5 +1,5 @@ + /* Get external process handle. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -24,7 +24,7 @@ + td_err_e + td_ta_get_ph (const td_thragent_t *ta, struct ps_prochandle **ph) + { +- LOG (__FUNCTION__); ++ LOG ("td_ta_get_ph"); + + /* Test whether the TA parameter is ok. */ + if (! ta_ok (ta)) +Index: td_ta_get_stats.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_get_stats.c,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -r1.3 -r1.4 +--- libc/linuxthreads_db/td_ta_get_stats.c 6 Jul 2001 05:27:23 -0000 1.3 ++++ libc/linuxthreads_db/td_ta_get_stats.c 28 Dec 2001 16:41:29 -0000 1.4 +@@ -1,5 +1,5 @@ + /* Retrieve statistics for process. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -25,7 +25,7 @@ + td_ta_get_stats (const td_thragent_t *ta, td_ta_stats_t *statsp) + { + /* XXX We have to figure out what has to be done. */ +- LOG (__FUNCTION__); ++ LOG ("td_ta_get_stats"); + + /* Test whether the TA parameter is ok. */ + if (! ta_ok (ta)) +Index: td_ta_map_id2thr.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_map_id2thr.c,v +retrieving revision 1.4 +retrieving revision 1.5 +diff -u -r1.4 -r1.5 +--- libc/linuxthreads_db/td_ta_map_id2thr.c 6 Jul 2001 05:27:23 -0000 1.4 ++++ libc/linuxthreads_db/td_ta_map_id2thr.c 28 Dec 2001 16:41:29 -0000 1.5 +@@ -28,7 +28,7 @@ + struct _pthread_descr_struct pds; + int pthread_threads_max; + +- LOG (__FUNCTION__); ++ LOG ("td_ta_map_id2thr"); + + /* Test whether the TA parameter is ok. */ + if (! ta_ok (ta)) +Index: td_ta_map_lwp2thr.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_map_lwp2thr.c,v +retrieving revision 1.5 +retrieving revision 1.6 +diff -u -r1.5 -r1.6 +--- libc/linuxthreads_db/td_ta_map_lwp2thr.c 6 Jul 2001 05:27:23 -0000 1.5 ++++ libc/linuxthreads_db/td_ta_map_lwp2thr.c 28 Dec 2001 16:41:29 -0000 1.6 +@@ -1,5 +1,5 @@ + /* Which thread is running on an lwp? +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -34,7 +34,7 @@ + # define num 1 + #endif + +- LOG (__FUNCTION__); ++ LOG ("td_ta_map_lwp2thr"); + + /* Test whether the TA parameter is ok. */ + if (! ta_ok (ta)) +Index: td_ta_new.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_new.c,v +retrieving revision 1.10 +retrieving revision 1.11 +diff -u -r1.10 -r1.11 +--- libc/linuxthreads_db/td_ta_new.c 6 Jul 2001 05:27:23 -0000 1.10 ++++ libc/linuxthreads_db/td_ta_new.c 28 Dec 2001 16:41:29 -0000 1.11 +@@ -35,7 +35,7 @@ + psaddr_t addr; + struct agent_list *elemp; + +- LOG (__FUNCTION__); ++ LOG ("td_ta_new"); + + /* Get the global event mask. This is one of the variables which + are new in the thread library to enable debugging. If it is +Index: td_ta_reset_stats.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_reset_stats.c,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -r1.3 -r1.4 +--- libc/linuxthreads_db/td_ta_reset_stats.c 6 Jul 2001 05:27:23 -0000 1.3 ++++ libc/linuxthreads_db/td_ta_reset_stats.c 28 Dec 2001 16:41:29 -0000 1.4 +@@ -1,5 +1,5 @@ + /* Reset statistics. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -25,7 +25,7 @@ + td_ta_reset_stats (const td_thragent_t *ta) + { + /* XXX We have to figure out what has to be done. */ +- LOG (__FUNCTION__); ++ LOG ("td_ta_reset_stats"); + + /* Test whether the TA parameter is ok. */ + if (! ta_ok (ta)) +Index: td_ta_set_event.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_set_event.c,v +retrieving revision 1.4 +retrieving revision 1.5 +diff -u -r1.4 -r1.5 +--- libc/linuxthreads_db/td_ta_set_event.c 6 Jul 2001 05:27:23 -0000 1.4 ++++ libc/linuxthreads_db/td_ta_set_event.c 28 Dec 2001 16:41:29 -0000 1.5 +@@ -1,5 +1,5 @@ + /* Globally enable events. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -29,7 +29,7 @@ + td_thr_events_t old_event; + int i; + +- LOG (__FUNCTION__); ++ LOG ("td_ta_set_event"); + + /* Test whether the TA parameter is ok. */ + if (! ta_ok (ta)) +Index: td_ta_setconcurrency.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_setconcurrency.c,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -r1.3 -r1.4 +--- libc/linuxthreads_db/td_ta_setconcurrency.c 6 Jul 2001 05:27:23 -0000 1.3 ++++ libc/linuxthreads_db/td_ta_setconcurrency.c 28 Dec 2001 16:41:29 -0000 1.4 +@@ -1,5 +1,5 @@ + /* Set suggested concurrency level for process. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -25,7 +25,7 @@ + td_ta_setconcurrency (const td_thragent_t *ta, int level) + { + /* This is something LinuxThreads does not support. */ +- LOG (__FUNCTION__); ++ LOG ("td_ta_setconcurrency"); + + /* Test whether the TA parameter is ok. */ + if (! ta_ok (ta)) +Index: td_ta_thr_iter.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_thr_iter.c,v +retrieving revision 1.11 +retrieving revision 1.12 +diff -u -r1.11 -r1.12 +--- libc/linuxthreads_db/td_ta_thr_iter.c 6 Jul 2001 05:27:23 -0000 1.11 ++++ libc/linuxthreads_db/td_ta_thr_iter.c 28 Dec 2001 16:41:29 -0000 1.12 +@@ -1,5 +1,5 @@ + /* Iterate over a process's threads. +- Copyright (C) 1999, 2000 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -86,7 +86,7 @@ + # define num 1 + #endif + +- LOG (__FUNCTION__); ++ LOG ("td_ta_thr_iter"); + + /* Test whether the TA parameter is ok. */ + if (! ta_ok (ta)) +Index: td_ta_tsd_iter.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_tsd_iter.c,v +retrieving revision 1.4 +retrieving revision 1.5 +diff -u -r1.4 -r1.5 +--- libc/linuxthreads_db/td_ta_tsd_iter.c 6 Jul 2001 05:27:23 -0000 1.4 ++++ libc/linuxthreads_db/td_ta_tsd_iter.c 28 Dec 2001 16:41:29 -0000 1.5 +@@ -1,5 +1,5 @@ + /* Iterate over a process's thread-specific data. +- Copyright (C) 1999, 2000 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -29,7 +29,7 @@ + int pthread_keys_max; + int cnt; + +- LOG (__FUNCTION__); ++ LOG ("td_ta_tsd_iter"); + + /* Test whether the TA parameter is ok. */ + if (! ta_ok (ta)) +Index: td_thr_clear_event.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_clear_event.c,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -r1.3 -r1.4 +--- libc/linuxthreads_db/td_thr_clear_event.c 6 Jul 2001 05:27:23 -0000 1.3 ++++ libc/linuxthreads_db/td_thr_clear_event.c 28 Dec 2001 16:41:29 -0000 1.4 +@@ -1,5 +1,5 @@ + /* Disable specific event for thread. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -31,7 +31,7 @@ + td_thr_events_t old_event; + int i; + +- LOG (__FUNCTION__); ++ LOG ("td_thr_clear_event"); + + /* Write the new value into the thread data structure. */ + if (ps_pdread (th->th_ta_p->ph, +Index: td_thr_dbresume.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_dbresume.c,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -r1.2 -r1.3 +--- libc/linuxthreads_db/td_thr_dbresume.c 6 Jul 2001 05:27:23 -0000 1.2 ++++ libc/linuxthreads_db/td_thr_dbresume.c 28 Dec 2001 16:41:29 -0000 1.3 +@@ -1,5 +1,5 @@ + /* Resume execution of given thread. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -25,6 +25,6 @@ + td_thr_dbresume (const td_thrhandle_t *th) + { + /* XXX We have to figure out what has to be done. */ +- LOG (__FUNCTION__); ++ LOG ("td_thr_dbresume"); + return TD_NOCAPAB; + } +Index: td_thr_dbsuspend.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_dbsuspend.c,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -r1.2 -r1.3 +--- libc/linuxthreads_db/td_thr_dbsuspend.c 6 Jul 2001 05:27:23 -0000 1.2 ++++ libc/linuxthreads_db/td_thr_dbsuspend.c 28 Dec 2001 16:41:29 -0000 1.3 +@@ -1,5 +1,5 @@ + /* Suspend execution of given thread. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -25,6 +25,6 @@ + td_thr_dbsuspend (const td_thrhandle_t *th) + { + /* XXX We have to figure out what has to be done. */ +- LOG (__FUNCTION__); ++ LOG ("td_thr_dbsuspend"); + return TD_NOCAPAB; + } +Index: td_thr_event_enable.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_event_enable.c,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -r1.3 -r1.4 +--- libc/linuxthreads_db/td_thr_event_enable.c 6 Jul 2001 05:27:23 -0000 1.3 ++++ libc/linuxthreads_db/td_thr_event_enable.c 28 Dec 2001 16:41:29 -0000 1.4 +@@ -1,5 +1,5 @@ + /* Enable event process-wide. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -28,7 +28,7 @@ + const td_thrhandle_t *th; + int onoff; + { +- LOG (__FUNCTION__); ++ LOG ("td_thr_event_enable"); + + /* Write the new value into the thread data structure. */ + if (ps_pdwrite (th->th_ta_p->ph, +Index: td_thr_event_getmsg.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_event_getmsg.c,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -r1.3 -r1.4 +--- libc/linuxthreads_db/td_thr_event_getmsg.c 6 Jul 2001 05:27:23 -0000 1.3 ++++ libc/linuxthreads_db/td_thr_event_getmsg.c 28 Dec 2001 16:41:29 -0000 1.4 +@@ -1,5 +1,5 @@ + /* Retrieve event. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -29,7 +29,7 @@ + { + td_eventbuf_t event; + +- LOG (__FUNCTION__); ++ LOG ("td_thr_event_getmsg"); + + /* Read the even structure from the target. */ + if (ps_pdread (th->th_ta_p->ph, +Index: td_thr_get_info.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_get_info.c,v +retrieving revision 1.9 +retrieving revision 1.10 +diff -u -r1.9 -r1.10 +--- libc/linuxthreads_db/td_thr_get_info.c 6 Jul 2001 05:27:23 -0000 1.9 ++++ libc/linuxthreads_db/td_thr_get_info.c 28 Dec 2001 16:41:29 -0000 1.10 +@@ -1,5 +1,5 @@ + /* Get thread information. +- Copyright (C) 1999, 2000 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -29,7 +29,7 @@ + { + struct _pthread_descr_struct pds; + +- LOG (__FUNCTION__); ++ LOG ("td_thr_get_info"); + + /* Get the thread descriptor. */ + if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds, +Index: td_thr_getfpregs.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_getfpregs.c,v +retrieving revision 1.4 +retrieving revision 1.5 +diff -u -r1.4 -r1.5 +--- libc/linuxthreads_db/td_thr_getfpregs.c 6 Jul 2001 05:27:23 -0000 1.4 ++++ libc/linuxthreads_db/td_thr_getfpregs.c 28 Dec 2001 16:41:29 -0000 1.5 +@@ -26,7 +26,7 @@ + { + struct _pthread_descr_struct pds; + +- LOG (__FUNCTION__); ++ LOG ("td_thr_getfpregs"); + + /* We have to get the state and the PID for this thread. */ + if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds, +Index: td_thr_getgregs.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_getgregs.c,v +retrieving revision 1.8 +retrieving revision 1.9 +diff -u -r1.8 -r1.9 +--- libc/linuxthreads_db/td_thr_getgregs.c 6 Jul 2001 05:27:23 -0000 1.8 ++++ libc/linuxthreads_db/td_thr_getgregs.c 28 Dec 2001 16:41:29 -0000 1.9 +@@ -26,7 +26,7 @@ + { + struct _pthread_descr_struct pds; + +- LOG (__FUNCTION__); ++ LOG ("td_thr_getgregs"); + + /* We have to get the state and the PID for this thread. */ + if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds, +Index: td_thr_getxregs.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_getxregs.c,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -r1.2 -r1.3 +--- libc/linuxthreads_db/td_thr_getxregs.c 6 Jul 2001 05:27:23 -0000 1.2 ++++ libc/linuxthreads_db/td_thr_getxregs.c 28 Dec 2001 16:41:29 -0000 1.3 +@@ -1,5 +1,5 @@ + /* Get a thread's extra state register set. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -25,6 +25,6 @@ + td_thr_getxregs (const td_thrhandle_t *th, void *xregs) + { + /* XXX This might be platform specific. */ +- LOG (__FUNCTION__); ++ LOG ("td_thr_getxregs"); + return TD_NOXREGS; + } +Index: td_thr_getxregsize.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_getxregsize.c,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -r1.2 -r1.3 +--- libc/linuxthreads_db/td_thr_getxregsize.c 6 Jul 2001 05:27:23 -0000 1.2 ++++ libc/linuxthreads_db/td_thr_getxregsize.c 28 Dec 2001 16:41:29 -0000 1.3 +@@ -1,5 +1,5 @@ + /* Get the size of the extra state register set for this architecture. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -25,6 +25,6 @@ + td_thr_getxregsize (const td_thrhandle_t *th, int *sizep) + { + /* XXX This might be platform specific. */ +- LOG (__FUNCTION__); ++ LOG ("td_thr_getxregsize"); + return TD_NOXREGS; + } +Index: td_thr_set_event.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_set_event.c,v +retrieving revision 1.4 +retrieving revision 1.5 +diff -u -r1.4 -r1.5 +--- libc/linuxthreads_db/td_thr_set_event.c 6 Jul 2001 05:27:23 -0000 1.4 ++++ libc/linuxthreads_db/td_thr_set_event.c 28 Dec 2001 16:41:29 -0000 1.5 +@@ -1,5 +1,5 @@ + /* Enable specific event for thread. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -31,7 +31,7 @@ + td_thr_events_t old_event; + int i; + +- LOG (__FUNCTION__); ++ LOG ("td_thr_set_event"); + + /* Write the new value into the thread data structure. */ + if (ps_pdread (th->th_ta_p->ph, +Index: td_thr_setfpregs.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_setfpregs.c,v +retrieving revision 1.4 +retrieving revision 1.5 +diff -u -r1.4 -r1.5 +--- libc/linuxthreads_db/td_thr_setfpregs.c 6 Jul 2001 05:27:23 -0000 1.4 ++++ libc/linuxthreads_db/td_thr_setfpregs.c 28 Dec 2001 16:41:29 -0000 1.5 +@@ -26,7 +26,7 @@ + { + struct _pthread_descr_struct pds; + +- LOG (__FUNCTION__); ++ LOG ("td_thr_setfpregs"); + + /* We have to get the state and the PID for this thread. */ + if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds, +Index: td_thr_setgregs.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_setgregs.c,v +retrieving revision 1.6 +retrieving revision 1.7 +diff -u -r1.6 -r1.7 +--- libc/linuxthreads_db/td_thr_setgregs.c 6 Jul 2001 05:27:23 -0000 1.6 ++++ libc/linuxthreads_db/td_thr_setgregs.c 28 Dec 2001 16:41:29 -0000 1.7 +@@ -26,7 +26,7 @@ + { + struct _pthread_descr_struct pds; + +- LOG (__FUNCTION__); ++ LOG ("td_thr_setgregs"); + + /* We have to get the state and the PID for this thread. */ + if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds, +Index: td_thr_setprio.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_setprio.c,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -r1.2 -r1.3 +--- libc/linuxthreads_db/td_thr_setprio.c 6 Jul 2001 05:27:23 -0000 1.2 ++++ libc/linuxthreads_db/td_thr_setprio.c 28 Dec 2001 16:41:29 -0000 1.3 +@@ -1,5 +1,5 @@ + /* Set a thread's priority. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -25,6 +25,6 @@ + td_thr_setprio (const td_thrhandle_t *th, int prio) + { + /* XXX We have to figure out what has to be done. */ +- LOG (__FUNCTION__); ++ LOG ("td_thr_setprio"); + return TD_OK; + } +Index: td_thr_setsigpending.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_setsigpending.c,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -r1.2 -r1.3 +--- libc/linuxthreads_db/td_thr_setsigpending.c 6 Jul 2001 05:27:23 -0000 1.2 ++++ libc/linuxthreads_db/td_thr_setsigpending.c 28 Dec 2001 16:41:29 -0000 1.3 +@@ -1,5 +1,5 @@ + /* Raise a signal for a thread. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -26,6 +26,6 @@ + const sigset_t *ss) + { + /* XXX We have to figure out what has to be done. */ +- LOG (__FUNCTION__); ++ LOG ("td_thr_setsigpending"); + return TD_OK; + } +Index: td_thr_setxregs.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_setxregs.c,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -r1.2 -r1.3 +--- libc/linuxthreads_db/td_thr_setxregs.c 6 Jul 2001 05:27:23 -0000 1.2 ++++ libc/linuxthreads_db/td_thr_setxregs.c 28 Dec 2001 16:41:29 -0000 1.3 +@@ -1,5 +1,5 @@ + /* Set a thread's extra state register set. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -25,6 +25,6 @@ + td_thr_setxregs (const td_thrhandle_t *ta, const void *addr) + { + /* XXX This might have to be platform specific. */ +- LOG (__FUNCTION__); ++ LOG ("td_thr_setxregs"); + return TD_NOXREGS; + } +Index: td_thr_sigsetmask.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_sigsetmask.c,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -r1.2 -r1.3 +--- libc/linuxthreads_db/td_thr_sigsetmask.c 6 Jul 2001 05:27:23 -0000 1.2 ++++ libc/linuxthreads_db/td_thr_sigsetmask.c 28 Dec 2001 16:41:29 -0000 1.3 +@@ -1,5 +1,5 @@ + /* Set a thread's signal mask. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -25,6 +25,6 @@ + td_thr_sigsetmask (const td_thrhandle_t *th, const sigset_t *ss) + { + /* XXX We have to figure out what has to be done. */ +- LOG (__FUNCTION__); ++ LOG ("td_thr_sigsetmask"); + return TD_OK; + } +Index: td_thr_tsd.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_tsd.c,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -r1.2 -r1.3 +--- libc/linuxthreads_db/td_thr_tsd.c 6 Jul 2001 05:27:23 -0000 1.2 ++++ libc/linuxthreads_db/td_thr_tsd.c 28 Dec 2001 16:41:29 -0000 1.3 +@@ -1,5 +1,5 @@ + /* Get a thread-specific data pointer for a thread. +- Copyright (C) 1999 Free Software Foundation, Inc. ++ Copyright (C) 1999, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. + +@@ -33,7 +33,7 @@ + unsigned int idx2nd; + void *p; + +- LOG (__FUNCTION__); ++ LOG ("td_thr_tsd"); + + /* Get the thread descriptor. */ + if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds, +Index: td_thr_validate.c +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_validate.c,v +retrieving revision 1.4 +retrieving revision 1.5 +diff -u -r1.4 -r1.5 +--- libc/linuxthreads_db/td_thr_validate.c 6 Jul 2001 05:27:23 -0000 1.4 ++++ libc/linuxthreads_db/td_thr_validate.c 28 Dec 2001 16:41:29 -0000 1.5 +@@ -28,7 +28,7 @@ + int pthread_threads_max = th->th_ta_p->pthread_threads_max; + int cnt; + +- LOG (__FUNCTION__); ++ LOG ("td_thr_validate"); + + /* Now get all descriptors, one after the other. */ + for (cnt = 0; cnt < pthread_threads_max; ++cnt, ++handles) diff --git a/glibc/glibc-2.2.5/glibc-2.2.5-alpha-pwrite64.patch b/glibc/glibc-2.2.5/glibc-2.2.5-alpha-pwrite64.patch index e69de29bb2..8466731834 100644 --- a/glibc/glibc-2.2.5/glibc-2.2.5-alpha-pwrite64.patch +++ b/glibc/glibc-2.2.5/glibc-2.2.5-alpha-pwrite64.patch @@ -0,0 +1,35 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/unix/sysv/linux/alpha/sysdep.h~glibc-2.2.5-alpha-pwrite64.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/unix/sysv/linux/alpha/sysdep.h 2004-09-03 19:00:38.000000000 -0500 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1992, 1993, 1995, 1996, 1997 Free Software Foundation, Inc. ++/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2004 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995. + +@@ -56,6 +56,21 @@ + #define __NR_osf_getsysinfo 256 + #define __NR_osf_setsysinfo 257 + ++/* Help old kernel headers where particular syscalls are not available. */ ++#ifndef __NR_semtimedop ++# define __NR_semtimedop 423 ++#endif ++ ++/* This is a kludge to make syscalls.list find these under the names ++ pread and pwrite, since some kernel headers define those names ++ and some define the *64 names for the same system calls. */ ++#if !defined __NR_pread && defined __NR_pread64 ++# define __NR_pread __NR_pread64 ++#endif ++#if !defined __NR_pwrite && defined __NR_pwrite64 ++# define __NR_pwrite __NR_pwrite64 ++#endif ++ + /* + * In order to get the hidden arguments for rt_sigaction set up + * properly, we need to call the assembly version. Detect this in the diff --git a/glibc/glibc-2.2.5/glibc-2.2.5-alpha-self-clobber.patch b/glibc/glibc-2.2.5/glibc-2.2.5-alpha-self-clobber.patch index e69de29bb2..fd3403405a 100644 --- a/glibc/glibc-2.2.5/glibc-2.2.5-alpha-self-clobber.patch +++ b/glibc/glibc-2.2.5/glibc-2.2.5-alpha-self-clobber.patch @@ -0,0 +1,25 @@ +wget http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/linuxthreads/sysdeps/alpha/pt-machine.h.diff?r1=1.9&r2=1.10&cvsroot=glibc + +Should fix error + +internals.h: In function `pthread_setcancelstate': +internals.h:381: error: asm-specifier for variable `__self' conflicts with asm clobber list +make[2]: *** [/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/build-glibc/linuxthreads/cancel.o] Error 1 +make[2]: Leaving directory `/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5/linuxthreads' + +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads/sysdeps/alpha/pt-machine.h,v +retrieving revision 1.9 +retrieving revision 1.10 +diff -u -r1.9 -r1.10 +--- libc/linuxthreads/sysdeps/alpha/pt-machine.h 2002/04/06 04:05:13 1.9 ++++ libc/linuxthreads/sysdeps/alpha/pt-machine.h 2002/05/20 20:09:34 1.10 +@@ -76,7 +76,7 @@ + #define THREAD_SELF \ + ({ \ + register pthread_descr __self __asm__("$0"); \ +- __asm__ ("call_pal %1" : "=r"(__self) : "i"(PAL_rduniq) : "$0"); \ ++ __asm__ ("call_pal %1" : "=r"(__self) : "i"(PAL_rduniq)); \ + __self; \ + }) + diff --git a/glibc/glibc-2.2.5/glibc-2.2.5-arm-pwrite64.patch b/glibc/glibc-2.2.5/glibc-2.2.5-arm-pwrite64.patch index e69de29bb2..eb7fa996fa 100644 --- a/glibc/glibc-2.2.5/glibc-2.2.5-arm-pwrite64.patch +++ b/glibc/glibc-2.2.5/glibc-2.2.5-arm-pwrite64.patch @@ -0,0 +1,23 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h~glibc-2.2.5-arm-pwrite64.patch 2004-09-03 19:00:37.000000000 -0500 ++++ glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h 2004-09-03 19:00:38.000000000 -0500 +@@ -32,6 +32,15 @@ + #define SWI_BASE (0x900000) + #define SYS_ify(syscall_name) (__NR_##syscall_name) + ++/* This is a kludge to make syscalls.list find these under the names ++ pread and pwrite, since some kernel headers define those names ++ and some define the *64 names for the same system calls. */ ++#if !defined __NR_pread && defined __NR_pread64 ++# define __NR_pread __NR_pread64 ++#endif ++#if !defined __NR_pwrite && defined __NR_pwrite64 ++# define __NR_pwrite __NR_pwrite64 ++#endif + + #ifdef __ASSEMBLER__ + diff --git a/glibc/glibc-2.2.5/glibc-2.2.5-crosstest.patch b/glibc/glibc-2.2.5/glibc-2.2.5-crosstest.patch index e69de29bb2..4029bf4f2a 100644 --- a/glibc/glibc-2.2.5/glibc-2.2.5-crosstest.patch +++ b/glibc/glibc-2.2.5/glibc-2.2.5-crosstest.patch @@ -0,0 +1,28 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/dlfcn/Makefile~glibc-2.2.5-crosstest.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/dlfcn/Makefile 2004-09-03 19:00:38.000000000 -0500 +@@ -60,6 +60,8 @@ + test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names))) + $(test-modules): $(objpfx)%.so: $(objpfx)%.os + $(build-module) ++# without following rule, test-modules don't get built when cross-compiling ++tests: $(test-modules) + + $(objpfx)glrefmain: $(libdl) + $(objpfx)glrefmain.out: $(objpfx)glrefmain \ +--- glibc-2.2.5/elf/Makefile~glibc-2.2.5-crosstest.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/elf/Makefile 2004-09-03 19:00:38.000000000 -0500 +@@ -263,6 +263,9 @@ + test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names)))) + generated += $(addsuffix .so,$(strip $(modules-names))) + ++# without following rule, test-modules don't get built when cross-compiling ++tests: $(test-modules) ++ + ifeq (yes,$(build-shared)) + ifeq ($(cross-compiling),no) + tests: $(objpfx)tst-pathopt.out diff --git a/glibc/glibc-2.2.5/glibc-2.2.5-crossyes.patch b/glibc/glibc-2.2.5/glibc-2.2.5-crossyes.patch index e69de29bb2..a27be24275 100644 --- a/glibc/glibc-2.2.5/glibc-2.2.5-crossyes.patch +++ b/glibc/glibc-2.2.5/glibc-2.2.5-crossyes.patch @@ -0,0 +1,16 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/configure~glibc-2.2.5-crossyes.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/configure 2004-09-03 19:00:38.000000000 -0500 +@@ -1738,7 +1738,7 @@ + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then +- ac_cv_prog_cc_cross=no ++ ac_cv_prog_cc_cross=yes + else + ac_cv_prog_cc_cross=yes + fi diff --git a/glibc/glibc-2.2.5/glibc-2.2.5-cygwin.patch b/glibc/glibc-2.2.5/glibc-2.2.5-cygwin.patch index e69de29bb2..9b732188ca 100644 --- a/glibc/glibc-2.2.5/glibc-2.2.5-cygwin.patch +++ b/glibc/glibc-2.2.5/glibc-2.2.5-cygwin.patch @@ -0,0 +1,79 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/Makeconfig~glibc-2.2.5-cygwin.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/Makeconfig 2004-09-03 19:00:38.000000000 -0500 +@@ -439,13 +439,13 @@ + # run the linked programs. + link-libc = -Wl,-rpath-link=$(rpath-link) \ + $(common-objpfx)libc.so$(libc.so-version) \ +- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib) ++ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib) + # This is how to find at build-time things that will be installed there. + rpath-dirs = math elf dlfcn nss nis rt resolv crypt + else + ifneq (,$(findstring aix,$(config-os))) + link-libc = $(common-objpfx)libc.a \ +- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib) ++ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib) + rpath-dirs = math dlfcn nss nis rt resolv crypt + endif + endif +@@ -649,7 +649,7 @@ + # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX}) + # to pass different flags for each flavor. + libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o)) +-all-object-suffixes := .o .os .op .og .ob .oS ++all-object-suffixes := .o .os .op .og .ob .oST + object-suffixes := + CPPFLAGS-.o = $(pic-default) + CFLAGS-.o = $(filter %frame-pointer,$(+cflags)) +@@ -703,14 +703,14 @@ + + ifeq (yes,$(build-shared)) + # Build special library that contains the static-only routines for libc. +-object-suffixes-for-libc += .oS ++object-suffixes-for-libc += .oST + + # Must build the routines as PIC, though, because they can end up in (users') + # shared objects. We don't want to use CFLAGS-os because users may, for + # example, make that processor-specific. +-CFLAGS-.oS = $(CFLAGS-.o) $(pic-ccflag) +-CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC +-libtype.oS = lib%_nonshared.a ++CFLAGS-.oST = $(CFLAGS-.o) $(pic-ccflag) ++CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC ++libtype.oST = lib%_nonshared.a + endif + + +--- glibc-2.2.5/Makerules~glibc-2.2.5-cygwin.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/Makerules 2004-09-03 19:00:38.000000000 -0500 +@@ -361,7 +361,7 @@ + # Bounded pointer thunks are only built for *.ob + elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks)) + +-elide-routines.oS += $(filter-out $(static-only-routines),\ ++elide-routines.oST += $(filter-out $(static-only-routines),\ + $(routines) $(aux) $(sysdep_routines)) \ + $(elide-bp-thunks) + elide-routines.os += $(static-only-routines) $(elide-bp-thunks) +@@ -842,14 +842,14 @@ + # of the files are taken by the linker. + install: $(inst_libdir)/libc.so + $(inst_libdir)/libc.so: $(common-objpfx)libc.so$(libc.so-version) \ +- $(inst_libdir)/$(patsubst %,$(libtype.oS),\ ++ $(inst_libdir)/$(patsubst %,$(libtype.oST),\ + $(libprefix)$(libc-name)) \ + $(+force) + (echo '/* GNU ld script';\ + echo ' Use the shared library, but some functions are only in';\ + echo ' the static library, so try that secondarily. */';\ + echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \ +- '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\ ++ '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\ + ')' \ + ) > $@.new + mv -f $@.new $@ diff --git a/glibc/glibc-2.2.5/glibc-2.2.5-hhl-powerpc-fpu.patch b/glibc/glibc-2.2.5/glibc-2.2.5-hhl-powerpc-fpu.patch index e69de29bb2..73cfd1a832 100644 --- a/glibc/glibc-2.2.5/glibc-2.2.5-hhl-powerpc-fpu.patch +++ b/glibc/glibc-2.2.5/glibc-2.2.5-hhl-powerpc-fpu.patch @@ -0,0 +1,1108 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/powerpc/Dist~glibc-2.2.5-hhl-powerpc-fpu.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/Dist 2004-09-03 19:00:38.000000000 -0500 +@@ -1,9 +1,6 @@ + dl-machine.c + dl-start.S + ppc-mcount.S +-fe_nomask.c +-fprrest.S +-fprsave.S + gprsave1.S + gprsave0.S + gprrest1.S +--- glibc-2.2.5/sysdeps/powerpc/Makefile~glibc-2.2.5-hhl-powerpc-fpu.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/Makefile 2004-09-03 19:00:38.000000000 -0500 +@@ -3,16 +3,12 @@ + +cflags += -mnew-mnemonics -Wa,-mppc -mpowerpc + asm-CPPFLAGS += -Wa,-mppc + +-ifeq ($(subdir),math) +-libm-support += fenv_const fe_nomask +-endif +- + ifeq ($(subdir),gmon) + sysdep_routines += ppc-mcount + endif + + ifeq ($(subdir),misc) +-sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1 fprsave fprrest ++sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1 + endif + + # On PPC, -fpic works until the GOT contains 2^15 bytes, and possibly +--- glibc-2.2.5/sysdeps/powerpc/Versions~glibc-2.2.5-hhl-powerpc-fpu.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/Versions 2004-09-03 19:00:38.000000000 -0500 +@@ -1,8 +1,4 @@ + libm { +- GLIBC_2.1 { +- # symbols used in macros from sysdeps/powerpc/bits/fenv.h +- __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env; +- } + GLIBC_2.2 { + # Special functions to save and restore registers used by the + # runtime libraries. +--- glibc-2.2.5/sysdeps/powerpc/__longjmp.S~glibc-2.2.5-hhl-powerpc-fpu.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/__longjmp.S 2004-09-03 19:00:38.000000000 -0500 +@@ -24,6 +24,8 @@ + #include <bp-sym.h> + #include <bp-asm.h> + ++/* The FPU loads have been removed from this file - see fpu/__longjmp.S */ ++ + ENTRY (BP_SYM (__longjmp)) + CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE) + +@@ -31,44 +33,26 @@ + lwz r2,(JB_GPR2*4)(r3) + lwz r0,(JB_LR*4)(r3) + lwz r14,((JB_GPRS+0)*4)(r3) +- lfd fp14,((JB_FPRS+0*2)*4)(r3) + lwz r15,((JB_GPRS+1)*4)(r3) +- lfd fp15,((JB_FPRS+1*2)*4)(r3) + lwz r16,((JB_GPRS+2)*4)(r3) +- lfd fp16,((JB_FPRS+2*2)*4)(r3) + lwz r17,((JB_GPRS+3)*4)(r3) +- lfd fp17,((JB_FPRS+3*2)*4)(r3) + lwz r18,((JB_GPRS+4)*4)(r3) +- lfd fp18,((JB_FPRS+4*2)*4)(r3) + lwz r19,((JB_GPRS+5)*4)(r3) +- lfd fp19,((JB_FPRS+5*2)*4)(r3) + lwz r20,((JB_GPRS+6)*4)(r3) +- lfd fp20,((JB_FPRS+6*2)*4)(r3) + mtlr r0 + lwz r21,((JB_GPRS+7)*4)(r3) +- lfd fp21,((JB_FPRS+7*2)*4)(r3) + lwz r22,((JB_GPRS+8)*4)(r3) +- lfd fp22,((JB_FPRS+8*2)*4)(r3) + lwz r0,(JB_CR*4)(r3) + lwz r23,((JB_GPRS+9)*4)(r3) +- lfd fp23,((JB_FPRS+9*2)*4)(r3) + lwz r24,((JB_GPRS+10)*4)(r3) +- lfd fp24,((JB_FPRS+10*2)*4)(r3) + lwz r25,((JB_GPRS+11)*4)(r3) +- lfd fp25,((JB_FPRS+11*2)*4)(r3) + mtcrf 0xFF,r0 + lwz r26,((JB_GPRS+12)*4)(r3) +- lfd fp26,((JB_FPRS+12*2)*4)(r3) + lwz r27,((JB_GPRS+13)*4)(r3) +- lfd fp27,((JB_FPRS+13*2)*4)(r3) + lwz r28,((JB_GPRS+14)*4)(r3) +- lfd fp28,((JB_FPRS+14*2)*4)(r3) + lwz r29,((JB_GPRS+15)*4)(r3) +- lfd fp29,((JB_FPRS+15*2)*4)(r3) + lwz r30,((JB_GPRS+16)*4)(r3) +- lfd fp30,((JB_FPRS+16*2)*4)(r3) + lwz r31,((JB_GPRS+17)*4)(r3) +- lfd fp31,((JB_FPRS+17*2)*4)(r3) + mr r3,r4 + blr + END (BP_SYM (__longjmp)) +--- glibc-2.2.5/sysdeps/powerpc/bits/setjmp.h~glibc-2.2.5-hhl-powerpc-fpu.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/bits/setjmp.h 2004-09-03 19:00:38.000000000 -0500 +@@ -17,6 +17,7 @@ + 02111-1307 USA. */ + + /* Define the machine-dependent type `jmp_buf'. PowerPC version. */ ++/* For processors without floating point. */ + + #ifndef _SETJMP_H + # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead." +@@ -33,12 +34,11 @@ + # define JB_LR 2 /* The address we will return to */ + # define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total */ + # define JB_CR 21 /* Condition code registers. */ +-# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total */ +-# define JB_SIZE (58*4) ++# define JB_SIZE (22*4) + #endif + + #ifndef _ASM +-typedef long int __jmp_buf[58]; ++typedef long int __jmp_buf[22]; + #endif + + /* Test if longjmp to JMPBUF would unwind the frame +--- glibc-2.2.5/sysdeps/powerpc/fclrexcpt.c~glibc-2.2.5-hhl-powerpc-fpu.patch ++++ glibc-2.2.5/sysdeps/powerpc/fclrexcpt.c +-/* Clear given exceptions in current floating-point environment. +- Copyright (C) 1997,99,2000,01 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 <fenv_libc.h> +- +-#undef feclearexcept +-int +-__feclearexcept (int excepts) +-{ +- fenv_union_t u; +- +- /* Get the current state. */ +- u.fenv = fegetenv_register (); +- +- /* Clear the relevant bits. */ +- u.l[1] = u.l[1] & ~((-(excepts >> (31 - FPSCR_VX) & 1) & FE_ALL_INVALID) +- | (excepts & FPSCR_STICKY_BITS)); +- +- /* Put the new state in effect. */ +- fesetenv_register (u.fenv); +- +- /* Success. */ +- return 0; +-} +- +-#include <shlib-compat.h> +-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) +-strong_alias (__feclearexcept, __old_feclearexcept) +-compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1); +-#endif +- +-versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2); +--- glibc-2.2.5/sysdeps/powerpc/fe_nomask.c~glibc-2.2.5-hhl-powerpc-fpu.patch ++++ glibc-2.2.5/sysdeps/powerpc/fe_nomask.c +-/* Procedure definition for FE_NOMASK_ENV. +- Copyright (C) 1997 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 <fenv.h> +-#include <errno.h> +- +-/* This is presently a stub, until it's decided how the kernels should +- support this. */ +- +-const fenv_t * +-__fe_nomask_env(void) +-{ +- __set_errno (ENOSYS); +- return FE_ENABLED_ENV; +-} +-stub_warning (__fe_nomask_env) +--- glibc-2.2.5/sysdeps/powerpc/fprrest.S~glibc-2.2.5-hhl-powerpc-fpu.patch ++++ glibc-2.2.5/sysdeps/powerpc/fprrest.S +-/* Copyright (C) 2000, 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. */ +- +-/* +- Floating Point Registers (FPRs) restore routine +-*/ +- +-#include <sysdep.h> +- +-ENTRY(_restfpr_all) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf14) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_14) +-C_TEXT(_restf14): +-C_TEXT(_restfpr_14): lfd fp14,-144(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf15) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_15) +-C_TEXT(_restf15): +-C_TEXT(_restfpr_15): lfd fp15,-136(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf16) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_16) +-C_TEXT(_restf16): +-C_TEXT(_restfpr_16): lfd fp16,-128(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf17) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_17) +-C_TEXT(_restf17): +-C_TEXT(_restfpr_17): lfd fp17,-120(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf18) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_18) +-C_TEXT(_restf18): +-C_TEXT(_restfpr_18): lfd fp18,-112(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf19) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_19) +-C_TEXT(_restf19): +-C_TEXT(_restfpr_19): lfd fp19,-104(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf20) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_20) +-C_TEXT(_restf20): +-C_TEXT(_restfpr_20): lfd fp20,-96(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf21) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_21) +-C_TEXT(_restf21): +-C_TEXT(_restfpr_21): lfd fp21,-88(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf22) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_22) +-C_TEXT(_restf22): +-C_TEXT(_restfpr_22): lfd fp22,-80(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf23) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_23) +-C_TEXT(_restf23): +-C_TEXT(_restfpr_23): lfd fp23,-72(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf24) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_24) +-C_TEXT(_restf24): +-C_TEXT(_restfpr_24): lfd fp24,-64(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf25) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_25) +-C_TEXT(_restf25): +-C_TEXT(_restfpr_25): lfd fp25,-56(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf26) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_26) +-C_TEXT(_restf26): +-C_TEXT(_restfpr_26): lfd fp26,-48(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf27) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_27) +-C_TEXT(_restf27): +-C_TEXT(_restfpr_27): lfd fp27,-40(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf28) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_28) +-C_TEXT(_restf28): +-C_TEXT(_restfpr_28): lfd fp28,-32(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf29) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_29) +-C_TEXT(_restf29): +-C_TEXT(_restfpr_29): lwz r0,8(r1) #get return address from frame +- lfd fp29,-24(r1) #restore f29 +- mtlr r0 #move return address to LR +- lfd fp30,-16(r1) #restore f30 +- lfd fp31,-8(r1) #restore f31 +- blr #return +--- glibc-2.2.5/sysdeps/powerpc/fprsave.S~glibc-2.2.5-hhl-powerpc-fpu.patch ++++ glibc-2.2.5/sysdeps/powerpc/fprsave.S +-/* Copyright (C) 2000, 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. */ +- +-/* +- Floating Point Registers (FPRs) save routine +-*/ +- +-#include <sysdep.h> +- +-ENTRY(_savefpr_all) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef14) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_14) +-C_TEXT(_savef14): +-C_TEXT(_savefpr_14): stfd fp14,-144(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef15) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_15) +-C_TEXT(_savef15): +-C_TEXT(_savefpr_15): stfd fp15,-136(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef16) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_16) +-C_TEXT(_savef16): +-C_TEXT(_savefpr_16): stfd fp16,-128(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef17) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_17) +-C_TEXT(_savef17): +-C_TEXT(_savefpr_17): stfd fp17,-120(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef18) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_18) +-C_TEXT(_savef18): +-C_TEXT(_savefpr_18): stfd fp18,-112(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef19) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_19) +-C_TEXT(_savef19): +-C_TEXT(_savefpr_19): stfd fp19,-104(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef20) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_20) +-C_TEXT(_savef20): +-C_TEXT(_savefpr_20): stfd fp20,-96(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef21) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_21) +-C_TEXT(_savef21): +-C_TEXT(_savefpr_21): stfd fp21,-88(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef22) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_22) +-C_TEXT(_savef22): +-C_TEXT(_savefpr_22): stfd fp22,-80(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef23) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_23) +-C_TEXT(_savef23): +-C_TEXT(_savefpr_23): stfd fp23,-72(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef24) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_24) +-C_TEXT(_savef24): +-C_TEXT(_savefpr_24): stfd fp24,-64(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef25) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_25) +-C_TEXT(_savef25): +-C_TEXT(_savefpr_25): stfd fp25,-56(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef26) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_26) +-C_TEXT(_savef26): +-C_TEXT(_savefpr_26): stfd fp26,-48(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef27) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_27) +-C_TEXT(_savef27): +-C_TEXT(_savefpr_27): stfd fp27,-40(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef28) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_28) +-C_TEXT(_savef28): +-C_TEXT(_savefpr_28): stfd fp28,-32(r1) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef29) +- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_29) +-C_TEXT(_savef29): +-C_TEXT(_savefpr_29): stfd fp29,-24(r1) #save f29 +- stfd fp30,-16(r1) #save f30 +- stfd fp31,-8(r1) #save f31 +- stw r0,8(r1) #save LR in callers frame +- blr #return +--- glibc-2.2.5/sysdeps/powerpc/fpu/Dist~glibc-2.2.5-hhl-powerpc-fpu.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/Dist 2004-09-03 19:00:38.000000000 -0500 +@@ -1,3 +1,6 @@ ++fe_nomask.c ++fprrest.S ++fprsave.S + fenv_const.c + fenv_libc.h + t_sqrt.c +--- glibc-2.2.5/sysdeps/powerpc/fpu/Makefile~glibc-2.2.5-hhl-powerpc-fpu.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/Makefile 2004-09-03 19:00:38.000000000 -0500 +@@ -1,3 +1,7 @@ + ifeq ($(subdir),math) + libm-support += fenv_const fe_nomask t_sqrt + endif ++ ++ifeq ($(subdir),misc) ++sysdep_routines += fprsave fprrest ++endif +--- /dev/null 2004-06-02 16:28:12.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/Versions 2004-09-03 19:00:38.000000000 -0500 +@@ -0,0 +1,6 @@ ++libm { ++ GLIBC_2.1 { ++ # symbols used in macros from sysdeps/powerpc/bits/fenv.h ++ __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env; ++ } ++} +--- /dev/null 2004-06-02 16:28:12.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/__longjmp.S 2004-09-03 19:00:38.000000000 -0500 +@@ -0,0 +1,74 @@ ++/* longjmp for PowerPC. ++ Copyright (C) 1995, 1996, 1997, 1999, 2000 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 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 ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include <sysdep.h> ++#define _ASM ++#define _SETJMP_H ++#include <bits/setjmp.h> ++#include <bp-sym.h> ++#include <bp-asm.h> ++ ++ENTRY (BP_SYM (__longjmp)) ++ CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE) ++ ++ lwz r1,(JB_GPR1*4)(r3) ++ lwz r2,(JB_GPR2*4)(r3) ++ lwz r0,(JB_LR*4)(r3) ++ lwz r14,((JB_GPRS+0)*4)(r3) ++ lfd fp14,((JB_FPRS+0*2)*4)(r3) ++ lwz r15,((JB_GPRS+1)*4)(r3) ++ lfd fp15,((JB_FPRS+1*2)*4)(r3) ++ lwz r16,((JB_GPRS+2)*4)(r3) ++ lfd fp16,((JB_FPRS+2*2)*4)(r3) ++ lwz r17,((JB_GPRS+3)*4)(r3) ++ lfd fp17,((JB_FPRS+3*2)*4)(r3) ++ lwz r18,((JB_GPRS+4)*4)(r3) ++ lfd fp18,((JB_FPRS+4*2)*4)(r3) ++ lwz r19,((JB_GPRS+5)*4)(r3) ++ lfd fp19,((JB_FPRS+5*2)*4)(r3) ++ lwz r20,((JB_GPRS+6)*4)(r3) ++ lfd fp20,((JB_FPRS+6*2)*4)(r3) ++ mtlr r0 ++ lwz r21,((JB_GPRS+7)*4)(r3) ++ lfd fp21,((JB_FPRS+7*2)*4)(r3) ++ lwz r22,((JB_GPRS+8)*4)(r3) ++ lfd fp22,((JB_FPRS+8*2)*4)(r3) ++ lwz r0,(JB_CR*4)(r3) ++ lwz r23,((JB_GPRS+9)*4)(r3) ++ lfd fp23,((JB_FPRS+9*2)*4)(r3) ++ lwz r24,((JB_GPRS+10)*4)(r3) ++ lfd fp24,((JB_FPRS+10*2)*4)(r3) ++ lwz r25,((JB_GPRS+11)*4)(r3) ++ lfd fp25,((JB_FPRS+11*2)*4)(r3) ++ mtcrf 0xFF,r0 ++ lwz r26,((JB_GPRS+12)*4)(r3) ++ lfd fp26,((JB_FPRS+12*2)*4)(r3) ++ lwz r27,((JB_GPRS+13)*4)(r3) ++ lfd fp27,((JB_FPRS+13*2)*4)(r3) ++ lwz r28,((JB_GPRS+14)*4)(r3) ++ lfd fp28,((JB_FPRS+14*2)*4)(r3) ++ lwz r29,((JB_GPRS+15)*4)(r3) ++ lfd fp29,((JB_FPRS+15*2)*4)(r3) ++ lwz r30,((JB_GPRS+16)*4)(r3) ++ lfd fp30,((JB_FPRS+16*2)*4)(r3) ++ lwz r31,((JB_GPRS+17)*4)(r3) ++ lfd fp31,((JB_FPRS+17*2)*4)(r3) ++ mr r3,r4 ++ blr ++END (BP_SYM (__longjmp)) +--- /dev/null 2004-06-02 16:28:12.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/bits/setjmp.h 2004-09-03 19:00:38.000000000 -0500 +@@ -0,0 +1,47 @@ ++/* Copyright (C) 1997, 1998, 2000 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 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 ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* Define the machine-dependent type `jmp_buf'. PowerPC version. */ ++ ++#ifndef _SETJMP_H ++# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead." ++#endif ++ ++/* The previous bits/setjmp.h had __jmp_buf defined as a structure. ++ We use an array of 'long int' instead, to make writing the ++ assembler easier. Naturally, user code should not depend on ++ either representation. */ ++ ++#if defined __USE_MISC || defined _ASM ++# define JB_GPR1 0 /* Also known as the stack pointer */ ++# define JB_GPR2 1 ++# define JB_LR 2 /* The address we will return to */ ++# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total */ ++# define JB_CR 21 /* Condition code registers. */ ++# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total */ ++# define JB_SIZE (58*4) ++#endif ++ ++#ifndef _ASM ++typedef long int __jmp_buf[58]; ++#endif ++ ++/* Test if longjmp to JMPBUF would unwind the frame ++ containing a local variable at ADDRESS. */ ++#define _JMPBUF_UNWINDS(jmpbuf, address) \ ++ ((void *) (address) < (void *) (jmpbuf)[JB_GPR1]) +--- /dev/null 2004-06-02 16:28:12.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/fclrexcpt.c 2004-09-03 19:00:38.000000000 -0500 +@@ -0,0 +1,48 @@ ++/* Clear given exceptions in current floating-point environment. ++ Copyright (C) 1997,99,2000,01 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 <fenv_libc.h> ++ ++#undef feclearexcept ++int ++__feclearexcept (int excepts) ++{ ++ fenv_union_t u; ++ ++ /* Get the current state. */ ++ u.fenv = fegetenv_register (); ++ ++ /* Clear the relevant bits. */ ++ u.l[1] = u.l[1] & ~((-(excepts >> (31 - FPSCR_VX) & 1) & FE_ALL_INVALID) ++ | (excepts & FPSCR_STICKY_BITS)); ++ ++ /* Put the new state in effect. */ ++ fesetenv_register (u.fenv); ++ ++ /* Success. */ ++ return 0; ++} ++ ++#include <shlib-compat.h> ++#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) ++strong_alias (__feclearexcept, __old_feclearexcept) ++compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1); ++#endif ++ ++versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2); +--- /dev/null 2004-06-02 16:28:12.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/fe_nomask.c 2004-09-03 19:00:38.000000000 -0500 +@@ -0,0 +1,32 @@ ++/* Procedure definition for FE_NOMASK_ENV. ++ Copyright (C) 1997 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 <fenv.h> ++#include <errno.h> ++ ++/* This is presently a stub, until it's decided how the kernels should ++ support this. */ ++ ++const fenv_t * ++__fe_nomask_env(void) ++{ ++ __set_errno (ENOSYS); ++ return FE_ENABLED_ENV; ++} ++stub_warning (__fe_nomask_env) +--- /dev/null 2004-06-02 16:28:12.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/fprrest.S 2004-09-03 19:00:38.000000000 -0500 +@@ -0,0 +1,94 @@ ++/* Copyright (C) 2000, 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. */ ++ ++/* ++ Floating Point Registers (FPRs) restore routine ++*/ ++ ++#include <sysdep.h> ++ ++ENTRY(_restfpr_all) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf14) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_14) ++C_TEXT(_restf14): ++C_TEXT(_restfpr_14): lfd fp14,-144(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf15) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_15) ++C_TEXT(_restf15): ++C_TEXT(_restfpr_15): lfd fp15,-136(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf16) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_16) ++C_TEXT(_restf16): ++C_TEXT(_restfpr_16): lfd fp16,-128(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf17) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_17) ++C_TEXT(_restf17): ++C_TEXT(_restfpr_17): lfd fp17,-120(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf18) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_18) ++C_TEXT(_restf18): ++C_TEXT(_restfpr_18): lfd fp18,-112(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf19) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_19) ++C_TEXT(_restf19): ++C_TEXT(_restfpr_19): lfd fp19,-104(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf20) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_20) ++C_TEXT(_restf20): ++C_TEXT(_restfpr_20): lfd fp20,-96(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf21) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_21) ++C_TEXT(_restf21): ++C_TEXT(_restfpr_21): lfd fp21,-88(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf22) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_22) ++C_TEXT(_restf22): ++C_TEXT(_restfpr_22): lfd fp22,-80(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf23) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_23) ++C_TEXT(_restf23): ++C_TEXT(_restfpr_23): lfd fp23,-72(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf24) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_24) ++C_TEXT(_restf24): ++C_TEXT(_restfpr_24): lfd fp24,-64(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf25) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_25) ++C_TEXT(_restf25): ++C_TEXT(_restfpr_25): lfd fp25,-56(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf26) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_26) ++C_TEXT(_restf26): ++C_TEXT(_restfpr_26): lfd fp26,-48(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf27) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_27) ++C_TEXT(_restf27): ++C_TEXT(_restfpr_27): lfd fp27,-40(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf28) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_28) ++C_TEXT(_restf28): ++C_TEXT(_restfpr_28): lfd fp28,-32(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf29) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_29) ++C_TEXT(_restf29): ++C_TEXT(_restfpr_29): lwz r0,8(r1) #get return address from frame ++ lfd fp29,-24(r1) #restore f29 ++ mtlr r0 #move return address to LR ++ lfd fp30,-16(r1) #restore f30 ++ lfd fp31,-8(r1) #restore f31 ++ blr #return +--- /dev/null 2004-06-02 16:28:12.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/fprsave.S 2004-09-03 19:00:38.000000000 -0500 +@@ -0,0 +1,93 @@ ++/* Copyright (C) 2000, 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. */ ++ ++/* ++ Floating Point Registers (FPRs) save routine ++*/ ++ ++#include <sysdep.h> ++ ++ENTRY(_savefpr_all) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef14) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_14) ++C_TEXT(_savef14): ++C_TEXT(_savefpr_14): stfd fp14,-144(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef15) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_15) ++C_TEXT(_savef15): ++C_TEXT(_savefpr_15): stfd fp15,-136(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef16) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_16) ++C_TEXT(_savef16): ++C_TEXT(_savefpr_16): stfd fp16,-128(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef17) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_17) ++C_TEXT(_savef17): ++C_TEXT(_savefpr_17): stfd fp17,-120(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef18) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_18) ++C_TEXT(_savef18): ++C_TEXT(_savefpr_18): stfd fp18,-112(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef19) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_19) ++C_TEXT(_savef19): ++C_TEXT(_savefpr_19): stfd fp19,-104(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef20) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_20) ++C_TEXT(_savef20): ++C_TEXT(_savefpr_20): stfd fp20,-96(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef21) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_21) ++C_TEXT(_savef21): ++C_TEXT(_savefpr_21): stfd fp21,-88(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef22) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_22) ++C_TEXT(_savef22): ++C_TEXT(_savefpr_22): stfd fp22,-80(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef23) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_23) ++C_TEXT(_savef23): ++C_TEXT(_savefpr_23): stfd fp23,-72(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef24) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_24) ++C_TEXT(_savef24): ++C_TEXT(_savefpr_24): stfd fp24,-64(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef25) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_25) ++C_TEXT(_savef25): ++C_TEXT(_savefpr_25): stfd fp25,-56(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef26) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_26) ++C_TEXT(_savef26): ++C_TEXT(_savefpr_26): stfd fp26,-48(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef27) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_27) ++C_TEXT(_savef27): ++C_TEXT(_savefpr_27): stfd fp27,-40(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef28) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_28) ++C_TEXT(_savef28): ++C_TEXT(_savefpr_28): stfd fp28,-32(r1) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef29) ++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_29) ++C_TEXT(_savef29): ++C_TEXT(_savefpr_29): stfd fp29,-24(r1) #save f29 ++ stfd fp30,-16(r1) #save f30 ++ stfd fp31,-8(r1) #save f31 ++ stw r0,8(r1) #save LR in callers frame ++ blr #return +--- /dev/null 2004-06-02 16:28:12.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/fpu_control.h 2004-09-03 19:00:38.000000000 -0500 +@@ -0,0 +1,67 @@ ++/* FPU control word definitions. PowerPC version. ++ Copyright (C) 1996, 1997, 1998 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 _FPU_CONTROL_H ++#define _FPU_CONTROL_H ++ ++/* rounding control */ ++#define _FPU_RC_NEAREST 0x00 /* RECOMMENDED */ ++#define _FPU_RC_DOWN 0x03 ++#define _FPU_RC_UP 0x02 ++#define _FPU_RC_ZERO 0x01 ++ ++#define _FPU_MASK_NI 0x04 /* non-ieee mode */ ++ ++/* masking of interrupts */ ++#define _FPU_MASK_ZM 0x10 /* zero divide */ ++#define _FPU_MASK_OM 0x40 /* overflow */ ++#define _FPU_MASK_UM 0x20 /* underflow */ ++#define _FPU_MASK_XM 0x08 /* inexact */ ++#define _FPU_MASK_IM 0x80 /* invalid operation */ ++ ++#define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */ ++ ++/* The fdlibm code requires no interrupts for exceptions. */ ++#define _FPU_DEFAULT 0x00000000 /* Default value. */ ++ ++/* IEEE: same as above, but (some) exceptions; ++ we leave the 'inexact' exception off. ++ */ ++#define _FPU_IEEE 0x000000f0 ++ ++/* Type of the control word. */ ++typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__))); ++ ++/* Macros for accessing the hardware control word. */ ++#define _FPU_GETCW(cw) ( { \ ++ union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \ ++ __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \ ++ (cw)=tmp.cw[1]; \ ++ tmp.cw[1]; } ) ++#define _FPU_SETCW(cw) { \ ++ union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \ ++ tmp.cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \ ++ tmp.cw[1] = cw; \ ++ __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \ ++} ++ ++/* Default control word set at startup. */ ++extern fpu_control_t __fpu_control; ++ ++#endif /* _FPU_CONTROL_H */ +--- /dev/null 2004-06-02 16:28:12.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/fpu/setjmp.S 2004-09-03 19:00:38.000000000 -0500 +@@ -0,0 +1,73 @@ ++/* setjmp for PowerPC. ++ Copyright (C) 1995, 1996, 1997, 1999, 2000 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 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 ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include <sysdep.h> ++#define _ASM ++#define _SETJMP_H ++#include <bits/setjmp.h> ++#include <bp-sym.h> ++#include <bp-asm.h> ++ ++ENTRY (BP_SYM (__sigsetjmp)) ++ CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE) ++ ++ stw r1,(JB_GPR1*4)(3) ++ mflr r0 ++ stw r2,(JB_GPR2*4)(3) ++ stw r14,((JB_GPRS+0)*4)(3) ++ stfd fp14,((JB_FPRS+0*2)*4)(3) ++ stw r0,(JB_LR*4)(3) ++ stw r15,((JB_GPRS+1)*4)(3) ++ stfd fp15,((JB_FPRS+1*2)*4)(3) ++ mfcr r0 ++ stw r16,((JB_GPRS+2)*4)(3) ++ stfd fp16,((JB_FPRS+2*2)*4)(3) ++ stw r0,(JB_CR*4)(3) ++ stw r17,((JB_GPRS+3)*4)(3) ++ stfd fp17,((JB_FPRS+3*2)*4)(3) ++ stw r18,((JB_GPRS+4)*4)(3) ++ stfd fp18,((JB_FPRS+4*2)*4)(3) ++ stw r19,((JB_GPRS+5)*4)(3) ++ stfd fp19,((JB_FPRS+5*2)*4)(3) ++ stw r20,((JB_GPRS+6)*4)(3) ++ stfd fp20,((JB_FPRS+6*2)*4)(3) ++ stw r21,((JB_GPRS+7)*4)(3) ++ stfd fp21,((JB_FPRS+7*2)*4)(3) ++ stw r22,((JB_GPRS+8)*4)(3) ++ stfd fp22,((JB_FPRS+8*2)*4)(3) ++ stw r23,((JB_GPRS+9)*4)(3) ++ stfd fp23,((JB_FPRS+9*2)*4)(3) ++ stw r24,((JB_GPRS+10)*4)(3) ++ stfd fp24,((JB_FPRS+10*2)*4)(3) ++ stw r25,((JB_GPRS+11)*4)(3) ++ stfd fp25,((JB_FPRS+11*2)*4)(3) ++ stw r26,((JB_GPRS+12)*4)(3) ++ stfd fp26,((JB_FPRS+12*2)*4)(3) ++ stw r27,((JB_GPRS+13)*4)(3) ++ stfd fp27,((JB_FPRS+13*2)*4)(3) ++ stw r28,((JB_GPRS+14)*4)(3) ++ stfd fp28,((JB_FPRS+14*2)*4)(3) ++ stw r29,((JB_GPRS+15)*4)(3) ++ stfd fp29,((JB_FPRS+15*2)*4)(3) ++ stw r30,((JB_GPRS+16)*4)(3) ++ stfd fp30,((JB_FPRS+16*2)*4)(3) ++ stw r31,((JB_GPRS+17)*4)(3) ++ stfd fp31,((JB_FPRS+17*2)*4)(3) ++ b JUMPTARGET (BP_SYM (__sigjmp_save)) ++END (BP_SYM (__sigsetjmp)) +--- glibc-2.2.5/sysdeps/powerpc/fpu_control.h~glibc-2.2.5-hhl-powerpc-fpu.patch ++++ glibc-2.2.5/sysdeps/powerpc/fpu_control.h +-/* FPU control word definitions. PowerPC version. +- Copyright (C) 1996, 1997, 1998 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 _FPU_CONTROL_H +-#define _FPU_CONTROL_H +- +-/* rounding control */ +-#define _FPU_RC_NEAREST 0x00 /* RECOMMENDED */ +-#define _FPU_RC_DOWN 0x03 +-#define _FPU_RC_UP 0x02 +-#define _FPU_RC_ZERO 0x01 +- +-#define _FPU_MASK_NI 0x04 /* non-ieee mode */ +- +-/* masking of interrupts */ +-#define _FPU_MASK_ZM 0x10 /* zero divide */ +-#define _FPU_MASK_OM 0x40 /* overflow */ +-#define _FPU_MASK_UM 0x20 /* underflow */ +-#define _FPU_MASK_XM 0x08 /* inexact */ +-#define _FPU_MASK_IM 0x80 /* invalid operation */ +- +-#define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */ +- +-/* The fdlibm code requires no interrupts for exceptions. */ +-#define _FPU_DEFAULT 0x00000000 /* Default value. */ +- +-/* IEEE: same as above, but (some) exceptions; +- we leave the 'inexact' exception off. +- */ +-#define _FPU_IEEE 0x000000f0 +- +-/* Type of the control word. */ +-typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__))); +- +-/* Macros for accessing the hardware control word. */ +-#define _FPU_GETCW(cw) ( { \ +- union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \ +- __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \ +- (cw)=tmp.cw[1]; \ +- tmp.cw[1]; } ) +-#define _FPU_SETCW(cw) { \ +- union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \ +- tmp.cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \ +- tmp.cw[1] = cw; \ +- __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \ +-} +- +-/* Default control word set at startup. */ +-extern fpu_control_t __fpu_control; +- +-#endif /* _FPU_CONTROL_H */ +--- glibc-2.2.5/sysdeps/powerpc/setjmp.S~glibc-2.2.5-hhl-powerpc-fpu.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/setjmp.S 2004-09-03 19:00:38.000000000 -0500 +@@ -24,6 +24,8 @@ + #include <bp-sym.h> + #include <bp-asm.h> + ++/* The FPU stores have been removed from this file - see fpu/setjmp.S */ ++ + ENTRY (BP_SYM (__sigsetjmp)) + CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE) + +@@ -31,43 +33,25 @@ + mflr r0 + stw r2,(JB_GPR2*4)(3) + stw r14,((JB_GPRS+0)*4)(3) +- stfd fp14,((JB_FPRS+0*2)*4)(3) + stw r0,(JB_LR*4)(3) + stw r15,((JB_GPRS+1)*4)(3) +- stfd fp15,((JB_FPRS+1*2)*4)(3) + mfcr r0 + stw r16,((JB_GPRS+2)*4)(3) +- stfd fp16,((JB_FPRS+2*2)*4)(3) + stw r0,(JB_CR*4)(3) + stw r17,((JB_GPRS+3)*4)(3) +- stfd fp17,((JB_FPRS+3*2)*4)(3) + stw r18,((JB_GPRS+4)*4)(3) +- stfd fp18,((JB_FPRS+4*2)*4)(3) + stw r19,((JB_GPRS+5)*4)(3) +- stfd fp19,((JB_FPRS+5*2)*4)(3) + stw r20,((JB_GPRS+6)*4)(3) +- stfd fp20,((JB_FPRS+6*2)*4)(3) + stw r21,((JB_GPRS+7)*4)(3) +- stfd fp21,((JB_FPRS+7*2)*4)(3) + stw r22,((JB_GPRS+8)*4)(3) +- stfd fp22,((JB_FPRS+8*2)*4)(3) + stw r23,((JB_GPRS+9)*4)(3) +- stfd fp23,((JB_FPRS+9*2)*4)(3) + stw r24,((JB_GPRS+10)*4)(3) +- stfd fp24,((JB_FPRS+10*2)*4)(3) + stw r25,((JB_GPRS+11)*4)(3) +- stfd fp25,((JB_FPRS+11*2)*4)(3) + stw r26,((JB_GPRS+12)*4)(3) +- stfd fp26,((JB_FPRS+12*2)*4)(3) + stw r27,((JB_GPRS+13)*4)(3) +- stfd fp27,((JB_FPRS+13*2)*4)(3) + stw r28,((JB_GPRS+14)*4)(3) +- stfd fp28,((JB_FPRS+14*2)*4)(3) + stw r29,((JB_GPRS+15)*4)(3) +- stfd fp29,((JB_FPRS+15*2)*4)(3) + stw r30,((JB_GPRS+16)*4)(3) +- stfd fp30,((JB_FPRS+16*2)*4)(3) + stw r31,((JB_GPRS+17)*4)(3) +- stfd fp31,((JB_FPRS+17*2)*4)(3) + b JUMPTARGET (BP_SYM (__sigjmp_save)) + END (BP_SYM (__sigsetjmp)) diff --git a/glibc/glibc-2.2.5/glibc-2.2.5-mips-build-gmon.patch b/glibc/glibc-2.2.5/glibc-2.2.5-mips-build-gmon.patch index e69de29bb2..9a9eb37c7d 100644 --- a/glibc/glibc-2.2.5/glibc-2.2.5-mips-build-gmon.patch +++ b/glibc/glibc-2.2.5/glibc-2.2.5-mips-build-gmon.patch @@ -0,0 +1,88 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/mips/machine-gmon.h~glibc-2.2.5-mips-build-gmon.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/mips/machine-gmon.h 2004-09-03 19:00:38.000000000 -0500 +@@ -17,42 +17,52 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +-#define _MCOUNT_DECL static void __mcount ++#define _MCOUNT_DECL(frompc,selfpc) \ ++static void __attribute_used__ __mcount (u_long frompc, u_long selfpc) + + /* Call __mcount with our the return PC for our caller, + and the return PC our caller will return to. */ + #ifdef __PIC__ + #define CPLOAD ".cpload $25;" ++#define CPRESTORE ".cprestore 44\n\t" + #else + #define CPLOAD ++#define CPRESTORE + #endif + + #define MCOUNT asm(\ +- ".globl _mcount;" \ +- ".align 2;" \ +- ".type _mcount,@function;" \ +- "_mcount:;" \ +- ".set noreorder;" \ +- ".set noat;" \ ++ ".globl _mcount;\n\t" \ ++ ".align 2;\n\t" \ ++ ".type _mcount,@function;\n\t" \ ++ ".ent _mcount\n\t" \ ++ "_mcount:\n\t" \ ++ ".frame $sp,44,$31\n\t" \ ++ ".set noreorder;\n\t" \ ++ ".set noat;\n\t" \ + CPLOAD \ +- "sw $4,8($29);" \ +- "sw $5,12($29);" \ +- "sw $6,16($29);" \ +- "sw $7,20($29);" \ +- "sw $1,0($29);" \ +- "sw $31,4($29);" \ +- "move $5,$31;" \ +- "move $4,$1;" \ +- "jal __mcount;" \ +- "nop;" \ +- "lw $4,8($29);" \ +- "lw $5,12($29);" \ +- "lw $6,16($29);" \ +- "lw $7,20($29);" \ +- "lw $31,4($29);" \ +- "lw $1,0($29);" \ +- "addu $29,$29,8;" \ +- "j $31;" \ +- "move $31,$1;" \ +- ".set reorder;" \ +- ".set at"); ++ "subu $29,$29,48;\n\t" \ ++ CPRESTORE \ ++ "sw $4,24($29);\n\t" \ ++ "sw $5,28($29);\n\t" \ ++ "sw $6,32($29);\n\t" \ ++ "sw $7,36($29);\n\t" \ ++ "sw $2,40($29);\n\t" \ ++ "sw $1,16($29);\n\t" \ ++ "sw $31,20($29);\n\t" \ ++ "move $5,$31;\n\t" \ ++ "move $4,$1;\n\t" \ ++ "jal __mcount;\n\t" \ ++ "nop;\n\t" \ ++ "lw $4,24($29);\n\t" \ ++ "lw $5,28($29);\n\t" \ ++ "lw $6,32($29);\n\t" \ ++ "lw $7,36($29);\n\t" \ ++ "lw $2,40($29);\n\t" \ ++ "lw $31,20($29);\n\t" \ ++ "lw $1,16($29);\n\t" \ ++ "addu $29,$29,56;\n\t" \ ++ "j $31;\n\t" \ ++ "move $31,$1;\n\t" \ ++ ".set reorder;\n\t" \ ++ ".set at\n\t" \ ++ ".end _mcount"); diff --git a/glibc/glibc-2.2.5/glibc-2.2.5-mips-clone-local-label.patch b/glibc/glibc-2.2.5/glibc-2.2.5-mips-clone-local-label.patch index e69de29bb2..18d64201fa 100644 --- a/glibc/glibc-2.2.5/glibc-2.2.5-mips-clone-local-label.patch +++ b/glibc/glibc-2.2.5/glibc-2.2.5-mips-clone-local-label.patch @@ -0,0 +1,24 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S~glibc-2.2.5-mips-clone-local-label.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S 2004-09-03 19:00:38.000000000 -0500 +@@ -63,7 +63,7 @@ + syscall + + bnez a3,error +- beqz v0,__thread_start ++ beqz v0,.Lthread_start + + /* Successful return from the parent */ + addiu sp,32 +@@ -85,6 +85,7 @@ + debug info. */ + + ENTRY(__thread_start) ++.Lthread_start: + /* cp is already loaded. */ + .cprestore 16 + /* The stackframe has been created on entry of clone(). */ diff --git a/glibc/glibc-2.2.5/glibc-2.2.5-ppc405erratum77.patch b/glibc/glibc-2.2.5/glibc-2.2.5-ppc405erratum77.patch index e69de29bb2..7a27bacea1 100644 --- a/glibc/glibc-2.2.5/glibc-2.2.5-ppc405erratum77.patch +++ b/glibc/glibc-2.2.5/glibc-2.2.5-ppc405erratum77.patch @@ -0,0 +1,65 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/powerpc/atomicity.h~glibc-2.2.5-ppc405erratum77.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/powerpc/atomicity.h 2004-09-03 19:00:38.000000000 -0500 +@@ -28,6 +28,17 @@ + # define __ATOMICITY_INLINE inline + #endif + ++#ifdef __PPC405__ ++/* workaround for PPC405 erratum #77 - Mark Hatle, dank. References: ++ http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/89DED00DEBFF54BF87256A8000491BA2/$file/405CR_C_errata_1_2.pdf ++ http://ppc.bkbits.net:8080/linuxppc_2_4_devel/cset@1.489 ++ http://www.kegel.com/xgcc3/ppc405erratum77.html ++ FIXME: using dbct instead of sync would be faster */ ++#define __LIBC_PPC405_ERR77_SYNC "sync \n\t" ++#else ++#define __LIBC_PPC405_ERR77_SYNC ++#endif ++ + static __ATOMICITY_INLINE int + __attribute__ ((unused)) + exchange_and_add (volatile uint32_t *mem, int val) +@@ -36,6 +47,7 @@ + __asm__ ("\n\ + 0: lwarx %0,0,%2 \n\ + add%I3 %1,%0,%3 \n\ ++ " __LIBC_PPC405_ERR77_SYNC "\n\ + stwcx. %1,0,%2 \n\ + bne- 0b \n\ + " : "=&b"(result), "=&r"(tmp) : "r" (mem), "Ir"(val) : "cr0", "memory"); +@@ -50,6 +62,7 @@ + __asm__ ("\n\ + 0: lwarx %0,0,%1 \n\ + add%I2 %0,%0,%2 \n\ ++ " __LIBC_PPC405_ERR77_SYNC "\n\ + stwcx. %0,0,%1 \n\ + bne- 0b \n\ + " : "=&b"(tmp) : "r" (mem), "Ir"(val) : "cr0", "memory"); +@@ -65,6 +78,7 @@ + sub%I2c. %0,%0,%2 \n\ + cntlzw %0,%0 \n\ + bne- 1f \n\ ++ " __LIBC_PPC405_ERR77_SYNC "\n\ + stwcx. %3,0,%1 \n\ + bne- 0b \n\ + 1: \n\ +@@ -79,6 +93,7 @@ + long int result; + __asm__ ("\n\ + 0: lwarx %0,0,%1 \n\ ++ " __LIBC_PPC405_ERR77_SYNC "\n\ + stwcx. %2,0,%1 \n\ + bne- 0b \n\ + " : "=&r"(result) : "r"(p), "r"(newval) : "cr0", "memory"); +@@ -94,6 +109,7 @@ + 0: lwarx %0,0,%1 \n\ + cmpwi %0,0 \n\ + bne- 1f \n\ ++ " __LIBC_PPC405_ERR77_SYNC "\n\ + stwcx. %2,0,%1 \n\ + bne- 0b \n\ + 1: \n\ diff --git a/glibc/glibc-2.2.5/glibc-2.3.2-initfini.patch b/glibc/glibc-2.2.5/glibc-2.3.2-initfini.patch index e69de29bb2..8bfbcb173a 100644 --- a/glibc/glibc-2.2.5/glibc-2.3.2-initfini.patch +++ b/glibc/glibc-2.2.5/glibc-2.3.2-initfini.patch @@ -0,0 +1,12 @@ +diff -urNd glibc-2.3.2-ct25/csu/Makefile glibc-2.3.2/csu/Makefile +--- glibc-2.3.2-ct25/csu/Makefile 2004-06-25 13:47:54.000000000 +0200 ++++ glibc-2.3.2/csu/Makefile 2004-06-25 13:54:33.000000000 +0200 +@@ -99,7 +99,7 @@ + $(objpfx)crt%.o: $(objpfx)crt%.S $(objpfx)defs.h + $(compile.S) -g0 $(ASFLAGS-.os) -o $@ + +-CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) ++CFLAGS-initfini.s = -O1 -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) + + vpath initfini.c $(full_config_sysdirs) + diff --git a/glibc/glibc-2.2.5/glibc-drow-sh.patch b/glibc/glibc-2.2.5/glibc-drow-sh.patch index e69de29bb2..c0e4bbd58c 100644 --- a/glibc/glibc-2.2.5/glibc-drow-sh.patch +++ b/glibc/glibc-2.2.5/glibc-drow-sh.patch @@ -0,0 +1,30 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/unix/sysv/linux/kernel-features.h~glibc-drow-sh.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/unix/sysv/linux/kernel-features.h 2004-09-03 19:00:38.000000000 -0500 +@@ -134,11 +134,20 @@ + + /* The changed st_ino field appeared in 2.4.0-test6. But we cannot + distinguish this version from other 2.4.0 releases. Therefore play +- save and assume it available is for 2.4.1 and up. */ +-#if __LINUX_KERNEL_VERSION >= 132097 ++ save and assume it available is for 2.4.1 and up. However, SH is lame, ++ and still does not have a 64-bit inode field. */ ++#if __LINUX_KERNEL_VERSION >= 132097 \ ++ && !defined __sh__ + # define __ASSUME_ST_INO_64_BIT 1 + #endif + ++/* SH kernels got stat64, mmap2, and truncate64 during 2.4.0-test. */ ++#if __LINUX_KERNEL_VERSION >= 132096 && defined __sh__ ++# define __ASSUME_TRUNCATE64_SYSCALL 1 ++# define __ASSUME_MMAP2_SYSCALL 1 ++# define __ASSUME_STAT64_SYSCALL 1 ++#endif ++ + /* To support locking of large files a new fcntl() syscall was introduced + in 2.4.0-test7. We test for 2.4.1 for the earliest version we know + the syscall is available. */ diff --git a/glibc/glibc-2.2.5/glibc-linuxthreads-2.3.2-initfini.patch b/glibc/glibc-2.2.5/glibc-linuxthreads-2.3.2-initfini.patch index e69de29bb2..4556e858d2 100644 --- a/glibc/glibc-2.2.5/glibc-linuxthreads-2.3.2-initfini.patch +++ b/glibc/glibc-2.2.5/glibc-linuxthreads-2.3.2-initfini.patch @@ -0,0 +1,12 @@ +diff -urNd glibc-2.3.2-ct25/linuxthreads/Makefile glibc-2.3.2/linuxthreads/Makefile +--- glibc-2.3.2-ct25/linuxthreads/Makefile 2004-06-25 13:48:03.000000000 +0200 ++++ glibc-2.3.2/linuxthreads/Makefile 2004-06-25 13:53:02.000000000 +0200 +@@ -81,7 +81,7 @@ + extra-objs += crti.o crtn.o + omit-deps += crti crtn + +-CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) ++CFLAGS-pt-initfini.s = -O1 -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) + endif + + librt-tests = ex10 ex11 diff --git a/glibc/glibc-2.2.5/glibc-test-lowram.patch b/glibc/glibc-2.2.5/glibc-test-lowram.patch index e69de29bb2..658d14bac6 100644 --- a/glibc/glibc-2.2.5/glibc-test-lowram.patch +++ b/glibc/glibc-2.2.5/glibc-test-lowram.patch @@ -0,0 +1,19 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/malloc/tst-calloc.c~glibc-test-lowram.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/malloc/tst-calloc.c 2004-09-03 19:00:38.000000000 -0500 +@@ -24,9 +24,8 @@ + #include <stdio.h> + + +-/* Number of samples per size. */ +-#define N 50000 +- ++/* Number of samples per size. This is also the maximum memory consumption in kilobytes. */ ++#define N 8000 + + static void + fixed_test (int size) diff --git a/glibc/glibc-2.2.5/initfini-alpha.patch b/glibc/glibc-2.2.5/initfini-alpha.patch index e69de29bb2..94dc2aba25 100644 --- a/glibc/glibc-2.2.5/initfini-alpha.patch +++ b/glibc/glibc-2.2.5/initfini-alpha.patch @@ -0,0 +1,128 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/alpha/elf/initfini.c~initfini-alpha.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/alpha/elf/initfini.c 2004-09-03 19:00:38.000000000 -0500 +@@ -37,62 +37,62 @@ + files, all of which may have different GP values. So we must reload + the GP value from crti.o in crtn.o. */ + +-__asm__ (" +- +-#include \"defs.h\" +- +-/*@HEADER_ENDS*/ +- +-/*@_init_PROLOG_BEGINS*/ +- .section .init, \"ax\", @progbits +- .globl _init +- .ent _init +-_init: +- ldgp $29, 0($27) +- subq $30, 16, $30 +- lda $27, __gmon_start__ +- stq $26, 0($30) +- stq $29, 8($30) +- .prologue 1 +- beq $27, 1f +- jsr $26, ($27), __gmon_start__ +- ldq $29, 8($30) +-1: +- .align 3 +- .end _init +- .size _init, 0 +-/*@_init_PROLOG_ENDS*/ +- +-/*@_init_EPILOG_BEGINS*/ +- .section .init, \"ax\", @progbits +- ldq $26, 0($30) +- ldq $29, 8($30) +- addq $30, 16, $30 +- ret +-/*@_init_EPILOG_ENDS*/ +- +-/*@_fini_PROLOG_BEGINS*/ +- .section .fini, \"ax\", @progbits +- .globl _fini +- .ent _fini +-_fini: +- ldgp $29, 0($27) +- subq $30, 16, $30 +- stq $26, 0($30) +- stq $29, 8($30) +- .prologue 1 +- .align 3 +- .end _fini +- .size _fini, 0 +-/*@_fini_PROLOG_ENDS*/ +- +-/*@_fini_EPILOG_BEGINS*/ +- .section .fini, \"ax\", @progbits +- ldq $26, 0($30) +- ldq $29, 8($30) +- addq $30, 16, $30 +- ret +-/*@_fini_EPILOG_ENDS*/ +- +-/*@TRAILER_BEGINS*/ ++__asm__ ("\n\ ++\n\ ++#include \"defs.h\"\n\ ++\n\ ++/*@HEADER_ENDS*/\n\ ++\n\ ++/*@_init_PROLOG_BEGINS*/\n\ ++ .section .init, \"ax\", @progbits\n\ ++ .globl _init\n\ ++ .ent _init\n\ ++_init:\n\ ++ ldgp $29, 0($27)\n\ ++ subq $30, 16, $30\n\ ++ lda $27, __gmon_start__\n\ ++ stq $26, 0($30)\n\ ++ stq $29, 8($30)\n\ ++ .prologue 1\n\ ++ beq $27, 1f\n\ ++ jsr $26, ($27), __gmon_start__\n\ ++ ldq $29, 8($30)\n\ ++1:\n\ ++ .align 3\n\ ++ .end _init\n\ ++ .size _init, 0\n\ ++/*@_init_PROLOG_ENDS*/\n\ ++\n\ ++/*@_init_EPILOG_BEGINS*/\n\ ++ .section .init, \"ax\", @progbits\n\ ++ ldq $26, 0($30)\n\ ++ ldq $29, 8($30)\n\ ++ addq $30, 16, $30\n\ ++ ret\n\ ++/*@_init_EPILOG_ENDS*/\n\ ++\n\ ++/*@_fini_PROLOG_BEGINS*/\n\ ++ .section .fini, \"ax\", @progbits\n\ ++ .globl _fini\n\ ++ .ent _fini\n\ ++_fini:\n\ ++ ldgp $29, 0($27)\n\ ++ subq $30, 16, $30\n\ ++ stq $26, 0($30)\n\ ++ stq $29, 8($30)\n\ ++ .prologue 1\n\ ++ .align 3\n\ ++ .end _fini\n\ ++ .size _fini, 0\n\ ++/*@_fini_PROLOG_ENDS*/\n\ ++\n\ ++/*@_fini_EPILOG_BEGINS*/\n\ ++ .section .fini, \"ax\", @progbits\n\ ++ ldq $26, 0($30)\n\ ++ ldq $29, 8($30)\n\ ++ addq $30, 16, $30\n\ ++ ret\n\ ++/*@_fini_EPILOG_ENDS*/\n\ ++\n\ ++/*@TRAILER_BEGINS*/\n\ + "); diff --git a/glibc/glibc-2.2.5/initfini-flags.patch b/glibc/glibc-2.2.5/initfini-flags.patch index e69de29bb2..1c9bd2bcf2 100644 --- a/glibc/glibc-2.2.5/initfini-flags.patch +++ b/glibc/glibc-2.2.5/initfini-flags.patch @@ -0,0 +1,16 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- glibc-2.2.5/csu/Makefile~glibc-2.3.2-initfini ++++ glibc-2.2.5/csu/Makefile +@@ -92,7 +92,7 @@ + $(objpfx)crt%.o: $(objpfx)crt%.S $(objpfx)defs.h + $(compile.S) -g0 $(ASFLAGS-.os) -o $@ + +-CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions ++CFLAGS-initfini.s = -O1 -g0 -fPIC -fno-inline-functions + + vpath initfini.c $(full_config_sysdirs) + diff --git a/glibc/glibc-2.2.5/initfini-sh.patch b/glibc/glibc-2.2.5/initfini-sh.patch index e69de29bb2..2566cd933a 100644 --- a/glibc/glibc-2.2.5/initfini-sh.patch +++ b/glibc/glibc-2.2.5/initfini-sh.patch @@ -0,0 +1,248 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/sh/elf/initfini.c~initfini-sh.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/sh/elf/initfini.c 2004-09-03 19:00:39.000000000 -0500 +@@ -27,122 +27,122 @@ + * crtn.s puts the corresponding function epilogues + in the .init and .fini sections. */ + +-__asm__ (" +- +-#include \"defs.h\" +-#define SHARED +- +-/*@HEADER_ENDS*/ +- +-/*@TESTS_BEGIN*/ +- +-/*@TESTS_END*/ +- +-/*@_init_PROLOG_BEGINS*/ +- .section .init +- .align 5 +- .global _init +- .type _init,@function +-_init: +- mov.l r12,@-r15 +- mov.l r14,@-r15 +- sts.l pr,@-r15 +-#ifdef SHARED +- mova .L22,r0 +- mov.l .L22,r12 +- add r0,r12 +- mova .L23,r0 +- mov.l .L23,r1 +- add r0,r1 +-#else +- mov.l .L23,r1 +-#endif +- jsr @r1 +- mov r15,r14 +- bra 1f +- nop +- .align 2 +-#ifdef SHARED +-.L22: +- .long _GLOBAL_OFFSET_TABLE_ +-.L23: +- .long __gmon_start__@PLT +-#else +-.L23: +- .long __gmon_start__ +-#endif +- .data +- .global __fpscr_values +-__fpscr_values: +- .long 0 +- .long 0x80000 +- .previous +-1: +- ALIGN +- END_INIT +- +- +-/*@_init_PROLOG_ENDS*/ +- +-/*@_init_EPILOG_BEGINS*/ +- .section .init +- mov r14,r15 +- lds.l @r15+,pr +- mov.l @r15+,r14 +- rts +- mov.l @r15+,r12 +- END_INIT +- .section .text +- .align 5 +- .weak __gmon_start__ +- .type __gmon_start__,@function +-__gmon_start__: +- mov.l r14,@-r15 +- mov r15,r14 +- mov r14,r15 +- rts +- mov.l @r15+,r14 +- +-/*@_init_EPILOG_ENDS*/ +- +-/*@_fini_PROLOG_BEGINS*/ +- .section .fini +- .align 5 +- .global _fini +- .type _fini,@function +-_fini: +- mov.l r12,@-r15 +- mov.l r14,@-r15 +- sts.l pr,@-r15 +-#ifdef SHARED +- mova .L27,r0 +- mov.l .L27,r12 +- add r0,r12 +-#endif +- mov r15,r14 +- ALIGN +- END_FINI +-#ifdef SHARED +- bra 1f +- nop +- .align 2 +-.L27: +- .long _GLOBAL_OFFSET_TABLE_ +-#endif +-1: +-/*@_fini_PROLOG_ENDS*/ +- +-/*@_fini_EPILOG_BEGINS*/ +- .section .fini +- mov r14,r15 +- lds.l @r15+,pr +- mov.l @r15+,r14 +- rts +- mov.l @r15+,r12 +- +- END_FINI +- +-/*@_fini_EPILOG_ENDS*/ +- +-/*@TRAILER_BEGINS*/ ++__asm__ ("\n\ ++\n\ ++#include \"defs.h\"\n\ ++#define SHARED\n\ ++\n\ ++/*@HEADER_ENDS*/\n\ ++\n\ ++/*@TESTS_BEGIN*/\n\ ++\n\ ++/*@TESTS_END*/\n\ ++\n\ ++/*@_init_PROLOG_BEGINS*/\n\ ++ .section .init\n\ ++ .align 5\n\ ++ .global _init\n\ ++ .type _init,@function\n\ ++_init:\n\ ++ mov.l r12,@-r15\n\ ++ mov.l r14,@-r15\n\ ++ sts.l pr,@-r15\n\ ++#ifdef SHARED\n\ ++ mova .L22,r0\n\ ++ mov.l .L22,r12\n\ ++ add r0,r12\n\ ++ mova .L23,r0\n\ ++ mov.l .L23,r1\n\ ++ add r0,r1\n\ ++#else\n\ ++ mov.l .L23,r1\n\ ++#endif\n\ ++ jsr @r1\n\ ++ mov r15,r14\n\ ++ bra 1f\n\ ++ nop\n\ ++ .align 2\n\ ++#ifdef SHARED\n\ ++.L22:\n\ ++ .long _GLOBAL_OFFSET_TABLE_\n\ ++.L23:\n\ ++ .long __gmon_start__@PLT\n\ ++#else\n\ ++.L23:\n\ ++ .long __gmon_start__\n\ ++#endif\n\ ++ .data\n\ ++ .global __fpscr_values\n\ ++__fpscr_values:\n\ ++ .long 0\n\ ++ .long 0x80000\n\ ++ .previous\n\ ++1:\n\ ++ ALIGN\n\ ++ END_INIT\n\ ++\n\ ++ \n\ ++/*@_init_PROLOG_ENDS*/\n\ ++\n\ ++/*@_init_EPILOG_BEGINS*/\n\ ++ .section .init\n\ ++ mov r14,r15\n\ ++ lds.l @r15+,pr\n\ ++ mov.l @r15+,r14\n\ ++ rts \n\ ++ mov.l @r15+,r12\n\ ++ END_INIT\n\ ++ .section .text\n\ ++ .align 5\n\ ++ .weak __gmon_start__\n\ ++ .type __gmon_start__,@function\n\ ++__gmon_start__:\n\ ++ mov.l r14,@-r15\n\ ++ mov r15,r14\n\ ++ mov r14,r15\n\ ++ rts \n\ ++ mov.l @r15+,r14\n\ ++ \n\ ++/*@_init_EPILOG_ENDS*/\n\ ++\n\ ++/*@_fini_PROLOG_BEGINS*/\n\ ++ .section .fini\n\ ++ .align 5\n\ ++ .global _fini\n\ ++ .type _fini,@function\n\ ++_fini:\n\ ++ mov.l r12,@-r15\n\ ++ mov.l r14,@-r15\n\ ++ sts.l pr,@-r15\n\ ++#ifdef SHARED\n\ ++ mova .L27,r0\n\ ++ mov.l .L27,r12\n\ ++ add r0,r12\n\ ++#endif\n\ ++ mov r15,r14\n\ ++ ALIGN\n\ ++ END_FINI\n\ ++#ifdef SHARED\n\ ++ bra 1f\n\ ++ nop\n\ ++ .align 2\n\ ++.L27:\n\ ++ .long _GLOBAL_OFFSET_TABLE_\n\ ++#endif\n\ ++1:\n\ ++/*@_fini_PROLOG_ENDS*/\n\ ++\n\ ++/*@_fini_EPILOG_BEGINS*/\n\ ++ .section .fini\n\ ++ mov r14,r15\n\ ++ lds.l @r15+,pr\n\ ++ mov.l @r15+,r14\n\ ++ rts \n\ ++ mov.l @r15+,r12\n\ ++\n\ ++ END_FINI\n\ ++ \n\ ++/*@_fini_EPILOG_ENDS*/\n\ ++\n\ ++/*@TRAILER_BEGINS*/\n\ + "); diff --git a/glibc/glibc-2.2.5/ldd.patch b/glibc/glibc-2.2.5/ldd.patch index e69de29bb2..01719dbe08 100644 --- a/glibc/glibc-2.2.5/ldd.patch +++ b/glibc/glibc-2.2.5/ldd.patch @@ -0,0 +1,38 @@ +--- elf/ldd.bash.in~ Tue Apr 3 21:43:31 2001 ++++ elf/ldd.bash.in Tue Apr 3 21:54:15 2001 +@@ -32,6 +32,7 @@ + warn= + bind_now= + verbose= ++filename_magic_regex="((^|/)lib|.so$)" + + while test $# -gt 0; do + case "$1" in +@@ -123,8 +124,11 @@ + echo "ldd: ${file}:" $"No such file or directory" >&2 + result=1 + elif test -r "$file"; then +- test -x "$file" || echo 'ldd:' $"\ +-warning: you do not have execution permission for" "\`$file'" >&2 ++ if test ! -x "$file" && eval echo "$file" \ ++ | egrep -v "$filename_magic_regex" > /dev/null; then ++ echo 'ldd:' $"warning: you do not have execution permission for"\ ++ "\`$file'" >&2 ++ fi + RTLD= + for rtld in ${RTLDLIST}; do + if test -x $rtld; then +@@ -143,7 +147,12 @@ + fi + case $ret in + 0) +- eval $add_env '"$file"' || result=1 ++ if [ ! -x "$file" ] && eval file -L "$file" 2>/dev/null \ ++ | sed 10q | egrep "$file_magic_regex" > /dev/null; then ++ eval $add_env ${RTLD} '"$file"' || result=1 ++ else ++ eval $add_env '"$file"' || result=1 ++ fi + ;; + 1) + # This can be a non-ELF binary or no binary at all. diff --git a/glibc/glibc-2.2.5/linuxthreads-2.2.5-ppc405erratum77.patch b/glibc/glibc-2.2.5/linuxthreads-2.2.5-ppc405erratum77.patch index e69de29bb2..48127a1281 100644 --- a/glibc/glibc-2.2.5/linuxthreads-2.2.5-ppc405erratum77.patch +++ b/glibc/glibc-2.2.5/linuxthreads-2.2.5-ppc405erratum77.patch @@ -0,0 +1,34 @@ +# see http://bugs.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&pr=4155 +# and http://www.kegel.com/xgcc3/ppc405erratum77.html +# See also matching patch for glibc + +diff -aur glibc-2.2.5.orig/linuxthreads/sysdeps/powerpc/pt-machine.h glibc-2.2.5/linuxthreads/sysdeps/powerpc/pt-machine.h +--- glibc-2.2.5.orig/linuxthreads/sysdeps/powerpc/pt-machine.h Thu May 17 12:47:46 2001 ++++ glibc-2.2.5/linuxthreads/sysdeps/powerpc/pt-machine.h Tue Jul 23 05:38:24 2002 +@@ -41,6 +41,17 @@ + #define HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS + #define IMPLEMENT_TAS_WITH_CAS + ++#ifdef __PPC405__ ++/* workaround for PPC405 erratum #77 - Mark Hatle, dank. References: ++ http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/89DED00DEBFF54BF87256A8000491BA2/$file/405CR_C_errata_1_2.pdf ++ http://ppc.bkbits.net:8080/linuxppc_2_4_devel/cset@1.489 ++ http://www.kegel.com/xgcc3/ppc405erratum77.html ++ FIXME: using dbct instead of sync would be faster */ ++#define __LINUXTHREADS_PPC405_ERR77_SYNC "sync \n\t" ++#else ++#define __LINUXTHREADS_PPC405_ERR77_SYNC ++#endif ++ + PT_EI int + __compare_and_swap (long int *p, long int oldval, long int newval) + { +@@ -50,6 +61,7 @@ + "0: lwarx %0,0,%1 ;" + " xor. %0,%3,%0;" + " bne 1f;" ++ __LINUXTHREADS_PPC405_ERR77_SYNC + " stwcx. %2,0,%1;" + " bne- 0b;" + "1: " + diff --git a/glibc/glibc-2.2.5/longjmp-sparc.patch b/glibc/glibc-2.2.5/longjmp-sparc.patch index e69de29bb2..8bce091779 100644 --- a/glibc/glibc-2.2.5/longjmp-sparc.patch +++ b/glibc/glibc-2.2.5/longjmp-sparc.patch @@ -0,0 +1,16 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h~longjmp-sparc.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h 2004-09-03 19:00:39.000000000 -0500 +@@ -48,7 +48,7 @@ + #define END(name) \ + .size name, . - name + +-#define LOC(name) . ## L ## name ++#define LOC(name) .##L##name + + #ifdef PIC + #define SYSCALL_ERROR_HANDLER \ diff --git a/glibc/glibc-2.2.5/pt-initfini-alpha.patch b/glibc/glibc-2.2.5/pt-initfini-alpha.patch index e69de29bb2..22a1cfed17 100644 --- a/glibc/glibc-2.2.5/pt-initfini-alpha.patch +++ b/glibc/glibc-2.2.5/pt-initfini-alpha.patch @@ -0,0 +1,119 @@ +--- glibc-2.2.5/linuxthreads/sysdeps/alpha/elf/pt-initfini.c.old Fri Jun 6 22:02:08 2003 ++++ glibc-2.2.5/linuxthreads/sysdeps/alpha/elf/pt-initfini.c Fri Jun 6 22:02:33 2003 +@@ -37,60 +37,60 @@ + files, all of which may have different GP values. So we must reload + the GP value from crti.o in crtn.o. */ + +-__asm__ (" +- +-#include \"defs.h\" +- +-/*@HEADER_ENDS*/ +- +-/*@_init_PROLOG_BEGINS*/ +- .section .init, \"ax\", @progbits +- .globl _init +- .ent _init +-_init: +- ldgp $29, 0($27) +- subq $30, 16, $30 +- lda $27, __pthread_initialize_minimal +- stq $26, 0($30) +- stq $29, 8($30) +- .prologue 1 +- jsr $26, ($27), __pthread_initialize_minimal +- ldq $29, 8($30) +- .align 3 +- .end _init +- .size _init, 0 +-/*@_init_PROLOG_ENDS*/ +- +-/*@_init_EPILOG_BEGINS*/ +- .section .init, \"ax\", @progbits +- ldq $26, 0($30) +- ldq $29, 8($30) +- addq $30, 16, $30 +- ret +-/*@_init_EPILOG_ENDS*/ +- +-/*@_fini_PROLOG_BEGINS*/ +- .section .fini, \"ax\", @progbits +- .globl _fini +- .ent _fini +-_fini: +- ldgp $29, 0($27) +- subq $30, 16, $30 +- stq $26, 0($30) +- stq $29, 8($30) +- .prologue 1 +- .align 3 +- .end _fini +- .size _fini, 0 +-/*@_fini_PROLOG_ENDS*/ +- +-/*@_fini_EPILOG_BEGINS*/ +- .section .fini, \"ax\", @progbits +- ldq $26, 0($30) +- ldq $29, 8($30) +- addq $30, 16, $30 +- ret +-/*@_fini_EPILOG_ENDS*/ +- +-/*@TRAILER_BEGINS*/ ++__asm__ ("\n\ ++\n\ ++#include \"defs.h\"\n\ ++\n\ ++/*@HEADER_ENDS*/\n\ ++\n\ ++/*@_init_PROLOG_BEGINS*/\n\ ++ .section .init, \"ax\", @progbits\n\ ++ .globl _init\n\ ++ .ent _init\n\ ++_init:\n\ ++ ldgp $29, 0($27)\n\ ++ subq $30, 16, $30\n\ ++ lda $27, __pthread_initialize_minimal\n\ ++ stq $26, 0($30)\n\ ++ stq $29, 8($30)\n\ ++ .prologue 1\n\ ++ jsr $26, ($27), __pthread_initialize_minimal\n\ ++ ldq $29, 8($30)\n\ ++ .align 3\n\ ++ .end _init\n\ ++ .size _init, 0\n\ ++/*@_init_PROLOG_ENDS*/\n\ ++\n\ ++/*@_init_EPILOG_BEGINS*/\n\ ++ .section .init, \"ax\", @progbits\n\ ++ ldq $26, 0($30)\n\ ++ ldq $29, 8($30)\n\ ++ addq $30, 16, $30\n\ ++ ret\n\ ++/*@_init_EPILOG_ENDS*/\n\ ++\n\ ++/*@_fini_PROLOG_BEGINS*/\n\ ++ .section .fini, \"ax\", @progbits\n\ ++ .globl _fini\n\ ++ .ent _fini\n\ ++_fini:\n\ ++ ldgp $29, 0($27)\n\ ++ subq $30, 16, $30\n\ ++ stq $26, 0($30)\n\ ++ stq $29, 8($30)\n\ ++ .prologue 1\n\ ++ .align 3\n\ ++ .end _fini\n\ ++ .size _fini, 0\n\ ++/*@_fini_PROLOG_ENDS*/\n\ ++\n\ ++/*@_fini_EPILOG_BEGINS*/\n\ ++ .section .fini, \"ax\", @progbits\n\ ++ ldq $26, 0($30)\n\ ++ ldq $29, 8($30)\n\ ++ addq $30, 16, $30\n\ ++ ret\n\ ++/*@_fini_EPILOG_ENDS*/\n\ ++\n\ ++/*@TRAILER_BEGINS*/\n\ + "); diff --git a/glibc/glibc-2.2.5/pt-initfini-flags.patch b/glibc/glibc-2.2.5/pt-initfini-flags.patch index e69de29bb2..e8ba2facfc 100644 --- a/glibc/glibc-2.2.5/pt-initfini-flags.patch +++ b/glibc/glibc-2.2.5/pt-initfini-flags.patch @@ -0,0 +1,16 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- glibc-2.2.5/linuxthreads/Makefile~glibc-linuxthreads-2.3.2-initfini ++++ glibc-2.2.5/linuxthreads/Makefile +@@ -54,7 +54,7 @@ + extra-objs += crti.o + omit-deps += crti + +-CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions ++CFLAGS-pt-initfini.s = -O1 -g0 -fPIC -fno-inline-functions + endif + + librt-tests = ex10 ex11 diff --git a/glibc/glibc-2.2.5/pt-initfini-sh.patch b/glibc/glibc-2.2.5/pt-initfini-sh.patch index e69de29bb2..8c9cdb8ada 100644 --- a/glibc/glibc-2.2.5/pt-initfini-sh.patch +++ b/glibc/glibc-2.2.5/pt-initfini-sh.patch @@ -0,0 +1,267 @@ +--- glibc-2.2.5/linuxthreads/sysdeps/unix/sysv/linux/sh/pt-initfini.c.old Wed May 28 09:29:55 2003 ++++ glibc-2.2.5/linuxthreads/sysdeps/unix/sysv/linux/sh/pt-initfini.c Wed May 28 09:30:11 2003 +@@ -36,134 +36,134 @@ + * crtn.s puts the corresponding function epilogues + in the .init and .fini sections. */ + +-__asm__ (" +- +-#include \"defs.h\" +-#define SHARED +- +-/*@HEADER_ENDS*/ +- +-/*@TESTS_BEGIN*/ +- +-/*@TESTS_END*/ +- +-/*@_init_PROLOG_BEGINS*/ +- .section .init +- .align 5 +- .global _init +- .type _init,@function +-_init: +- mov.l r12,@-r15 +- mov.l r14,@-r15 +- sts.l pr,@-r15 +-#ifdef SHARED +- mova .L22,r0 +- mov.l .L22,r12 +- add r0,r12 +- mova .L24,r0 +- mov.l .L24,r1 +- add r0,r1 +- jsr @r1 +- nop +- mova .L23,r0 +- mov.l .L23,r1 +- add r0,r1 +-#else +- mov.l .L24,r1 +- jsr @r1 +- nop +- mov.l .L23,r1 +-#endif +- jsr @r1 +- mov r15,r14 +- bra 1f +- nop +- .align 2 +-#ifdef SHARED +-.L22: +- .long _GLOBAL_OFFSET_TABLE_ +-.L23: +- .long __gmon_start__@PLT +-.L24: +- .long __pthread_initialize_minimal@PLT +-#else +-.L23: +- .long __gmon_start__ +-.L24: +- .long __pthread_initialize_minimal +-#endif +- .data +- .global __fpscr_values +-__fpscr_values: +- .long 0 +- .long 0x80000 +- .previous +-1: +- ALIGN +- END_INIT +- +- +-/*@_init_PROLOG_ENDS*/ +- +-/*@_init_EPILOG_BEGINS*/ +- .section .init +- mov r14,r15 +- lds.l @r15+,pr +- mov.l @r15+,r14 +- rts +- mov.l @r15+,r12 +- END_INIT +- .section .text +- .align 5 +- .weak __gmon_start__ +- .type __gmon_start__,@function +-__gmon_start__: +- mov.l r14,@-r15 +- mov r15,r14 +- mov r14,r15 +- rts +- mov.l @r15+,r14 +- +-/*@_init_EPILOG_ENDS*/ +- +-/*@_fini_PROLOG_BEGINS*/ +- .section .fini +- .align 5 +- .global _fini +- .type _fini,@function +-_fini: +- mov.l r12,@-r15 +- mov.l r14,@-r15 +- sts.l pr,@-r15 +-#ifdef SHARED +- mova .L27,r0 +- mov.l .L27,r12 +- add r0,r12 +-#endif +- mov r15,r14 +- ALIGN +- END_FINI +-#ifdef SHARED +- bra 1f +- nop +- .align 2 +-.L27: +- .long _GLOBAL_OFFSET_TABLE_ +-#endif +-1: +-/*@_fini_PROLOG_ENDS*/ +- +-/*@_fini_EPILOG_BEGINS*/ +- .section .fini +- mov r14,r15 +- lds.l @r15+,pr +- mov.l @r15+,r14 +- rts +- mov.l @r15+,r12 +- +- END_FINI +- +-/*@_fini_EPILOG_ENDS*/ +- +-/*@TRAILER_BEGINS*/ ++__asm__ ("\n\ ++\n\ ++#include \"defs.h\"\n\ ++#define SHARED\n\ ++\n\ ++/*@HEADER_ENDS*/\n\ ++\n\ ++/*@TESTS_BEGIN*/\n\ ++\n\ ++/*@TESTS_END*/\n\ ++\n\ ++/*@_init_PROLOG_BEGINS*/\n\ ++ .section .init\n\ ++ .align 5\n\ ++ .global _init\n\ ++ .type _init,@function\n\ ++_init:\n\ ++ mov.l r12,@-r15\n\ ++ mov.l r14,@-r15\n\ ++ sts.l pr,@-r15\n\ ++#ifdef SHARED\n\ ++ mova .L22,r0\n\ ++ mov.l .L22,r12\n\ ++ add r0,r12\n\ ++ mova .L24,r0\n\ ++ mov.l .L24,r1\n\ ++ add r0,r1\n\ ++ jsr @r1\n\ ++ nop\n\ ++ mova .L23,r0\n\ ++ mov.l .L23,r1\n\ ++ add r0,r1\n\ ++#else\n\ ++ mov.l .L24,r1\n\ ++ jsr @r1\n\ ++ nop\n\ ++ mov.l .L23,r1\n\ ++#endif\n\ ++ jsr @r1\n\ ++ mov r15,r14\n\ ++ bra 1f\n\ ++ nop\n\ ++ .align 2\n\ ++#ifdef SHARED\n\ ++.L22:\n\ ++ .long _GLOBAL_OFFSET_TABLE_\n\ ++.L23:\n\ ++ .long __gmon_start__@PLT\n\ ++.L24:\n\ ++ .long __pthread_initialize_minimal@PLT\n\ ++#else\n\ ++.L23:\n\ ++ .long __gmon_start__\n\ ++.L24:\n\ ++ .long __pthread_initialize_minimal\n\ ++#endif\n\ ++ .data\n\ ++ .global __fpscr_values\n\ ++__fpscr_values:\n\ ++ .long 0\n\ ++ .long 0x80000\n\ ++ .previous\n\ ++1:\n\ ++ ALIGN\n\ ++ END_INIT\n\ ++\n\ ++ \n\ ++/*@_init_PROLOG_ENDS*/\n\ ++\n\ ++/*@_init_EPILOG_BEGINS*/\n\ ++ .section .init\n\ ++ mov r14,r15\n\ ++ lds.l @r15+,pr\n\ ++ mov.l @r15+,r14\n\ ++ rts \n\ ++ mov.l @r15+,r12\n\ ++ END_INIT\n\ ++ .section .text\n\ ++ .align 5\n\ ++ .weak __gmon_start__\n\ ++ .type __gmon_start__,@function\n\ ++__gmon_start__:\n\ ++ mov.l r14,@-r15\n\ ++ mov r15,r14\n\ ++ mov r14,r15\n\ ++ rts \n\ ++ mov.l @r15+,r14\n\ ++ \n\ ++/*@_init_EPILOG_ENDS*/\n\ ++\n\ ++/*@_fini_PROLOG_BEGINS*/\n\ ++ .section .fini\n\ ++ .align 5\n\ ++ .global _fini\n\ ++ .type _fini,@function\n\ ++_fini:\n\ ++ mov.l r12,@-r15\n\ ++ mov.l r14,@-r15\n\ ++ sts.l pr,@-r15\n\ ++#ifdef SHARED\n\ ++ mova .L27,r0\n\ ++ mov.l .L27,r12\n\ ++ add r0,r12\n\ ++#endif\n\ ++ mov r15,r14\n\ ++ ALIGN\n\ ++ END_FINI\n\ ++#ifdef SHARED\n\ ++ bra 1f\n\ ++ nop\n\ ++ .align 2\n\ ++.L27:\n\ ++ .long _GLOBAL_OFFSET_TABLE_\n\ ++#endif\n\ ++1:\n\ ++/*@_fini_PROLOG_ENDS*/\n\ ++\n\ ++/*@_fini_EPILOG_BEGINS*/\n\ ++ .section .fini\n\ ++ mov r14,r15\n\ ++ lds.l @r15+,pr\n\ ++ mov.l @r15+,r14\n\ ++ rts \n\ ++ mov.l @r15+,r12\n\ ++\n\ ++ END_FINI\n\ ++ \n\ ++/*@_fini_EPILOG_ENDS*/\n\ ++\n\ ++/*@TRAILER_BEGINS*/\n\ + "); diff --git a/glibc/glibc-2.2.5/sh-setjmp-fix.patch b/glibc/glibc-2.2.5/sh-setjmp-fix.patch index e69de29bb2..fa2f51aab6 100644 --- a/glibc/glibc-2.2.5/sh-setjmp-fix.patch +++ b/glibc/glibc-2.2.5/sh-setjmp-fix.patch @@ -0,0 +1,17 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/sh/bits/setjmp.h~sh-setjmp-fix.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/sh/bits/setjmp.h 2004-09-03 19:00:39.000000000 -0500 +@@ -42,7 +42,9 @@ + } __jmp_buf[1]; + #endif + ++#if defined __USE_MISC || defined _ASM + #define JB_SIZE (4 * 15) ++#endif + + /* Test if longjmp to JMPBUF would unwind the frame + containing a local variable at ADDRESS. */ diff --git a/glibc/glibc-2.2.5/sprintf-prototype.patch b/glibc/glibc-2.2.5/sprintf-prototype.patch index e69de29bb2..47dc672a38 100644 --- a/glibc/glibc-2.2.5/sprintf-prototype.patch +++ b/glibc/glibc-2.2.5/sprintf-prototype.patch @@ -0,0 +1,18 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/stdio-common/sprintf.c~sprintf-prototype.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/stdio-common/sprintf.c 2004-09-03 19:00:39.000000000 -0500 +@@ -27,9 +27,7 @@ + /* Write formatted output into S, according to the format string FORMAT. */ + /* VARARGS2 */ + int +-sprintf (s, format) +- char *s; +- const char *format; ++sprintf (char *s, const char *format, ...) + { + va_list arg; + int done; diff --git a/glibc/glibc-2.2.5/sscanf.patch b/glibc/glibc-2.2.5/sscanf.patch index e69de29bb2..2958b1f8e0 100644 --- a/glibc/glibc-2.2.5/sscanf.patch +++ b/glibc/glibc-2.2.5/sscanf.patch @@ -0,0 +1,64 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/stdio-common/sscanf.c~sscanf.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/stdio-common/sscanf.c 2004-09-03 19:00:39.000000000 -0500 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1991, 1995, 1996, 1998 Free Software Foundation, Inc. ++/* Copyright (C) 1991,1995,1996,1998,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 +@@ -27,9 +27,7 @@ + /* Read formatted input from S, according to the format string FORMAT. */ + /* VARARGS2 */ + int +-sscanf (s, format) +- const char *s; +- const char *format; ++sscanf (const char *s, const char *format, ...) + { + va_list arg; + int done; +--- glibc-2.2.5/libio/swprintf.c~sscanf.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/libio/swprintf.c 2004-09-03 19:00:39.000000000 -0500 +@@ -1,4 +1,5 @@ +-/* Copyright (C) 1991,1995,1997,1998,1999,2000 Free Software Foundation, Inc. ++/* Copyright (C) 1991,1995,1997,1998,1999,2000,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 +@@ -22,10 +23,7 @@ + /* Write formatted output into S, according to the format string FORMAT. */ + /* VARARGS3 */ + int +-swprintf (s, n, format) +- wchar_t *s; +- size_t n; +- const wchar_t *format; ++swprintf (wchar_t *s, size_t n, const wchar_t *format, ...) + { + va_list arg; + int done; +--- glibc-2.2.5/libio/swscanf.c~sscanf.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/libio/swscanf.c 2004-09-03 19:00:39.000000000 -0500 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1991, 1995, 1996, 1998, 1999 Free Software Foundation, Inc. ++/* Copyright (C) 1991,1995,1996,1998,1999,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 +@@ -22,9 +22,7 @@ + /* Read formatted input from S, according to the format string FORMAT. */ + /* VARARGS2 */ + int +-swscanf (s, format) +- const wchar_t *s; +- const wchar_t *format; ++swscanf (const wchar_t *s, const wchar_t *format, ...) + { + va_list arg; + int done; diff --git a/glibc/glibc-2.2.5/threadparam.patch b/glibc/glibc-2.2.5/threadparam.patch index e69de29bb2..dd97838c07 100644 --- a/glibc/glibc-2.2.5/threadparam.patch +++ b/glibc/glibc-2.2.5/threadparam.patch @@ -0,0 +1,69 @@ +2002-05-21 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/pthread.h (pthread_create): Rename first parameter. + (pthread_cancel): Likewise. + * internals.h (__pthread_create_2_1): Likewise. + * sysdeps/unix/sysv/linux/bits/sigthread.h (pthread_kill): Likewise. +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads/internals.h,v +retrieving revision 1.69.2.2 +retrieving revision 1.69.2.3 +diff -u -r1.69.2.2 -r1.69.2.3 +--- libc/linuxthreads/internals.h 2002/03/22 08:30:32 1.69.2.2 ++++ libc/linuxthreads/internals.h 2002/08/20 22:01:25 1.69.2.3 +@@ -554,7 +554,7 @@ + /* Prototypes for compatibility functions. */ + extern int __pthread_attr_init_2_1 (pthread_attr_t *__attr); + extern int __pthread_attr_init_2_0 (pthread_attr_t *__attr); +-extern int __pthread_create_2_1 (pthread_t *__restrict __thread, ++extern int __pthread_create_2_1 (pthread_t *__restrict __threadp, + const pthread_attr_t *__attr, + void *(*__start_routine) (void *), + void *__restrict __arg); +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads/sysdeps/pthread/pthread.h,v +retrieving revision 1.31 +retrieving revision 1.31.2.1 +diff -u -r1.31 -r1.31.2.1 +--- libc/linuxthreads/sysdeps/pthread/pthread.h 2001/03/15 21:12:31 1.31 ++++ libc/linuxthreads/sysdeps/pthread/pthread.h 2002/08/20 22:01:26 1.31.2.1 +@@ -160,7 +160,7 @@ + /* Create a thread with given attributes ATTR (or default attributes + if ATTR is NULL), and call function START_ROUTINE with given + arguments ARG. */ +-extern int pthread_create (pthread_t *__restrict __thread, ++extern int pthread_create (pthread_t *__restrict __threadp, + __const pthread_attr_t *__restrict __attr, + void *(*__start_routine) (void *), + void *__restrict __arg) __THROW; +@@ -588,7 +588,7 @@ + extern int pthread_setcanceltype (int __type, int *__oldtype) __THROW; + + /* Cancel THREAD immediately or at the next possibility. */ +-extern int pthread_cancel (pthread_t __thread) __THROW; ++extern int pthread_cancel (pthread_t __cancelthread) __THROW; + + /* Test for pending cancellation for the current thread and terminate + the thread as per pthread_exit(PTHREAD_CANCELED) if it has been +=================================================================== +RCS file: /cvs/glibc/libc/linuxthreads/sysdeps/unix/sysv/linux/bits/sigthread.h,v +retrieving revision 1.5 +retrieving revision 1.5.2.1 +diff -u -r1.5 -r1.5.2.1 +--- libc/linuxthreads/sysdeps/unix/sysv/linux/bits/sigthread.h 2000/08/21 06:48:03 1.5 ++++ libc/linuxthreads/sysdeps/unix/sysv/linux/bits/sigthread.h 2002/08/20 22:01:26 1.5.2.1 +@@ -1,5 +1,5 @@ + /* Signal handling function for threaded programs. +- Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. ++ Copyright (C) 1998, 1999, 2000, 2002 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 +@@ -33,6 +33,6 @@ + __sigset_t *__restrict __oldmask)__THROW; + + /* Send signal SIGNO to the given thread. */ +-extern int pthread_kill (pthread_t __thread, int __signo) __THROW; ++extern int pthread_kill (pthread_t __threadid, int __signo) __THROW; + + #endif /* bits/sigthread.h */ diff --git a/glibc/glibc-2.2.5/unwind-arm.patch b/glibc/glibc-2.2.5/unwind-arm.patch index e69de29bb2..b44f41aec0 100644 --- a/glibc/glibc-2.2.5/unwind-arm.patch +++ b/glibc/glibc-2.2.5/unwind-arm.patch @@ -0,0 +1,18 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- glibc-2.2.5/sysdeps/unix/sysv/linux/configure~unwind-arm.patch 2004-09-03 19:00:33.000000000 -0500 ++++ glibc-2.2.5/sysdeps/unix/sysv/linux/configure 2004-09-03 19:00:39.000000000 -0500 +@@ -56,6 +56,10 @@ + arch_minimum_kernel=2.1.100 + libc_cv_gcc_unwind_find_fde=yes + ;; ++ arm*) ++ libc_cv_gcc_unwind_find_fde=yes ++ arch_minimum_kernel=2.0.10 ++ ;; + i386*) + libc_cv_gcc_unwind_find_fde=yes + arch_minimum_kernel=2.0.10 |