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