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'], 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'], 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 cflags => '-Wtarget=tns/e -Wsystype=oss', 93 lflags => '-Weld="-set systype oss"', 94 shared_ldflag => '-Wshared', 95 shared_defflag => '-Weld_obey=', 96 shared_argfileflag => '-Weld_obey=', 97 }, 98 # x86_64 + oss: 99 'nonstop-archenv-x86_64-oss' => { 100 template => 1, 101 cflags => '-Wtarget=tns/x -Wsystype=oss', 102 lflags => '-Wxld="-set systype oss"', 103 shared_ldflag => '-Wshared', 104 shared_defflag => '-Wxld_obey=', 105 shared_argfileflag => '-Wxld_obey=', 106 }, 107 108 # Size variants 109 'nonstop-ilp32' => { 110 template => 1, 111 cflags => '-Wilp32', 112 bn_ops => 'THIRTY_TWO_BIT', 113 }, 114 'nonstop-lp64-itanium' => { 115 template => 1, 116 cflags => '-Wlp64', 117 bn_ops => 'SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR', 118 }, 119 'nonstop-lp64-x86_64' => { 120 template => 1, 121 cflags => '-Wlp64', 122 lflags => '-Wxld="-set data_model lp64"', 123 bn_ops => 'SIXTY_FOUR_BIT', 124 }, 125 126 # Float variants 127 'nonstop-nfloat-mips' => { 128 template => 1, 129 lflags => '-Wld="-set floattype neutral_float"', 130 }, 131 'nonstop-tfloat-mips' => { 132 template => 1, 133 lflags => '-Wld="-set floattype tandem_float"', 134 }, 135 'nonstop-efloat-itanium' => { 136 template => 1, 137 cflags => '-WIEEE_float', 138 lflags => '-Weld="-set floattype ieee_float"', 139 }, 140 'nonstop-nfloat-itanium' => { 141 template => 1, 142 lflags => '-Weld="-set floattype neutral_float"', 143 }, 144 'nonstop-tfloat-itanium' => { 145 template => 1, 146 cflags => '-WTandem_float', 147 lflags => '-Weld="-set floattype tandem_float"', 148 }, 149 'nonstop-efloat-x86_64' => { 150 template => 1, 151 cflags => '-WIEEE_float', 152 lflags => '-Wxld="-set floattype ieee_float"', 153 }, 154 'nonstop-nfloat-x86_64' => { 155 template => 1, 156 lflags => '-Wxld="-set floattype neutral_float"', 157 }, 158 'nonstop-tfloat-x86_64' => { 159 template => 1, 160 cflags => '-WTandem_float', 161 lflags => '-Wxld="-set floattype tandem_float"', 162 }, 163 164 ###################################################################### 165 # Build models 166 'nonstop-model-put' => { 167 template => 1, 168 defines => ['_PUT_MODEL_', 169 '_REENTRANT', '_THREAD_SUPPORT_FUNCTIONS'], 170 ex_libs => '-lput', 171 }, 172 'nonstop-model-spt' => { 173 template => 1, 174 defines => ['_SPT_MODEL_', 175 '_REENTRANT', '_ENABLE_FLOSS_THREADS'], 176 ex_libs => '-lspt', 177 }, 178 179 # Additional floss model that can be combined with any of the other models. 180 # If used without any of the other models, the entry that does so must 181 # disable threads. 182 'nonstop-model-floss' => { 183 template => 1, 184 defines => ['OPENSSL_TANDEM_FLOSS'], 185 includes => ['/usr/local/include'], 186 ex_libs => '-lfloss', 187 }, 188 189 ###################################################################### 190 # Now for the entries themselves, let's combine things! 191 'nonstop-nsx' => { 192 inherit_from => [ 'nonstop-common', 193 'nonstop-archenv-x86_64-oss', 194 'nonstop-ilp32', 195 'nonstop-efloat-x86_64' ], 196 disable => ['threads'], 197 }, 198 'nonstop-nsx_put' => { 199 inherit_from => [ 'nonstop-common', 200 'nonstop-archenv-x86_64-oss', 201 'nonstop-ilp32', 202 'nonstop-efloat-x86_64', 203 'nonstop-model-put' ], 204 multilib => '-put', 205 }, 206 'nonstop-nsx_64' => { 207 inherit_from => [ 'nonstop-common', 208 'nonstop-archenv-x86_64-oss', 209 'nonstop-lp64-x86_64', 210 'nonstop-efloat-x86_64' ], 211 multilib => '64', 212 disable => ['threads'], 213 }, 214 'nonstop-nsx_64_put' => { 215 inherit_from => [ 'nonstop-common', 216 'nonstop-archenv-x86_64-oss', 217 'nonstop-lp64-x86_64', 218 'nonstop-efloat-x86_64', 219 'nonstop-model-put' ], 220 multilib => '64-put', 221 }, 222 'nonstop-nsx_spt' => { 223 inherit_from => [ 'nonstop-common', 224 'nonstop-archenv-x86_64-oss', 225 'nonstop-ilp32', 226 'nonstop-efloat-x86_64', 227 'nonstop-model-spt' ], 228 multilib => '-spt', 229 }, 230 'nonstop-nsx_spt_floss' => { 231 inherit_from => [ 'nonstop-common', 232 'nonstop-archenv-x86_64-oss', 233 'nonstop-ilp32', 234 'nonstop-efloat-x86_64', 235 'nonstop-model-floss', 236 'nonstop-model-spt'], 237 multilib => '-spt', 238 }, 239 'nonstop-nsx_g' => { 240 inherit_from => [ 'nonstop-common', 241 'nonstop-archenv-x86_64-guardian', 242 'nonstop-ilp32', 'nonstop-nfloat-x86_64' ], 243 disable => ['threads'], 244 }, 245 'nonstop-nsx_g_tandem' => { 246 inherit_from => [ 'nonstop-common', 247 'nonstop-archenv-x86_64-guardian', 248 'nonstop-ilp32', 'nonstop-tfloat-x86_64' ], 249 disable => ['threads'], 250 }, 251 'nonstop-nsv' => { 252 inherit_from => [ 'nonstop-nsx' ], 253 }, 254 'nonstop-nse' => { 255 inherit_from => [ 'nonstop-common', 256 'nonstop-archenv-itanium-oss', 257 'nonstop-ilp32', 258 'nonstop-efloat-itanium' ], 259 disable => ['threads'], 260 }, 261 'nonstop-nse_put' => { 262 inherit_from => [ 'nonstop-common', 263 'nonstop-archenv-itanium-oss', 264 'nonstop-ilp32', 265 'nonstop-efloat-itanium', 266 'nonstop-model-put' ], 267 multilib => '-put', 268 }, 269 'nonstop-nse_64' => { 270 inherit_from => [ 'nonstop-common', 271 'nonstop-archenv-itanium-oss', 272 'nonstop-lp64-itanium', 273 'nonstop-efloat-itanium' ], 274 multilib => '64', 275 disable => ['threads'], 276 }, 277 'nonstop-nse_64_put' => { 278 inherit_from => [ 'nonstop-common', 279 'nonstop-archenv-itanium-oss', 280 'nonstop-lp64-itanium', 281 'nonstop-efloat-itanium', 282 'nonstop-model-put' ], 283 multilib => '64-put', 284 }, 285 'nonstop-nse_spt' => { 286 inherit_from => [ 'nonstop-common', 287 'nonstop-archenv-itanium-oss', 288 'nonstop-ilp32', 289 'nonstop-efloat-itanium', 290 'nonstop-model-spt' ], 291 multilib => '-spt', 292 }, 293 'nonstop-nse_spt_floss' => { 294 inherit_from => [ 'nonstop-common', 295 'nonstop-archenv-itanium-oss', 296 'nonstop-ilp32', 297 'nonstop-efloat-itanium', 298 'nonstop-model-floss', 'nonstop-model-spt' ], 299 multilib => '-spt', 300 }, 301 'nonstop-nse_g' => { 302 inherit_from => [ 'nonstop-common', 303 'nonstop-archenv-itanium-guardian', 304 'nonstop-ilp32', 'nonstop-nfloat-itanium' ], 305 disable => ['threads'], 306 }, 307 308 'nonstop-nse_g_tandem' => { 309 inherit_from => [ 'nonstop-common', 310 'nonstop-archenv-itanium-guardian', 311 'nonstop-ilp32', 'nonstop-tfloat-itanium' ], 312 disable => ['threads'], 313 }, 314