50-nonstop.conf 13 KB

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