patches/glibc/linuxthreads-2.2.5/pt-initfini-sh.patch
changeset 1 eeea35fbf182
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/patches/glibc/linuxthreads-2.2.5/pt-initfini-sh.patch	Sat Feb 24 11:00:05 2007 +0000
     1.3 @@ -0,0 +1,267 @@
     1.4 +--- glibc-2.2.5/linuxthreads/sysdeps/unix/sysv/linux/sh/pt-initfini.c.old	Wed May 28 09:29:55 2003
     1.5 ++++ glibc-2.2.5/linuxthreads/sysdeps/unix/sysv/linux/sh/pt-initfini.c	Wed May 28 09:30:11 2003
     1.6 +@@ -36,134 +36,134 @@
     1.7 +    * crtn.s puts the corresponding function epilogues
     1.8 +    in the .init and .fini sections. */
     1.9 + 
    1.10 +-__asm__ ("
    1.11 +-
    1.12 +-#include \"defs.h\"
    1.13 +-#define SHARED
    1.14 +-
    1.15 +-/*@HEADER_ENDS*/
    1.16 +-
    1.17 +-/*@TESTS_BEGIN*/
    1.18 +-
    1.19 +-/*@TESTS_END*/
    1.20 +-
    1.21 +-/*@_init_PROLOG_BEGINS*/
    1.22 +-	.section .init
    1.23 +-	.align 5
    1.24 +-	.global	_init
    1.25 +-	.type	_init,@function
    1.26 +-_init:
    1.27 +-	mov.l	r12,@-r15
    1.28 +-	mov.l	r14,@-r15
    1.29 +-	sts.l	pr,@-r15
    1.30 +-#ifdef SHARED
    1.31 +-	mova	.L22,r0
    1.32 +-	mov.l	.L22,r12
    1.33 +-	add	r0,r12
    1.34 +-	mova	.L24,r0
    1.35 +-	mov.l	.L24,r1
    1.36 +-	add	r0,r1
    1.37 +-	jsr	@r1
    1.38 +-	 nop
    1.39 +-	mova	.L23,r0
    1.40 +-	mov.l	.L23,r1
    1.41 +-	add	r0,r1
    1.42 +-#else
    1.43 +-	mov.l	.L24,r1
    1.44 +-	jsr	@r1
    1.45 +-	 nop
    1.46 +-	mov.l	.L23,r1
    1.47 +-#endif
    1.48 +-	jsr	@r1
    1.49 +-	 mov	r15,r14
    1.50 +-	bra	1f
    1.51 +-	 nop
    1.52 +-	.align 2
    1.53 +-#ifdef SHARED
    1.54 +-.L22:
    1.55 +-	.long	_GLOBAL_OFFSET_TABLE_
    1.56 +-.L23:
    1.57 +-	.long	__gmon_start__@PLT
    1.58 +-.L24:
    1.59 +-	.long	__pthread_initialize_minimal@PLT
    1.60 +-#else
    1.61 +-.L23:
    1.62 +-	.long	__gmon_start__
    1.63 +-.L24:
    1.64 +-	.long	__pthread_initialize_minimal
    1.65 +-#endif
    1.66 +-	.data
    1.67 +-	.global __fpscr_values
    1.68 +-__fpscr_values:
    1.69 +-	.long   0
    1.70 +-	.long   0x80000
    1.71 +-	.previous
    1.72 +-1:
    1.73 +-	ALIGN
    1.74 +-	END_INIT
    1.75 +-
    1.76 +-	
    1.77 +-/*@_init_PROLOG_ENDS*/
    1.78 +-
    1.79 +-/*@_init_EPILOG_BEGINS*/
    1.80 +-	.section .init
    1.81 +-	mov	r14,r15
    1.82 +-	lds.l	@r15+,pr
    1.83 +-	mov.l	@r15+,r14
    1.84 +-	rts	
    1.85 +-	mov.l	@r15+,r12
    1.86 +-	END_INIT
    1.87 +-	.section .text
    1.88 +-	.align 5
    1.89 +-	.weak	__gmon_start__
    1.90 +-	.type	__gmon_start__,@function
    1.91 +-__gmon_start__:
    1.92 +-	mov.l	r14,@-r15
    1.93 +-	mov	r15,r14
    1.94 +-	mov	r14,r15
    1.95 +-	rts	
    1.96 +-	mov.l	@r15+,r14
    1.97 +-	
    1.98 +-/*@_init_EPILOG_ENDS*/
    1.99 +-
   1.100 +-/*@_fini_PROLOG_BEGINS*/
   1.101 +-	.section .fini
   1.102 +-	.align 5
   1.103 +-	.global	_fini
   1.104 +-	.type	_fini,@function
   1.105 +-_fini:
   1.106 +-	mov.l	r12,@-r15
   1.107 +-	mov.l	r14,@-r15
   1.108 +-	sts.l	pr,@-r15
   1.109 +-#ifdef SHARED
   1.110 +-	mova	.L27,r0
   1.111 +-	mov.l	.L27,r12
   1.112 +-	add	r0,r12
   1.113 +-#endif
   1.114 +-	mov	r15,r14
   1.115 +-	ALIGN
   1.116 +-	END_FINI
   1.117 +-#ifdef SHARED
   1.118 +-	bra	1f
   1.119 +-	 nop
   1.120 +-	.align	2
   1.121 +-.L27:
   1.122 +-	.long	_GLOBAL_OFFSET_TABLE_
   1.123 +-#endif
   1.124 +-1:
   1.125 +-/*@_fini_PROLOG_ENDS*/
   1.126 +-
   1.127 +-/*@_fini_EPILOG_BEGINS*/
   1.128 +-	.section .fini
   1.129 +-	mov	r14,r15
   1.130 +-	lds.l	@r15+,pr
   1.131 +-	mov.l	@r15+,r14
   1.132 +-	rts	
   1.133 +-	mov.l	@r15+,r12
   1.134 +-
   1.135 +-	END_FINI
   1.136 +-	
   1.137 +-/*@_fini_EPILOG_ENDS*/
   1.138 +-
   1.139 +-/*@TRAILER_BEGINS*/
   1.140 ++__asm__ ("\n\
   1.141 ++\n\
   1.142 ++#include \"defs.h\"\n\
   1.143 ++#define SHARED\n\
   1.144 ++\n\
   1.145 ++/*@HEADER_ENDS*/\n\
   1.146 ++\n\
   1.147 ++/*@TESTS_BEGIN*/\n\
   1.148 ++\n\
   1.149 ++/*@TESTS_END*/\n\
   1.150 ++\n\
   1.151 ++/*@_init_PROLOG_BEGINS*/\n\
   1.152 ++	.section .init\n\
   1.153 ++	.align 5\n\
   1.154 ++	.global	_init\n\
   1.155 ++	.type	_init,@function\n\
   1.156 ++_init:\n\
   1.157 ++	mov.l	r12,@-r15\n\
   1.158 ++	mov.l	r14,@-r15\n\
   1.159 ++	sts.l	pr,@-r15\n\
   1.160 ++#ifdef SHARED\n\
   1.161 ++	mova	.L22,r0\n\
   1.162 ++	mov.l	.L22,r12\n\
   1.163 ++	add	r0,r12\n\
   1.164 ++	mova	.L24,r0\n\
   1.165 ++	mov.l	.L24,r1\n\
   1.166 ++	add	r0,r1\n\
   1.167 ++	jsr	@r1\n\
   1.168 ++	 nop\n\
   1.169 ++	mova	.L23,r0\n\
   1.170 ++	mov.l	.L23,r1\n\
   1.171 ++	add	r0,r1\n\
   1.172 ++#else\n\
   1.173 ++	mov.l	.L24,r1\n\
   1.174 ++	jsr	@r1\n\
   1.175 ++	 nop\n\
   1.176 ++	mov.l	.L23,r1\n\
   1.177 ++#endif\n\
   1.178 ++	jsr	@r1\n\
   1.179 ++	 mov	r15,r14\n\
   1.180 ++	bra	1f\n\
   1.181 ++	 nop\n\
   1.182 ++	.align 2\n\
   1.183 ++#ifdef SHARED\n\
   1.184 ++.L22:\n\
   1.185 ++	.long	_GLOBAL_OFFSET_TABLE_\n\
   1.186 ++.L23:\n\
   1.187 ++	.long	__gmon_start__@PLT\n\
   1.188 ++.L24:\n\
   1.189 ++	.long	__pthread_initialize_minimal@PLT\n\
   1.190 ++#else\n\
   1.191 ++.L23:\n\
   1.192 ++	.long	__gmon_start__\n\
   1.193 ++.L24:\n\
   1.194 ++	.long	__pthread_initialize_minimal\n\
   1.195 ++#endif\n\
   1.196 ++	.data\n\
   1.197 ++	.global __fpscr_values\n\
   1.198 ++__fpscr_values:\n\
   1.199 ++	.long   0\n\
   1.200 ++	.long   0x80000\n\
   1.201 ++	.previous\n\
   1.202 ++1:\n\
   1.203 ++	ALIGN\n\
   1.204 ++	END_INIT\n\
   1.205 ++\n\
   1.206 ++	\n\
   1.207 ++/*@_init_PROLOG_ENDS*/\n\
   1.208 ++\n\
   1.209 ++/*@_init_EPILOG_BEGINS*/\n\
   1.210 ++	.section .init\n\
   1.211 ++	mov	r14,r15\n\
   1.212 ++	lds.l	@r15+,pr\n\
   1.213 ++	mov.l	@r15+,r14\n\
   1.214 ++	rts	\n\
   1.215 ++	mov.l	@r15+,r12\n\
   1.216 ++	END_INIT\n\
   1.217 ++	.section .text\n\
   1.218 ++	.align 5\n\
   1.219 ++	.weak	__gmon_start__\n\
   1.220 ++	.type	__gmon_start__,@function\n\
   1.221 ++__gmon_start__:\n\
   1.222 ++	mov.l	r14,@-r15\n\
   1.223 ++	mov	r15,r14\n\
   1.224 ++	mov	r14,r15\n\
   1.225 ++	rts	\n\
   1.226 ++	mov.l	@r15+,r14\n\
   1.227 ++	\n\
   1.228 ++/*@_init_EPILOG_ENDS*/\n\
   1.229 ++\n\
   1.230 ++/*@_fini_PROLOG_BEGINS*/\n\
   1.231 ++	.section .fini\n\
   1.232 ++	.align 5\n\
   1.233 ++	.global	_fini\n\
   1.234 ++	.type	_fini,@function\n\
   1.235 ++_fini:\n\
   1.236 ++	mov.l	r12,@-r15\n\
   1.237 ++	mov.l	r14,@-r15\n\
   1.238 ++	sts.l	pr,@-r15\n\
   1.239 ++#ifdef SHARED\n\
   1.240 ++	mova	.L27,r0\n\
   1.241 ++	mov.l	.L27,r12\n\
   1.242 ++	add	r0,r12\n\
   1.243 ++#endif\n\
   1.244 ++	mov	r15,r14\n\
   1.245 ++	ALIGN\n\
   1.246 ++	END_FINI\n\
   1.247 ++#ifdef SHARED\n\
   1.248 ++	bra	1f\n\
   1.249 ++	 nop\n\
   1.250 ++	.align	2\n\
   1.251 ++.L27:\n\
   1.252 ++	.long	_GLOBAL_OFFSET_TABLE_\n\
   1.253 ++#endif\n\
   1.254 ++1:\n\
   1.255 ++/*@_fini_PROLOG_ENDS*/\n\
   1.256 ++\n\
   1.257 ++/*@_fini_EPILOG_BEGINS*/\n\
   1.258 ++	.section .fini\n\
   1.259 ++	mov	r14,r15\n\
   1.260 ++	lds.l	@r15+,pr\n\
   1.261 ++	mov.l	@r15+,r14\n\
   1.262 ++	rts	\n\
   1.263 ++	mov.l	@r15+,r12\n\
   1.264 ++\n\
   1.265 ++	END_FINI\n\
   1.266 ++	\n\
   1.267 ++/*@_fini_EPILOG_ENDS*/\n\
   1.268 ++\n\
   1.269 ++/*@TRAILER_BEGINS*/\n\
   1.270 + ");