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