1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/patches/glibc/2.2.5/initfini-ia64.patch Sat Jun 16 18:01:59 2007 +0000
1.3 @@ -0,0 +1,219 @@
1.4 +Retrieved with
1.5 +wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/ia64/elf/initfini.c.diff?r1=1.2&r2=1.3&cvsroot=glibc'
1.6 +
1.7 +Revision 1.3, Sun Aug 25 00:34:23 2002 UTC (2 years, 1 month ago) by drepper
1.8 +Branch: MAIN
1.9 +CVS Tags: glibc-2-3-1, glibc-2-3
1.10 +Changes since 1.2: +78 -78 lines
1.11 +
1.12 +(__asm__): Don't use newlines embedded in string.
1.13 +
1.14 +Fixes error
1.15 +
1.16 +../sysdeps/ia64/elf/initfini.c:30:10: missing terminating " character
1.17 +../sysdeps/ia64/elf/initfini.c:32:10: #include expects "FILENAME" or <FILENAME>
1.18 +../sysdeps/ia64/elf/initfini.c:37: error: request for member `section' in something not a structure or union
1.19 +../sysdeps/ia64/elf/initfini.c:38: error: parse error before numeric constant
1.20 +../sysdeps/ia64/elf/initfini.c:39: error: syntax error at '#' token
1.21 +../sysdeps/ia64/elf/initfini.c:40: error: syntax error at '#' token
1.22 +../sysdeps/ia64/elf/initfini.c:46: error: syntax error at '@' token
1.23 +../sysdeps/ia64/elf/initfini.c:46: error: syntax error at '#' token
1.24 +../sysdeps/ia64/elf/initfini.c:48: error: parse error before "r15"
1.25 +../sysdeps/ia64/elf/initfini.c:48: warning: type defaults to `int' in declaration of `r15'
1.26 +../sysdeps/ia64/elf/initfini.c:50: error: parse error before '.' token
1.27 +../sysdeps/ia64/elf/initfini.c:56: error: syntax error at '#' token
1.28 +../sysdeps/ia64/elf/initfini.c:57: error: parse error before "r12"
1.29 +../sysdeps/ia64/elf/initfini.c:57: warning: type defaults to `int' in declaration of `r12'
1.30 +../sysdeps/ia64/elf/initfini.c:58: warning: type defaults to `int' in declaration of `r12'
1.31 +../sysdeps/ia64/elf/initfini.c:58: warning: data definition has no type or storage class
1.32 +../sysdeps/ia64/elf/initfini.c:59: error: parse error before "gp"
1.33 +../sysdeps/ia64/elf/initfini.c:59: warning: type defaults to `int' in declaration of `gp'
1.34 +../sysdeps/ia64/elf/initfini.c:63: error: syntax error at '#' token
1.35 +../sysdeps/ia64/elf/initfini.c:74: error: syntax error at '#' token
1.36 +../sysdeps/ia64/elf/initfini.c:80: error: syntax error at '#' token
1.37 +../sysdeps/ia64/elf/initfini.c:81: error: syntax error at '#' token
1.38 +../sysdeps/ia64/elf/initfini.c:89: error: syntax error at '#' token
1.39 +../sysdeps/ia64/elf/initfini.c:92: error: syntax error at '#' token
1.40 +../sysdeps/ia64/elf/initfini.c:96: error: parse error before '.' token
1.41 +../sysdeps/ia64/elf/initfini.c:101: error: syntax error at '#' token
1.42 +../sysdeps/ia64/elf/initfini.c:106: error: syntax error at '#' token
1.43 +../sysdeps/ia64/elf/initfini.c:107:1: missing terminating " character
1.44 +make[2]: *** [/home/dank/wk/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/csu/initfini.s] Error 1
1.45 +make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.3.4-glibc-2.2.5/glibc-2.2.5/csu'
1.46 +make[1]: *** [csu/subdir_lib] Error 2
1.47 +make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.3.4-glibc-2.2.5/glibc-2.2.5'
1.48 +make: *** [all] Error 2
1.49 +
1.50 +===================================================================
1.51 +RCS file: /cvs/glibc/libc/sysdeps/ia64/elf/initfini.c,v
1.52 +retrieving revision 1.2
1.53 +retrieving revision 1.3
1.54 +diff -u -r1.2 -r1.3
1.55 +--- libc/sysdeps/ia64/elf/initfini.c 2001/07/06 04:55:54 1.2
1.56 ++++ libc/sysdeps/ia64/elf/initfini.c 2002/08/25 00:34:23 1.3
1.57 +@@ -1,5 +1,5 @@
1.58 + /* Special .init and .fini section support for ia64.
1.59 +- Copyright (C) 2000 Free Software Foundation, Inc.
1.60 ++ Copyright (C) 2000, 2002 Free Software Foundation, Inc.
1.61 + This file is part of the GNU C Library.
1.62 +
1.63 + The GNU C Library is free software; you can redistribute it and/or
1.64 +@@ -27,81 +27,81 @@
1.65 + * crtn.s puts the corresponding function epilogues
1.66 + in the .init and .fini sections. */
1.67 +
1.68 +-__asm__ ("
1.69 +-
1.70 +-#include \"defs.h\"
1.71 +-
1.72 +-/*@HEADER_ENDS*/
1.73 +-
1.74 +-/*@_init_PROLOG_BEGINS*/
1.75 +- .section .init
1.76 +- .align 16
1.77 +- .global _init#
1.78 +- .proc _init#
1.79 +-_init:
1.80 +- alloc r34 = ar.pfs, 0, 3, 0, 0
1.81 +- mov r32 = r12
1.82 +- mov r33 = b0
1.83 +- adds r12 = -16, r12
1.84 +- addl r14 = @ltoff(@fptr(__gmon_start__#)), gp
1.85 +- ;;
1.86 +- ld8 r15 = [r14]
1.87 +- ;;
1.88 +- cmp.eq p6, p7 = 0, r15
1.89 +- (p6) br.cond.dptk .L5
1.90 +-
1.91 +-/* we could use r35 to save gp, but we use the stack since that's what
1.92 +- * all the other init routines will do --davidm 00/04/05 */
1.93 +- st8 [r12] = gp, -16
1.94 +- br.call.sptk.many b0 = __gmon_start__# ;;
1.95 +- adds r12 = 16, r12
1.96 +- ;;
1.97 +- ld8 gp = [r12]
1.98 +- ;;
1.99 +-.L5:
1.100 +- .align 16
1.101 +- .endp _init#
1.102 +-
1.103 +-/*@_init_PROLOG_ENDS*/
1.104 +-
1.105 +-/*@_init_EPILOG_BEGINS*/
1.106 +- .section .init
1.107 +- .regstk 0,2,0,0
1.108 +- mov r12 = r32
1.109 +- mov ar.pfs = r34
1.110 +- mov b0 = r33
1.111 +- br.ret.sptk.many b0
1.112 +- .endp _init#
1.113 +-/*@_init_EPILOG_ENDS*/
1.114 +-
1.115 +-/*@_fini_PROLOG_BEGINS*/
1.116 +- .section .fini
1.117 +- .align 16
1.118 +- .global _fini#
1.119 +- .proc _fini#
1.120 +-_fini:
1.121 +- alloc r34 = ar.pfs, 0, 3, 0, 0
1.122 +- mov r32 = r12
1.123 +- mov r33 = b0
1.124 +- adds r12 = -16, r12
1.125 +- ;;
1.126 +- .align 16
1.127 +- .endp _fini#
1.128 +-
1.129 +-/*@_fini_PROLOG_ENDS*/
1.130 +- br.call.sptk.many b0 = i_am_not_a_leaf# ;;
1.131 +- ;;
1.132 +-
1.133 +-/*@_fini_EPILOG_BEGINS*/
1.134 +- .section .fini
1.135 +- mov r12 = r32
1.136 +- mov ar.pfs = r34
1.137 +- mov b0 = r33
1.138 +- br.ret.sptk.many b0
1.139 +- .endp _fini#
1.140 +-
1.141 +-/*@_fini_EPILOG_ENDS*/
1.142 +-
1.143 +-/*@TRAILER_BEGINS*/
1.144 +- .weak __gmon_start__#
1.145 ++__asm__ ("\n\
1.146 ++\n\
1.147 ++#include \"defs.h\"\n\
1.148 ++\n\
1.149 ++/*@HEADER_ENDS*/\n\
1.150 ++\n\
1.151 ++/*@_init_PROLOG_BEGINS*/\n\
1.152 ++ .section .init\n\
1.153 ++ .align 16\n\
1.154 ++ .global _init#\n\
1.155 ++ .proc _init#\n\
1.156 ++_init:\n\
1.157 ++ alloc r34 = ar.pfs, 0, 3, 0, 0\n\
1.158 ++ mov r32 = r12\n\
1.159 ++ mov r33 = b0\n\
1.160 ++ adds r12 = -16, r12\n\
1.161 ++ addl r14 = @ltoff(@fptr(__gmon_start__#)), gp\n\
1.162 ++ ;;\n\
1.163 ++ ld8 r15 = [r14]\n\
1.164 ++ ;;\n\
1.165 ++ cmp.eq p6, p7 = 0, r15\n\
1.166 ++ (p6) br.cond.dptk .L5\n\
1.167 ++\n\
1.168 ++/* we could use r35 to save gp, but we use the stack since that's what\n\
1.169 ++ * all the other init routines will do --davidm 00/04/05 */\n\
1.170 ++ st8 [r12] = gp, -16\n\
1.171 ++ br.call.sptk.many b0 = __gmon_start__# ;;\n\
1.172 ++ adds r12 = 16, r12\n\
1.173 ++ ;;\n\
1.174 ++ ld8 gp = [r12]\n\
1.175 ++ ;;\n\
1.176 ++.L5:\n\
1.177 ++ .align 16\n\
1.178 ++ .endp _init#\n\
1.179 ++\n\
1.180 ++/*@_init_PROLOG_ENDS*/\n\
1.181 ++\n\
1.182 ++/*@_init_EPILOG_BEGINS*/\n\
1.183 ++ .section .init\n\
1.184 ++ .regstk 0,2,0,0\n\
1.185 ++ mov r12 = r32\n\
1.186 ++ mov ar.pfs = r34\n\
1.187 ++ mov b0 = r33\n\
1.188 ++ br.ret.sptk.many b0\n\
1.189 ++ .endp _init#\n\
1.190 ++/*@_init_EPILOG_ENDS*/\n\
1.191 ++\n\
1.192 ++/*@_fini_PROLOG_BEGINS*/\n\
1.193 ++ .section .fini\n\
1.194 ++ .align 16\n\
1.195 ++ .global _fini#\n\
1.196 ++ .proc _fini#\n\
1.197 ++_fini:\n\
1.198 ++ alloc r34 = ar.pfs, 0, 3, 0, 0\n\
1.199 ++ mov r32 = r12\n\
1.200 ++ mov r33 = b0\n\
1.201 ++ adds r12 = -16, r12\n\
1.202 ++ ;;\n\
1.203 ++ .align 16\n\
1.204 ++ .endp _fini#\n\
1.205 ++\n\
1.206 ++/*@_fini_PROLOG_ENDS*/\n\
1.207 ++ br.call.sptk.many b0 = i_am_not_a_leaf# ;;\n\
1.208 ++ ;;\n\
1.209 ++\n\
1.210 ++/*@_fini_EPILOG_BEGINS*/\n\
1.211 ++ .section .fini\n\
1.212 ++ mov r12 = r32\n\
1.213 ++ mov ar.pfs = r34\n\
1.214 ++ mov b0 = r33\n\
1.215 ++ br.ret.sptk.many b0\n\
1.216 ++ .endp _fini#\n\
1.217 ++\n\
1.218 ++/*@_fini_EPILOG_ENDS*/\n\
1.219 ++\n\
1.220 ++/*@TRAILER_BEGINS*/\n\
1.221 ++ .weak __gmon_start__#\n\
1.222 + ");