11cb0ef41Sopenharmony_ci#### Nonstop configurations 21cb0ef41Sopenharmony_ci # Common for all 31cb0ef41Sopenharmony_ci 'nonstop-common' => { 41cb0ef41Sopenharmony_ci inherit_from => [ 'BASE_unix' ], 51cb0ef41Sopenharmony_ci template => 1, 61cb0ef41Sopenharmony_ci cc => 'c99', 71cb0ef41Sopenharmony_ci cflags => add_before(picker(debug => '-g -O0', 81cb0ef41Sopenharmony_ci release => '-g -O2'), 91cb0ef41Sopenharmony_ci '-Wextensions', 101cb0ef41Sopenharmony_ci '-Wnowarn=203,220,272,734,770,1506', 111cb0ef41Sopenharmony_ci '-Wbuild_neutral_library', 121cb0ef41Sopenharmony_ci '-Wverbose'), 131cb0ef41Sopenharmony_ci defines => add('OPENSSL_VPROC=$(OPENSSL_VPROC)', 141cb0ef41Sopenharmony_ci '_XOPEN_SOURCE', 151cb0ef41Sopenharmony_ci '_XOPEN_SOURCE_EXTENDED=1', 161cb0ef41Sopenharmony_ci '_TANDEM_SOURCE', 171cb0ef41Sopenharmony_ci 'B_ENDIAN'), 181cb0ef41Sopenharmony_ci perl => '/usr/bin/perl', 191cb0ef41Sopenharmony_ci shared_target => 'nonstop-shared', 201cb0ef41Sopenharmony_ci shared_extension => ".so", 211cb0ef41Sopenharmony_ci ex_libs => add('-lrld'), 221cb0ef41Sopenharmony_ci enable => ['egd'], 231cb0ef41Sopenharmony_ci dso_scheme => 'DLFCN', 241cb0ef41Sopenharmony_ci sys_id => 'TANDEM', 251cb0ef41Sopenharmony_ci }, 261cb0ef41Sopenharmony_ci 271cb0ef41Sopenharmony_ci ###################################################################### 281cb0ef41Sopenharmony_ci # Additional variant settings, to be combined with nonstop-common 291cb0ef41Sopenharmony_ci # Note that these do not inherit anything. However, the diverse values 301cb0ef41Sopenharmony_ci # are merged with other entries in an 'inherit_from'. 311cb0ef41Sopenharmony_ci # 321cb0ef41Sopenharmony_ci # These combine: 331cb0ef41Sopenharmony_ci # - System architecture (MIPS, Itanium, or x86) 341cb0ef41Sopenharmony_ci # - Execution environment (oss [default] or guardian) 351cb0ef41Sopenharmony_ci # 361cb0ef41Sopenharmony_ci # Unfortunately, they can't be separated into independent templates, because 371cb0ef41Sopenharmony_ci # a number of the above are encoded as different linkers, and by consequence, 381cb0ef41Sopenharmony_ci # different c99 linker flags (-Wld, -Weld, and -Wxld) 391cb0ef41Sopenharmony_ci # 401cb0ef41Sopenharmony_ci # In addition, the are modifiers for: 411cb0ef41Sopenharmony_ci # - Size of long + pointer (ilp32 [default] and lp64) 421cb0ef41Sopenharmony_ci # - Float type (neutral and tandem) 431cb0ef41Sopenharmony_ci # 441cb0ef41Sopenharmony_ci # Unfortunately, because the float types affect the linker settings, those 451cb0ef41Sopenharmony_ci # are divided per system architecture 461cb0ef41Sopenharmony_ci # 471cb0ef41Sopenharmony_ci # MIPS + guardian (unused but present for convenience): 481cb0ef41Sopenharmony_ci 'nonstop-archenv-mips-guardian' => { 491cb0ef41Sopenharmony_ci template => 1, 501cb0ef41Sopenharmony_ci defines => ['NO_GETPID'], 511cb0ef41Sopenharmony_ci cflags => '-Wtarget=tns/r -Wsystype=guardian', 521cb0ef41Sopenharmony_ci lflags => '-Wld="-set systype guardian"', 531cb0ef41Sopenharmony_ci shared_ldflag => '-Wshared -Wld="-soname $(@:lib%.so=%)"', 541cb0ef41Sopenharmony_ci shared_defflag => '-Wld_obey=', 551cb0ef41Sopenharmony_ci shared_argfileflag => '-Wld_obey=', 561cb0ef41Sopenharmony_ci }, 571cb0ef41Sopenharmony_ci 581cb0ef41Sopenharmony_ci # Itanium + guardian: 591cb0ef41Sopenharmony_ci 'nonstop-archenv-itanium-guardian' => { 601cb0ef41Sopenharmony_ci template => 1, 611cb0ef41Sopenharmony_ci defines => ['NO_GETPID', '_TANDEM_ARCH=2'], 621cb0ef41Sopenharmony_ci cflags => '-Wtarget=tns/e -Wsystype=guardian', 631cb0ef41Sopenharmony_ci lflags => '-Weld="-set systype guardian"', 641cb0ef41Sopenharmony_ci shared_ldflag => '-Wshared -Weld="-soname $(@:lib%.so=%)"', 651cb0ef41Sopenharmony_ci shared_defflag => '-Weld_obey=', 661cb0ef41Sopenharmony_ci shared_argfileflag => '-Weld_obey=', 671cb0ef41Sopenharmony_ci }, 681cb0ef41Sopenharmony_ci 691cb0ef41Sopenharmony_ci # x86 + guardian: 701cb0ef41Sopenharmony_ci 'nonstop-archenv-x86_64-guardian' => { 711cb0ef41Sopenharmony_ci template => 1, 721cb0ef41Sopenharmony_ci defines => ['NO_GETPID', '_TANDEM_ARCH=3'], 731cb0ef41Sopenharmony_ci cflags => '-Wtarget=tns/x -Wsystype=guardian', 741cb0ef41Sopenharmony_ci lflags => '-Wxld="-set systype guardian"', 751cb0ef41Sopenharmony_ci shared_ldflag => '-Wshared -Wxld="-soname $(@:lib%.so=%)"', 761cb0ef41Sopenharmony_ci shared_defflag => '-Wxld_obey=', 771cb0ef41Sopenharmony_ci shared_argfileflag => '-Wxld_obey=', 781cb0ef41Sopenharmony_ci }, 791cb0ef41Sopenharmony_ci 801cb0ef41Sopenharmony_ci # MIPS + oss (unused but present for convenience): 811cb0ef41Sopenharmony_ci 'nonstop-archenv-mips-oss' => { 821cb0ef41Sopenharmony_ci template => 1, 831cb0ef41Sopenharmony_ci cflags => '-Wtarget=tns/r -Wsystype=oss', 841cb0ef41Sopenharmony_ci lflags => '-Wld="-set systype oss"', 851cb0ef41Sopenharmony_ci shared_ldflag => '-Wshared', 861cb0ef41Sopenharmony_ci shared_defflag => '-Wld_obey=', 871cb0ef41Sopenharmony_ci shared_argfileflag => '-Wld_obey=', 881cb0ef41Sopenharmony_ci }, 891cb0ef41Sopenharmony_ci # Itanium + oss: 901cb0ef41Sopenharmony_ci 'nonstop-archenv-itanium-oss' => { 911cb0ef41Sopenharmony_ci template => 1, 921cb0ef41Sopenharmony_ci defines => ['_TANDEM_ARCH=2'], 931cb0ef41Sopenharmony_ci cflags => '-Wtarget=tns/e -Wsystype=oss', 941cb0ef41Sopenharmony_ci lflags => '-Weld="-set systype oss"', 951cb0ef41Sopenharmony_ci shared_ldflag => '-Wshared', 961cb0ef41Sopenharmony_ci shared_defflag => '-Weld_obey=', 971cb0ef41Sopenharmony_ci shared_argfileflag => '-Weld_obey=', 981cb0ef41Sopenharmony_ci }, 991cb0ef41Sopenharmony_ci # x86_64 + oss: 1001cb0ef41Sopenharmony_ci 'nonstop-archenv-x86_64-oss' => { 1011cb0ef41Sopenharmony_ci template => 1, 1021cb0ef41Sopenharmony_ci defines => ['_TANDEM_ARCH=3'], 1031cb0ef41Sopenharmony_ci cflags => '-Wtarget=tns/x -Wsystype=oss', 1041cb0ef41Sopenharmony_ci lflags => '-Wxld="-set systype oss"', 1051cb0ef41Sopenharmony_ci shared_ldflag => '-Wshared', 1061cb0ef41Sopenharmony_ci shared_defflag => '-Wxld_obey=', 1071cb0ef41Sopenharmony_ci shared_argfileflag => '-Wxld_obey=', 1081cb0ef41Sopenharmony_ci }, 1091cb0ef41Sopenharmony_ci 1101cb0ef41Sopenharmony_ci # Size variants 1111cb0ef41Sopenharmony_ci 'nonstop-ilp32' => { 1121cb0ef41Sopenharmony_ci template => 1, 1131cb0ef41Sopenharmony_ci cflags => '-Wilp32', 1141cb0ef41Sopenharmony_ci bn_ops => 'THIRTY_TWO_BIT', 1151cb0ef41Sopenharmony_ci }, 1161cb0ef41Sopenharmony_ci 'nonstop-lp64-itanium' => { 1171cb0ef41Sopenharmony_ci template => 1, 1181cb0ef41Sopenharmony_ci cflags => '-Wlp64', 1191cb0ef41Sopenharmony_ci bn_ops => 'SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR', 1201cb0ef41Sopenharmony_ci }, 1211cb0ef41Sopenharmony_ci 'nonstop-lp64-x86_64' => { 1221cb0ef41Sopenharmony_ci template => 1, 1231cb0ef41Sopenharmony_ci cflags => '-Wlp64', 1241cb0ef41Sopenharmony_ci lflags => '-Wxld="-set data_model lp64"', 1251cb0ef41Sopenharmony_ci bn_ops => 'SIXTY_FOUR_BIT', 1261cb0ef41Sopenharmony_ci }, 1271cb0ef41Sopenharmony_ci 1281cb0ef41Sopenharmony_ci # Float variants 1291cb0ef41Sopenharmony_ci 'nonstop-nfloat-mips' => { 1301cb0ef41Sopenharmony_ci template => 1, 1311cb0ef41Sopenharmony_ci lflags => '-Wld="-set floattype neutral_float"', 1321cb0ef41Sopenharmony_ci }, 1331cb0ef41Sopenharmony_ci 'nonstop-tfloat-mips' => { 1341cb0ef41Sopenharmony_ci template => 1, 1351cb0ef41Sopenharmony_ci lflags => '-Wld="-set floattype tandem_float"', 1361cb0ef41Sopenharmony_ci }, 1371cb0ef41Sopenharmony_ci 'nonstop-efloat-itanium' => { 1381cb0ef41Sopenharmony_ci template => 1, 1391cb0ef41Sopenharmony_ci cflags => '-WIEEE_float', 1401cb0ef41Sopenharmony_ci lflags => '-Weld="-set floattype ieee_float"', 1411cb0ef41Sopenharmony_ci }, 1421cb0ef41Sopenharmony_ci 'nonstop-nfloat-itanium' => { 1431cb0ef41Sopenharmony_ci template => 1, 1441cb0ef41Sopenharmony_ci lflags => '-Weld="-set floattype neutral_float"', 1451cb0ef41Sopenharmony_ci }, 1461cb0ef41Sopenharmony_ci 'nonstop-tfloat-itanium' => { 1471cb0ef41Sopenharmony_ci template => 1, 1481cb0ef41Sopenharmony_ci cflags => '-WTandem_float', 1491cb0ef41Sopenharmony_ci lflags => '-Weld="-set floattype tandem_float"', 1501cb0ef41Sopenharmony_ci }, 1511cb0ef41Sopenharmony_ci 'nonstop-efloat-x86_64' => { 1521cb0ef41Sopenharmony_ci template => 1, 1531cb0ef41Sopenharmony_ci cflags => '-WIEEE_float', 1541cb0ef41Sopenharmony_ci lflags => '-Wxld="-set floattype ieee_float"', 1551cb0ef41Sopenharmony_ci }, 1561cb0ef41Sopenharmony_ci 'nonstop-nfloat-x86_64' => { 1571cb0ef41Sopenharmony_ci template => 1, 1581cb0ef41Sopenharmony_ci lflags => '-Wxld="-set floattype neutral_float"', 1591cb0ef41Sopenharmony_ci }, 1601cb0ef41Sopenharmony_ci 'nonstop-tfloat-x86_64' => { 1611cb0ef41Sopenharmony_ci template => 1, 1621cb0ef41Sopenharmony_ci cflags => '-WTandem_float', 1631cb0ef41Sopenharmony_ci lflags => '-Wxld="-set floattype tandem_float"', 1641cb0ef41Sopenharmony_ci }, 1651cb0ef41Sopenharmony_ci 1661cb0ef41Sopenharmony_ci ###################################################################### 1671cb0ef41Sopenharmony_ci # Build models 1681cb0ef41Sopenharmony_ci 'nonstop-model-put' => { 1691cb0ef41Sopenharmony_ci template => 1, 1701cb0ef41Sopenharmony_ci defines => ['_PUT_MODEL_', 1711cb0ef41Sopenharmony_ci '_REENTRANT', '_THREAD_SUPPORT_FUNCTIONS'], 1721cb0ef41Sopenharmony_ci ex_libs => '-lput', 1731cb0ef41Sopenharmony_ci }, 1741cb0ef41Sopenharmony_ci 'nonstop-model-spt' => { 1751cb0ef41Sopenharmony_ci template => 1, 1761cb0ef41Sopenharmony_ci defines => ['_SPT_MODEL_', 1771cb0ef41Sopenharmony_ci '_REENTRANT', '_ENABLE_FLOSS_THREADS'], 1781cb0ef41Sopenharmony_ci ex_libs => '-lspt', 1791cb0ef41Sopenharmony_ci }, 1801cb0ef41Sopenharmony_ci 1811cb0ef41Sopenharmony_ci # Additional floss model that can be combined with any of the other models. 1821cb0ef41Sopenharmony_ci # If used without any of the other models, the entry that does so must 1831cb0ef41Sopenharmony_ci # disable threads. 1841cb0ef41Sopenharmony_ci 'nonstop-model-floss' => { 1851cb0ef41Sopenharmony_ci template => 1, 1861cb0ef41Sopenharmony_ci defines => ['OPENSSL_TANDEM_FLOSS'], 1871cb0ef41Sopenharmony_ci includes => ['/usr/local/include'], 1881cb0ef41Sopenharmony_ci ex_libs => '-lfloss', 1891cb0ef41Sopenharmony_ci }, 1901cb0ef41Sopenharmony_ci 1911cb0ef41Sopenharmony_ci ###################################################################### 1921cb0ef41Sopenharmony_ci # Now for the entries themselves, let's combine things! 1931cb0ef41Sopenharmony_ci 'nonstop-nsx' => { 1941cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-common', 1951cb0ef41Sopenharmony_ci 'nonstop-archenv-x86_64-oss', 1961cb0ef41Sopenharmony_ci 'nonstop-ilp32', 1971cb0ef41Sopenharmony_ci 'nonstop-efloat-x86_64' ], 1981cb0ef41Sopenharmony_ci disable => ['threads'], 1991cb0ef41Sopenharmony_ci }, 2001cb0ef41Sopenharmony_ci 'nonstop-nsx_put' => { 2011cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-common', 2021cb0ef41Sopenharmony_ci 'nonstop-archenv-x86_64-oss', 2031cb0ef41Sopenharmony_ci 'nonstop-ilp32', 2041cb0ef41Sopenharmony_ci 'nonstop-efloat-x86_64', 2051cb0ef41Sopenharmony_ci 'nonstop-model-put' ], 2061cb0ef41Sopenharmony_ci multilib => '-put', 2071cb0ef41Sopenharmony_ci }, 2081cb0ef41Sopenharmony_ci 'nonstop-nsx_64' => { 2091cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-common', 2101cb0ef41Sopenharmony_ci 'nonstop-archenv-x86_64-oss', 2111cb0ef41Sopenharmony_ci 'nonstop-lp64-x86_64', 2121cb0ef41Sopenharmony_ci 'nonstop-efloat-x86_64' ], 2131cb0ef41Sopenharmony_ci multilib => '64', 2141cb0ef41Sopenharmony_ci disable => ['threads'], 2151cb0ef41Sopenharmony_ci }, 2161cb0ef41Sopenharmony_ci 'nonstop-nsx_64_put' => { 2171cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-common', 2181cb0ef41Sopenharmony_ci 'nonstop-archenv-x86_64-oss', 2191cb0ef41Sopenharmony_ci 'nonstop-lp64-x86_64', 2201cb0ef41Sopenharmony_ci 'nonstop-efloat-x86_64', 2211cb0ef41Sopenharmony_ci 'nonstop-model-put' ], 2221cb0ef41Sopenharmony_ci multilib => '64-put', 2231cb0ef41Sopenharmony_ci }, 2241cb0ef41Sopenharmony_ci 'nonstop-nsx_spt' => { 2251cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-common', 2261cb0ef41Sopenharmony_ci 'nonstop-archenv-x86_64-oss', 2271cb0ef41Sopenharmony_ci 'nonstop-ilp32', 2281cb0ef41Sopenharmony_ci 'nonstop-efloat-x86_64', 2291cb0ef41Sopenharmony_ci 'nonstop-model-spt' ], 2301cb0ef41Sopenharmony_ci multilib => '-spt', 2311cb0ef41Sopenharmony_ci }, 2321cb0ef41Sopenharmony_ci 'nonstop-nsx_spt_floss' => { 2331cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-common', 2341cb0ef41Sopenharmony_ci 'nonstop-archenv-x86_64-oss', 2351cb0ef41Sopenharmony_ci 'nonstop-ilp32', 2361cb0ef41Sopenharmony_ci 'nonstop-efloat-x86_64', 2371cb0ef41Sopenharmony_ci 'nonstop-model-floss', 2381cb0ef41Sopenharmony_ci 'nonstop-model-spt'], 2391cb0ef41Sopenharmony_ci multilib => '-spt', 2401cb0ef41Sopenharmony_ci }, 2411cb0ef41Sopenharmony_ci 'nonstop-nsx_g' => { 2421cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-common', 2431cb0ef41Sopenharmony_ci 'nonstop-archenv-x86_64-guardian', 2441cb0ef41Sopenharmony_ci 'nonstop-ilp32', 'nonstop-nfloat-x86_64' ], 2451cb0ef41Sopenharmony_ci disable => ['threads'], 2461cb0ef41Sopenharmony_ci }, 2471cb0ef41Sopenharmony_ci 'nonstop-nsx_g_tandem' => { 2481cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-common', 2491cb0ef41Sopenharmony_ci 'nonstop-archenv-x86_64-guardian', 2501cb0ef41Sopenharmony_ci 'nonstop-ilp32', 'nonstop-tfloat-x86_64' ], 2511cb0ef41Sopenharmony_ci disable => ['threads'], 2521cb0ef41Sopenharmony_ci }, 2531cb0ef41Sopenharmony_ci 'nonstop-nsv' => { 2541cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-nsx' ], 2551cb0ef41Sopenharmony_ci }, 2561cb0ef41Sopenharmony_ci 'nonstop-nse' => { 2571cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-common', 2581cb0ef41Sopenharmony_ci 'nonstop-archenv-itanium-oss', 2591cb0ef41Sopenharmony_ci 'nonstop-ilp32', 2601cb0ef41Sopenharmony_ci 'nonstop-efloat-itanium' ], 2611cb0ef41Sopenharmony_ci disable => ['threads'], 2621cb0ef41Sopenharmony_ci }, 2631cb0ef41Sopenharmony_ci 'nonstop-nse_put' => { 2641cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-common', 2651cb0ef41Sopenharmony_ci 'nonstop-archenv-itanium-oss', 2661cb0ef41Sopenharmony_ci 'nonstop-ilp32', 2671cb0ef41Sopenharmony_ci 'nonstop-efloat-itanium', 2681cb0ef41Sopenharmony_ci 'nonstop-model-put' ], 2691cb0ef41Sopenharmony_ci multilib => '-put', 2701cb0ef41Sopenharmony_ci }, 2711cb0ef41Sopenharmony_ci 'nonstop-nse_64' => { 2721cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-common', 2731cb0ef41Sopenharmony_ci 'nonstop-archenv-itanium-oss', 2741cb0ef41Sopenharmony_ci 'nonstop-lp64-itanium', 2751cb0ef41Sopenharmony_ci 'nonstop-efloat-itanium' ], 2761cb0ef41Sopenharmony_ci multilib => '64', 2771cb0ef41Sopenharmony_ci disable => ['threads'], 2781cb0ef41Sopenharmony_ci }, 2791cb0ef41Sopenharmony_ci 'nonstop-nse_64_put' => { 2801cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-common', 2811cb0ef41Sopenharmony_ci 'nonstop-archenv-itanium-oss', 2821cb0ef41Sopenharmony_ci 'nonstop-lp64-itanium', 2831cb0ef41Sopenharmony_ci 'nonstop-efloat-itanium', 2841cb0ef41Sopenharmony_ci 'nonstop-model-put' ], 2851cb0ef41Sopenharmony_ci multilib => '64-put', 2861cb0ef41Sopenharmony_ci }, 2871cb0ef41Sopenharmony_ci 'nonstop-nse_spt' => { 2881cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-common', 2891cb0ef41Sopenharmony_ci 'nonstop-archenv-itanium-oss', 2901cb0ef41Sopenharmony_ci 'nonstop-ilp32', 2911cb0ef41Sopenharmony_ci 'nonstop-efloat-itanium', 2921cb0ef41Sopenharmony_ci 'nonstop-model-spt' ], 2931cb0ef41Sopenharmony_ci multilib => '-spt', 2941cb0ef41Sopenharmony_ci }, 2951cb0ef41Sopenharmony_ci 'nonstop-nse_spt_floss' => { 2961cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-common', 2971cb0ef41Sopenharmony_ci 'nonstop-archenv-itanium-oss', 2981cb0ef41Sopenharmony_ci 'nonstop-ilp32', 2991cb0ef41Sopenharmony_ci 'nonstop-efloat-itanium', 3001cb0ef41Sopenharmony_ci 'nonstop-model-floss', 'nonstop-model-spt' ], 3011cb0ef41Sopenharmony_ci multilib => '-spt', 3021cb0ef41Sopenharmony_ci }, 3031cb0ef41Sopenharmony_ci 'nonstop-nse_g' => { 3041cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-common', 3051cb0ef41Sopenharmony_ci 'nonstop-archenv-itanium-guardian', 3061cb0ef41Sopenharmony_ci 'nonstop-ilp32', 'nonstop-nfloat-itanium' ], 3071cb0ef41Sopenharmony_ci disable => ['threads'], 3081cb0ef41Sopenharmony_ci }, 3091cb0ef41Sopenharmony_ci 3101cb0ef41Sopenharmony_ci 'nonstop-nse_g_tandem' => { 3111cb0ef41Sopenharmony_ci inherit_from => [ 'nonstop-common', 3121cb0ef41Sopenharmony_ci 'nonstop-archenv-itanium-guardian', 3131cb0ef41Sopenharmony_ci 'nonstop-ilp32', 'nonstop-tfloat-itanium' ], 3141cb0ef41Sopenharmony_ci disable => ['threads'], 3151cb0ef41Sopenharmony_ci }, 316