title: Enforce 32-bit enums with GCC linker
body: <p>I'm writing a bare metal application for an ARM device (no OS). I need 32-bit enums, so I compiled the application with the <code>-fno-short-enums</code> compiler flag. Without this flag, I get variable enums (and enforcing the size by adding an additional <code>0xFFFFFFFF</code> value to each enum is not an option).</p>
  
  <p>Now I get the following linker warning for every object:</p>
  
  <pre><code>c:/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: ./src/test.o uses 32-bit enums yet the output is to use variable-size enums; use of enum values across objects may fail
  </code></pre>
  
  <p>It's just a warning, no error. But what does it mean exactly? How can I specify the "output"?</p>
  
  <p>I tried to recompile the newlib with the above flag to ensure that all objects use the same enum size, but I'm still getting the warning. Is there something I missed?</p>