Raise an error on syscall failure in tls_retry_write_records
[openssl.git] / Configurations / 50-nonstop.conf
1 #### Nonstop configurations
2     # Common for all
3     'nonstop-common' => {
4         inherit_from     => [ 'BASE_unix' ],
5         template         => 1,
6         cc               => 'c99',
7         cflags           => add_before(picker(debug   => '-g -O0',
8                                               release => '-g -O2'),
9                                        '-Wextensions',
10                                        '-Wnowarn=203,220,272,734,770,1506',
11                                        '-Wbuild_neutral_library',
12                                        '-Wverbose'),
13         defines          => add('OPENSSL_VPROC=$(OPENSSL_VPROC)',
14                                 '_XOPEN_SOURCE',
15                                 '_XOPEN_SOURCE_EXTENDED=1',
16                                 '_TANDEM_SOURCE',
17                                 'B_ENDIAN'),
18         perl             => '/usr/bin/perl',
19         shared_target    => 'nonstop-shared',
20         shared_extension => ".so",
21         ex_libs          => add('-lrld'),
22         enable           => ['egd'],
23         dso_scheme       => 'DLFCN',
24         sys_id           => 'TANDEM',
25     },
26
27     ######################################################################
28     # Additional variant settings, to be combined with nonstop-common
29     # Note that these do not inherit anything.  However, the diverse values
30     # are merged with other entries in an 'inherit_from'.
31     #
32     # These combine:
33     # - System architecture (MIPS, Itanium, or x86)
34     # - Execution environment (oss [default] or guardian)
35     #
36     # Unfortunately, they can't be separated into independent templates, because
37     # a number of the above are encoded as different linkers, and by consequence,
38     # different c99 linker flags (-Wld, -Weld, and -Wxld)
39     #
40     # In addition, the are modifiers for:
41     # - Size of long + pointer (ilp32 [default] and lp64)
42     # - Float type (neutral and tandem)
43     #
44     # Unfortunately, because the float types affect the linker settings, those
45     # are divided per system architecture
46     #
47     # MIPS + guardian (unused but present for convenience):
48     'nonstop-archenv-mips-guardian' => {
49         template         => 1,
50         defines          => ['NO_GETPID'],
51         cflags           => '-Wtarget=tns/r -Wsystype=guardian',
52         lflags           => '-Wld="-set systype guardian"',
53         shared_ldflag    => '-Wshared -Wld="-soname $(@:lib%.so=%)"',
54         shared_defflag   => '-Wld_obey=',
55         shared_argfileflag => '-Wld_obey=',
56     },
57
58     # Itanium + guardian:
59     'nonstop-archenv-itanium-guardian' => {
60         template         => 1,
61         defines          => ['NO_GETPID', '_TANDEM_ARCH=2'],
62         cflags           => '-Wtarget=tns/e -Wsystype=guardian',
63         lflags           => '-Weld="-set systype guardian"',
64         shared_ldflag    => '-Wshared -Weld="-soname $(@:lib%.so=%)"',
65         shared_defflag   => '-Weld_obey=',
66         shared_argfileflag => '-Weld_obey=',
67     },
68
69     # x86 + guardian:
70     'nonstop-archenv-x86_64-guardian' => {
71         template         => 1,
72         defines          => ['NO_GETPID', '_TANDEM_ARCH=3'],
73         cflags           => '-Wtarget=tns/x -Wsystype=guardian',
74         lflags           => '-Wxld="-set systype guardian"',
75         shared_ldflag    => '-Wshared -Wxld="-soname $(@:lib%.so=%)"',
76         shared_defflag   => '-Wxld_obey=',
77         shared_argfileflag => '-Wxld_obey=',
78     },
79
80     # MIPS + oss (unused but present for convenience):
81     'nonstop-archenv-mips-oss' => {
82         template         => 1,
83         cflags           => '-Wtarget=tns/r -Wsystype=oss',
84         lflags           => '-Wld="-set systype oss"',
85         shared_ldflag    => '-Wshared',
86         shared_defflag   => '-Wld_obey=',
87         shared_argfileflag => '-Wld_obey=',
88     },
89     # Itanium + oss:
90     'nonstop-archenv-itanium-oss' => {
91         template         => 1,
92         defines          => ['_TANDEM_ARCH=2'],
93         cflags           => '-Wtarget=tns/e -Wsystype=oss',
94         lflags           => '-Weld="-set systype oss"',
95         shared_ldflag    => '-Wshared',
96         shared_defflag   => '-Weld_obey=',
97         shared_argfileflag => '-Weld_obey=',
98     },
99     # x86_64 + oss:
100     'nonstop-archenv-x86_64-oss' => {
101         template         => 1,
102         defines          => ['_TANDEM_ARCH=3'],
103         cflags           => '-Wtarget=tns/x -Wsystype=oss',
104         lflags           => '-Wxld="-set systype oss"',
105         shared_ldflag    => '-Wshared',
106         shared_defflag   => '-Wxld_obey=',
107         shared_argfileflag => '-Wxld_obey=',
108     },
109
110     # Size variants
111     'nonstop-ilp32' => {
112         template         => 1,
113         cflags           => '-Wilp32',
114         bn_ops           => 'THIRTY_TWO_BIT',
115     },
116     'nonstop-lp64-itanium' => {
117         template         => 1,
118         cflags           => '-Wlp64',
119         bn_ops           => 'SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR',
120     },
121     'nonstop-lp64-x86_64' => {
122         template         => 1,
123         cflags           => '-Wlp64',
124         lflags           => '-Wxld="-set data_model lp64"',
125         bn_ops           => 'SIXTY_FOUR_BIT',
126     },
127
128     # Float variants
129     'nonstop-nfloat-mips' => {
130         template         => 1,
131         lflags           => '-Wld="-set floattype neutral_float"',
132     },
133     'nonstop-tfloat-mips' => {
134         template         => 1,
135         lflags           => '-Wld="-set floattype tandem_float"',
136     },
137     'nonstop-efloat-itanium' => {
138         template         => 1,
139         cflags           => '-WIEEE_float',
140         lflags           => '-Weld="-set floattype ieee_float"',
141     },
142     'nonstop-nfloat-itanium' => {
143         template         => 1,
144         lflags           => '-Weld="-set floattype neutral_float"',
145     },
146     'nonstop-tfloat-itanium' => {
147         template         => 1,
148         cflags           => '-WTandem_float',
149         lflags           => '-Weld="-set floattype tandem_float"',
150     },
151     'nonstop-efloat-x86_64' => {
152         template         => 1,
153         cflags           => '-WIEEE_float',
154         lflags           => '-Wxld="-set floattype ieee_float"',
155     },
156     'nonstop-nfloat-x86_64' => {
157         template         => 1,
158         lflags           => '-Wxld="-set floattype neutral_float"',
159     },
160     'nonstop-tfloat-x86_64' => {
161         template         => 1,
162         cflags           => '-WTandem_float',
163         lflags           => '-Wxld="-set floattype tandem_float"',
164     },
165
166     ######################################################################
167     # Build models
168     'nonstop-model-put' => {
169         template         => 1,
170         defines          => ['_PUT_MODEL_',
171                              '_REENTRANT', '_THREAD_SUPPORT_FUNCTIONS'],
172         ex_libs          => '-lput',
173     },
174     'nonstop-model-spt' => {
175         template         => 1,
176         defines          => ['_SPT_MODEL_',
177                              '_REENTRANT', '_ENABLE_FLOSS_THREADS'],
178         ex_libs          => '-lspt',
179     },
180
181     # Additional floss model that can be combined with any of the other models.
182     # If used without any of the other models, the entry that does so must
183     # disable threads.
184     'nonstop-model-floss' => {
185         template         => 1,
186         defines          => ['OPENSSL_TANDEM_FLOSS'],
187         includes         => ['/usr/local/include'],
188         ex_libs          => '-lfloss',
189     },
190
191     ######################################################################
192     # Now for the entries themselves, let's combine things!
193     'nonstop-nsx' => {
194         inherit_from     => [ 'nonstop-common',
195                               'nonstop-archenv-x86_64-oss',
196                               'nonstop-ilp32',
197                               'nonstop-efloat-x86_64' ],
198         disable          => ['threads'],
199     },
200     'nonstop-nsx_put' => {
201         inherit_from     => [ 'nonstop-common',
202                               'nonstop-archenv-x86_64-oss',
203                               'nonstop-ilp32',
204                               'nonstop-efloat-x86_64',
205                               'nonstop-model-put' ],
206         multilib         => '-put',
207     },
208     'nonstop-nsx_64' => {
209         inherit_from     => [ 'nonstop-common',
210                               'nonstop-archenv-x86_64-oss',
211                               'nonstop-lp64-x86_64',
212                               'nonstop-efloat-x86_64' ],
213         multilib         => '64',
214         disable          => ['threads'],
215     },
216     'nonstop-nsx_64_put' => {
217         inherit_from     => [ 'nonstop-common',
218                               'nonstop-archenv-x86_64-oss',
219                               'nonstop-lp64-x86_64',
220                               'nonstop-efloat-x86_64',
221                               'nonstop-model-put' ],
222         multilib         => '64-put',
223     },
224     'nonstop-nsx_spt' => {
225         inherit_from     => [ 'nonstop-common',
226                               'nonstop-archenv-x86_64-oss',
227                               'nonstop-ilp32',
228                               'nonstop-efloat-x86_64',
229                               'nonstop-model-spt' ],
230         multilib         => '-spt',
231     },
232     'nonstop-nsx_spt_floss' => {
233         inherit_from     => [ 'nonstop-common',
234                               'nonstop-archenv-x86_64-oss',
235                               'nonstop-ilp32',
236                               'nonstop-efloat-x86_64',
237                               'nonstop-model-floss',
238                               'nonstop-model-spt'],
239         multilib         => '-spt',
240     },
241     'nonstop-nsx_g' => {
242         inherit_from     => [ 'nonstop-common',
243                               'nonstop-archenv-x86_64-guardian',
244                               'nonstop-ilp32', 'nonstop-nfloat-x86_64' ],
245         disable          => ['threads'],
246     },
247     'nonstop-nsx_g_tandem' => {
248         inherit_from     => [ 'nonstop-common',
249                               'nonstop-archenv-x86_64-guardian',
250                               'nonstop-ilp32', 'nonstop-tfloat-x86_64' ],
251         disable          => ['threads'],
252     },
253     'nonstop-nsv' => {
254         inherit_from     => [ 'nonstop-nsx' ],
255     },
256     'nonstop-nse' => {
257         inherit_from     => [ 'nonstop-common',
258                               'nonstop-archenv-itanium-oss',
259                               'nonstop-ilp32',
260                               'nonstop-efloat-itanium' ],
261         disable          => ['threads'],
262     },
263     'nonstop-nse_put' => {
264         inherit_from     => [ 'nonstop-common',
265                               'nonstop-archenv-itanium-oss',
266                               'nonstop-ilp32',
267                               'nonstop-efloat-itanium',
268                               'nonstop-model-put' ],
269         multilib         => '-put',
270     },
271     'nonstop-nse_64' => {
272         inherit_from     => [ 'nonstop-common',
273                               'nonstop-archenv-itanium-oss',
274                               'nonstop-lp64-itanium',
275                               'nonstop-efloat-itanium' ],
276         multilib         => '64',
277         disable          => ['threads'],
278     },
279     'nonstop-nse_64_put' => {
280         inherit_from     => [ 'nonstop-common',
281                               'nonstop-archenv-itanium-oss',
282                               'nonstop-lp64-itanium',
283                               'nonstop-efloat-itanium',
284                               'nonstop-model-put' ],
285         multilib         => '64-put',
286     },
287     'nonstop-nse_spt' => {
288         inherit_from     => [ 'nonstop-common',
289                               'nonstop-archenv-itanium-oss',
290                               'nonstop-ilp32',
291                               'nonstop-efloat-itanium',
292                               'nonstop-model-spt' ],
293         multilib         => '-spt',
294     },
295     'nonstop-nse_spt_floss' => {
296         inherit_from     => [ 'nonstop-common',
297                               'nonstop-archenv-itanium-oss',
298                               'nonstop-ilp32',
299                               'nonstop-efloat-itanium',
300                               'nonstop-model-floss', 'nonstop-model-spt' ],
301         multilib         => '-spt',
302     },
303     'nonstop-nse_g' => {
304         inherit_from     => [ 'nonstop-common',
305                               'nonstop-archenv-itanium-guardian',
306                               'nonstop-ilp32', 'nonstop-nfloat-itanium' ],
307         disable          => ['threads'],
308     },
309
310     'nonstop-nse_g_tandem' => {
311         inherit_from     => [ 'nonstop-common',
312                               'nonstop-archenv-itanium-guardian',
313                               'nonstop-ilp32', 'nonstop-tfloat-itanium' ],
314         disable          => ['threads'],
315     },