summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Mahone <andrew.mahone@gmail.com>2009-11-20 07:38:57 +0000
committerAndrew Mahone <andrew.mahone@gmail.com>2009-11-20 07:38:57 +0000
commit19eb26a2d75c6af6eb08bc22c72d269a9b198eb5 (patch)
tree41a6ef80d9b12e61ed776c5f777ba4dfb349121c
parent6ec176cc8ed0dc3816ff8d19190bf817d8c18ba5 (diff)
downloadrockbox-19eb26a2d75c6af6eb08bc22c72d269a9b198eb5.tar.gz
rockbox-19eb26a2d75c6af6eb08bc22c72d269a9b198eb5.tar.bz2
rockbox-19eb26a2d75c6af6eb08bc22c72d269a9b198eb5.zip
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
-rw-r--r--apps/plugins/plugin.lds13
1 files 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/ :