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 disable => ['secure-memory'], 172 defines => ['_PUT_MODEL_', 173 '_REENTRANT', '_THREAD_SUPPORT_FUNCTIONS'], 174 ex_libs => '-lput', 175 }, 176 177 ###################################################################### 178 # Build models 179 'nonstop-model-klt' => { 180 template => 1, 181 disable => ['secure-memory'], 182 defines => ['_KLT_MODEL_', 183 '_REENTRANT', '_THREAD_SUPPORT_FUNCTIONS'], 184 ex_libs => '-lklt', 185 }, 186 187 ###################################################################### 188 # Now for the entries themselves, let's combine things! 189 'nonstop-nsx' => { 190 inherit_from => [ 'nonstop-common', 191 'nonstop-archenv-x86_64-oss', 192 'nonstop-ilp32', 193 'nonstop-efloat-x86_64' ], 194 disable => ['threads','atexit'], 195 }, 196 'nonstop-nsx_put' => { 197 inherit_from => [ 'nonstop-common', 198 'nonstop-archenv-x86_64-oss', 199 'nonstop-ilp32', 200 'nonstop-efloat-x86_64', 201 'nonstop-model-put' ], 202 multilib => '-put', 203 multibin => '-put', 204 disable => ['atexit'], 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 multibin => '64', 213 disable => ['threads','atexit'], 214 }, 215 'nonstop-nsx_64_put' => { 216 inherit_from => [ 'nonstop-common', 217 'nonstop-archenv-x86_64-oss', 218 'nonstop-lp64-x86_64', 219 'nonstop-efloat-x86_64', 220 'nonstop-model-put' ], 221 multilib => '64-put', 222 multibin => '64-put', 223 disable => ['atexit'], 224 }, 225 'nonstop-nsx_64_klt' => { 226 inherit_from => [ 'nonstop-common', 227 'nonstop-archenv-x86_64-oss', 228 'nonstop-lp64-x86_64', 229 'nonstop-efloat-x86_64', 230 'nonstop-model-klt' ], 231 multilib => '64-klt', 232 multibin => '64-klt', 233 disable => ['atexit'], 234 }, 235 'nonstop-nsx_g' => { 236 inherit_from => [ 'nonstop-common', 237 'nonstop-archenv-x86_64-guardian', 238 'nonstop-ilp32', 'nonstop-nfloat-x86_64' ], 239 disable => ['threads','atexit'], 240 }, 241 'nonstop-nsx_g_tandem' => { 242 inherit_from => [ 'nonstop-common', 243 'nonstop-archenv-x86_64-guardian', 244 'nonstop-ilp32', 'nonstop-tfloat-x86_64' ], 245 disable => ['threads','atexit'], 246 }, 247 'nonstop-nsv' => { 248 inherit_from => [ 'nonstop-nsx' ], 249 }, 250 'nonstop-nse' => { 251 inherit_from => [ 'nonstop-common', 252 'nonstop-archenv-itanium-oss', 253 'nonstop-ilp32', 254 'nonstop-efloat-itanium' ], 255 disable => ['threads','atexit'], 256 }, 257 'nonstop-nse_put' => { 258 inherit_from => [ 'nonstop-common', 259 'nonstop-archenv-itanium-oss', 260 'nonstop-ilp32', 261 'nonstop-efloat-itanium', 262 'nonstop-model-put' ], 263 multilib => '-put', 264 multibin => '-put', 265 disable => ['atexit'], 266 }, 267 'nonstop-nse_64' => { 268 inherit_from => [ 'nonstop-common', 269 'nonstop-archenv-itanium-oss', 270 'nonstop-lp64-itanium', 271 'nonstop-efloat-itanium' ], 272 multilib => '64', 273 multibin => '64', 274 disable => ['threads','atexit'], 275 }, 276 'nonstop-nse_64_put' => { 277 inherit_from => [ 'nonstop-common', 278 'nonstop-archenv-itanium-oss', 279 'nonstop-lp64-itanium', 280 'nonstop-efloat-itanium', 281 'nonstop-model-put' ], 282 multilib => '64-put', 283 multibin => '64-put', 284 disable => ['atexit'], 285 }, 286