Subject: re: lib/36511: lcc is an ANSI C compiler for a variety of platforms
To: None <>
From: matthew green <>
List: netbsd-bugs
Date: 06/20/2007 06:25:52
   0 tmp>cat main.c 
   #include <stdio.h>
   int main (void)
           printf ("Hello world\n");
           return 0;
   0 tmp>gcc main.c 
   0 tmp>./a.out                                            
Hello world
   0 tmp>lcc main.c 
   cpp: /usr/include/sys/cdefs_elf.h:67 /usr/pkg/share/lcc/include/sys/cdefs.h:21 /usr/include/stdio.h:40 main.c:1 Syntax error in #if/#elsif
   1 tmp>
   Can you make NetBSD include files
   a bit friendlier for C compilers other that GCC?

this should be valid for an ANSI C compiler.  the relevant parts are:

from <sys/cdefs.h>:

#ifdef __GNUC__
#define __GNUC_PREREQ__(x, y)                                           \
        ((__GNUC__ == (x) && __GNUC_MINOR__ >= (y)) ||                  \
	 (__GNUC__ > (x)))
#define __GNUC_PREREQ__(x, y)   0

and the usage from <sys/cdefs_elf.h>:

#if __GNUC_PREREQ__(4, 0)

so this should come out as "#if 0" for non GCC compilers.  does lcc
define __GNUC__ by chance?