A local copy of OpenSSL from GitHub
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

315 lines
12 KiB

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