aboutsummaryrefslogtreecommitdiff
path: root/ld/scripttempl
diff options
context:
space:
mode:
authorDimitar Dimitrov <dimitar@dinux.eu>2021-09-27 22:43:24 +0300
committerDimitar Dimitrov <dimitar@dinux.eu>2021-09-30 22:15:50 +0300
commit5109a7bd9b87bdad530f2ebf97036e6087b4504d (patch)
tree2057541a7b7eedb4ad9808658371631e073d735c /ld/scripttempl
parent9279eb5c2c4421329822186ed86b48faa9d310e6 (diff)
downloadbinutils-5109a7bd9b87bdad530f2ebf97036e6087b4504d.zip
binutils-5109a7bd9b87bdad530f2ebf97036e6087b4504d.tar.gz
binutils-5109a7bd9b87bdad530f2ebf97036e6087b4504d.tar.bz2
ld: pru: Fix resource_table output section alignment
My commit 261980de18b added alignment for the resource table symbol. But it is wrong. The Linux remoteproc driver loads and interprets the contents of the .resource_table ELF section, not of a table symbol. Without this patch, if the linker happens to output padding for symbol alignment, then the resource table contents as viewed by the kernel loader would "shift" and look corrupted. ld/ChangeLog: * scripttempl/pru.sc (.resource_table): Align the output section, not the first symbol. Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
Diffstat (limited to 'ld/scripttempl')
-rw-r--r--ld/scripttempl/pru.sc7
1 files changed, 3 insertions, 4 deletions
diff --git a/ld/scripttempl/pru.sc b/ld/scripttempl/pru.sc
index b2c941b..97d8be0 100644
--- a/ld/scripttempl/pru.sc
+++ b/ld/scripttempl/pru.sc
@@ -151,11 +151,10 @@ SECTIONS
${RELOCATING+ PROVIDE (_data_end = .) ; }
} ${RELOCATING+ > dmem }
- .resource_table ${RELOCATING-0} :
+ /* Linux remoteproc loader requires the resource_table section
+ start address to be aligned to 8 bytes. */
+ .resource_table ${RELOCATING-0} ${RELOCATING+ ALIGN(8)} :
{
- /* Linux remoteproc loader requires the resource table address
- to be aligned to 8 bytes. */
- ${RELOCATING+. = ALIGN(8);}
KEEP (*(.resource_table))
} ${RELOCATING+ > dmem}