patches/glibc/2.2.5/initfini-ia64.patch
changeset 1 eeea35fbf182
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/patches/glibc/2.2.5/initfini-ia64.patch	Sat Feb 24 11:00:05 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 + ");