⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dl-machine-alpha.patch

📁 linux下编译交叉工具链的工具源码
💻 PATCH
字号:
From http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/alpha/dl-machine.h.diff?r1=1.56&r2=1.57&cvsroot=glibc(minus first hunk)Lets glibc-2.2.5 compile with gcc-3.3===================================================================RCS file: /cvs/glibc/libc/sysdeps/alpha/dl-machine.h,vretrieving revision 1.56retrieving revision 1.57diff -u -r1.56 -r1.57--- libc/sysdeps/alpha/dl-machine.h	2001/12/12 00:10:27	1.56+++ libc/sysdeps/alpha/dl-machine.h	2001/12/31 17:33:59	1.57@@ -156,125 +157,126 @@ #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name, IMB)	\   extern void tramp_name (void);				\   asm ( "\-	.globl " #tramp_name "-	.ent " #tramp_name "-" #tramp_name ":-	lda	$sp, -44*8($sp)-	.frame	$sp, 44*8, $26-	/* Preserve all integer registers that C normally doesn't.  */-	stq	$26, 0*8($sp)-	stq	$0, 1*8($sp)-	stq	$1, 2*8($sp)-	stq	$2, 3*8($sp)-	stq	$3, 4*8($sp)-	stq	$4, 5*8($sp)-	stq	$5, 6*8($sp)-	stq	$6, 7*8($sp)-	stq	$7, 8*8($sp)-	stq	$8, 9*8($sp)-	stq	$16, 10*8($sp)-	stq	$17, 11*8($sp)-	stq	$18, 12*8($sp)-	stq	$19, 13*8($sp)-	stq	$20, 14*8($sp)-	stq	$21, 15*8($sp)-	stq	$22, 16*8($sp)-	stq	$23, 17*8($sp)-	stq	$24, 18*8($sp)-	stq	$25, 19*8($sp)-	stq	$29, 20*8($sp)-	stt	$f0, 21*8($sp)-	stt	$f1, 22*8($sp)-	stt	$f10, 23*8($sp)-	stt	$f11, 24*8($sp)-	stt	$f12, 25*8($sp)-	stt	$f13, 26*8($sp)-	stt	$f14, 27*8($sp)-	stt	$f15, 28*8($sp)-	stt	$f16, 29*8($sp)-	stt	$f17, 30*8($sp)-	stt	$f18, 31*8($sp)-	stt	$f19, 32*8($sp)-	stt	$f20, 33*8($sp)-	stt	$f21, 34*8($sp)-	stt	$f22, 35*8($sp)-	stt	$f23, 36*8($sp)-	stt	$f24, 37*8($sp)-	stt	$f25, 38*8($sp)-	stt	$f26, 39*8($sp)-	stt	$f27, 40*8($sp)-	stt	$f28, 41*8($sp)-	stt	$f29, 42*8($sp)-	stt	$f30, 43*8($sp)-	.mask	0x27ff01ff, -44*8-	.fmask	0xfffffc03, -(44-21)*8-	/* Set up our $gp */-	br	$gp, .+4-	ldgp	$gp, 0($gp)-	.prologue 0-	/* Set up the arguments for fixup: */-	/* $16 = link_map out of plt0 */-	/* $17 = offset of reloc entry = ($28 - $27 - 20) /12 * 24 */-	/* $18 = return address */-	subq	$28, $27, $17-	ldq	$16, 8($27)-	subq	$17, 20, $17-	mov	$26, $18-	addq	$17, $17, $17-	/* Do the fixup */-	bsr	$26, " ASM_ALPHA_NG_SYMBOL_PREFIX #fixup_name "..ng-	/* Move the destination address into position.  */-	mov	$0, $27-	/* Restore program registers.  */-	ldq	$26, 0*8($sp)-	ldq	$0, 1*8($sp)-	ldq	$1, 2*8($sp)-	ldq	$2, 3*8($sp)-	ldq	$3, 4*8($sp)-	ldq	$4, 5*8($sp)-	ldq	$5, 6*8($sp)-	ldq	$6, 7*8($sp)-	ldq	$7, 8*8($sp)-	ldq	$8, 9*8($sp)-	ldq	$16, 10*8($sp)-	ldq	$17, 11*8($sp)-	ldq	$18, 12*8($sp)-	ldq	$19, 13*8($sp)-	ldq	$20, 14*8($sp)-	ldq	$21, 15*8($sp)-	ldq	$22, 16*8($sp)-	ldq	$23, 17*8($sp)-	ldq	$24, 18*8($sp)-	ldq	$25, 19*8($sp)-	ldq	$29, 20*8($sp)-	ldt	$f0, 21*8($sp)-	ldt	$f1, 22*8($sp)-	ldt	$f10, 23*8($sp)-	ldt	$f11, 24*8($sp)-	ldt	$f12, 25*8($sp)-	ldt	$f13, 26*8($sp)-	ldt	$f14, 27*8($sp)-	ldt	$f15, 28*8($sp)-	ldt	$f16, 29*8($sp)-	ldt	$f17, 30*8($sp)-	ldt	$f18, 31*8($sp)-	ldt	$f19, 32*8($sp)-	ldt	$f20, 33*8($sp)-	ldt	$f21, 34*8($sp)-	ldt	$f22, 35*8($sp)-	ldt	$f23, 36*8($sp)-	ldt	$f24, 37*8($sp)-	ldt	$f25, 38*8($sp)-	ldt	$f26, 39*8($sp)-	ldt	$f27, 40*8($sp)-	ldt	$f28, 41*8($sp)-	ldt	$f29, 42*8($sp)-	ldt	$f30, 43*8($sp)-	/* Flush the Icache after having modified the .plt code.  */-	" #IMB "-	/* Clean up and turn control to the destination */-	lda	$sp, 44*8($sp)-	jmp	$31, ($27)+	.globl " #tramp_name "					\n\+	.ent " #tramp_name "					\n\+" #tramp_name ":						\n\+	lda	$sp, -44*8($sp)					\n\+	.frame	$sp, 44*8, $26					\n\+	/* Preserve all integer registers that C normally	\n\+	   doesn't.  */						\n\+	stq	$26, 0*8($sp)					\n\+	stq	$0, 1*8($sp)					\n\+	stq	$1, 2*8($sp)					\n\+	stq	$2, 3*8($sp)					\n\+	stq	$3, 4*8($sp)					\n\+	stq	$4, 5*8($sp)					\n\+	stq	$5, 6*8($sp)					\n\+	stq	$6, 7*8($sp)					\n\+	stq	$7, 8*8($sp)					\n\+	stq	$8, 9*8($sp)					\n\+	stq	$16, 10*8($sp)					\n\+	stq	$17, 11*8($sp)					\n\+	stq	$18, 12*8($sp)					\n\+	stq	$19, 13*8($sp)					\n\+	stq	$20, 14*8($sp)					\n\+	stq	$21, 15*8($sp)					\n\+	stq	$22, 16*8($sp)					\n\+	stq	$23, 17*8($sp)					\n\+	stq	$24, 18*8($sp)					\n\+	stq	$25, 19*8($sp)					\n\+	stq	$29, 20*8($sp)					\n\+	stt	$f0, 21*8($sp)					\n\+	stt	$f1, 22*8($sp)					\n\+	stt	$f10, 23*8($sp)					\n\+	stt	$f11, 24*8($sp)					\n\+	stt	$f12, 25*8($sp)					\n\+	stt	$f13, 26*8($sp)					\n\+	stt	$f14, 27*8($sp)					\n\+	stt	$f15, 28*8($sp)					\n\+	stt	$f16, 29*8($sp)					\n\+	stt	$f17, 30*8($sp)					\n\+	stt	$f18, 31*8($sp)					\n\+	stt	$f19, 32*8($sp)					\n\+	stt	$f20, 33*8($sp)					\n\+	stt	$f21, 34*8($sp)					\n\+	stt	$f22, 35*8($sp)					\n\+	stt	$f23, 36*8($sp)					\n\+	stt	$f24, 37*8($sp)					\n\+	stt	$f25, 38*8($sp)					\n\+	stt	$f26, 39*8($sp)					\n\+	stt	$f27, 40*8($sp)					\n\+	stt	$f28, 41*8($sp)					\n\+	stt	$f29, 42*8($sp)					\n\+	stt	$f30, 43*8($sp)					\n\+	.mask	0x27ff01ff, -44*8				\n\+	.fmask	0xfffffc03, -(44-21)*8				\n\+	/* Set up our $gp */					\n\+	br	$gp, .+4					\n\+	ldgp	$gp, 0($gp)					\n\+	.prologue 0						\n\+	/* Set up the arguments for fixup: */			\n\+	/* $16 = link_map out of plt0 */			\n\+	/* $17 = offset of reloc entry = ($28 - $27 - 20) /12 * 24 */\n\+	/* $18 = return address */				\n\+	subq	$28, $27, $17					\n\+	ldq	$16, 8($27)					\n\+	subq	$17, 20, $17					\n\+	mov	$26, $18					\n\+	addq	$17, $17, $17					\n\+	/* Do the fixup */					\n\+	bsr	$26, " ASM_ALPHA_NG_SYMBOL_PREFIX #fixup_name "..ng\n\+	/* Move the destination address into position.  */	\n\+	mov	$0, $27						\n\+	/* Restore program registers.  */			\n\+	ldq	$26, 0*8($sp)					\n\+	ldq	$0, 1*8($sp)					\n\+	ldq	$1, 2*8($sp)					\n\+	ldq	$2, 3*8($sp)					\n\+	ldq	$3, 4*8($sp)					\n\+	ldq	$4, 5*8($sp)					\n\+	ldq	$5, 6*8($sp)					\n\+	ldq	$6, 7*8($sp)					\n\+	ldq	$7, 8*8($sp)					\n\+	ldq	$8, 9*8($sp)					\n\+	ldq	$16, 10*8($sp)					\n\+	ldq	$17, 11*8($sp)					\n\+	ldq	$18, 12*8($sp)					\n\+	ldq	$19, 13*8($sp)					\n\+	ldq	$20, 14*8($sp)					\n\+	ldq	$21, 15*8($sp)					\n\+	ldq	$22, 16*8($sp)					\n\+	ldq	$23, 17*8($sp)					\n\+	ldq	$24, 18*8($sp)					\n\+	ldq	$25, 19*8($sp)					\n\+	ldq	$29, 20*8($sp)					\n\+	ldt	$f0, 21*8($sp)					\n\+	ldt	$f1, 22*8($sp)					\n\+	ldt	$f10, 23*8($sp)					\n\+	ldt	$f11, 24*8($sp)					\n\+	ldt	$f12, 25*8($sp)					\n\+	ldt	$f13, 26*8($sp)					\n\+	ldt	$f14, 27*8($sp)					\n\+	ldt	$f15, 28*8($sp)					\n\+	ldt	$f16, 29*8($sp)					\n\+	ldt	$f17, 30*8($sp)					\n\+	ldt	$f18, 31*8($sp)					\n\+	ldt	$f19, 32*8($sp)					\n\+	ldt	$f20, 33*8($sp)					\n\+	ldt	$f21, 34*8($sp)					\n\+	ldt	$f22, 35*8($sp)					\n\+	ldt	$f23, 36*8($sp)					\n\+	ldt	$f24, 37*8($sp)					\n\+	ldt	$f25, 38*8($sp)					\n\+	ldt	$f26, 39*8($sp)					\n\+	ldt	$f27, 40*8($sp)					\n\+	ldt	$f28, 41*8($sp)					\n\+	ldt	$f29, 42*8($sp)					\n\+	ldt	$f30, 43*8($sp)					\n\+	/* Flush the Icache after having modified the .plt code.  */\n\+	" #IMB "						\n\+	/* Clean up and turn control to the destination */	\n\+	lda	$sp, 44*8($sp)					\n\+	jmp	$31, ($27)					\n\ 	.end " #tramp_name)  #ifndef PROF@@ -292,85 +294,87 @@    its return value is the user program's entry point.  */  #define RTLD_START asm ("\-.text-	.set at-	.globl _start-	.ent _start-_start:-	br	$gp, 0f-0:	ldgp	$gp, 0($gp)-	.prologue 0-	/* Pass pointer to argument block to _dl_start.  */-	mov	$sp, $16-	bsr	$26, "ASM_ALPHA_NG_SYMBOL_PREFIX"_dl_start..ng-	.end _start-	/* FALLTHRU */-	.globl _dl_start_user-	.ent _dl_start_user-_dl_start_user:-	.frame $30,0,$31,0-	.prologue 0-	/* Save the user entry point address in s0.  */-	mov	$0, $9-	/* Store the highest stack address.  */-	stq	$30, __libc_stack_end-	/* See if we were run as a command with the executable file-	   name as an extra leading argument.  */-	ldl	$1, _dl_skip_args-	bne	$1, $fixup_stack-$fixup_stack_ret:-	/* The special initializer gets called with the stack just-	   as the application's entry point will see it; it can-	   switch stacks if it moves these contents over.  */-" RTLD_START_SPECIAL_INIT "-	/* Call _dl_init(_dl_loaded, argc, argv, envp) to run initializers.  */-	ldq	$16, _dl_loaded-	ldq	$17, 0($sp)-	lda	$18, 8($sp)-	s8addq	$17, 8, $19-	addq	$19, $18, $19-	jsr	$26, _dl_init-	/* Pass our finalizer function to the user in $0. */-	lda	$0, _dl_fini-	/* Jump to the user's entry point.  */-	mov	$9, $27-	jmp	($9)-$fixup_stack:-	/* Adjust the stack pointer to skip _dl_skip_args words.  This-	   involves copying everything down, since the stack pointer must-	   always be 16-byte aligned.  */-	ldq	$2, 0($sp)-	ldq	$5, _dl_argv-	subq	$31, $1, $6-	subq	$2, $1, $2-	s8addq	$6, $5, $5-	mov	$sp, $4-	s8addq	$1, $sp, $3-	stq	$2, 0($sp)-	stq	$5, _dl_argv-	/* Copy down argv.  */-0:	ldq	$5, 8($3)-	addq	$4, 8, $4-	addq	$3, 8, $3-	stq	$5, 0($4)-	bne	$5, 0b-	/* Copy down envp.  */-1:	ldq	$5, 8($3)-	addq	$4, 8, $4-	addq	$3, 8, $3-	stq	$5, 0($4)-	bne	$5, 1b-	/* Copy down auxiliary table.  */-2:	ldq	$5, 8($3)-	ldq	$6, 16($3)-	addq	$4, 16, $4-	addq	$3, 16, $3-	stq	$5, -8($4)-	stq	$6, 0($4)-	bne	$5, 2b-	br	$fixup_stack_ret-	.end _dl_start_user-	.set noat+.text								\n\+	.set at							\n\+	.globl _start						\n\+	.ent _start						\n\+_start:								\n\+	br	$gp, 0f						\n\+0:	ldgp	$gp, 0($gp)					\n\+	.prologue 0						\n\+	/* Pass pointer to argument block to _dl_start.  */	\n\+	mov	$sp, $16					\n\+	bsr	$26, "ASM_ALPHA_NG_SYMBOL_PREFIX"_dl_start..ng	\n\+	.end _start						\n\+	/* FALLTHRU */						\n\+	.globl _dl_start_user					\n\+	.ent _dl_start_user					\n\+_dl_start_user:							\n\+	.frame $30,0,$31,0					\n\+	.prologue 0						\n\+	/* Save the user entry point address in s0.  */		\n\+	mov	$0, $9						\n\+	/* Store the highest stack address.  */			\n\+	stq	$30, __libc_stack_end				\n\+	/* See if we were run as a command with the executable	\n\+	   file name as an extra leading argument.  */		\n\+	ldl	$1, _dl_skip_args				\n\+	bne	$1, $fixup_stack				\n\+$fixup_stack_ret:						\n\+	/* The special initializer gets called with the stack	\n\+	   just as the application's entry point will see it;	\n\+	   it can switch stacks if it moves these contents	\n\+	   over.  */						\n\+" RTLD_START_SPECIAL_INIT "					\n\+	/* Call _dl_init(_dl_loaded, argc, argv, envp) to run	\n\+	   initializers.  */					\n\+	ldq	$16, _dl_loaded					\n\+	ldq	$17, 0($sp)					\n\+	lda	$18, 8($sp)					\n\+	s8addq	$17, 8, $19					\n\+	addq	$19, $18, $19					\n\+	jsr	$26, _dl_init					\n\+	/* Pass our finalizer function to the user in $0. */	\n\+	lda	$0, _dl_fini					\n\+	/* Jump to the user's entry point.  */			\n\+	mov	$9, $27						\n\+	jmp	($9)						\n\+$fixup_stack:							\n\+	/* Adjust the stack pointer to skip _dl_skip_args words.\n\+	   This involves copying everything down, since the	\n\+	   stack pointer must always be 16-byte aligned.  */	\n\+	ldq	$2, 0($sp)					\n\+	ldq	$5, _dl_argv					\n\+	subq	$31, $1, $6					\n\+	subq	$2, $1, $2					\n\+	s8addq	$6, $5, $5					\n\+	mov	$sp, $4						\n\+	s8addq	$1, $sp, $3					\n\+	stq	$2, 0($sp)					\n\+	stq	$5, _dl_argv					\n\+	/* Copy down argv.  */					\n\+0:	ldq	$5, 8($3)					\n\+	addq	$4, 8, $4					\n\+	addq	$3, 8, $3					\n\+	stq	$5, 0($4)					\n\+	bne	$5, 0b						\n\+	/* Copy down envp.  */					\n\+1:	ldq	$5, 8($3)					\n\+	addq	$4, 8, $4					\n\+	addq	$3, 8, $3					\n\+	stq	$5, 0($4)					\n\+	bne	$5, 1b						\n\+	/* Copy down auxiliary table.  */			\n\+2:	ldq	$5, 8($3)					\n\+	ldq	$6, 16($3)					\n\+	addq	$4, 16, $4					\n\+	addq	$3, 16, $3					\n\+	stq	$5, -8($4)					\n\+	stq	$6, 0($4)					\n\+	bne	$5, 2b						\n\+	br	$fixup_stack_ret				\n\+	.end _dl_start_user					\n\+	.set noat						\n\ .previous");  #ifndef RTLD_START_SPECIAL_INIT

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -