summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2020-07-03 17:39:39 -0400
committerSolomon Peachy <pizza@shaftnet.org>2020-07-05 03:34:30 +0000
commitcd9906847b7a8eaccc4e5927200cd75db99d219f (patch)
tree0e18a4687c1307b07f0caacc2d1e8ab65d2e298c /firmware
parent905e19905b8601b672ed9a9b7121dfdb2444602c (diff)
downloadrockbox-cd9906847b7a8eaccc4e5927200cd75db99d219f.tar.gz
rockbox-cd9906847b7a8eaccc4e5927200cd75db99d219f.tar.bz2
rockbox-cd9906847b7a8eaccc4e5927200cd75db99d219f.zip
arm: Fix PortalPlayer linker scripts with binutils 2.21+
For reasons that are still unclear, the 'ncbss' region was overlapping the "audiobuffer" when linked with 2.21, but okay with 2.20. Fixed it by making the audiobuffer explcitly use the current position instead of relying on it being implicit. With this change, portalplayer-based targets generate working binaries when built with binutils 2.21 or newer. This bug also theoretically affects imx233/imx31 targets as they also have NOCACHE_BASE games in their linker scripts, but I lack access to one to test with. Change-Id: Idb38ab20f03599b9ed3d4bc0eafe519f38677438
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/arm/imx233/app.lds2
-rw-r--r--firmware/target/arm/imx233/boot.lds2
-rw-r--r--firmware/target/arm/imx31/app.lds4
-rw-r--r--firmware/target/arm/imx31/boot.lds4
-rw-r--r--firmware/target/arm/pp/app-pp.lds2
5 files changed, 7 insertions, 7 deletions
diff --git a/firmware/target/arm/imx233/app.lds b/firmware/target/arm/imx233/app.lds
index 189355d84e..2b13496c1f 100644
--- a/firmware/target/arm/imx233/app.lds
+++ b/firmware/target/arm/imx233/app.lds
@@ -116,7 +116,7 @@ SECTIONS
_end = .;
} > DRAM
- .audiobuf (NOLOAD) :
+ .audiobuf _end (NOLOAD) :
{
_audiobuffer = .;
audiobuffer = .;
diff --git a/firmware/target/arm/imx233/boot.lds b/firmware/target/arm/imx233/boot.lds
index dfabefdf9b..eef8be7a4b 100644
--- a/firmware/target/arm/imx233/boot.lds
+++ b/firmware/target/arm/imx233/boot.lds
@@ -90,7 +90,7 @@ SECTIONS
. = ALIGN(CACHEALIGN_SIZE);
} AT> DRAM
- .bssendadr (NOLOAD) :
+ .bssendadr . (NOLOAD) :
{
_end = .;
} > DRAM
diff --git a/firmware/target/arm/imx31/app.lds b/firmware/target/arm/imx31/app.lds
index fe6cafb59f..56d0f435d1 100644
--- a/firmware/target/arm/imx31/app.lds
+++ b/firmware/target/arm/imx31/app.lds
@@ -122,7 +122,7 @@ SECTIONS
*(COMMON)
. = ALIGN(0x4);
} > DRAM
-
+
.ncbss . + NOCACHE_BASE (NOLOAD) :
{
. = ALIGN(CACHEALIGN_SIZE); /* >= Cache line boundary */
@@ -135,7 +135,7 @@ SECTIONS
_end = .;
} > DRAM
- .audiobuf (NOLOAD) :
+ .audiobuf _end (NOLOAD) :
{
_audiobuffer = .;
audiobuffer = .;
diff --git a/firmware/target/arm/imx31/boot.lds b/firmware/target/arm/imx31/boot.lds
index be1d98e507..6b0eb8fb1f 100644
--- a/firmware/target/arm/imx31/boot.lds
+++ b/firmware/target/arm/imx31/boot.lds
@@ -93,7 +93,7 @@ SECTIONS
*(COMMON)
. = ALIGN(0x4);
} > DRAM
-
+
.ncbss . + NOCACHE_BASE (NOLOAD) :
{
. = ALIGN(CACHEALIGN_SIZE); /* >= Cache line boundary */
@@ -106,7 +106,7 @@ SECTIONS
_end = .;
} > DRAM
- .qharray (NOLOAD) :
+ .qharray _end (NOLOAD) :
{
_qharray = .;
*(.qharray)
diff --git a/firmware/target/arm/pp/app-pp.lds b/firmware/target/arm/pp/app-pp.lds
index 0b8cbd8430..3fdf55e332 100644
--- a/firmware/target/arm/pp/app-pp.lds
+++ b/firmware/target/arm/pp/app-pp.lds
@@ -169,7 +169,7 @@ SECTIONS
_end = .;
} > DRAM
- .audiobuf (NOLOAD) :
+ .audiobuf _end (NOLOAD) :
{
_audiobuffer = .;
. = ALIGN(0x4);