50-nonstop.conf 12 KB

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