1227569Sphilip#### Nonstop configurations 2227569Sphilip # Common for all 3227569Sphilip 'nonstop-common' => { 4227569Sphilip inherit_from => [ 'BASE_unix' ], 5227569Sphilip template => 1, 6227569Sphilip cc => 'c99', 7227569Sphilip cflags => add_before(picker(debug => '-g -O0', 8227569Sphilip release => '-g -O2'), 9227569Sphilip '-Wextensions', 10227569Sphilip '-Wnowarn=203,220,272,734,770,1506', 11227569Sphilip '-Wbuild_neutral_library', 12227569Sphilip '-Wverbose'), 13227569Sphilip defines => add('OPENSSL_VPROC=$(OPENSSL_VPROC)', 14227569Sphilip '_XOPEN_SOURCE', 15227569Sphilip '_XOPEN_SOURCE_EXTENDED=1', 16227569Sphilip '_TANDEM_SOURCE', 17227569Sphilip 'B_ENDIAN'), 18227569Sphilip perl => '/usr/bin/perl', 19227569Sphilip shared_target => 'nonstop-shared', 20227569Sphilip shared_extension => ".so", 21227569Sphilip ex_libs => add('-lrld'), 22227569Sphilip enable => ['egd'], 23227569Sphilip dso_scheme => 'DLFCN', 24227569Sphilip sys_id => 'TANDEM', 25227569Sphilip }, 26227569Sphilip 27227569Sphilip ###################################################################### 28227569Sphilip # Additional variant settings, to be combined with nonstop-common 29227569Sphilip # Note that these do not inherit anything. However, the diverse values 30227569Sphilip # are merged with other entries in an 'inherit_from'. 31227569Sphilip # 32227569Sphilip # These combine: 33227569Sphilip # - System architecture (MIPS, Itanium, or x86) 34227569Sphilip # - Execution environment (oss [default] or guardian) 35227569Sphilip # 36227569Sphilip # Unfortunately, they can't be separated into independent templates, because 37227569Sphilip # a number of the above are encoded as different linkers, and by consequence, 38227569Sphilip # different c99 linker flags (-Wld, -Weld, and -Wxld) 39227569Sphilip # 40227569Sphilip # In addition, the are modifiers for: 41227569Sphilip # - Size of long + pointer (ilp32 [default] and lp64) 42227569Sphilip # - Float type (neutral and tandem) 43227569Sphilip # 44227569Sphilip # Unfortunately, because the float types affect the linker settings, those 45227569Sphilip # are divided per system architecture 46227569Sphilip # 47227569Sphilip # MIPS + guardian (unused but present for convenience): 48227569Sphilip 'nonstop-archenv-mips-guardian' => { 49227569Sphilip template => 1, 50227569Sphilip defines => ['NO_GETPID'], 51227569Sphilip cflags => '-Wtarget=tns/r -Wsystype=guardian', 52227569Sphilip lflags => '-Wld="-set systype guardian"', 53227569Sphilip shared_ldflag => '-Wshared -Wld="-soname $(@:lib%.so=%)"', 54227569Sphilip shared_defflag => '-Wld_obey=', 55227569Sphilip shared_argfileflag => '-Wld_obey=', 56227569Sphilip }, 57227569Sphilip 58227569Sphilip # Itanium + guardian: 59227569Sphilip 'nonstop-archenv-itanium-guardian' => { 60227569Sphilip template => 1, 61227569Sphilip defines => ['NO_GETPID', '_TANDEM_ARCH=2'], 62227569Sphilip cflags => '-Wtarget=tns/e -Wsystype=guardian', 63227569Sphilip lflags => '-Weld="-set systype guardian"', 64227569Sphilip shared_ldflag => '-Wshared -Weld="-soname $(@:lib%.so=%)"', 65227569Sphilip shared_defflag => '-Weld_obey=', 66227569Sphilip shared_argfileflag => '-Weld_obey=', 67227569Sphilip }, 68227569Sphilip 69227569Sphilip # x86 + guardian: 70227569Sphilip 'nonstop-archenv-x86_64-guardian' => { 71227569Sphilip template => 1, 72227569Sphilip defines => ['NO_GETPID', '_TANDEM_ARCH=3'], 73227569Sphilip cflags => '-Wtarget=tns/x -Wsystype=guardian', 74227569Sphilip lflags => '-Wxld="-set systype guardian"', 75227569Sphilip shared_ldflag => '-Wshared -Wxld="-soname $(@:lib%.so=%)"', 76227569Sphilip shared_defflag => '-Wxld_obey=', 77227569Sphilip shared_argfileflag => '-Wxld_obey=', 78227569Sphilip }, 79227569Sphilip 80227569Sphilip # MIPS + oss (unused but present for convenience): 81227569Sphilip 'nonstop-archenv-mips-oss' => { 82227569Sphilip template => 1, 83227569Sphilip cflags => '-Wtarget=tns/r -Wsystype=oss', 84227569Sphilip lflags => '-Wld="-set systype oss"', 85227569Sphilip shared_ldflag => '-Wshared', 86227569Sphilip shared_defflag => '-Wld_obey=', 87227569Sphilip shared_argfileflag => '-Wld_obey=', 88227569Sphilip }, 89227569Sphilip # Itanium + oss: 90227569Sphilip 'nonstop-archenv-itanium-oss' => { 91227569Sphilip template => 1, 92227569Sphilip defines => ['_TANDEM_ARCH=2'], 93227569Sphilip cflags => '-Wtarget=tns/e -Wsystype=oss', 94227569Sphilip lflags => '-Weld="-set systype oss"', 95227569Sphilip shared_ldflag => '-Wshared', 96227569Sphilip shared_defflag => '-Weld_obey=', 97227569Sphilip shared_argfileflag => '-Weld_obey=', 98227569Sphilip }, 99227569Sphilip # x86_64 + oss: 100227569Sphilip 'nonstop-archenv-x86_64-oss' => { 101227569Sphilip template => 1, 102227569Sphilip defines => ['_TANDEM_ARCH=3'], 103227569Sphilip cflags => '-Wtarget=tns/x -Wsystype=oss', 104227569Sphilip lflags => '-Wxld="-set systype oss"', 105227569Sphilip shared_ldflag => '-Wshared', 106227569Sphilip shared_defflag => '-Wxld_obey=', 107227569Sphilip shared_argfileflag => '-Wxld_obey=', 108227569Sphilip }, 109227569Sphilip 110227569Sphilip # Size variants 111227569Sphilip 'nonstop-ilp32' => { 112227569Sphilip template => 1, 113227569Sphilip cflags => '-Wilp32', 114227569Sphilip bn_ops => 'THIRTY_TWO_BIT', 115227569Sphilip }, 116227569Sphilip 'nonstop-lp64-itanium' => { 117227569Sphilip template => 1, 118227569Sphilip cflags => '-Wlp64', 119227569Sphilip bn_ops => 'SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR', 120227569Sphilip }, 121227569Sphilip 'nonstop-lp64-x86_64' => { 122227569Sphilip template => 1, 123227569Sphilip cflags => '-Wlp64', 124227569Sphilip lflags => '-Wxld="-set data_model lp64"', 125227569Sphilip bn_ops => 'SIXTY_FOUR_BIT', 126227569Sphilip }, 127227569Sphilip 128227569Sphilip # Float variants 129227569Sphilip 'nonstop-nfloat-mips' => { 130227569Sphilip template => 1, 131227569Sphilip lflags => '-Wld="-set floattype neutral_float"', 132227569Sphilip }, 133227569Sphilip 'nonstop-tfloat-mips' => { 134227569Sphilip template => 1, 135227569Sphilip lflags => '-Wld="-set floattype tandem_float"', 136227569Sphilip }, 137227569Sphilip 'nonstop-efloat-itanium' => { 138227569Sphilip template => 1, 139227569Sphilip cflags => '-WIEEE_float', 140227569Sphilip lflags => '-Weld="-set floattype ieee_float"', 141227569Sphilip }, 142227569Sphilip 'nonstop-nfloat-itanium' => { 143227569Sphilip template => 1, 144227569Sphilip lflags => '-Weld="-set floattype neutral_float"', 145227569Sphilip }, 146227569Sphilip 'nonstop-tfloat-itanium' => { 147227569Sphilip template => 1, 148227569Sphilip cflags => '-WTandem_float', 149227569Sphilip lflags => '-Weld="-set floattype tandem_float"', 150227569Sphilip }, 151227569Sphilip 'nonstop-efloat-x86_64' => { 152227569Sphilip template => 1, 153227569Sphilip cflags => '-WIEEE_float', 154227569Sphilip lflags => '-Wxld="-set floattype ieee_float"', 155227569Sphilip }, 156227569Sphilip 'nonstop-nfloat-x86_64' => { 157227569Sphilip template => 1, 158227569Sphilip lflags => '-Wxld="-set floattype neutral_float"', 159227569Sphilip }, 160227569Sphilip 'nonstop-tfloat-x86_64' => { 161227569Sphilip template => 1, 162227569Sphilip cflags => '-WTandem_float', 163227569Sphilip lflags => '-Wxld="-set floattype tandem_float"', 164227569Sphilip }, 165227569Sphilip 166227569Sphilip ###################################################################### 167227569Sphilip # Build models 168227569Sphilip 'nonstop-model-put' => { 169227569Sphilip template => 1, 170227569Sphilip defines => ['_PUT_MODEL_', 171227569Sphilip '_REENTRANT', '_THREAD_SUPPORT_FUNCTIONS'], 172227569Sphilip ex_libs => '-lput', 173227569Sphilip }, 174227569Sphilip 'nonstop-model-spt' => { 175227569Sphilip template => 1, 176227569Sphilip defines => ['_SPT_MODEL_', 177227569Sphilip '_REENTRANT', '_ENABLE_FLOSS_THREADS'], 178227569Sphilip ex_libs => '-lspt', 179227569Sphilip }, 180227569Sphilip 181227569Sphilip # Additional floss model that can be combined with any of the other models. 182227569Sphilip # If used without any of the other models, the entry that does so must 183227569Sphilip # disable threads. 184227569Sphilip 'nonstop-model-floss' => { 185227569Sphilip template => 1, 186227569Sphilip defines => ['OPENSSL_TANDEM_FLOSS'], 187227569Sphilip includes => ['/usr/local/include'], 188227569Sphilip ex_libs => '-lfloss', 189227569Sphilip }, 190227569Sphilip 191227569Sphilip ###################################################################### 192227569Sphilip # Now for the entries themselves, let's combine things! 193227569Sphilip 'nonstop-nsx' => { 194227569Sphilip inherit_from => [ 'nonstop-common', 195227569Sphilip 'nonstop-archenv-x86_64-oss', 196227569Sphilip 'nonstop-ilp32', 197227569Sphilip 'nonstop-efloat-x86_64' ], 198227569Sphilip disable => ['threads'], 199227569Sphilip }, 200227569Sphilip 'nonstop-nsx_put' => { 201227569Sphilip inherit_from => [ 'nonstop-common', 202227569Sphilip 'nonstop-archenv-x86_64-oss', 203227569Sphilip 'nonstop-ilp32', 204227569Sphilip 'nonstop-efloat-x86_64', 205227569Sphilip 'nonstop-model-put' ], 206227569Sphilip multilib => '-put', 207227569Sphilip }, 208227569Sphilip 'nonstop-nsx_64' => { 209227569Sphilip inherit_from => [ 'nonstop-common', 210227569Sphilip 'nonstop-archenv-x86_64-oss', 211227569Sphilip 'nonstop-lp64-x86_64', 212227569Sphilip 'nonstop-efloat-x86_64' ], 213227569Sphilip multilib => '64', 214227569Sphilip disable => ['threads'], 215227569Sphilip }, 216227569Sphilip 'nonstop-nsx_64_put' => { 217227569Sphilip inherit_from => [ 'nonstop-common', 218227569Sphilip 'nonstop-archenv-x86_64-oss', 219227569Sphilip 'nonstop-lp64-x86_64', 220227569Sphilip 'nonstop-efloat-x86_64', 221227569Sphilip 'nonstop-model-put' ], 222227569Sphilip multilib => '64-put', 223227569Sphilip }, 224227569Sphilip 'nonstop-nsx_spt' => { 225227569Sphilip inherit_from => [ 'nonstop-common', 226227569Sphilip 'nonstop-archenv-x86_64-oss', 227227569Sphilip 'nonstop-ilp32', 228227569Sphilip 'nonstop-efloat-x86_64', 229227569Sphilip 'nonstop-model-spt' ], 230227569Sphilip multilib => '-spt', 231227569Sphilip }, 232227569Sphilip 'nonstop-nsx_spt_floss' => { 233227569Sphilip inherit_from => [ 'nonstop-common', 234227569Sphilip 'nonstop-archenv-x86_64-oss', 235227569Sphilip 'nonstop-ilp32', 236227569Sphilip 'nonstop-efloat-x86_64', 237227569Sphilip 'nonstop-model-floss', 238227569Sphilip 'nonstop-model-spt'], 239227569Sphilip multilib => '-spt', 240227569Sphilip }, 241227569Sphilip 'nonstop-nsx_g' => { 242227569Sphilip inherit_from => [ 'nonstop-common', 243227569Sphilip 'nonstop-archenv-x86_64-guardian', 244227569Sphilip 'nonstop-ilp32', 'nonstop-nfloat-x86_64' ], 245227569Sphilip disable => ['threads'], 246227569Sphilip }, 247227569Sphilip 'nonstop-nsx_g_tandem' => { 248227569Sphilip inherit_from => [ 'nonstop-common', 249227569Sphilip 'nonstop-archenv-x86_64-guardian', 250227569Sphilip 'nonstop-ilp32', 'nonstop-tfloat-x86_64' ], 251227569Sphilip disable => ['threads'], 252227569Sphilip }, 253227569Sphilip 'nonstop-nsv' => { 254227569Sphilip inherit_from => [ 'nonstop-nsx' ], 255227569Sphilip }, 256227569Sphilip 'nonstop-nse' => { 257227569Sphilip inherit_from => [ 'nonstop-common', 258227569Sphilip 'nonstop-archenv-itanium-oss', 259227569Sphilip 'nonstop-ilp32', 260227569Sphilip 'nonstop-efloat-itanium' ], 261227569Sphilip disable => ['threads'], 262227569Sphilip }, 263227569Sphilip 'nonstop-nse_put' => { 264227569Sphilip inherit_from => [ 'nonstop-common', 265227569Sphilip 'nonstop-archenv-itanium-oss', 266227569Sphilip 'nonstop-ilp32', 267227569Sphilip 'nonstop-efloat-itanium', 268227569Sphilip 'nonstop-model-put' ], 269227569Sphilip multilib => '-put', 270227569Sphilip }, 271227569Sphilip 'nonstop-nse_64' => { 272227569Sphilip inherit_from => [ 'nonstop-common', 273227569Sphilip 'nonstop-archenv-itanium-oss', 274227569Sphilip 'nonstop-lp64-itanium', 275227569Sphilip 'nonstop-efloat-itanium' ], 276227569Sphilip multilib => '64', 277227569Sphilip disable => ['threads'], 278227569Sphilip }, 279227569Sphilip 'nonstop-nse_64_put' => { 280227569Sphilip inherit_from => [ 'nonstop-common', 281227569Sphilip 'nonstop-archenv-itanium-oss', 282227569Sphilip 'nonstop-lp64-itanium', 283227569Sphilip 'nonstop-efloat-itanium', 284227569Sphilip 'nonstop-model-put' ], 285227569Sphilip multilib => '64-put', 286227569Sphilip }, 287227569Sphilip 'nonstop-nse_spt' => { 288227569Sphilip inherit_from => [ 'nonstop-common', 289227569Sphilip 'nonstop-archenv-itanium-oss', 290227569Sphilip 'nonstop-ilp32', 291227569Sphilip 'nonstop-efloat-itanium', 292227569Sphilip 'nonstop-model-spt' ], 293227569Sphilip multilib => '-spt', 294227569Sphilip }, 295227569Sphilip 'nonstop-nse_spt_floss' => { 296227569Sphilip inherit_from => [ 'nonstop-common', 297227569Sphilip 'nonstop-archenv-itanium-oss', 298227569Sphilip 'nonstop-ilp32', 299227569Sphilip 'nonstop-efloat-itanium', 300227569Sphilip 'nonstop-model-floss', 'nonstop-model-spt' ], 301227569Sphilip multilib => '-spt', 302227569Sphilip }, 303227569Sphilip 'nonstop-nse_g' => { 304227569Sphilip inherit_from => [ 'nonstop-common', 305227569Sphilip 'nonstop-archenv-itanium-guardian', 306227569Sphilip 'nonstop-ilp32', 'nonstop-nfloat-itanium' ], 307227569Sphilip disable => ['threads'], 308227569Sphilip }, 309227569Sphilip 310227569Sphilip 'nonstop-nse_g_tandem' => { 311227569Sphilip inherit_from => [ 'nonstop-common', 312227569Sphilip 'nonstop-archenv-itanium-guardian', 313227569Sphilip 'nonstop-ilp32', 'nonstop-tfloat-itanium' ], 314227569Sphilip disable => ['threads'], 315227569Sphilip }, 316227569Sphilip