xref: /illumos-gate/usr/src/contrib/ast/src/lib/libast/features/standards (revision b30d193948be5a7794d7ae3ba0ed9c2f72c88e0f)
1*b30d1939SAndy Fiddamanset stdio
2*b30d1939SAndy Fiddamanif tst note{ _ALL_SOURCE & _POSIX_SOURCE & _POSIX_C_SOURCE & _XOPEN_SOURCE & __EXTENSIONS__ works }end compile{
3*b30d1939SAndy Fiddaman		#define _ALL_SOURCE	1
4*b30d1939SAndy Fiddaman		#define _POSIX_SOURCE	1
5*b30d1939SAndy Fiddaman		#define _POSIX_C_SOURCE	21000101L
6*b30d1939SAndy Fiddaman		#define _XOPEN_SOURCE	9900
7*b30d1939SAndy Fiddaman		#define _GNU_SOURCE	1
8*b30d1939SAndy Fiddaman		#define __EXTENSIONS__	1
9*b30d1939SAndy Fiddaman		#include <sys/types.h>
10*b30d1939SAndy Fiddaman		#include <sys/stat.h>
11*b30d1939SAndy Fiddaman		#include <stdlib.h>
12*b30d1939SAndy Fiddaman		#include <unistd.h>
13*b30d1939SAndy Fiddaman	}end {
14*b30d1939SAndy Fiddaman		#ifndef _ALL_SOURCE
15*b30d1939SAndy Fiddaman		#define _ALL_SOURCE	1
16*b30d1939SAndy Fiddaman		#endif
17*b30d1939SAndy Fiddaman		#ifndef _POSIX_SOURCE
18*b30d1939SAndy Fiddaman		#define _POSIX_SOURCE	1
19*b30d1939SAndy Fiddaman		#endif
20*b30d1939SAndy Fiddaman		#ifndef _POSIX_C_SOURCE
21*b30d1939SAndy Fiddaman		#define _POSIX_C_SOURCE	21000101L
22*b30d1939SAndy Fiddaman		#endif
23*b30d1939SAndy Fiddaman		#ifndef _XOPEN_SOURCE
24*b30d1939SAndy Fiddaman		#define _XOPEN_SOURCE	9900
25*b30d1939SAndy Fiddaman		#endif
26*b30d1939SAndy Fiddaman		#ifndef _GNU_SOURCE
27*b30d1939SAndy Fiddaman		#define _GNU_SOURCE	1
28*b30d1939SAndy Fiddaman		#endif
29*b30d1939SAndy Fiddaman		#ifndef __EXTENSIONS__
30*b30d1939SAndy Fiddaman		#define __EXTENSIONS__	1
31*b30d1939SAndy Fiddaman		#endif
32*b30d1939SAndy Fiddaman	}
33*b30d1939SAndy Fiddamanelif tst note{ _ALL_SOURCE & _POSIX_SOURCE & _XOPEN_SOURCE & __EXTENSIONS__ works }end compile{
34*b30d1939SAndy Fiddaman		#define _ALL_SOURCE	1
35*b30d1939SAndy Fiddaman		#define _POSIX_SOURCE	1
36*b30d1939SAndy Fiddaman		#define _XOPEN_SOURCE	9900
37*b30d1939SAndy Fiddaman		#define _GNU_SOURCE	1
38*b30d1939SAndy Fiddaman		#define __EXTENSIONS__	1
39*b30d1939SAndy Fiddaman		#include <sys/types.h>
40*b30d1939SAndy Fiddaman		#include <sys/stat.h>
41*b30d1939SAndy Fiddaman		#include <stdlib.h>
42*b30d1939SAndy Fiddaman		#include <unistd.h>
43*b30d1939SAndy Fiddaman	}end {
44*b30d1939SAndy Fiddaman		#ifndef _ALL_SOURCE
45*b30d1939SAndy Fiddaman		#define _ALL_SOURCE	1
46*b30d1939SAndy Fiddaman		#endif
47*b30d1939SAndy Fiddaman		#ifndef _POSIX_SOURCE
48*b30d1939SAndy Fiddaman		#define _POSIX_SOURCE	1
49*b30d1939SAndy Fiddaman		#endif
50*b30d1939SAndy Fiddaman		#ifndef _XOPEN_SOURCE
51*b30d1939SAndy Fiddaman		#define _XOPEN_SOURCE	9900
52*b30d1939SAndy Fiddaman		#endif
53*b30d1939SAndy Fiddaman		#ifndef _GNU_SOURCE
54*b30d1939SAndy Fiddaman		#define _GNU_SOURCE	1
55*b30d1939SAndy Fiddaman		#endif
56*b30d1939SAndy Fiddaman		#ifndef __EXTENSIONS__
57*b30d1939SAndy Fiddaman		#define __EXTENSIONS__	1
58*b30d1939SAndy Fiddaman		#endif
59*b30d1939SAndy Fiddaman	}
60*b30d1939SAndy Fiddamanelif tst note{ _POSIX_SOURCE & _POSIX_C_SOURCE & _XOPEN_SOURCE & __EXTENSIONS__ works }end compile{
61*b30d1939SAndy Fiddaman		#define _POSIX_SOURCE	1
62*b30d1939SAndy Fiddaman		#define _POSIX_C_SOURCE	21000101L
63*b30d1939SAndy Fiddaman		#define _XOPEN_SOURCE	9900
64*b30d1939SAndy Fiddaman		#define _GNU_SOURCE	1
65*b30d1939SAndy Fiddaman		#define __EXTENSIONS__	1
66*b30d1939SAndy Fiddaman		#include <sys/types.h>
67*b30d1939SAndy Fiddaman		#include <sys/stat.h>
68*b30d1939SAndy Fiddaman		#include <stdlib.h>
69*b30d1939SAndy Fiddaman		#include <unistd.h>
70*b30d1939SAndy Fiddaman	}end {
71*b30d1939SAndy Fiddaman		#ifndef _POSIX_SOURCE
72*b30d1939SAndy Fiddaman		#define _POSIX_SOURCE	1
73*b30d1939SAndy Fiddaman		#endif
74*b30d1939SAndy Fiddaman		#ifndef _POSIX_C_SOURCE
75*b30d1939SAndy Fiddaman		#define _POSIX_C_SOURCE	21000101L
76*b30d1939SAndy Fiddaman		#endif
77*b30d1939SAndy Fiddaman		#ifndef _XOPEN_SOURCE
78*b30d1939SAndy Fiddaman		#define _XOPEN_SOURCE	9900
79*b30d1939SAndy Fiddaman		#endif
80*b30d1939SAndy Fiddaman		#ifndef _GNU_SOURCE
81*b30d1939SAndy Fiddaman		#define _GNU_SOURCE	1
82*b30d1939SAndy Fiddaman		#endif
83*b30d1939SAndy Fiddaman		#ifndef __EXTENSIONS__
84*b30d1939SAndy Fiddaman		#define __EXTENSIONS__	1
85*b30d1939SAndy Fiddaman		#endif
86*b30d1939SAndy Fiddaman	}
87*b30d1939SAndy Fiddamanelif tst note{ _POSIX_SOURCE & _XOPEN_SOURCE & __EXTENSIONS__ works }end compile{
88*b30d1939SAndy Fiddaman		#define _POSIX_SOURCE	1
89*b30d1939SAndy Fiddaman		#define _XOPEN_SOURCE	1
90*b30d1939SAndy Fiddaman		#define __EXTENSIONS__	1
91*b30d1939SAndy Fiddaman		#include <sys/types.h>
92*b30d1939SAndy Fiddaman		#include <sys/stat.h>
93*b30d1939SAndy Fiddaman		#include <stdlib.h>
94*b30d1939SAndy Fiddaman		#include <unistd.h>
95*b30d1939SAndy Fiddaman	}end {
96*b30d1939SAndy Fiddaman		#ifndef _POSIX_SOURCE
97*b30d1939SAndy Fiddaman		#define _POSIX_SOURCE	1
98*b30d1939SAndy Fiddaman		#endif
99*b30d1939SAndy Fiddaman		#ifndef _XOPEN_SOURCE
100*b30d1939SAndy Fiddaman		#define _XOPEN_SOURCE	1
101*b30d1939SAndy Fiddaman		#endif
102*b30d1939SAndy Fiddaman		#ifndef __EXTENSIONS__
103*b30d1939SAndy Fiddaman		#define __EXTENSIONS__	1
104*b30d1939SAndy Fiddaman		#endif
105*b30d1939SAndy Fiddaman	}
106*b30d1939SAndy Fiddamanelif tst note{ _XOPEN_SOURCE & __EXTENSIONS__ works }end compile{
107*b30d1939SAndy Fiddaman		#define _XOPEN_SOURCE	1
108*b30d1939SAndy Fiddaman		#define __EXTENSIONS__	1
109*b30d1939SAndy Fiddaman		#include <sys/types.h>
110*b30d1939SAndy Fiddaman		#include <sys/stat.h>
111*b30d1939SAndy Fiddaman		#include <stdlib.h>
112*b30d1939SAndy Fiddaman		#include <unistd.h>
113*b30d1939SAndy Fiddaman	}end {
114*b30d1939SAndy Fiddaman		#ifndef _XOPEN_SOURCE
115*b30d1939SAndy Fiddaman		#define _XOPEN_SOURCE	1
116*b30d1939SAndy Fiddaman		#endif
117*b30d1939SAndy Fiddaman		#ifndef __EXTENSIONS__
118*b30d1939SAndy Fiddaman		#define __EXTENSIONS__	1
119*b30d1939SAndy Fiddaman		#endif
120*b30d1939SAndy Fiddaman	}
121*b30d1939SAndy Fiddamanelif tst note{ _XOPEN_SOURCE works }end compile{
122*b30d1939SAndy Fiddaman		#define _XOPEN_SOURCE	1
123*b30d1939SAndy Fiddaman		#include <sys/types.h>
124*b30d1939SAndy Fiddaman		#include <sys/stat.h>
125*b30d1939SAndy Fiddaman		#include <stdlib.h>
126*b30d1939SAndy Fiddaman		#include <unistd.h>
127*b30d1939SAndy Fiddaman	}end {
128*b30d1939SAndy Fiddaman		#ifndef _XOPEN_SOURCE
129*b30d1939SAndy Fiddaman		#define _XOPEN_SOURCE	1
130*b30d1939SAndy Fiddaman		#endif
131*b30d1939SAndy Fiddaman	}
132*b30d1939SAndy Fiddamanelse tst note{ __EXTENSIONS__ works }end compile{
133*b30d1939SAndy Fiddaman		#define __EXTENSIONS__	1
134*b30d1939SAndy Fiddaman		#include <sys/types.h>
135*b30d1939SAndy Fiddaman		#include <sys/stat.h>
136*b30d1939SAndy Fiddaman	}end {
137*b30d1939SAndy Fiddaman		#ifndef __EXTENSIONS__
138*b30d1939SAndy Fiddaman		#define __EXTENSIONS__	1
139*b30d1939SAndy Fiddaman		#endif
140*b30d1939SAndy Fiddaman	}
141*b30d1939SAndy Fiddamanendif
142*b30d1939SAndy Fiddaman
143*b30d1939SAndy Fiddamanif tst -D_ISOC99_SOURCE -lm note{ _ISOC99_SOURCE plays nice }end link{
144*b30d1939SAndy Fiddaman		#include <sys/types.h>
145*b30d1939SAndy Fiddaman		#include <sys/stat.h>
146*b30d1939SAndy Fiddaman		#include <stdlib.h>
147*b30d1939SAndy Fiddaman		#include <unistd.h>
148*b30d1939SAndy Fiddaman		#include <math.h>
149*b30d1939SAndy Fiddaman		int main() { return signbit(-0.0); }
150*b30d1939SAndy Fiddaman	}end {
151*b30d1939SAndy Fiddaman		#ifndef _ISOC99_SOURCE
152*b30d1939SAndy Fiddaman		#define _ISOC99_SOURCE	1
153*b30d1939SAndy Fiddaman		#endif
154*b30d1939SAndy Fiddaman	}
155*b30d1939SAndy Fiddamanendif
156*b30d1939SAndy Fiddaman
157*b30d1939SAndy Fiddamancat{
158*b30d1939SAndy Fiddaman
159*b30d1939SAndy Fiddaman/*
160*b30d1939SAndy Fiddaman * this is a nasty game we all play to honor standards symbol visibility
161*b30d1939SAndy Fiddaman * it would help if all implementations had
162*b30d1939SAndy Fiddaman *	_KITCHEN_SINK_SOURCE
163*b30d1939SAndy Fiddaman * that enabled all symbols from the latest implemented standards
164*b30d1939SAndy Fiddaman * that's probably the most useful but least portable request
165*b30d1939SAndy Fiddaman */
166*b30d1939SAndy Fiddaman
167*b30d1939SAndy Fiddaman#if __MACH__
168*b30d1939SAndy Fiddaman#undef  _POSIX_SOURCE
169*b30d1939SAndy Fiddaman#endif
170*b30d1939SAndy Fiddaman
171*b30d1939SAndy Fiddaman}end
172