50-nonstop.conf 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  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. multibin => '-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. multilib => '64',
  204. multibin => '64',
  205. disable => ['threads'],
  206. },
  207. 'nonstop-nsx_64_put' => {
  208. inherit_from => [ 'nonstop-common',
  209. 'nonstop-archenv-x86_64-oss',
  210. 'nonstop-lp64-x86_64',
  211. 'nonstop-efloat-x86_64',
  212. 'nonstop-model-put' ],
  213. multilib => '64-put',
  214. multibin => '64-put',
  215. },
  216. 'nonstop-nsx_spt' => {
  217. inherit_from => [ 'nonstop-common',
  218. 'nonstop-archenv-x86_64-oss',
  219. 'nonstop-ilp32',
  220. 'nonstop-efloat-x86_64',
  221. 'nonstop-model-spt' ],
  222. multilib => '-spt',
  223. multibin => '-spt',
  224. },
  225. 'nonstop-nsx_spt_floss' => {
  226. inherit_from => [ 'nonstop-common',
  227. 'nonstop-archenv-x86_64-oss',
  228. 'nonstop-ilp32',
  229. 'nonstop-efloat-x86_64',
  230. 'nonstop-model-floss',
  231. 'nonstop-model-spt'],
  232. multilib => '-spt',
  233. multibin => '-spt',
  234. },
  235. 'nonstop-nsx_g' => {
  236. inherit_from => [ 'nonstop-common',
  237. 'nonstop-archenv-x86_64-guardian',
  238. 'nonstop-ilp32', 'nonstop-nfloat-x86_64' ],
  239. disable => ['threads'],
  240. },
  241. 'nonstop-nsx_g_tandem' => {
  242. inherit_from => [ 'nonstop-common',
  243. 'nonstop-archenv-x86_64-guardian',
  244. 'nonstop-ilp32', 'nonstop-tfloat-x86_64' ],
  245. disable => ['threads'],
  246. },
  247. 'nonstop-nsv' => {
  248. inherit_from => [ 'nonstop-nsx' ],
  249. },
  250. 'nonstop-nse' => {
  251. inherit_from => [ 'nonstop-common',
  252. 'nonstop-archenv-itanium-oss',
  253. 'nonstop-ilp32',
  254. 'nonstop-efloat-itanium' ],
  255. disable => ['threads'],
  256. },
  257. 'nonstop-nse_put' => {
  258. inherit_from => [ 'nonstop-common',
  259. 'nonstop-archenv-itanium-oss',
  260. 'nonstop-ilp32',
  261. 'nonstop-efloat-itanium',
  262. 'nonstop-model-put' ],
  263. multilib => '-put',
  264. multibin => '-put',
  265. },
  266. 'nonstop-nse_64' => {
  267. inherit_from => [ 'nonstop-common',
  268. 'nonstop-archenv-itanium-oss',
  269. 'nonstop-lp64-itanium',
  270. 'nonstop-efloat-itanium' ],
  271. multilib => '64',
  272. multibin => '64',
  273. disable => ['threads'],
  274. },
  275. 'nonstop-nse_64_put' => {
  276. inherit_from => [ 'nonstop-common',
  277. 'nonstop-archenv-itanium-oss',
  278. 'nonstop-lp64-itanium',
  279. 'nonstop-efloat-itanium',
  280. 'nonstop-model-put' ],
  281. multilib => '64-put',
  282. multibin => '64-put',
  283. },
  284. 'nonstop-nse_spt' => {
  285. inherit_from => [ 'nonstop-common',
  286. 'nonstop-archenv-itanium-oss',
  287. 'nonstop-ilp32',
  288. 'nonstop-efloat-itanium',
  289. 'nonstop-model-spt' ],
  290. multilib => '-spt',
  291. multibin => '-spt',
  292. },
  293. 'nonstop-nse_spt_floss' => {
  294. inherit_from => [ 'nonstop-common',
  295. 'nonstop-archenv-itanium-oss',
  296. 'nonstop-ilp32',
  297. 'nonstop-efloat-itanium',
  298. 'nonstop-model-floss', 'nonstop-model-spt' ],
  299. multilib => '-spt',
  300. multibin => '-spt',
  301. },
  302. 'nonstop-nse_g' => {
  303. inherit_from => [ 'nonstop-common',
  304. 'nonstop-archenv-itanium-guardian',
  305. 'nonstop-ilp32', 'nonstop-nfloat-itanium' ],
  306. disable => ['threads'],
  307. },
  308. 'nonstop-nse_g_tandem' => {
  309. inherit_from => [ 'nonstop-common',
  310. 'nonstop-archenv-itanium-guardian',
  311. 'nonstop-ilp32', 'nonstop-tfloat-itanium' ],
  312. disable => ['threads'],
  313. },