1
0
Fork 0
forked from len0rd/rockbox

Revert "Fix .ncbss from possibly overlapping .ncdata in plugins/codecs."

This reverts commit 5c2ad2fd36.

The .ncbss bug is still showing up. Will try again shortly.
This commit is contained in:
Michael Sevakis 2013-07-11 00:28:39 -04:00
parent 5c2ad2fd36
commit 2948cb42ae

View file

@ -249,6 +249,7 @@ SECTIONS
#if defined(IRAMSIZE) && IRAMSIZE == 0 #if defined(IRAMSIZE) && IRAMSIZE == 0
*(.irodata) *(.irodata)
#endif #endif
. = ALIGN(0x4);
} > PLUGIN_RAM } > PLUGIN_RAM
.data : .data :
@ -265,11 +266,15 @@ SECTIONS
. = ALIGN(CACHEALIGN_SIZE); . = ALIGN(CACHEALIGN_SIZE);
*(.ncdata*) *(.ncdata*)
. = ALIGN(CACHEALIGN_SIZE); . = ALIGN(CACHEALIGN_SIZE);
} AT> PLUGIN_RAM /* EABI currently needs iramcopy defined here, otherwise .iram can sometimes
. -= NOCACHE_BASE; have an incorrect load address, breaking codecs. */
#if defined(IRAMSIZE)
iramcopy = . - NOCACHE_BASE;
#endif #endif
} AT> PLUGIN_RAM
#if defined(IRAMSIZE) && IRAMSIZE != 0 /* This definition is used when NOCACHE_BASE is 0. The address offset bug only
seems to occur when the empty .ncdata is present. */
#elif defined(IRAMSIZE)
iramcopy = .; iramcopy = .;
#endif #endif
@ -281,7 +286,27 @@ SECTIONS
#endif #endif
} }
.bss . (NOLOAD) : #if defined(IRAMSIZE) && IRAMSIZE != 0
.iram IRAMORIG : AT ( iramcopy)
{
iramstart = .;
*(.icode)
*(.irodata)
*(.idata)
iramend = .;
} > PLUGIN_IRAM
.ibss (NOLOAD) :
{
iedata = .;
*(.ibss)
. = ALIGN(0x4);
iend = .;
} > PLUGIN_IRAM
#endif
.bss (NOLOAD) :
{ {
plugin_bss_start = .; plugin_bss_start = .;
_plugin_bss_start = .; _plugin_bss_start = .;
@ -300,35 +325,15 @@ SECTIONS
*(.ncbss*) *(.ncbss*)
. = ALIGN(CACHEALIGN_SIZE); . = ALIGN(CACHEALIGN_SIZE);
} AT> PLUGIN_RAM } AT> PLUGIN_RAM
. -= NOCACHE_BASE;
#endif #endif
/* Final end of plugin after IRAM setup */ /* Restore . */
.pluginend : .pluginend . - NOCACHE_BASE :
{ {
_plugin_end_addr = .; _plugin_end_addr = .;
plugin_end_addr = .; plugin_end_addr = .;
} }
#if defined(IRAMSIZE) && IRAMSIZE != 0
.iram IRAMORIG : AT (iramcopy)
{
iramstart = .;
*(.icode)
*(.irodata)
*(.idata)
iramend = .;
} > PLUGIN_IRAM
.ibss (NOLOAD) :
{
iedata = .;
*(.ibss)
. = ALIGN(0x4);
iend = .;
} > PLUGIN_IRAM
#endif
/* Special trick to avoid a linker error when no other sections are /* Special trick to avoid a linker error when no other sections are
left after garbage collection (plugin not for this platform) */ left after garbage collection (plugin not for this platform) */
.comment 0 : .comment 0 :