patches/glibc/2.2.5/initfini-sh.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Feb 24 11:00:05 2007 +0000 (2007-02-24)
changeset 1 eeea35fbf182
permissions -rw-r--r--
Add the full crosstool-NG sources to the new repository of its own.
You might just say: 'Yeah! crosstool-NG's got its own repo!".
Unfortunately, that's because the previous repo got damaged beyond repair and I had no backup.
That means I'm putting backups in place in the afternoon.
That also means we've lost history... :-(
yann@1
     1
--- glibc-2.2.5/sysdeps/sh/elf/initfini.c.orig	Thu Jul  5 21:56:03 2001
yann@1
     2
+++ glibc-2.2.5/sysdeps/sh/elf/initfini.c	Wed May 28 08:45:08 2003
yann@1
     3
@@ -27,122 +27,122 @@
yann@1
     4
    * crtn.s puts the corresponding function epilogues
yann@1
     5
    in the .init and .fini sections. */
yann@1
     6
 
yann@1
     7
-__asm__ ("
yann@1
     8
-
yann@1
     9
-#include \"defs.h\"
yann@1
    10
-#define SHARED
yann@1
    11
-
yann@1
    12
-/*@HEADER_ENDS*/
yann@1
    13
-
yann@1
    14
-/*@TESTS_BEGIN*/
yann@1
    15
-
yann@1
    16
-/*@TESTS_END*/
yann@1
    17
-
yann@1
    18
-/*@_init_PROLOG_BEGINS*/
yann@1
    19
-	.section .init
yann@1
    20
-	.align 5
yann@1
    21
-	.global	_init
yann@1
    22
-	.type	_init,@function
yann@1
    23
-_init:
yann@1
    24
-	mov.l	r12,@-r15
yann@1
    25
-	mov.l	r14,@-r15
yann@1
    26
-	sts.l	pr,@-r15
yann@1
    27
-#ifdef SHARED
yann@1
    28
-	mova	.L22,r0
yann@1
    29
-	mov.l	.L22,r12
yann@1
    30
-	add	r0,r12
yann@1
    31
-	mova	.L23,r0
yann@1
    32
-	mov.l	.L23,r1
yann@1
    33
-	add	r0,r1
yann@1
    34
-#else
yann@1
    35
-	mov.l	.L23,r1
yann@1
    36
-#endif
yann@1
    37
-	jsr	@r1
yann@1
    38
-	 mov	r15,r14
yann@1
    39
-	bra	1f
yann@1
    40
-	 nop
yann@1
    41
-	.align 2
yann@1
    42
-#ifdef SHARED
yann@1
    43
-.L22:
yann@1
    44
-	.long	_GLOBAL_OFFSET_TABLE_
yann@1
    45
-.L23:
yann@1
    46
-	.long	__gmon_start__@PLT
yann@1
    47
-#else
yann@1
    48
-.L23:
yann@1
    49
-	.long	__gmon_start__
yann@1
    50
-#endif
yann@1
    51
-	.data
yann@1
    52
-	.global __fpscr_values
yann@1
    53
-__fpscr_values:
yann@1
    54
-	.long   0
yann@1
    55
-	.long   0x80000
yann@1
    56
-	.previous
yann@1
    57
-1:
yann@1
    58
-	ALIGN
yann@1
    59
-	END_INIT
yann@1
    60
-
yann@1
    61
-	
yann@1
    62
-/*@_init_PROLOG_ENDS*/
yann@1
    63
-
yann@1
    64
-/*@_init_EPILOG_BEGINS*/
yann@1
    65
-	.section .init
yann@1
    66
-	mov	r14,r15
yann@1
    67
-	lds.l	@r15+,pr
yann@1
    68
-	mov.l	@r15+,r14
yann@1
    69
-	rts	
yann@1
    70
-	mov.l	@r15+,r12
yann@1
    71
-	END_INIT
yann@1
    72
-	.section .text
yann@1
    73
-	.align 5
yann@1
    74
-	.weak	__gmon_start__
yann@1
    75
-	.type	__gmon_start__,@function
yann@1
    76
-__gmon_start__:
yann@1
    77
-	mov.l	r14,@-r15
yann@1
    78
-	mov	r15,r14
yann@1
    79
-	mov	r14,r15
yann@1
    80
-	rts	
yann@1
    81
-	mov.l	@r15+,r14
yann@1
    82
-	
yann@1
    83
-/*@_init_EPILOG_ENDS*/
yann@1
    84
-
yann@1
    85
-/*@_fini_PROLOG_BEGINS*/
yann@1
    86
-	.section .fini
yann@1
    87
-	.align 5
yann@1
    88
-	.global	_fini
yann@1
    89
-	.type	_fini,@function
yann@1
    90
-_fini:
yann@1
    91
-	mov.l	r12,@-r15
yann@1
    92
-	mov.l	r14,@-r15
yann@1
    93
-	sts.l	pr,@-r15
yann@1
    94
-#ifdef SHARED
yann@1
    95
-	mova	.L27,r0
yann@1
    96
-	mov.l	.L27,r12
yann@1
    97
-	add	r0,r12
yann@1
    98
-#endif
yann@1
    99
-	mov	r15,r14
yann@1
   100
-	ALIGN
yann@1
   101
-	END_FINI
yann@1
   102
-#ifdef SHARED
yann@1
   103
-	bra	1f
yann@1
   104
-	 nop
yann@1
   105
-	.align	2
yann@1
   106
-.L27:
yann@1
   107
-	.long	_GLOBAL_OFFSET_TABLE_
yann@1
   108
-#endif
yann@1
   109
-1:
yann@1
   110
-/*@_fini_PROLOG_ENDS*/
yann@1
   111
-
yann@1
   112
-/*@_fini_EPILOG_BEGINS*/
yann@1
   113
-	.section .fini
yann@1
   114
-	mov	r14,r15
yann@1
   115
-	lds.l	@r15+,pr
yann@1
   116
-	mov.l	@r15+,r14
yann@1
   117
-	rts	
yann@1
   118
-	mov.l	@r15+,r12
yann@1
   119
-
yann@1
   120
-	END_FINI
yann@1
   121
-	
yann@1
   122
-/*@_fini_EPILOG_ENDS*/
yann@1
   123
-
yann@1
   124
-/*@TRAILER_BEGINS*/
yann@1
   125
+__asm__ ("\n\
yann@1
   126
+\n\
yann@1
   127
+#include \"defs.h\"\n\
yann@1
   128
+#define SHARED\n\
yann@1
   129
+\n\
yann@1
   130
+/*@HEADER_ENDS*/\n\
yann@1
   131
+\n\
yann@1
   132
+/*@TESTS_BEGIN*/\n\
yann@1
   133
+\n\
yann@1
   134
+/*@TESTS_END*/\n\
yann@1
   135
+\n\
yann@1
   136
+/*@_init_PROLOG_BEGINS*/\n\
yann@1
   137
+	.section .init\n\
yann@1
   138
+	.align 5\n\
yann@1
   139
+	.global	_init\n\
yann@1
   140
+	.type	_init,@function\n\
yann@1
   141
+_init:\n\
yann@1
   142
+	mov.l	r12,@-r15\n\
yann@1
   143
+	mov.l	r14,@-r15\n\
yann@1
   144
+	sts.l	pr,@-r15\n\
yann@1
   145
+#ifdef SHARED\n\
yann@1
   146
+	mova	.L22,r0\n\
yann@1
   147
+	mov.l	.L22,r12\n\
yann@1
   148
+	add	r0,r12\n\
yann@1
   149
+	mova	.L23,r0\n\
yann@1
   150
+	mov.l	.L23,r1\n\
yann@1
   151
+	add	r0,r1\n\
yann@1
   152
+#else\n\
yann@1
   153
+	mov.l	.L23,r1\n\
yann@1
   154
+#endif\n\
yann@1
   155
+	jsr	@r1\n\
yann@1
   156
+	 mov	r15,r14\n\
yann@1
   157
+	bra	1f\n\
yann@1
   158
+	 nop\n\
yann@1
   159
+	.align 2\n\
yann@1
   160
+#ifdef SHARED\n\
yann@1
   161
+.L22:\n\
yann@1
   162
+	.long	_GLOBAL_OFFSET_TABLE_\n\
yann@1
   163
+.L23:\n\
yann@1
   164
+	.long	__gmon_start__@PLT\n\
yann@1
   165
+#else\n\
yann@1
   166
+.L23:\n\
yann@1
   167
+	.long	__gmon_start__\n\
yann@1
   168
+#endif\n\
yann@1
   169
+	.data\n\
yann@1
   170
+	.global __fpscr_values\n\
yann@1
   171
+__fpscr_values:\n\
yann@1
   172
+	.long   0\n\
yann@1
   173
+	.long   0x80000\n\
yann@1
   174
+	.previous\n\
yann@1
   175
+1:\n\
yann@1
   176
+	ALIGN\n\
yann@1
   177
+	END_INIT\n\
yann@1
   178
+\n\
yann@1
   179
+	\n\
yann@1
   180
+/*@_init_PROLOG_ENDS*/\n\
yann@1
   181
+\n\
yann@1
   182
+/*@_init_EPILOG_BEGINS*/\n\
yann@1
   183
+	.section .init\n\
yann@1
   184
+	mov	r14,r15\n\
yann@1
   185
+	lds.l	@r15+,pr\n\
yann@1
   186
+	mov.l	@r15+,r14\n\
yann@1
   187
+	rts	\n\
yann@1
   188
+	mov.l	@r15+,r12\n\
yann@1
   189
+	END_INIT\n\
yann@1
   190
+	.section .text\n\
yann@1
   191
+	.align 5\n\
yann@1
   192
+	.weak	__gmon_start__\n\
yann@1
   193
+	.type	__gmon_start__,@function\n\
yann@1
   194
+__gmon_start__:\n\
yann@1
   195
+	mov.l	r14,@-r15\n\
yann@1
   196
+	mov	r15,r14\n\
yann@1
   197
+	mov	r14,r15\n\
yann@1
   198
+	rts	\n\
yann@1
   199
+	mov.l	@r15+,r14\n\
yann@1
   200
+	\n\
yann@1
   201
+/*@_init_EPILOG_ENDS*/\n\
yann@1
   202
+\n\
yann@1
   203
+/*@_fini_PROLOG_BEGINS*/\n\
yann@1
   204
+	.section .fini\n\
yann@1
   205
+	.align 5\n\
yann@1
   206
+	.global	_fini\n\
yann@1
   207
+	.type	_fini,@function\n\
yann@1
   208
+_fini:\n\
yann@1
   209
+	mov.l	r12,@-r15\n\
yann@1
   210
+	mov.l	r14,@-r15\n\
yann@1
   211
+	sts.l	pr,@-r15\n\
yann@1
   212
+#ifdef SHARED\n\
yann@1
   213
+	mova	.L27,r0\n\
yann@1
   214
+	mov.l	.L27,r12\n\
yann@1
   215
+	add	r0,r12\n\
yann@1
   216
+#endif\n\
yann@1
   217
+	mov	r15,r14\n\
yann@1
   218
+	ALIGN\n\
yann@1
   219
+	END_FINI\n\
yann@1
   220
+#ifdef SHARED\n\
yann@1
   221
+	bra	1f\n\
yann@1
   222
+	 nop\n\
yann@1
   223
+	.align	2\n\
yann@1
   224
+.L27:\n\
yann@1
   225
+	.long	_GLOBAL_OFFSET_TABLE_\n\
yann@1
   226
+#endif\n\
yann@1
   227
+1:\n\
yann@1
   228
+/*@_fini_PROLOG_ENDS*/\n\
yann@1
   229
+\n\
yann@1
   230
+/*@_fini_EPILOG_BEGINS*/\n\
yann@1
   231
+	.section .fini\n\
yann@1
   232
+	mov	r14,r15\n\
yann@1
   233
+	lds.l	@r15+,pr\n\
yann@1
   234
+	mov.l	@r15+,r14\n\
yann@1
   235
+	rts	\n\
yann@1
   236
+	mov.l	@r15+,r12\n\
yann@1
   237
+\n\
yann@1
   238
+	END_FINI\n\
yann@1
   239
+	\n\
yann@1
   240
+/*@_fini_EPILOG_ENDS*/\n\
yann@1
   241
+\n\
yann@1
   242
+/*@TRAILER_BEGINS*/\n\
yann@1
   243
 ");