873e398169bb7c0b820d60ac8203971029dffc90
[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                                 '__NSK_OPTIONAL_TYPES__',
18                                 'B_ENDIAN'),
19         perl             => '/usr/bin/perl',
20         shared_target    => 'nonstop-shared',
21         shared_extension => ".so",
22         ex_libs          => add('-lrld'),
23         enable           => ['egd'],
24         dso_scheme       => 'DLFCN',
25         sys_id           => 'TANDEM',
26     },
27
28     ######################################################################
29     # Additional variant settings, to be combined with nonstop-common
30     # Note that these do not inherit anything.  However, the diverse values
31     # are merged with other entries in an 'inherit_from'.
32     #
33     # These combine:
34     # - System architecture (MIPS, Itanium, or x86)
35     # - Execution environment (oss [default] or guardian)
36     #
37     # Unfortunately, they can't be separated into independent templates, because
38     # a number of the above are encoded as different linkers, and by consequence,
39     # different c99 linker flags (-Wld, -Weld, and -Wxld)
40     #
41     # In addition, the are modifiers for:
42     # - Size of long + pointer (ilp32 [default] and lp64)
43     # - Float type (neutral and tandem)
44     #
45     # Unfortunately, because the float types affect the linker settings, those
46     # are divided per system architecture
47     #
48     # MIPS + guardian (unused but present for convenience):
49     'nonstop-archenv-mips-guardian' => {
50         template         => 1,
51         defines          => ['NO_GETPID'],
52         cflags           => '-Wtarget=tns/r -Wsystype=guardian',
53         lflags           => '-Wld="-set systype guardian"',
54         shared_ldflag    => '-Wshared -Wld="-soname $(@:lib%.so=%)"',
55         shared_defflag   => '-Wld_obey=',
56         shared_argfileflag => '-Wld_obey=',
57     },
58
59     # Itanium + guardian:
60     'nonstop-archenv-itanium-guardian' => {
61         template         => 1,
62         defines          => ['NO_GETPID'],
63         cflags           => '-Wtarget=tns/e -Wsystype=guardian',
64         lflags           => '-Weld="-set systype guardian"',
65         shared_ldflag    => '-Wshared -Weld="-soname $(@:lib%.so=%)"',
66         shared_defflag   => '-Weld_obey=',
67         shared_argfileflag => '-Weld_obey=',
68     },
69
70     # x86 + guardian:
71     'nonstop-archenv-x86_64-guardian' => {
72         template         => 1,
73         defines          => ['NO_GETPID'],
74         cflags           => '-Wtarget=tns/x -Wsystype=guardian',
75         lflags           => '-Wxld="-set systype guardian"',
76         shared_ldflag    => '-Wshared -Wxld="-soname $(@:lib%.so=%)"',
77         shared_defflag   => '-Wxld_obey=',
78         shared_argfileflag => '-Wxld_obey=',
79     },
80
81     # MIPS + oss (unused but present for convenience):
82     'nonstop-archenv-mips-oss' => {
83         template         => 1,
84         cflags           => '-Wtarget=tns/r -Wsystype=oss',
85         lflags           => '-Wld="-set systype oss"',
86         shared_ldflag    => '-Wshared',
87         shared_defflag   => '-Wld_obey=',
88         shared_argfileflag => '-Wld_obey=',
89     },
90     # Itanium + oss:
91     'nonstop-archenv-itanium-oss' => {
92         template         => 1,
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         cflags           => '-Wtarget=tns/x -Wsystype=oss',
103         lflags           => '-Wxld="-set systype oss"',
104         shared_ldflag    => '-Wshared',
105         shared_defflag   => '-Wxld_obey=',
106         shared_argfileflag => '-Wxld_obey=',
107     },
108
109     # Size variants
110     'nonstop-ilp32' => {
111         template         => 1,
112         cflags           => '-Wilp32',
113         bn_ops           => 'THIRTY_TWO_BIT',
114     },
115     'nonstop-lp64-itanium' => {
116         template         => 1,
117         cflags           => '-Wlp64',
118         bn_ops           => 'SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR',
119     },
120     'nonstop-lp64-x86_64' => {
121         template         => 1,
122         cflags           => '-Wlp64',
123         lflags           => '-Wxld="-set data_model lp64"',
124         bn_ops           => 'SIXTY_FOUR_BIT',
125     },
126
127     # Float variants
128     'nonstop-nfloat-mips' => {
129         template         => 1,
130         lflags           => '-Wld="-set floattype neutral_float"',
131     },
132     'nonstop-tfloat-mips' => {
133         template         => 1,
134         lflags           => '-Wld="-set floattype tandem_float"',
135     },
136     'nonstop-efloat-itanium' => {
137         template         => 1,
138         cflags           => '-WIEEE_float',
139         lflags           => '-Weld="-set floattype ieee_float"',
140     },
141     'nonstop-nfloat-itanium' => {
142         template         => 1,
143         lflags           => '-Weld="-set floattype neutral_float"',
144     },
145     'nonstop-tfloat-itanium' => {
146         template         => 1,
147         cflags           => '-WTandem_float',
148         lflags           => '-Weld="-set floattype tandem_float"',
149     },
150     'nonstop-efloat-x86_64' => {
151         template         => 1,
152         cflags           => '-WIEEE_float',
153         lflags           => '-Wxld="-set floattype ieee_float"',
154     },
155     'nonstop-nfloat-x86_64' => {
156         template         => 1,
157         lflags           => '-Wxld="-set floattype neutral_float"',
158     },
159     'nonstop-tfloat-x86_64' => {
160         template         => 1,
161         cflags           => '-WTandem_float',
162         lflags           => '-Wxld="-set floattype tandem_float"',
163     },
164
165     ######################################################################
166     # Build models
167     'nonstop-model-put' => {
168         template         => 1,
169         defines          => ['_PUT_MODEL_',
170                              '_REENTRANT', '_THREAD_SUPPORT_FUNCTIONS'],
171         ex_libs          => '-lput',
172     },
173
174     ######################################################################
175     # Now for the entries themselves, let's combine things!
176     'nonstop-nsx' => {
177         inherit_from     => [ 'nonstop-common',
178                               'nonstop-archenv-x86_64-oss',
179                               'nonstop-ilp32',
180                               'nonstop-efloat-x86_64' ],
181         disable          => ['threads'],
182     },
183     'nonstop-nsx_put' => {
184         inherit_from     => [ 'nonstop-common',
185                               'nonstop-archenv-x86_64-oss',
186                               'nonstop-ilp32',
187                               'nonstop-efloat-x86_64',
188                               'nonstop-model-put' ],
189         multilib         => '-put',
190         multibin         => '-put',
191     },
192     'nonstop-nsx_64' => {
193         inherit_from     => [ 'nonstop-common',
194                               'nonstop-archenv-x86_64-oss',
195                               'nonstop-lp64-x86_64',
196                               'nonstop-efloat-x86_64' ],
197         multilib         => '64',
198         multibin         => '64',
199         disable          => ['threads'],
200     },
201     'nonstop-nsx_64_put' => {
202         inherit_from     => [ 'nonstop-common',
203                               'nonstop-archenv-x86_64-oss',
204                               'nonstop-lp64-x86_64',
205                               'nonstop-efloat-x86_64',
206                               'nonstop-model-put' ],
207         multilib         => '64-put',
208         multibin         => '64-put',
209     },
210     'nonstop-nsx_g' => {
211         inherit_from     => [ 'nonstop-common',
212                               'nonstop-archenv-x86_64-guardian',
213                               'nonstop-ilp32', 'nonstop-nfloat-x86_64' ],
214         disable          => ['threads'],
215     },
216     'nonstop-nsx_g_tandem' => {
217         inherit_from     => [ 'nonstop-common',
218                               'nonstop-archenv-x86_64-guardian',
219                               'nonstop-ilp32', 'nonstop-tfloat-x86_64' ],
220         disable          => ['threads'],
221     },
222     'nonstop-nsv' => {
223         inherit_from     => [ 'nonstop-nsx' ],
224     },
225     'nonstop-nse' => {
226         inherit_from     => [ 'nonstop-common',
227                               'nonstop-archenv-itanium-oss',
228                               'nonstop-ilp32',
229                               'nonstop-efloat-itanium' ],
230         disable          => ['threads'],
231     },
232     'nonstop-nse_put' => {
233         inherit_from     => [ 'nonstop-common',
234                               'nonstop-archenv-itanium-oss',
235                               'nonstop-ilp32',
236                               'nonstop-efloat-itanium',
237                               'nonstop-model-put' ],
238         multilib         => '-put',
239         multibin         => '-put',
240     },
241     'nonstop-nse_64' => {
242         inherit_from     => [ 'nonstop-common',
243                               'nonstop-archenv-itanium-oss',
244                               'nonstop-lp64-itanium',
245                               'nonstop-efloat-itanium' ],
246         multilib         => '64',
247         multibin         => '64',
248         disable          => ['threads'],
249     },
250     'nonstop-nse_64_put' => {
251         inherit_from     => [ 'nonstop-common',
252                               'nonstop-archenv-itanium-oss',
253                               'nonstop-lp64-itanium',
254                               'nonstop-efloat-itanium',
255                               'nonstop-model-put' ],
256         multilib         => '64-put',
257         multibin         => '64-put',
258     },
259     'nonstop-nse_g' => {
260         inherit_from     => [ 'nonstop-common',
261                               'nonstop-archenv-itanium-guardian',
262                               'nonstop-ilp32', 'nonstop-nfloat-itanium' ],
263         disable          => ['threads'],
264     },
265
266     'nonstop-nse_g_tandem' => {
267         inherit_from     => [ 'nonstop-common',
268                               'nonstop-archenv-itanium-guardian',
269                               'nonstop-ilp32', 'nonstop-tfloat-itanium' ],
270         disable          => ['threads'],
271     },