]> pilppa.org Git - familiar-h63xx-build.git/blob - org.handhelds.familiar/packages/glibc/glibc-2.2.5/dl-machine-alpha.patch
OE tree imported from monotone branch org.openembedded.oz354fam083 at revision 8b12e3...
[familiar-h63xx-build.git] / org.handhelds.familiar / packages / glibc / glibc-2.2.5 / dl-machine-alpha.patch
1
2 #
3 # Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
4 #
5
6 --- glibc-2.2.5/sysdeps/alpha/dl-machine.h~dl-machine-alpha.patch       2004-09-03 19:00:33.000000000 -0500
7 +++ glibc-2.2.5/sysdeps/alpha/dl-machine.h      2004-09-03 19:00:37.000000000 -0500
8 @@ -134,125 +134,126 @@
9  #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name, IMB)       \
10    extern void tramp_name (void);                               \
11    asm ( "\
12 -       .globl " #tramp_name "
13 -       .ent " #tramp_name "
14 -" #tramp_name ":
15 -       lda     $sp, -44*8($sp)
16 -       .frame  $sp, 44*8, $26
17 -       /* Preserve all integer registers that C normally doesn't.  */
18 -       stq     $26, 0*8($sp)
19 -       stq     $0, 1*8($sp)
20 -       stq     $1, 2*8($sp)
21 -       stq     $2, 3*8($sp)
22 -       stq     $3, 4*8($sp)
23 -       stq     $4, 5*8($sp)
24 -       stq     $5, 6*8($sp)
25 -       stq     $6, 7*8($sp)
26 -       stq     $7, 8*8($sp)
27 -       stq     $8, 9*8($sp)
28 -       stq     $16, 10*8($sp)
29 -       stq     $17, 11*8($sp)
30 -       stq     $18, 12*8($sp)
31 -       stq     $19, 13*8($sp)
32 -       stq     $20, 14*8($sp)
33 -       stq     $21, 15*8($sp)
34 -       stq     $22, 16*8($sp)
35 -       stq     $23, 17*8($sp)
36 -       stq     $24, 18*8($sp)
37 -       stq     $25, 19*8($sp)
38 -       stq     $29, 20*8($sp)
39 -       stt     $f0, 21*8($sp)
40 -       stt     $f1, 22*8($sp)
41 -       stt     $f10, 23*8($sp)
42 -       stt     $f11, 24*8($sp)
43 -       stt     $f12, 25*8($sp)
44 -       stt     $f13, 26*8($sp)
45 -       stt     $f14, 27*8($sp)
46 -       stt     $f15, 28*8($sp)
47 -       stt     $f16, 29*8($sp)
48 -       stt     $f17, 30*8($sp)
49 -       stt     $f18, 31*8($sp)
50 -       stt     $f19, 32*8($sp)
51 -       stt     $f20, 33*8($sp)
52 -       stt     $f21, 34*8($sp)
53 -       stt     $f22, 35*8($sp)
54 -       stt     $f23, 36*8($sp)
55 -       stt     $f24, 37*8($sp)
56 -       stt     $f25, 38*8($sp)
57 -       stt     $f26, 39*8($sp)
58 -       stt     $f27, 40*8($sp)
59 -       stt     $f28, 41*8($sp)
60 -       stt     $f29, 42*8($sp)
61 -       stt     $f30, 43*8($sp)
62 -       .mask   0x27ff01ff, -44*8
63 -       .fmask  0xfffffc03, -(44-21)*8
64 -       /* Set up our $gp */
65 -       br      $gp, .+4
66 -       ldgp    $gp, 0($gp)
67 -       .prologue 0
68 -       /* Set up the arguments for fixup: */
69 -       /* $16 = link_map out of plt0 */
70 -       /* $17 = offset of reloc entry = ($28 - $27 - 20) /12 * 24 */
71 -       /* $18 = return address */
72 -       subq    $28, $27, $17
73 -       ldq     $16, 8($27)
74 -       subq    $17, 20, $17
75 -       mov     $26, $18
76 -       addq    $17, $17, $17
77 -       /* Do the fixup */
78 -       bsr     $26, " ASM_ALPHA_NG_SYMBOL_PREFIX #fixup_name "..ng
79 -       /* Move the destination address into position.  */
80 -       mov     $0, $27
81 -       /* Restore program registers.  */
82 -       ldq     $26, 0*8($sp)
83 -       ldq     $0, 1*8($sp)
84 -       ldq     $1, 2*8($sp)
85 -       ldq     $2, 3*8($sp)
86 -       ldq     $3, 4*8($sp)
87 -       ldq     $4, 5*8($sp)
88 -       ldq     $5, 6*8($sp)
89 -       ldq     $6, 7*8($sp)
90 -       ldq     $7, 8*8($sp)
91 -       ldq     $8, 9*8($sp)
92 -       ldq     $16, 10*8($sp)
93 -       ldq     $17, 11*8($sp)
94 -       ldq     $18, 12*8($sp)
95 -       ldq     $19, 13*8($sp)
96 -       ldq     $20, 14*8($sp)
97 -       ldq     $21, 15*8($sp)
98 -       ldq     $22, 16*8($sp)
99 -       ldq     $23, 17*8($sp)
100 -       ldq     $24, 18*8($sp)
101 -       ldq     $25, 19*8($sp)
102 -       ldq     $29, 20*8($sp)
103 -       ldt     $f0, 21*8($sp)
104 -       ldt     $f1, 22*8($sp)
105 -       ldt     $f10, 23*8($sp)
106 -       ldt     $f11, 24*8($sp)
107 -       ldt     $f12, 25*8($sp)
108 -       ldt     $f13, 26*8($sp)
109 -       ldt     $f14, 27*8($sp)
110 -       ldt     $f15, 28*8($sp)
111 -       ldt     $f16, 29*8($sp)
112 -       ldt     $f17, 30*8($sp)
113 -       ldt     $f18, 31*8($sp)
114 -       ldt     $f19, 32*8($sp)
115 -       ldt     $f20, 33*8($sp)
116 -       ldt     $f21, 34*8($sp)
117 -       ldt     $f22, 35*8($sp)
118 -       ldt     $f23, 36*8($sp)
119 -       ldt     $f24, 37*8($sp)
120 -       ldt     $f25, 38*8($sp)
121 -       ldt     $f26, 39*8($sp)
122 -       ldt     $f27, 40*8($sp)
123 -       ldt     $f28, 41*8($sp)
124 -       ldt     $f29, 42*8($sp)
125 -       ldt     $f30, 43*8($sp)
126 -       /* Flush the Icache after having modified the .plt code.  */
127 -       " #IMB "
128 -       /* Clean up and turn control to the destination */
129 -       lda     $sp, 44*8($sp)
130 -       jmp     $31, ($27)
131 +       .globl " #tramp_name "                                  \n\
132 +       .ent " #tramp_name "                                    \n\
133 +" #tramp_name ":                                               \n\
134 +       lda     $sp, -44*8($sp)                                 \n\
135 +       .frame  $sp, 44*8, $26                                  \n\
136 +       /* Preserve all integer registers that C normally       \n\
137 +          doesn't.  */                                         \n\
138 +       stq     $26, 0*8($sp)                                   \n\
139 +       stq     $0, 1*8($sp)                                    \n\
140 +       stq     $1, 2*8($sp)                                    \n\
141 +       stq     $2, 3*8($sp)                                    \n\
142 +       stq     $3, 4*8($sp)                                    \n\
143 +       stq     $4, 5*8($sp)                                    \n\
144 +       stq     $5, 6*8($sp)                                    \n\
145 +       stq     $6, 7*8($sp)                                    \n\
146 +       stq     $7, 8*8($sp)                                    \n\
147 +       stq     $8, 9*8($sp)                                    \n\
148 +       stq     $16, 10*8($sp)                                  \n\
149 +       stq     $17, 11*8($sp)                                  \n\
150 +       stq     $18, 12*8($sp)                                  \n\
151 +       stq     $19, 13*8($sp)                                  \n\
152 +       stq     $20, 14*8($sp)                                  \n\
153 +       stq     $21, 15*8($sp)                                  \n\
154 +       stq     $22, 16*8($sp)                                  \n\
155 +       stq     $23, 17*8($sp)                                  \n\
156 +       stq     $24, 18*8($sp)                                  \n\
157 +       stq     $25, 19*8($sp)                                  \n\
158 +       stq     $29, 20*8($sp)                                  \n\
159 +       stt     $f0, 21*8($sp)                                  \n\
160 +       stt     $f1, 22*8($sp)                                  \n\
161 +       stt     $f10, 23*8($sp)                                 \n\
162 +       stt     $f11, 24*8($sp)                                 \n\
163 +       stt     $f12, 25*8($sp)                                 \n\
164 +       stt     $f13, 26*8($sp)                                 \n\
165 +       stt     $f14, 27*8($sp)                                 \n\
166 +       stt     $f15, 28*8($sp)                                 \n\
167 +       stt     $f16, 29*8($sp)                                 \n\
168 +       stt     $f17, 30*8($sp)                                 \n\
169 +       stt     $f18, 31*8($sp)                                 \n\
170 +       stt     $f19, 32*8($sp)                                 \n\
171 +       stt     $f20, 33*8($sp)                                 \n\
172 +       stt     $f21, 34*8($sp)                                 \n\
173 +       stt     $f22, 35*8($sp)                                 \n\
174 +       stt     $f23, 36*8($sp)                                 \n\
175 +       stt     $f24, 37*8($sp)                                 \n\
176 +       stt     $f25, 38*8($sp)                                 \n\
177 +       stt     $f26, 39*8($sp)                                 \n\
178 +       stt     $f27, 40*8($sp)                                 \n\
179 +       stt     $f28, 41*8($sp)                                 \n\
180 +       stt     $f29, 42*8($sp)                                 \n\
181 +       stt     $f30, 43*8($sp)                                 \n\
182 +       .mask   0x27ff01ff, -44*8                               \n\
183 +       .fmask  0xfffffc03, -(44-21)*8                          \n\
184 +       /* Set up our $gp */                                    \n\
185 +       br      $gp, .+4                                        \n\
186 +       ldgp    $gp, 0($gp)                                     \n\
187 +       .prologue 0                                             \n\
188 +       /* Set up the arguments for fixup: */                   \n\
189 +       /* $16 = link_map out of plt0 */                        \n\
190 +       /* $17 = offset of reloc entry = ($28 - $27 - 20) /12 * 24 */\n\
191 +       /* $18 = return address */                              \n\
192 +       subq    $28, $27, $17                                   \n\
193 +       ldq     $16, 8($27)                                     \n\
194 +       subq    $17, 20, $17                                    \n\
195 +       mov     $26, $18                                        \n\
196 +       addq    $17, $17, $17                                   \n\
197 +       /* Do the fixup */                                      \n\
198 +       bsr     $26, " ASM_ALPHA_NG_SYMBOL_PREFIX #fixup_name "..ng\n\
199 +       /* Move the destination address into position.  */      \n\
200 +       mov     $0, $27                                         \n\
201 +       /* Restore program registers.  */                       \n\
202 +       ldq     $26, 0*8($sp)                                   \n\
203 +       ldq     $0, 1*8($sp)                                    \n\
204 +       ldq     $1, 2*8($sp)                                    \n\
205 +       ldq     $2, 3*8($sp)                                    \n\
206 +       ldq     $3, 4*8($sp)                                    \n\
207 +       ldq     $4, 5*8($sp)                                    \n\
208 +       ldq     $5, 6*8($sp)                                    \n\
209 +       ldq     $6, 7*8($sp)                                    \n\
210 +       ldq     $7, 8*8($sp)                                    \n\
211 +       ldq     $8, 9*8($sp)                                    \n\
212 +       ldq     $16, 10*8($sp)                                  \n\
213 +       ldq     $17, 11*8($sp)                                  \n\
214 +       ldq     $18, 12*8($sp)                                  \n\
215 +       ldq     $19, 13*8($sp)                                  \n\
216 +       ldq     $20, 14*8($sp)                                  \n\
217 +       ldq     $21, 15*8($sp)                                  \n\
218 +       ldq     $22, 16*8($sp)                                  \n\
219 +       ldq     $23, 17*8($sp)                                  \n\
220 +       ldq     $24, 18*8($sp)                                  \n\
221 +       ldq     $25, 19*8($sp)                                  \n\
222 +       ldq     $29, 20*8($sp)                                  \n\
223 +       ldt     $f0, 21*8($sp)                                  \n\
224 +       ldt     $f1, 22*8($sp)                                  \n\
225 +       ldt     $f10, 23*8($sp)                                 \n\
226 +       ldt     $f11, 24*8($sp)                                 \n\
227 +       ldt     $f12, 25*8($sp)                                 \n\
228 +       ldt     $f13, 26*8($sp)                                 \n\
229 +       ldt     $f14, 27*8($sp)                                 \n\
230 +       ldt     $f15, 28*8($sp)                                 \n\
231 +       ldt     $f16, 29*8($sp)                                 \n\
232 +       ldt     $f17, 30*8($sp)                                 \n\
233 +       ldt     $f18, 31*8($sp)                                 \n\
234 +       ldt     $f19, 32*8($sp)                                 \n\
235 +       ldt     $f20, 33*8($sp)                                 \n\
236 +       ldt     $f21, 34*8($sp)                                 \n\
237 +       ldt     $f22, 35*8($sp)                                 \n\
238 +       ldt     $f23, 36*8($sp)                                 \n\
239 +       ldt     $f24, 37*8($sp)                                 \n\
240 +       ldt     $f25, 38*8($sp)                                 \n\
241 +       ldt     $f26, 39*8($sp)                                 \n\
242 +       ldt     $f27, 40*8($sp)                                 \n\
243 +       ldt     $f28, 41*8($sp)                                 \n\
244 +       ldt     $f29, 42*8($sp)                                 \n\
245 +       ldt     $f30, 43*8($sp)                                 \n\
246 +       /* Flush the Icache after having modified the .plt code.  */\n\
247 +       " #IMB "                                                \n\
248 +       /* Clean up and turn control to the destination */      \n\
249 +       lda     $sp, 44*8($sp)                                  \n\
250 +       jmp     $31, ($27)                                      \n\
251         .end " #tramp_name)
252  
253  #ifndef PROF
254 @@ -270,85 +271,87 @@
255     its return value is the user program's entry point.  */
256  
257  #define RTLD_START asm ("\
258 -.text
259 -       .set at
260 -       .globl _start
261 -       .ent _start
262 -_start:
263 -       br      $gp, 0f
264 -0:     ldgp    $gp, 0($gp)
265 -       .prologue 0
266 -       /* Pass pointer to argument block to _dl_start.  */
267 -       mov     $sp, $16
268 -       bsr     $26, "ASM_ALPHA_NG_SYMBOL_PREFIX"_dl_start..ng
269 -       .end _start
270 -       /* FALLTHRU */
271 -       .globl _dl_start_user
272 -       .ent _dl_start_user
273 -_dl_start_user:
274 -       .frame $30,0,$31,0
275 -       .prologue 0
276 -       /* Save the user entry point address in s0.  */
277 -       mov     $0, $9
278 -       /* Store the highest stack address.  */
279 -       stq     $30, __libc_stack_end
280 -       /* See if we were run as a command with the executable file
281 -          name as an extra leading argument.  */
282 -       ldl     $1, _dl_skip_args
283 -       bne     $1, $fixup_stack
284 -$fixup_stack_ret:
285 -       /* The special initializer gets called with the stack just
286 -          as the application's entry point will see it; it can
287 -          switch stacks if it moves these contents over.  */
288 -" RTLD_START_SPECIAL_INIT "
289 -       /* Call _dl_init(_dl_loaded, argc, argv, envp) to run initializers.  */
290 -       ldq     $16, _dl_loaded
291 -       ldq     $17, 0($sp)
292 -       lda     $18, 8($sp)
293 -       s8addq  $17, 8, $19
294 -       addq    $19, $18, $19
295 -       jsr     $26, _dl_init
296 -       /* Pass our finalizer function to the user in $0. */
297 -       lda     $0, _dl_fini
298 -       /* Jump to the user's entry point.  */
299 -       mov     $9, $27
300 -       jmp     ($9)
301 -$fixup_stack:
302 -       /* Adjust the stack pointer to skip _dl_skip_args words.  This
303 -          involves copying everything down, since the stack pointer must
304 -          always be 16-byte aligned.  */
305 -       ldq     $2, 0($sp)
306 -       ldq     $5, _dl_argv
307 -       subq    $31, $1, $6
308 -       subq    $2, $1, $2
309 -       s8addq  $6, $5, $5
310 -       mov     $sp, $4
311 -       s8addq  $1, $sp, $3
312 -       stq     $2, 0($sp)
313 -       stq     $5, _dl_argv
314 -       /* Copy down argv.  */
315 -0:     ldq     $5, 8($3)
316 -       addq    $4, 8, $4
317 -       addq    $3, 8, $3
318 -       stq     $5, 0($4)
319 -       bne     $5, 0b
320 -       /* Copy down envp.  */
321 -1:     ldq     $5, 8($3)
322 -       addq    $4, 8, $4
323 -       addq    $3, 8, $3
324 -       stq     $5, 0($4)
325 -       bne     $5, 1b
326 -       /* Copy down auxiliary table.  */
327 -2:     ldq     $5, 8($3)
328 -       ldq     $6, 16($3)
329 -       addq    $4, 16, $4
330 -       addq    $3, 16, $3
331 -       stq     $5, -8($4)
332 -       stq     $6, 0($4)
333 -       bne     $5, 2b
334 -       br      $fixup_stack_ret
335 -       .end _dl_start_user
336 -       .set noat
337 +.text                                                          \n\
338 +       .set at                                                 \n\
339 +       .globl _start                                           \n\
340 +       .ent _start                                             \n\
341 +_start:                                                                \n\
342 +       br      $gp, 0f                                         \n\
343 +0:     ldgp    $gp, 0($gp)                                     \n\
344 +       .prologue 0                                             \n\
345 +       /* Pass pointer to argument block to _dl_start.  */     \n\
346 +       mov     $sp, $16                                        \n\
347 +       bsr     $26, "ASM_ALPHA_NG_SYMBOL_PREFIX"_dl_start..ng  \n\
348 +       .end _start                                             \n\
349 +       /* FALLTHRU */                                          \n\
350 +       .globl _dl_start_user                                   \n\
351 +       .ent _dl_start_user                                     \n\
352 +_dl_start_user:                                                        \n\
353 +       .frame $30,0,$31,0                                      \n\
354 +       .prologue 0                                             \n\
355 +       /* Save the user entry point address in s0.  */         \n\
356 +       mov     $0, $9                                          \n\
357 +       /* Store the highest stack address.  */                 \n\
358 +       stq     $30, __libc_stack_end                           \n\
359 +       /* See if we were run as a command with the executable  \n\
360 +          file name as an extra leading argument.  */          \n\
361 +       ldl     $1, _dl_skip_args                               \n\
362 +       bne     $1, $fixup_stack                                \n\
363 +$fixup_stack_ret:                                              \n\
364 +       /* The special initializer gets called with the stack   \n\
365 +          just as the application's entry point will see it;   \n\
366 +          it can switch stacks if it moves these contents      \n\
367 +          over.  */                                            \n\
368 +" RTLD_START_SPECIAL_INIT "                                    \n\
369 +       /* Call _dl_init(_dl_loaded, argc, argv, envp) to run   \n\
370 +          initializers.  */                                    \n\
371 +       ldq     $16, _dl_loaded                                 \n\
372 +       ldq     $17, 0($sp)                                     \n\
373 +       lda     $18, 8($sp)                                     \n\
374 +       s8addq  $17, 8, $19                                     \n\
375 +       addq    $19, $18, $19                                   \n\
376 +       jsr     $26, _dl_init                                   \n\
377 +       /* Pass our finalizer function to the user in $0. */    \n\
378 +       lda     $0, _dl_fini                                    \n\
379 +       /* Jump to the user's entry point.  */                  \n\
380 +       mov     $9, $27                                         \n\
381 +       jmp     ($9)                                            \n\
382 +$fixup_stack:                                                  \n\
383 +       /* Adjust the stack pointer to skip _dl_skip_args words.\n\
384 +          This involves copying everything down, since the     \n\
385 +          stack pointer must always be 16-byte aligned.  */    \n\
386 +       ldq     $2, 0($sp)                                      \n\
387 +       ldq     $5, _dl_argv                                    \n\
388 +       subq    $31, $1, $6                                     \n\
389 +       subq    $2, $1, $2                                      \n\
390 +       s8addq  $6, $5, $5                                      \n\
391 +       mov     $sp, $4                                         \n\
392 +       s8addq  $1, $sp, $3                                     \n\
393 +       stq     $2, 0($sp)                                      \n\
394 +       stq     $5, _dl_argv                                    \n\
395 +       /* Copy down argv.  */                                  \n\
396 +0:     ldq     $5, 8($3)                                       \n\
397 +       addq    $4, 8, $4                                       \n\
398 +       addq    $3, 8, $3                                       \n\
399 +       stq     $5, 0($4)                                       \n\
400 +       bne     $5, 0b                                          \n\
401 +       /* Copy down envp.  */                                  \n\
402 +1:     ldq     $5, 8($3)                                       \n\
403 +       addq    $4, 8, $4                                       \n\
404 +       addq    $3, 8, $3                                       \n\
405 +       stq     $5, 0($4)                                       \n\
406 +       bne     $5, 1b                                          \n\
407 +       /* Copy down auxiliary table.  */                       \n\
408 +2:     ldq     $5, 8($3)                                       \n\
409 +       ldq     $6, 16($3)                                      \n\
410 +       addq    $4, 16, $4                                      \n\
411 +       addq    $3, 16, $3                                      \n\
412 +       stq     $5, -8($4)                                      \n\
413 +       stq     $6, 0($4)                                       \n\
414 +       bne     $5, 2b                                          \n\
415 +       br      $fixup_stack_ret                                \n\
416 +       .end _dl_start_user                                     \n\
417 +       .set noat                                               \n\
418  .previous");
419  
420  #ifndef RTLD_START_SPECIAL_INIT