title: What does -D_DEFAULT_SOURCE do?
body: <p>Previously I was receiving warnings from <code>gcc -std=c99</code> that <code>usleep()</code> was implicitly declared. Then I stumbled across <a href="https://stackoverflow.com/a/10053817/2002146">this stackoverflow post</a>, which led me to use <code>-D_BSD_SOURCE</code>. However, now <code>gcc</code> tells me that <code>-D_BSD_SOURCE</code> has been deprecated and I should use <code>-D_DEFAULT_SOURCE</code> instead.</p>
  
  <pre><code>#warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
  </code></pre>
  
  <p>Why is <code>-D_BSD_SOURCE</code> deprecated? Why is <code>-D_DEFAULT_SOURCE</code> used instead? And what does it do?</p>
  
  <p>I did <a href="https://www.google.com/search?q=what%20is%20%22-D_DEFAULT_SOURCE%22" rel="noreferrer">some googling</a>, and the results are just filled with people using it to shut <code>gcc</code> up. I couldn't find out <em>why</em> <code>-D_BSD_SOURCE</code> has been deprecated, just that it is.</p>