1
0
Fork 0
forked from len0rd/rockbox

FS#12397 : On targets which load .data directly into its final location and lack code for moving it, remove linker script trick which ignores section alignment and word-aligns the section instead.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31041 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Boris Gjenero 2011-11-22 17:34:01 +00:00
parent 706575f04b
commit e62dfa5225
11 changed files with 11 additions and 99 deletions

View file

@ -60,21 +60,13 @@ SECTIONS
*(.rodata.str1.4) *(.rodata.str1.4)
*(.irodata) *(.irodata)
. = ALIGN(0x4); . = ALIGN(0x4);
/* Pseudo-allocate the copies of the data sections */
_datacopy = .;
} > DRAM } > DRAM
/* TRICK ALERT! For RAM execution, we put the .data section at the .data :
same load address as the copy. Thus, we don't waste extra RAM
when we don't actually need the copy. */
.data : AT ( _datacopy )
{ {
_datastart = .;
*(.data*) *(.data*)
*(.idata) *(.idata)
. = ALIGN(0x4); . = ALIGN(0x4);
_dataend = .;
} > DRAM } > DRAM
#if 0 /* Unneeded at the moment */ #if 0 /* Unneeded at the moment */

View file

@ -56,20 +56,12 @@ SECTIONS
*(.rodata.str1.1) *(.rodata.str1.1)
*(.rodata.str1.4) *(.rodata.str1.4)
. = ALIGN(0x4); . = ALIGN(0x4);
/* Pseudo-allocate the copies of the data sections */
_datacopy = .;
} > DRAM } > DRAM
/* TRICK ALERT! For RAM execution, we put the .data section at the .data :
same load address as the copy. Thus, we don't waste extra RAM
when we don't actually need the copy. */
.data : AT ( _datacopy )
{ {
_datastart = .;
*(.data*) *(.data*)
. = ALIGN(0x4); . = ALIGN(0x4);
_dataend = .;
} > DRAM } > DRAM
#if NOCACHE_BASE != 0 #if NOCACHE_BASE != 0

View file

@ -56,20 +56,12 @@ SECTIONS
*(.rodata.str1.1) *(.rodata.str1.1)
*(.rodata.str1.4) *(.rodata.str1.4)
. = ALIGN(0x4); . = ALIGN(0x4);
/* Pseudo-allocate the copies of the data sections */
_datacopy = .;
} > DRAM } > DRAM
/* TRICK ALERT! For RAM execution, we put the .data section at the .data :
same load address as the copy. Thus, we don't waste extra RAM
when we don't actually need the copy. */
.data : AT ( _datacopy )
{ {
_datastart = .;
*(.data*) *(.data*)
. = ALIGN(0x4); . = ALIGN(0x4);
_dataend = .;
} > DRAM } > DRAM
#if NOCACHE_BASE != 0 #if NOCACHE_BASE != 0

View file

@ -56,20 +56,12 @@ SECTIONS
*(.rodata.str1.1) *(.rodata.str1.1)
*(.rodata.str1.4) *(.rodata.str1.4)
. = ALIGN(0x4); . = ALIGN(0x4);
/* Pseudo-allocate the copies of the data sections */
_datacopy = .;
} > DRAM } > DRAM
/* TRICK ALERT! For RAM execution, we put the .data section at the .data :
same load address as the copy. Thus, we don't waste extra RAM
when we don't actually need the copy. */
.data : AT ( _datacopy )
{ {
_datastart = .;
*(.data*) *(.data*)
. = ALIGN(0x4); . = ALIGN(0x4);
_dataend = .;
} > DRAM } > DRAM
#if NOCACHE_BASE != 0 #if NOCACHE_BASE != 0

View file

@ -56,20 +56,12 @@ SECTIONS
*(.rodata.str1.1) *(.rodata.str1.1)
*(.rodata.str1.4) *(.rodata.str1.4)
. = ALIGN(0x4); . = ALIGN(0x4);
/* Pseudo-allocate the copies of the data sections */
_datacopy = .;
} > DRAM } > DRAM
/* TRICK ALERT! For RAM execution, we put the .data section at the .data :
same load address as the copy. Thus, we don't waste extra RAM
when we don't actually need the copy. */
.data : AT ( _datacopy )
{ {
_datastart = .;
*(.data*) *(.data*)
. = ALIGN(0x4); . = ALIGN(0x4);
_dataend = .;
} > DRAM } > DRAM
#if NOCACHE_BASE != 0 #if NOCACHE_BASE != 0

View file

