<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">I am linking a program to be loaded in an ARM Cortex-M0+ based microcontroller. In the linker script, I have a section allocated for the stack which roughly looks like the following.</div><div class="gmail_default" style=""><font face="monospace">.stack : { . += __stack_size__; } > ram</font></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style=""><span style="font-family:arial,helvetica,sans-serif">Using the linker in the gcc arm toolchain, </span><font face="monospace">arm-none-eabi-ld</font><font face="arial, helvetica, sans-serif">, this section is automatically set to type </font><font face="monospace">NOBITS</font><font face="arial, helvetica, sans-serif">, however, when linking with version 10.0.0 of </font><font face="monospace">ld.lld</font><font face="arial, helvetica, sans-serif">, the section type is </font><font face="monospace">PROGBITS</font><font face="arial, helvetica, sans-serif">.</font></div><div class="gmail_default" style=""><span style="font-family:arial,helvetica,sans-serif">Here is the output when using </span><font face="monospace">readelf</font><font face="arial, sans-serif">.</font></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><i>ld.lld</i></div><div class="gmail_default" style=""><font face="monospace">Section Headers:</font><br><font face="arial, helvetica, sans-serif">  </font><font face="monospace">[Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al<br>  ...<br>  [ 5] .stack            PROGBITS        1ffff000 0014f0 000400 00   A  0   0  1</font><br></div><div class="gmail_default" style=""><font face="monospace"><br></font></div><div class="gmail_default" style=""><font face="arial, sans-serif"><i>arm-none-eabi-ld</i></font></div><div class="gmail_default" style=""><font face="monospace">Section Headers:<br>  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al<br>  ...<br>  [ 5] .stack            NOBITS          1ffff000 01f000 000400 00  WA  0   0  1</font><font face="arial, sans-serif"><i><br></i></font></div><div class="gmail_default" style=""><font face="monospace"><br></font></div><div class="gmail_default" style=""><font face="arial, sans-serif">Reading online, I found that I should add the </font><font face="monospace">(NOLOAD)</font><font face="arial, sans-serif"> directive to my linker script, so I tried the following.</font></div><div class="gmail_default" style=""><font face="monospace">.stack (NOLOAD) :  { . += __stack_size__; } > ram</font><font face="arial, sans-serif"><br></font></div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">But this change to the linker script does not seem to affect the output ELF file. Interestingly, if I add the <font face="monospace">(NOLOAD)</font><font face="arial, sans-serif"> directive to the script's </font><font face="monospace">.data</font><font face="arial, sans-serif"> section, the </font><font face="monospace">.data</font><font face="arial, sans-serif"> section will change to type </font><font face="monospace">NOBITS</font><font face="arial, sans-serif">.</font></div><div class="gmail_default" style=""><font face="arial, sans-serif">I'd like to know if I'm making any errors, either in the section definition itself or when I call the linker.</font></div><div class="gmail_default" style=""><font face="arial, sans-serif"><br></font></div><div class="gmail_default" style=""><font face="arial, sans-serif">Thank you,</font></div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Daniel Way</div></div></div></div></div>