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