title: Why would a linker script have multiple section commands?
body: <p>I have been reading the <a href="https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/Using_ld_the_GNU_Linker/sections.html" rel="noreferrer">sections documentation for ld</a> and something isn't clear.</p>
  
  <p>Given the partial linker script:</p>
  
  <pre><code>MEMORY
  {
    FLASH1 (rx) : ORIGIN = 0x000FB000, LENGTH = 0x05000
    FLASH2 (r) : ORIGIN = 0x000FA000, LENGTH = 0x01000
  }
  
  SECTIONS
  {
    .some_code :
    {
      KEEP(*(SORT(.some_code*)))
    } &gt; FLASH1
  }
  SECTIONS
  {
    .my_page :
    {
      KEEP(*(SORT(.my_page*)))
    } &gt; FLASH2
  }
  </code></pre>
  
  <p>Is there ever a reason to have 2 section commands in a single linker script as above rather than having it all in 1 section commands as below?</p>
  
  <pre><code>SECTIONS
  {
    .some_code :
    {
      KEEP(*(SORT(.some_code*)))
    } &gt; FLASH1
    .my_page :
    {
      KEEP(*(SORT(.my_page*)))
    } &gt; FLASH2
  }
  </code></pre>
  
  <p>Or are they equivalent. Are there other cases where you'd want to split it up like that?</p>
  
  <p>Additional clarification: I am asking for a reason to have separate "SECTIONS" commands (each with their own block of section definitions) not asking for the reason for having separate sections in general.</p>