50-nonstop.conf 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  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. # Additional variant settings, to be combined with nonstop-common
  28. # Note that these do not inherit anything. However, the diverse values
  29. # are merged with other entries in an 'inherit_from'.
  30. #
  31. # These combine:
  32. # - System architecture (MIPS, Itanium, or x86)
  33. # - Execution environment (oss [default] or guardian)
  34. #
  35. # Unfortunately, they can't be separated into independent templates, because
  36. # a number of the above are encoded as different linkers, and by consequence,
  37. # different c99 linker flags (-Wld, -Weld, and -Wxld)
  38. #
  39. # In addition, the are modifiers for:
  40. # - Size of long + pointer (ilp32 [default] and lp64)
  41. # - Float type (neutral and tandem)
  42. #
  43. # Unfortunately, because the float types affect the linker settings, those
  44. # are divided per system architecture
  45. #
  46. # MIPS + guardian (unused but present for convenience):
  47. 'nonstop-archenv-mips-guardian' => {
  48. template => 1,
  49. defines => ['NO_GETPID'],
  50. cflags => '-Wtarget=tns/r -Wsystype=guardian',
  51. lflags => '-Wld="-set systype guardian"',
  52. shared_ldflag => '-Wshared -Wld="-soname $(@:lib%.so=%)"',
  53. shared_defflag => '-Wld_obey=',
  54. shared_argfileflag => '-Wld_obey=',
  55. },
  56. # Itanium + guardian:
  57. 'nonstop-archenv-itanium-guardian' => {
  58. template => 1,
  59. defines => ['NO_GETPID', '_TANDEM_ARCH=2'],
  60. cflags => '-Wtarget=tns/e -Wsystype=guardian',
  61. lflags => '-Weld="-set systype guardian"',
  62. shared_ldflag => '-Wshared -Weld="-soname $(@:lib%.so=%)"',
  63. shared_defflag => '-Weld_obey=',
  64. shared_argfileflag => '-Weld_obey=',
  65. },
  66. # x86 + guardian:
  67. 'nonstop-archenv-x86_64-guardian' => {
  68. template => 1,
  69. defines => ['NO_GETPID', '_TANDEM_ARCH=3'],
  70. cflags => '-Wtarget=tns/x -Wsystype=guardian',
  71. lflags => '-Wxld="-set systype guardian"',
  72. shared_ldflag => '-Wshared -Wxld="-soname $(@:lib%.so=%)"',
  73. shared_defflag => '-Wxld_obey=',
  74. shared_argfileflag => '-Wxld_obey=',
  75. },
  76. # MIPS + oss (unused but present for convenience):
  77. 'nonstop-archenv-mips-oss' => {
  78. template => 1,
  79. cflags => '-Wtarget=tns/r -Wsystype=oss',
  80. lflags => '-Wld="-set systype oss"',
  81. shared_ldflag => '-Wshared',
  82. shared_defflag => '-Wld_obey=',
  83. shared_argfileflag => '-Wld_obey=',
  84. },
  85. # Itanium + oss:
  86. 'nonstop-archenv-itanium-oss' => {
  87. template => 1,
  88. defines => ['_TANDEM_ARCH=2'],
  89. cflags => '-Wtarget=tns/e -Wsystype=oss',
  90. lflags => '-Weld="-set systype oss"',
  91. shared_ldflag => '-Wshared',
  92. shared_defflag => '-Weld_obey=',
  93. shared_argfileflag => '-Weld_obey=',
  94. },
  95. # x86_64 + oss:
  96. 'nonstop-archenv-x86_64-oss' => {
  97. template => 1,
  98. defines => ['_TANDEM_ARCH=3'],
  99. cflags => '-Wtarget=tns/x -Wsystype=oss',
  100. lflags => '-Wxld="-set systype oss"',
  101. shared_ldflag => '-Wshared',
  102. shared_defflag => '-Wxld_obey=',
  103. shared_argfileflag => '-Wxld_obey=',
  104. },
  105. # Size variants
  106. 'nonstop-ilp32' => {
  107. template => 1,
  108. cflags => '-Wilp32',
  109. bn_ops => 'THIRTY_TWO_BIT',
  110. },
  111. 'nonstop-lp64-itanium' => {
  112. template => 1,
  113. cflags => '-Wlp64',
  114. bn_ops => 'SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR',
  115. },
  116. 'nonstop-lp64-x86_64' => {
  117. template => 1,
  118. cflags => '-Wlp64',
  119. lflags => '-Wxld="-set data_model lp64"',
  120. bn_ops => 'SIXTY_FOUR_BIT',
  121. },
  122. # Float variants
  123. 'nonstop-nfloat-mips' => {
  124. template => 1,
  125. lflags => '-Wld="-set floattype neutral_float"',
  126. },
  127. 'nonstop-tfloat-mips' => {
  128. template => 1,
  129. lflags => '-Wld="-set floattype tandem_float"',
  130. },
  131. 'nonstop-efloat-itanium' => {
  132. template => 1,
  133. cflags => '-WIEEE_float',
  134. lflags => '-Weld="-set floattype ieee_float"',
  135. },
  136. 'nonstop-nfloat-itanium' => {
  137. template => 1,
  138. lflags => '-Weld="-set floattype neutral_float"',
  139. },
  140. 'nonstop-tfloat-itanium' => {
  141. template => 1,
  142. cflags => '-WTandem_float',
  143. lflags => '-Weld="-set floattype tandem_float"',
  144. },
  145. 'nonstop-efloat-x86_64' => {
  146. template => 1,
  147. cflags => '-WIEEE_float',
  148. lflags => '-Wxld="-set floattype ieee_float"',
  149. },
  150. 'nonstop-nfloat-x86_64' => {
  151. template => 1,
  152. lflags => '-Wxld="-set floattype neutral_float"',
  153. },
  154. 'nonstop-tfloat-x86_64' => {
  155. template => 1,
  156. cflags => '-WTandem_float',
  157. lflags => '-Wxld="-set floattype tandem_float"',
  158. },
  159. ######################################################################
  160. # Build models
  161. 'nonstop-model-put' => {
  162. template => 1,
  163. defines => ['_PUT_MODEL_',
  164. '_REENTRANT', '_THREAD_SUPPORT_FUNCTIONS'],
  165. ex_libs => '-lput',
  166. },
  167. 'nonstop-model-spt' => {
  168. template => 1,
  169. defines => ['_SPT_MODEL_',
  170. '_REENTRANT', '_ENABLE_FLOSS_THREADS'],
  171. ex_libs => '-lspt',
  172. },
  173. # Additional floss model that can be combined with any of the other models.
  174. # If used without any of the other models, the entry that does so must
  175. # disable threads.
  176. 'nonstop-model-floss' => {
  177. template => 1,
  178. defines => ['OPENSSL_TANDEM_FLOSS'],
  179. includes => ['/usr/local/include'],
  180. ex_libs => '-lfloss',
  181. },
  182. ######################################################################
  183. # Now for the entries themselves, let's combine things!
  184. 'nonstop-nsx' => {
  185. inherit_from => [ 'nonstop-common',
  186. 'nonstop-archenv-x86_64-oss',
  187. 'nonstop-ilp32',
  188. 'nonstop-efloat-x86_64' ],
  189. disable => ['threads'],
  190. },
  191. 'nonstop-nsx_put' => {
  192. inherit_from => [ 'nonstop-common',
  193. 'nonstop-archenv-x86_64-oss',
  194. 'nonstop-ilp32',
  195. 'nonstop-efloat-x86_64',
  196. 'nonstop-model-put' ],
  197. },
  198. 'nonstop-nsx_64' => {
  199. inherit_from => [ 'nonstop-common',
  200. 'nonstop-archenv-x86_64-oss',
  201. 'nonstop-lp64-x86_64',
  202. 'nonstop-efloat-x86_64' ],
  203. disable => ['threads'],
  204. },
  205. 'nonstop-nsx_64_put' => {
  206. inherit_from => [ 'nonstop-common',
  207. 'nonstop-archenv-x86_64-oss',
  208. 'nonstop-lp64-x86_64',
  209. 'nonstop-efloat-x86_64',
  210. 'nonstop-model-put' ],
  211. },
  212. 'nonstop-nsx_spt' => {
  213. inherit_from => [ 'nonstop-common',
  214. 'nonstop-archenv-x86_64-oss',
  215. 'nonstop-ilp32',
  216. 'nonstop-efloat-x86_64',
  217. 'nonstop-model-spt' ],
  218. },
  219. 'nonstop-nsx_spt_floss' => {
  220. inherit_from => [ 'nonstop-common',
  221. 'nonstop-archenv-x86_64-oss',
  222. 'nonstop-ilp32',
  223. 'nonstop-efloat-x86_64',
  224. 'nonstop-model-floss',
  225. 'nonstop-model-spt'],
  226. },
  227. 'nonstop-nsx_g' => {
  228. inherit_from => [ 'nonstop-common',
  229. 'nonstop-archenv-x86_64-guardian',
  230. 'nonstop-ilp32', 'nonstop-nfloat-x86_64' ],
  231. disable => ['threads'],
  232. },
  233. 'nonstop-nsx_g_tandem' => {
  234. inherit_from => [ 'nonstop-common',
  235. 'nonstop-archenv-x86_64-guardian',
  236. 'nonstop-ilp32', 'nonstop-tfloat-x86_64' ],
  237. disable => ['threads'],
  238. },
  239. 'nonstop-nsv' => {
  240. inherit_from => [ 'nonstop-nsx' ],
  241. },
  242. 'nonstop-nse' => {
  243. inherit_from => [ 'nonstop-common',
  244. 'nonstop-archenv-itanium-oss',
  245. 'nonstop-ilp32',
  246. 'nonstop-efloat-itanium' ],
  247. disable => ['threads'],
  248. },
  249. 'nonstop-nse_put' => {
  250. inherit_from => [ 'nonstop-common',
  251. 'nonstop-archenv-itanium-oss',
  252. 'nonstop-ilp32',
  253. 'nonstop-efloat-itanium',
  254. 'nonstop-model-put' ],
  255. },
  256. 'nonstop-nse_64' => {
  257. inherit_from => [ 'nonstop-common',
  258. 'nonstop-archenv-itanium-oss',
  259. 'nonstop-lp64-itanium',
  260. 'nonstop-efloat-itanium' ],
  261. disable => ['threads'],
  262. },
  263. 'nonstop-nse_64_put' => {
  264. inherit_from => [ 'nonstop-common',
  265. 'nonstop-archenv-itanium-oss',
  266. 'nonstop-lp64-itanium',
  267. 'nonstop-efloat-itanium',
  268. 'nonstop-model-put' ],
  269. },
  270. 'nonstop-nse_spt' => {
  271. inherit_from => [ 'nonstop-common',
  272. 'nonstop-archenv-itanium-oss',
  273. 'nonstop-ilp32',
  274. 'nonstop-efloat-itanium',
  275. 'nonstop-model-spt' ],
  276. },
  277. 'nonstop-nse_spt_floss' => {
  278. inherit_from => [ 'nonstop-common',
  279. 'nonstop-archenv-itanium-oss',
  280. 'nonstop-ilp32',
  281. 'nonstop-efloat-itanium',
  282. 'nonstop-model-floss', 'nonstop-model-spt' ],
  283. },
  284. 'nonstop-nse_g' => {
  285. inherit_from => [ 'nonstop-common',
  286. 'nonstop-archenv-itanium-guardian',
  287. 'nonstop-ilp32', 'nonstop-nfloat-itanium' ],
  288. disable => ['threads'],
  289. },
  290. 'nonstop-nse_g_tandem' => {
  291. inherit_from => [ 'nonstop-common',
  292. 'nonstop-archenv-itanium-guardian',
  293. 'nonstop-ilp32', 'nonstop-tfloat-itanium' ],
  294. disable => ['threads'],
  295. },