title: What are "nosys", "nano", "rdimon" terms when using ARM GCC?
body: <p>I am learning to write ARM code using the GCC toolchain. I've run into a few GCC options that I cannot find documentation for. Could someone please help explain what they do?</p>
  <ul>
  <li><code>-specs=nosys.specs</code></li>
  <li><code>-specs=nano.specs</code></li>
  <li><code>-specs=rdimon.specs</code></li>
  <li><code>-lnosys</code></li>
  </ul>
  <p>How do <code>-specs=nosys.specs</code> and <code>-lnosys</code> relate? Do you use them together, or are they exclusive of each other, or something else?</p>
  <p>And nano, I've gathered to imply using the newlib-nano library. I've seen this used in conjunction with <code>-lm</code> and <code>-lc</code>. Does this just give you the standard libc and libm functions?</p>
  <p>What does <code>rdimon</code> stand for? I understand it is for &quot;semihosting&quot;, which means using the host IO somehow. Does this mean I can printf to the host console? I can find no documentation on how to actually use this.</p>
  <p>If there is a source of truth for all of this somewhere that I haven't found, please let me know.</p>
  <p>Thanks for any help on clarifying.</p>