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