public inbox for binutils-cvs@sourceware.org
 help / color / mirror / Atom feed
* [binutils-gdb] .noinit and .persistent alignment
@ 2023-07-12  1:40 Alan Modra
  0 siblings, 0 replies; only message in thread
From: Alan Modra @ 2023-07-12  1:40 UTC (permalink / raw)
  To: bfd-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=dbe6d432d1f48fe77200cf4baff06d9f8d7debd7

commit dbe6d432d1f48fe77200cf4baff06d9f8d7debd7
Author: Alan Modra <amodra@gmail.com>
Date:   Fri Jul 7 14:32:00 2023 +0930

    .noinit and .persistent alignment
    
    It's more elegant to make the section match up with its "_start"
    symbol.  We could align by setting the address of the section (by
    using ALIGN before the colon), but this way we also set sh_addralign
    to at least $ALIGNMENT.
    
            * scripttempl/elf.sc (.noinit, .persistent): Align the output
            section rather than using ". = ALIGN();" at the beginning.
            Set address to zero when not a final link.

Diff:
---
 ld/scripttempl/elf.sc | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
index bfd8b5ed4b3..82de4ed9f88 100644
--- a/ld/scripttempl/elf.sc
+++ b/ld/scripttempl/elf.sc
@@ -342,9 +342,8 @@ STACK=".stack        ${RELOCATING-0}${RELOCATING+${STACK_ADDR}} :
 test "${HAVE_NOINIT}" = "yes" && NOINIT="
   /* This section contains data that is not initialized during load,
      or during the application's initialization sequence.  */
-  .noinit (NOLOAD) :
+  .noinit ${RELOCATING-0} (NOLOAD) : ${RELOCATING+ALIGN(${ALIGNMENT})}
   {
-    ${RELOCATING+. = ALIGN(${ALIGNMENT});}
     ${RELOCATING+PROVIDE (__noinit_start = .);}
     *(.noinit${RELOCATING+ .noinit.* .gnu.linkonce.n.*})
     ${RELOCATING+. = ALIGN(${ALIGNMENT});}
@@ -353,9 +352,8 @@ test "${HAVE_NOINIT}" = "yes" && NOINIT="
 test "${HAVE_PERSISTENT}" = "yes" && PERSISTENT="
   /* This section contains data that is initialized during load,
      but not during the application's initialization sequence.  */
-  .persistent :
+  .persistent ${RELOCATING-0} : ${RELOCATING+ALIGN(${ALIGNMENT})}
   {
-    ${RELOCATING+. = ALIGN(${ALIGNMENT});}
     ${RELOCATING+PROVIDE (__persistent_start = .);}
     *(.persistent${RELOCATING+ .persistent.* .gnu.linkonce.p.*})
     ${RELOCATING+. = ALIGN(${ALIGNMENT});}

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-07-12  1:40 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-12  1:40 [binutils-gdb] .noinit and .persistent alignment Alan Modra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).