Subject: 24.0.50; ./stdint.h:82:7: error: #elif with no expression

From: Peter Dyballa <[email-masked]>
Date: Mon, 4 Apr 2011 21:32:44 +0200

Hello!

In the beginning of compilation a sed script edits lib/stdint.in.h to  
become lib/stdint.h. The suspicious lines are:

    76	#if @HAVE_INTTYPES_H@
    77	  /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>,  
which defines
    78	     int{8,16,32,64}_t, uint{8,16,32,64}_t and  
__BIT_TYPES_DEFINED__.
    79	     <inttypes.h> also defines intptr_t and uintptr_t.  */
    80	# include <inttypes.h>
    81	#elif @HAVE_SYS_INTTYPES_H@
    82	  /* Solaris 7 <sys/inttypes.h> has the types except the  
*_fast*_t types, and
    83	     the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN,  
PTRDIFF_MAX.  */
    84	# include <sys/inttypes.h>
    85	#endif
    86	
    87	#if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__
    88	  /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that  
defines
    89	     int{8,16,32,64}_t and __BIT_TYPES_DEFINED__.  In libc5 >=  
5.2.2 it is
    90	     included by <sys/types.h>.  */
    91	# include <sys/bitypes.h>
    92	#endif

And since @HAVE_SYS_BITYPES_H@ is changed to an empty string the lines  
become invalid in lib/stdint.h:

    77	#if 1
    78	  /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>,  
which defines
    79	     int{8,16,32,64}_t, uint{8,16,32,64}_t and  
__BIT_TYPES_DEFINED__.
    80	     <inttypes.h> also defines intptr_t and uintptr_t.  */
    81	# include <inttypes.h>
    82	#elif
    83	  /* Solaris 7 <sys/inttypes.h> has the types except the  
*_fast*_t types, and
    84	     the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN,  
PTRDIFF_MAX.  */
    85	# include <sys/inttypes.h>
    86	#endif
    87	
    88	#if  && ! defined __BIT_TYPES_DEFINED__
    89	  /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that  
defines
    90	     int{8,16,32,64}_t and __BIT_TYPES_DEFINED__.  In libc5 >=  
5.2.2 it is
    91	     included by <sys/types.h>.  */
    92	# include <sys/bitypes.h>
    93	#endif

This error exists since 30 h (an update yesterday let the NS variant  
compile but not the X client):

	. md5.h
	.. ./stdio.h
	... /usr/include/stdio.h
	... /sw/lib/gcc4.5/lib/gcc/powerpc-apple-darwin9.8.0/4.5.2/include/ 
stdarg.h
	... /sw/lib/gcc4.5/lib/gcc/powerpc-apple-darwin9.8.0/4.5.2/include/ 
stddef.h
	... /usr/include/sys/types.h
	.... /usr/include/sys/_structs.h
	.. ./stdint.h
	... /sw/lib/gcc4.5/lib/gcc/powerpc-apple-darwin9.8.0/4.5.2/include/ 
stdint.h
	.... /sw/lib/gcc4.5/lib/gcc/powerpc-apple-darwin9.8.0/4.5.2/include- 
fixed/stdint.h
	... /sw/lib/gcc4.5/lib/gcc/powerpc-apple-darwin9.8.0/4.5.2/include- 
fixed/limits.h
	.... /sw/lib/gcc4.5/lib/gcc/powerpc-apple-darwin9.8.0/4.5.2/include- 
fixed/syslimits.h
	..... /sw/lib/gcc4.5/lib/gcc/powerpc-apple-darwin9.8.0/4.5.2/include- 
fixed/limits.h
	...... /usr/include/limits.h
	....... /usr/include/machine/limits.h
	........ /usr/include/ppc/limits.h
	......... /usr/include/ppc/_limits.h
	....... /usr/include/sys/syslimits.h
	... /usr/include/inttypes.h
	.... ./stdint.h
	In file included from md5.h:25:0,
	                 from md5.c:25:
	./stdint.h:82:7: error: #elif with no expression
	./st
	Compilation exited abnormally with code 2 at Mon Apr  4 21:12:43

I think the code was OK until revno: 103797.

Mac OS X 10.5.8, PPC; GCC 4.5.2; revno: 103819.

--
Greetings

   Pete

If it does exist, it's out of date.
				– Arnold's Second Law of Documentation