title: stddef.h: error: duplicate 'unsigned'
body: <p>I'm compiling <code>grep</code> on the 64-bit GCC compiler for Windows 7 x64 SUA/Interix.</p>
  
  <p>It chokes on the marked line in <code>stddef.h</code>:</p>
  
  <pre><code>#ifndef _SIZE_T_DEFINED
  #if defined (lp64) || defined(_WIN64)
  #ifdef lp64
  typedef unsigned long   size_t;                    //    &lt;------ error
  #else /* lp64 */
  typedef unsigned __int64        size_t;
  #endif /* lp64 */
  #else /* (defined(lp64) || defined(_WIN64)) */
  typedef unsigned int  size_t;
  #endif /* (defined(lp64) || defined(_WIN64)) */
  #define _SIZE_T_DEFINED
  #define _SIZE_T
  #endif /* _SIZE_T_DEFINED */
  </code></pre>
  
  <p>The output for <code>make</code> is:</p>
  
  <pre><code>make  all-recursive
  Making all in intl
  gcc -c -DLOCALEDIR=\"/usr/local/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/local/share/locale\"  -DLIBDIR=\"/usr/local/lib\" -DIN_LIBINTL -DHAVE_CONFIG_H -I.. -I. -I../../intl -D_ALL_SOURCE -D_REENTRANT -I/usr/local/include -I/usr/local/include -D_ALL_SOURCE -D_REENTRANT  ../../intl/intl-compat.c
  
  In file included from ../../intl/gettextP.h:23:0,
                   from ../../intl/intl-compat.c:25:
  /usr/include/stddef.h:50:23: error: duplicate 'unsigned'
  *** Error code 1
  
  Stop in /tmp/grep-2.5.4-src/build/intl.
  *** Error code 1
  
  Stop in /tmp/grep-2.5.4-src/build (line 329 of Makefile).
  *** Error code 1
  
  Stop in /tmp/grep-2.5.4-src/build (line 244 of Makefile).
  </code></pre>
  
  <p>I don't understand what the cause is... it's already confusing that <code>long</code> is being used as though it's 64-bit in GCC, but the error is even more confusing! Ideas?</p>