ping?
On Thu, 13 Jun 2019 at 17:13, Christophe Lyon <[email protected]> wrote: > > Hi, > > Similar to what already exists for TI msp430 or in TI compilers for > arm, this patch adds support for "noinit" attribute for arm. It's very > similar to the corresponding code in GCC for msp430. > > It is useful for embedded targets where the user wants to keep the > value of some data when the program is restarted: such variables are > not zero-initialized.It is mostly a helper/shortcut to placing > variables in a dedicated section. > > It's probably desirable to add the following chunk to the GNU linker: > diff --git a/ld/emulparams/armelf.sh b/ld/emulparams/armelf.sh > index 272a8bc..9555cec 100644 > --- a/ld/emulparams/armelf.sh > +++ b/ld/emulparams/armelf.sh > @@ -10,7 +10,19 @@ OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7) > *(.vfp11_veneer) *(.v4_bx)' > OTHER_BSS_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__bss_start__ = > .${CREATE_SHLIB+)};" > OTHER_BSS_END_SYMBOLS="${CREATE_SHLIB+PROVIDE (}_bss_end__ = > .${CREATE_SHLIB+)}; ${CREATE_SHLIB+PROVIDE (}__bss_end__ = > .${CREATE_SHLIB+)};" > OTHER_END_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__end__ = .${CREATE_SHLIB+)};" > -OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }' > +OTHER_SECTIONS=' > +.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } > + /* This section contains data that is not initialised during load > + *or* application reset. */ > + .noinit (NOLOAD) : > + { > + . = ALIGN(2); > + PROVIDE (__noinit_start = .); > + *(.noinit) > + . = ALIGN(2); > + PROVIDE (__noinit_end = .); > + } > +' > > so that the noinit section has the "NOLOAD" flag. > > I'll submit that part separately to the binutils project if OK. > > OK? > > Thanks, > > Christophe
