1 /* Provide support for both ANSI and non-ANSI environments. */
3 /* Some ANSI environments are "broken" in the sense that __STDC__ cannot be
4 relied upon to have it's intended meaning. Therefore we must use our own
5 concoction: _HAVE_STDC. Always use _HAVE_STDC instead of __STDC__ in newlib
8 To get a strict ANSI C environment, define macro __STRICT_ANSI__. This will
9 "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header
10 files aren't affected). */
15 #include <sys/config.h>
17 /* First try to figure out whether we really are in an ANSI C environment. */
18 /* FIXME: This probably needs some work. Perhaps sys/config.h can be
19 prevailed upon to give us a clue. */
30 #define _VOLATILE volatile
31 #define _SIGNED signed
34 #if defined (__CYGWIN__) || defined (__MSYS__)
35 #define _EXFUN(name, proto) __cdecl name proto
36 #define _EXPARM(name, proto) (* __cdecl name) proto
38 #define _EXFUN(name, proto) name proto
39 #define _EXPARM(name, proto) (* name) proto
41 #define _DEFUN(name, arglist, args) name(args)
42 #define _DEFUN_VOID(name) name(_NOARGS)
43 #define _CAST_VOID (void)
45 #define _LONG_DOUBLE long double
48 #define _PARAMS(paramlist) paramlist
59 #define _EXFUN(name, proto) name()
60 #define _DEFUN(name, arglist, args) name arglist args;
61 #define _DEFUN_VOID(name) name()
63 #define _LONG_DOUBLE double
65 #define _PARAMS(paramlist) ()
69 /* Support gcc's __attribute__ facility. */
72 #define _ATTRIBUTE(attrs) __attribute__ (attrs)
74 #define _ATTRIBUTE(attrs)
77 #endif /* _ANSIDECL_H_ */