diff options
Diffstat (limited to 'Configurations/50-nonstop.conf')
-rw-r--r-- | Configurations/50-nonstop.conf | 317 |
1 files changed, 317 insertions, 0 deletions
diff --git a/Configurations/50-nonstop.conf b/Configurations/50-nonstop.conf new file mode 100644 index 000000000000..b131ca602bc4 --- /dev/null +++ b/Configurations/50-nonstop.conf @@ -0,0 +1,317 @@ +#### Nonstop configurations + # Common for all + 'nonstop-common' => { + inherit_from => [ 'BASE_unix' ], + template => 1, + cc => 'c99', + cflags => add_before(picker(debug => '-g -O0', + release => '-g -O2'), + '-Wextensions', + '-Wnowarn=203,220,272,734,770,1506', + '-Wbuild_neutral_library', + '-Wverbose'), + defines => add('OPENSSL_VPROC=$(OPENSSL_VPROC)', + '_XOPEN_SOURCE', + '_XOPEN_SOURCE_EXTENDED=1', + '_TANDEM_SOURCE', + 'B_ENDIAN'), + perl => '/usr/bin/perl', + shared_target => 'nonstop-shared', + shared_extension => ".so", + ex_libs => add('-lrld'), + enable => ['egd'], + dso_scheme => 'DLFCN', + sys_id => 'TANDEM', + }, + + ###################################################################### + # Additional variant settings, to be combined with nonstop-common + # Note that these do not inherit anything. However, the diverse values + # are merged with other entries in an 'inherit_from'. + # + # These combine: + # - System architecture (MIPS, Itanium, or x86) + # - Execution environment (oss [default] or guardian) + # + # Unfortunately, they can't be separated into independent templates, because + # a number of the above are encoded as different linkers, and by consequence, + # different c99 linker flags (-Wld, -Weld, and -Wxld) + # + # In addition, the are modifiers for: + # - Size of long + pointer (ilp32 [default] and lp64) + # - Float type (neutral and tandem) + # + # Unfortunately, because the float types affect the linker settings, those + # are divided per system architecture + # + # MIPS + guardian (unused but present for convenience): + 'nonstop-archenv-mips-guardian' => { + template => 1, + defines => ['NO_GETPID'], + cflags => '-Wtarget=tns/r -Wsystype=guardian', + lflags => '-Wld="-set systype guardian"', + shared_ldflag => '-Wshared -Wld="-soname $(@:lib%.so=%)"', + shared_defflag => '-Wld_obey=', + shared_argfileflag => '-Wld_obey=', + }, + + # Itanium + guardian: + 'nonstop-archenv-itanium-guardian' => { + template => 1, + defines => ['NO_GETPID', '_TANDEM_ARCH=2'], + cflags => '-Wtarget=tns/e -Wsystype=guardian', + lflags => '-Weld="-set systype guardian"', + shared_ldflag => '-Wshared -Weld="-soname $(@:lib%.so=%)"', + shared_defflag => '-Weld_obey=', + shared_argfileflag => '-Weld_obey=', + }, + + # x86 + guardian: + 'nonstop-archenv-x86_64-guardian' => { + template => 1, + defines => ['NO_GETPID', '_TANDEM_ARCH=3'], + cflags => '-Wtarget=tns/x -Wsystype=guardian', + lflags => '-Wxld="-set systype guardian"', + shared_ldflag => '-Wshared -Wxld="-soname $(@:lib%.so=%)"', + shared_defflag => '-Wxld_obey=', + shared_argfileflag => '-Wxld_obey=', + }, + + # MIPS + oss (unused but present for convenience): + 'nonstop-archenv-mips-oss' => { + template => 1, + cflags => '-Wtarget=tns/r -Wsystype=oss', + lflags => '-Wld="-set systype oss"', + shared_ldflag => '-Wshared', + shared_defflag => '-Wld_obey=', + shared_argfileflag => '-Wld_obey=', + }, + # Itanium + oss: + 'nonstop-archenv-itanium-oss' => { + template => 1, + defines => ['_TANDEM_ARCH=2'], + cflags => '-Wtarget=tns/e -Wsystype=oss', + lflags => '-Weld="-set systype oss"', + shared_ldflag => '-Wshared', + shared_defflag => '-Weld_obey=', + shared_argfileflag => '-Weld_obey=', + }, + # x86_64 + oss: + 'nonstop-archenv-x86_64-oss' => { + template => 1, + defines => ['_TANDEM_ARCH=3'], + cflags => '-Wtarget=tns/x -Wsystype=oss', + lflags => '-Wxld="-set systype oss"', + shared_ldflag => '-Wshared', + shared_defflag => '-Wxld_obey=', + shared_argfileflag => '-Wxld_obey=', + }, + + # Size variants + 'nonstop-ilp32' => { + template => 1, + cflags => '-Wilp32', + bn_ops => 'THIRTY_TWO_BIT', + }, + 'nonstop-lp64-itanium' => { + template => 1, + cflags => '-Wlp64', + bn_ops => 'SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR', + }, + 'nonstop-lp64-x86_64' => { + template => 1, + cflags => '-Wlp64', + lflags => '-Wxld="-set data_model lp64"', + bn_ops => 'SIXTY_FOUR_BIT', + }, + + # Float variants + 'nonstop-nfloat-mips' => { + template => 1, + lflags => '-Wld="-set floattype neutral_float"', + }, + 'nonstop-tfloat-mips' => { + template => 1, + lflags => '-Wld="-set floattype tandem_float"', + }, + 'nonstop-efloat-itanium' => { + template => 1, + cflags => '-WIEEE_float', + lflags => '-Weld="-set floattype ieee_float"', + }, + 'nonstop-nfloat-itanium' => { + template => 1, + lflags => '-Weld="-set floattype neutral_float"', + }, + 'nonstop-tfloat-itanium' => { + template => 1, + cflags => '-WTandem_float', + lflags => '-Weld="-set floattype tandem_float"', + }, + 'nonstop-efloat-x86_64' => { + template => 1, + cflags => '-WIEEE_float', + lflags => '-Wxld="-set floattype ieee_float"', + }, + 'nonstop-nfloat-x86_64' => { + template => 1, + lflags => '-Wxld="-set floattype neutral_float"', + }, + 'nonstop-tfloat-x86_64' => { + template => 1, + cflags => '-WTandem_float', + lflags => '-Wxld="-set floattype tandem_float"', + }, + + ###################################################################### + # Build models + 'nonstop-model-put' => { + template => 1, + disable => [ 'secure-memory' ], + defines => ['_PUT_MODEL_', + '_REENTRANT', '_THREAD_SUPPORT_FUNCTIONS'], + ex_libs => '-lput', + }, + 'nonstop-model-spt' => { + template => 1, + disable => [ 'secure-memory' ], + defines => ['_SPT_MODEL_', + '_REENTRANT', '_ENABLE_FLOSS_THREADS'], + ex_libs => '-lspt', + }, + + # Additional floss model that can be combined with any of the other models. + # If used without any of the other models, the entry that does so must + # disable threads. + 'nonstop-model-floss' => { + template => 1, + defines => ['OPENSSL_TANDEM_FLOSS'], + includes => ['/usr/local/include'], + ex_libs => '-lfloss', + }, + + ###################################################################### + # Now for the entries themselves, let's combine things! + 'nonstop-nsx' => { + inherit_from => [ 'nonstop-common', + 'nonstop-archenv-x86_64-oss', + 'nonstop-ilp32', + 'nonstop-efloat-x86_64' ], + disable => ['threads'], + }, + 'nonstop-nsx_put' => { + inherit_from => [ 'nonstop-common', + 'nonstop-archenv-x86_64-oss', + 'nonstop-ilp32', + 'nonstop-efloat-x86_64', + 'nonstop-model-put' ], + multilib => '-put', + }, + 'nonstop-nsx_64' => { + inherit_from => [ 'nonstop-common', + 'nonstop-archenv-x86_64-oss', + 'nonstop-lp64-x86_64', + 'nonstop-efloat-x86_64' ], + multilib => '64', + disable => ['threads'], + }, + 'nonstop-nsx_64_put' => { + inherit_from => [ 'nonstop-common', + 'nonstop-archenv-x86_64-oss', + 'nonstop-lp64-x86_64', + 'nonstop-efloat-x86_64', + 'nonstop-model-put' ], + multilib => '64-put', + }, + 'nonstop-nsx_spt' => { + inherit_from => [ 'nonstop-common', + 'nonstop-archenv-x86_64-oss', + 'nonstop-ilp32', + 'nonstop-efloat-x86_64', + 'nonstop-model-spt' ], + multilib => '-spt', + }, + 'nonstop-nsx_spt_floss' => { + inherit_from => [ 'nonstop-common', + 'nonstop-archenv-x86_64-oss', + 'nonstop-ilp32', + 'nonstop-efloat-x86_64', + 'nonstop-model-floss', + 'nonstop-model-spt'], + multilib => '-spt', + }, + 'nonstop-nsx_g' => { + inherit_from => [ 'nonstop-common', + 'nonstop-archenv-x86_64-guardian', + 'nonstop-ilp32', 'nonstop-nfloat-x86_64' ], + disable => ['threads'], + }, + 'nonstop-nsx_g_tandem' => { + inherit_from => [ 'nonstop-common', + 'nonstop-archenv-x86_64-guardian', + 'nonstop-ilp32', 'nonstop-tfloat-x86_64' ], + disable => ['threads'], + }, + 'nonstop-nsv' => { + inherit_from => [ 'nonstop-nsx' ], + }, + 'nonstop-nse' => { + inherit_from => [ 'nonstop-common', + 'nonstop-archenv-itanium-oss', + 'nonstop-ilp32', + 'nonstop-efloat-itanium' ], + disable => ['threads'], + }, + 'nonstop-nse_put' => { + inherit_from => [ 'nonstop-common', + 'nonstop-archenv-itanium-oss', + 'nonstop-ilp32', + 'nonstop-efloat-itanium', + 'nonstop-model-put' ], + multilib => '-put', + }, + 'nonstop-nse_64' => { + inherit_from => [ 'nonstop-common', + 'nonstop-archenv-itanium-oss', + 'nonstop-lp64-itanium', + 'nonstop-efloat-itanium' ], + multilib => '64', + disable => ['threads'], + }, + 'nonstop-nse_64_put' => { + inherit_from => [ 'nonstop-common', + 'nonstop-archenv-itanium-oss', + 'nonstop-lp64-itanium', + 'nonstop-efloat-itanium', + 'nonstop-model-put' ], + multilib => '64-put', + }, + 'nonstop-nse_spt' => { + inherit_from => [ 'nonstop-common', + 'nonstop-archenv-itanium-oss', + 'nonstop-ilp32', + 'nonstop-efloat-itanium', + 'nonstop-model-spt' ], + multilib => '-spt', + }, + 'nonstop-nse_spt_floss' => { + inherit_from => [ 'nonstop-common', + 'nonstop-archenv-itanium-oss', + 'nonstop-ilp32', + 'nonstop-efloat-itanium', + 'nonstop-model-floss', 'nonstop-model-spt' ], + multilib => '-spt', + }, + 'nonstop-nse_g' => { + inherit_from => [ 'nonstop-common', + 'nonstop-archenv-itanium-guardian', + 'nonstop-ilp32', 'nonstop-nfloat-itanium' ], + disable => ['threads'], + }, + + 'nonstop-nse_g_tandem' => { + inherit_from => [ 'nonstop-common', + 'nonstop-archenv-itanium-guardian', + 'nonstop-ilp32', 'nonstop-tfloat-itanium' ], + disable => ['threads'], + }, |