From 19eb26a2d75c6af6eb08bc22c72d269a9b198eb5 Mon Sep 17 00:00:00 2001 From: Andrew Mahone Date: Fri, 20 Nov 2009 07:38:57 +0000 Subject: [PATCH] Fix codec and plugin issues on ARM EABI caused by .iram sometimes being assigned an incorrect load address. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23674 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/plugin.lds | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/apps/plugins/plugin.lds b/apps/plugins/plugin.lds index 6b608fcc70..fcfbf3bfe0 100644 --- a/apps/plugins/plugin.lds +++ b/apps/plugins/plugin.lds @@ -231,11 +231,16 @@ SECTIONS . = ALIGN(CACHEALIGN_SIZE); *(.ncdata*) . = ALIGN(CACHEALIGN_SIZE); - } AT> PLUGIN_RAM -#endif - +/* EABI currently needs iramcopy defined here, otherwise .iram can sometimes + have an incorrect load address, breaking codecs. */ #if defined(IRAMSIZE) - iramcopy = . - NOCACHE_BASE; + iramcopy = . - NOCACHE_BASE; +#endif + } AT> PLUGIN_RAM +/* 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 = .; #endif /DISCARD/ :