title: Negate previous -D[efine] flag for GCC
body: <p>Under GNUStep on Arch Linux, I'm running into an interesting error on a fresh install.</p>
  
  <p>Using my build system I run</p>
  
  <pre><code>gcc `gnustep-config --debug-flags` [other command line args]
  </code></pre>
  
  <p>in order to build up the command line per the operating system's necessary flags.</p>
  
  <p>This works fine under Ubuntu, but on Arch Linux I'm getting a rather random error:</p>
  
  <blockquote>
    <p>/usr/include/features.h:328:4: error: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror=cpp]</p>
  </blockquote>
  
  <p>Well, <code>gnustep-config --debug-flags</code> spits out the following:</p>
  
  <blockquote>
    <p>-MMD -MP <strong>-D_FORTIFY_SOURCE=2</strong> -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -pthread -fPIC -g -DDEBUG -fno-omit-frame-pointer -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -march=x86-64 -mtune=generic -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fgnu-runtime -fconstant-string-class=NSConstantString -fexec-charset=UTF-8 -I. -I/home/qix/GNUstep/Library/Headers -I/usr/include <strong>-D_FORTIFY_SOURCE=2</strong> -I/usr/include -I/usr/include -I/usr/include -I/usr/lib/libffi-3.1/include/ -I/usr/lib/libffi-3.1/include -I/usr/include/libxml2 -I/usr/include/p11-kit-1</p>
  </blockquote>
  
  <p>As well, I wish not to have optimizations on my debug builds (and later on I even override GNUStep's <code>-g</code> parameter to <code>-g2</code>).</p>
  
  <p>Is there a way to <em>explicitly undefine</em> <code>-D_FORTIFY_SOURCE</code> later on in the command line, after the call to <code>gnustep-config</code>?</p>
  
  <p>For example, something like</p>
  
  <pre><code>gcc `gnustep-config --debug-flags` -U_FORTIFY_SOURCE ...
  </code></pre>
  
  <p>where the <code>-U</code> undefines the previously defined macro?</p>
  
  <p>Something to mention; I have <code>-Werror</code> enabled on purpose, and I'd like to keep it.</p>