diff options
| author | John Voltz <john.voltz@gmail.com> | 2008-03-06 18:50:01 +0000 | 
|---|---|---|
| committer | John Voltz <john.voltz@gmail.com> | 2008-03-06 18:50:01 +0000 | 
| commit | 3ab16b1fd65533d032008d409e0026fe2be43182 (patch) | |
| tree | 09249bf618ff8facb2d50a776850dbf0acc672dc /toolchain/uClibc/uClibc-0.9.29-load-got-pointer-at-the-beginning-of-init-and-fini.patch | |
| parent | f7e1c58a6cac1ad817bf1dee6f360dd206c54fc6 (diff) | |
| download | buildroot-novena-3ab16b1fd65533d032008d409e0026fe2be43182.tar.gz buildroot-novena-3ab16b1fd65533d032008d409e0026fe2be43182.zip  | |
added and removed uclibc patches
Diffstat (limited to 'toolchain/uClibc/uClibc-0.9.29-load-got-pointer-at-the-beginning-of-init-and-fini.patch')
| -rw-r--r-- | toolchain/uClibc/uClibc-0.9.29-load-got-pointer-at-the-beginning-of-init-and-fini.patch | 68 | 
1 files changed, 0 insertions, 68 deletions
diff --git a/toolchain/uClibc/uClibc-0.9.29-load-got-pointer-at-the-beginning-of-init-and-fini.patch b/toolchain/uClibc/uClibc-0.9.29-load-got-pointer-at-the-beginning-of-init-and-fini.patch deleted file mode 100644 index 27aa5a59c..000000000 --- a/toolchain/uClibc/uClibc-0.9.29-load-got-pointer-at-the-beginning-of-init-and-fini.patch +++ /dev/null @@ -1,68 +0,0 @@ -From: Haavard Skinnemoen <hskinnemoen@atmel.com> -Date: Wed, 19 Sep 2007 10:03:35 +0200 -Subject: [Avr-gnu-toolchain] [uClibc PATCH] Load GOT pointer at the -	beginning of .init and .fini - -I don't know why this seems to have worked before, but the .init and -.fini sections typically consist of a bunch of mcalls using r6 as the -base pointer. This can cause "interesting" behaviour when r6 hasn't -been initialized to point to the GOT. - -Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> ---- - libc/sysdeps/linux/avr32/crti.S |   15 ++++++++++++--- - libc/sysdeps/linux/avr32/crtn.S |    4 ++-- - 2 files changed, 14 insertions(+), 5 deletions(-) - -diff --git a/libc/sysdeps/linux/avr32/crti.S b/libc/sysdeps/linux/avr32/crti.S -index 3e132d0..660f47c 100644 ---- a/libc/sysdeps/linux/avr32/crti.S -+++ b/libc/sysdeps/linux/avr32/crti.S -@@ -4,14 +4,23 @@ - 	.global	_init - 	.type	_init, @function - _init: --	/* Use a four-byte instruction to avoid NOPs */ --	stm	--sp, r0-r7,lr -+	stm	--sp, r6, lr -+	lddpc	r6, 2f -+1:	rsub	r6, pc -+	rjmp	3f - 	.align	2 -+2:	.long	1b - _GLOBAL_OFFSET_TABLE_ -+3: -  - 	.section .fini - 	.align	2 - 	.global	_fini - 	.type	_fini, @function - _fini: --	stm	--sp, r0-r7,lr -+	stm	--sp, r6, lr -+	lddpc	r6, 2f -+1:	rsub	r6, pc -+	rjmp	3f - 	.align	2 -+2:	.long	1b - _GLOBAL_OFFSET_TABLE_ -+3: -diff --git a/libc/sysdeps/linux/avr32/crtn.S b/libc/sysdeps/linux/avr32/crtn.S -index 577adcc..f7d1040 100644 ---- a/libc/sysdeps/linux/avr32/crtn.S -+++ b/libc/sysdeps/linux/avr32/crtn.S -@@ -3,12 +3,12 @@ - 	.align	2 - 	.global	_init - 	.type	_init, @function --	ldm	sp++, r0-r7,pc -+	ldm	sp++, r6, pc - 	.size	_init, . - _init -  - 	.section .fini - 	.align	2 - 	.global _fini - 	.type	_fini, @function --	ldm	sp++, r0-r7,pc -+	ldm	sp++, r6, pc - 	.size	_fini, . - _fini ---  -1.5.3.1  | 
