at91bootstrap: fix gcc-4.6.x overlap linker issue
PATCH 1/1 at91bootstrap: fix gcc-4.6.x overlap linker issue
--- ...at91bootstrap-1.16-gcc-4.6.x-ldscript-fix.patch | 53 ++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 boot/at91bootstrap/at91bootstrap-1.16-gcc-4.6.x-ldscript-fix.patch
boot/at91bootstrap/at91bootstrap-1.16-gcc-4.6.x-ldscript-fix.patch new file +47 -0
@@ -0,0 +1,53 @@ +From 5a094e959cd216c1be148effc624eb12e2083de9 Mon Sep 17 00:00:00 2001 +From: Gregory Hermant <[email protected]> +Date: Mon, 1 Oct 2012 16:54:43 +0200 +Subject: [PATCH] at91bootstrap-v1.16-ldscript-fix + +--- + crt0_gnu.S | 2 +- + elf32-littlearm.lds | 12 +++++++++++- + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/crt0_gnu.S b/crt0_gnu.S +index 002feef..ea6581f 100644 +--- a/crt0_gnu.S ++++ b/crt0_gnu.S +@@ -191,7 +191,7 @@ _go: + + .align + _lp_data: +- .word _etext ++ .word _edummy + .word _sdata + .word _edata + +diff --git a/elf32-littlearm.lds b/elf32-littlearm.lds +index a33952f..17b1646 100644 +--- a/elf32-littlearm.lds ++++ b/elf32-littlearm.lds +@@ -10,11 +10,21 @@ SECTIONS + *(.rodata) /* read-only data (constants) */ + *(.rodata*) + . = ALIGN(4); ++ *(.glue_7) ++ . = ALIGN(4); ++ *(.eh_frame) ++ . = ALIGN(4); + _etext = . ; + } + + /* collect all initialized .data sections */ +- .data : AT ( ADDR (.text) + SIZEOF (.text) ) { ++ /* .data : AT ( ADDR (.text) + SIZEOF (.text) ) { */ ++ . = ALIGN(4); ++ .dummy : { ++ _edummy = .; ++ } ++ ++ .data : AT (LOADADDR(.dummy)) { + _sdata = .; + *(.vectors) + *(.data) +-- +1.7.9.5 +
Signature · 1 line
1.7.9.5
PATCH 1/1 at91bootstrap: fix gcc-4.6.x overlap linker issue
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Gr?gory" == Gr?gory Hermant <[email protected]> writes:
Gr?gory> ---
Gr?gory> ...at91bootstrap-1.16-gcc-4.6.x-ldscript-fix.patch | 53 ++++++++++++++++++++
Gr?gory> 1 file changed, 53 insertions(+)
Gr?gory> create mode 100644 boot/at91bootstrap/at91bootstrap-1.16-gcc-4.6.x-ldscript-fix.patch
Gr?gory> diff --git a/boot/at91bootstrap/at91bootstrap-1.16-gcc-4.6.x-ldscript-fix.patch b/boot/at91bootstrap/at91bootstrap-1.16-gcc-4.6.x-ldscript-fix.patch Gr?gory> new file mode 100644
Gr?gory> index 0000000..56947c7
Gr?gory> --- /dev/null
Gr?gory> +++ b/boot/at91bootstrap/at91bootstrap-1.16-gcc-4.6.x-ldscript-fix.patch
Gr?gory> @@ -0,0 +1,53 @@
Gr?gory> +From 5a094e959cd216c1be148effc624eb12e2083de9 Mon Sep 17 00:00:00 2001
Gr?gory> +From: Gregory Hermant <[email protected]>
Gr?gory> +Date: Mon, 1 Oct 2012 16:54:43 +0200
Gr?gory> +Subject: [PATCH] at91bootstrap-v1.16-ldscript-fix
Gr?gory> +
Gr?gory> +---
Gr?gory> + crt0_gnu.S | 2 +- Gr?gory> + elf32-littlearm.lds | 12 +++++++++++- Gr?gory> + 2 files changed, 12 insertions(+), 2 deletions(-) Gr?gory> + Gr?gory> +diff --git a/crt0_gnu.S b/crt0_gnu.S Gr?gory> +index 002feef..ea6581f 100644 Gr?gory> +--- a/crt0_gnu.S Gr?gory> ++++ b/crt0_gnu.S Gr?gory> +@@ -191,7 +191,7 @@ _go: Gr?gory> + + .align Gr?gory> + _lp_data: Gr?gory> +- .word _etext Gr?gory> ++ .word _edummy Gr?gory> + .word _sdata Gr?gory> + .word _edata
Gr?gory> + +diff --git a/elf32-littlearm.lds b/elf32-littlearm.lds Gr?gory> +index a33952f..17b1646 100644
Gr?gory> +--- a/elf32-littlearm.lds
Gr?gory> ++++ b/elf32-littlearm.lds
Gr?gory> +@@ -10,11 +10,21 @@ SECTIONS
Gr?gory> + *(.rodata) /* read-only data (constants) */
Gr?gory> + *(.rodata*)
Gr?gory> + . = ALIGN(4);
Gr?gory> ++ *(.glue_7)
Gr?gory> ++ . = ALIGN(4);
Gr?gory> ++ *(.eh_frame)
Gr?gory> ++ . = ALIGN(4);
Is all of that needed? Isn't it just that gcc 4.6+ adds a bunch of .text.<blah> sections? I've fixed it up for an internal tree at work by just doing:
elf32-littlearm.lds +1 -1
@@ -6,7 +6,7 @@ SECTIONS . = ALIGN(4); .text : { _stext = .; - *(.text) + *(.text*) *(.rodata) /* read-only data (constants) */ *(.rodata*) . = ALIGN(4);
Signature · 1 line
Bye, Peter Korsgaard
PATCH 1/1 at91bootstrap: fix gcc-4.6.x overlap linker issue
Hello peter,
You are right there's no need to add the code below in the linker script to fix this issue. Thanks for your time.
gregory
Le 08/10/2012 22:04, Peter Korsgaard a ?crit :
Quoted 65 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Gr?gory" == Gr?gory Hermant <[email protected]> writes:
Gr?gory> ---
Gr?gory> ...at91bootstrap-1.16-gcc-4.6.x-ldscript-fix.patch | 53 ++++++++++++++++++++Gr?gory> 1 file changed, 53 insertions(+)
Gr?gory> create mode 100644boot/at91bootstrap/at91bootstrap-1.16-gcc-4.6.x-ldscript-fix.patchGr?gory> diff --git
a/boot/at91bootstrap/at91bootstrap-1.16-gcc-4.6.x-ldscript-fix.patchb/boot/at91bootstrap/at91bootstrap-1.16-gcc-4.6.x-ldscript-fix.patchGr?gory> new file mode 100644
Gr?gory> index 0000000..56947c7
Gr?gory> ---/dev/null
Gr?gory> +++b/boot/at91bootstrap/at91bootstrap-1.16-gcc-4.6.x-ldscript-fix.patch
Gr?gory> @@ -0,0 +1,53 @@
Gr?gory> +From5a094e959cd216c1be148effc624eb12e2083de9Mon Sep 17 00:00:00 2001
Gr?gory> +From: Gregory Hermant <[email protected]>
Gr?gory> +Date: Mon, 1 Oct 2012 16:54:43 +0200
Gr?gory> +Subject: [PATCH] at91bootstrap-v1.16-ldscript-fix
Gr?gory> +
Gr?gory> +---Gr?gory> + crt0_gnu.S | 2 +- Gr?gory> + elf32-littlearm.lds | 12 +++++++++++- Gr?gory> + 2 files changed, 12 insertions(+), 2 deletions(-) Gr?gory> + Gr?gory> +diff --git a/crt0_gnu.S b/crt0_gnu.S Gr?gory> +index 002feef..ea6581f 100644 Gr?gory> +--- a/crt0_gnu.S Gr?gory> ++++ b/crt0_gnu.S Gr?gory> +@@ -191,7 +191,7 @@ _go: Gr?gory> + + .align Gr?gory> + _lp_data: Gr?gory> +- .word _etext Gr?gory> ++ .word _edummy Gr?gory> + .word _sdata Gr?gory> + .word _edataGr?gory> + +diff --git
a/elf32-littlearm.ldsb/elf32-littlearm.ldsGr?gory> +index a33952f..17b1646 100644
Gr?gory> +---a/elf32-littlearm.lds
Gr?gory> ++++b/elf32-littlearm.lds
Gr?gory> +@@ -10,11 +10,21 @@ SECTIONS
Gr?gory> + *(.rodata) /* read-only data (constants) */
Gr?gory> + *(.rodata*)
Gr?gory> + . = ALIGN(4);
Gr?gory> ++ *(.glue_7)
Gr?gory> ++ . = ALIGN(4);
Gr?gory> ++ *(.eh_frame)
Gr?gory> ++ . = ALIGN(4);Is all of that needed? Isn't it just that gcc 4.6+ adds a bunch of .text.<blah> sections? I've fixed it up for an internal tree at work by just doing:
elf32-littlearm.lds +1
-1@@ -6,7 +6,7 @@ SECTIONS . = ALIGN(4); .text : { _stext = .; - *(.text) + *(.text*) *(.rodata) /* read-only data (constants) */ *(.rodata*) . = ALIGN(4);