@ -56,20 +56,12 @@ SECTIONS
*(.rodata.str1.1) *(.rodata.str1.1)
*(.rodata.str1.4) *(.rodata.str1.4)
. = ALIGN(0x4); . = ALIGN(0x4);
/* Pseudo-allocate the copies of the data sections */
_datacopy = .;
} > DRAM } > DRAM
/* TRICK ALERT! For RAM execution, we put the .data section at the .data :
same load address as the copy. Thus, we don't waste extra RAM
when we don't actually need the copy. */
.data : AT ( _datacopy )
{ {
_datastart = .;
*(.data*) *(.data*)
. = ALIGN(0x4); . = ALIGN(0x4);
_dataend = .;
} > DRAM } > DRAM
#if NOCACHE_BASE != 0 #if NOCACHE_BASE != 0

View file

@ -57,20 +57,12 @@ SECTIONS
*(.rodata.str1.1) *(.rodata.str1.1)
*(.rodata.str1.4) *(.rodata.str1.4)
. = ALIGN(0x4); . = ALIGN(0x4);
/* Pseudo-allocate the copies of the data sections */
_datacopy = .;
} > DRAM } > DRAM
/* TRICK ALERT! For RAM execution, we put the .data section at the .data :
same load address as the copy. Thus, we don't waste extra RAM
when we don't actually need the copy. */
.data : AT ( _datacopy )
{ {
_datastart = .;
*(.data*) *(.data*)
. = ALIGN(0x4); . = ALIGN(0x4);
_dataend = .;
} > DRAM } > DRAM
/DISCARD/ : /DISCARD/ :

View file

@ -56,20 +56,12 @@ SECTIONS
*(.rodata.str1.1) *(.rodata.str1.1)
*(.rodata.str1.4) *(.rodata.str1.4)
. = ALIGN(0x4); . = ALIGN(0x4);
/* Pseudo-allocate the copies of the data sections */
_datacopy = .;
} > DRAM } > DRAM
/* TRICK ALERT! For RAM execution, we put the .data section at the .data :
same load address as the copy. Thus, we don't waste extra RAM
when we don't actually need the copy. */
.data : AT ( _datacopy )
{ {
_datastart = .;
*(.data*) *(.data*)
. = ALIGN(0x4); . = ALIGN(0x4);
_dataend = .;
} > DRAM } > DRAM
#if NOCACHE_BASE != 0 #if NOCACHE_BASE != 0

View file

@ -56,20 +56,12 @@ SECTIONS
*(.rodata.str1.1) *(.rodata.str1.1)
*(.rodata.str1.4) *(.rodata.str1.4)
. = ALIGN(0x4); . = ALIGN(0x4);
/* Pseudo-allocate the copies of the data sections */
_datacopy = .;
} > DRAM } > DRAM
/* TRICK ALERT! For RAM execution, we put the .data section at the .data :
same load address as the copy. Thus, we don't waste extra RAM
when we don't actually need the copy. */
.data : AT ( _datacopy )
{ {
_datastart = .;
*(.data*) *(.data*)
. = ALIGN(0x4); . = ALIGN(0x4);
_dataend = .;
} > DRAM } > DRAM
#if NOCACHE_BASE != 0 #if NOCACHE_BASE != 0

View file

@ -56,20 +56,12 @@ SECTIONS
*(.rodata.str1.1) *(.rodata.str1.1)
*(.rodata.str1.4) *(.rodata.str1.4)
. = ALIGN(0x4); . = ALIGN(0x4);
/* Pseudo-allocate the copies of the data sections */
_datacopy = .;
} > DRAM } > DRAM
/* TRICK ALERT! For RAM execution, we put the .data section at the .data :
same load address as the copy. Thus, we don't waste extra RAM
when we don't actually need the copy. */
.data : AT ( _datacopy )
{ {
_datastart = .;
*(.data*) *(.data*)
. = ALIGN(0x4); . = ALIGN(0x4);
_dataend = .;
} > DRAM } > DRAM
#if NOCACHE_BASE != 0 #if NOCACHE_BASE != 0

View file

@ -56,20 +56,12 @@ SECTIONS
*(.rodata.str1.1) *(.rodata.str1.1)
*(.rodata.str1.4) *(.rodata.str1.4)
. = ALIGN(0x4); . = ALIGN(0x4);
/* Pseudo-allocate the copies of the data sections */
_datacopy = .;
} > DRAM } > DRAM
/* TRICK ALERT! For RAM execution, we put the .data section at the .data :
same load address as the copy. Thus, we don't waste extra RAM
when we don't actually need the copy. */
.data : AT ( _datacopy )
{ {
_datastart = .;
*(.data*) *(.data*)
. = ALIGN(0x4); . = ALIGN(0x4);
_dataend = .;
} > DRAM } > DRAM
/DISCARD/ : /DISCARD/ :