From: Dimitar Dimitrov Date: Mon, 27 Sep 2021 19:43:24 +0000 (+0300) Subject: ld: pru: Fix resource_table output section alignment X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5109a7bd9b87bdad530f2ebf97036e6087b4504d;p=binutils-gdb.git 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 --- diff --git a/ld/ChangeLog b/ld/ChangeLog index 34a508a918a..808191bd14e 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2021-09-30 Dimitar Dimitrov + + * scripttempl/pru.sc (.resource_table): Align the output + section, not the first symbol. + 2021-09-27 Nick Alcock * configure: Regenerate. diff --git a/ld/scripttempl/pru.sc b/ld/scripttempl/pru.sc index b2c941b7911..97d8be0a0a4 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}