50-nonstop.conf 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  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. ######################################################################
  167. # Now for the entries themselves, let's combine things!
  168. 'nonstop-nsx' => {
  169. inherit_from => [ 'nonstop-common',
  170. 'nonstop-archenv-x86_64-oss',
  171. 'nonstop-ilp32',
  172. 'nonstop-efloat-x86_64' ],
  173. disable => ['threads'],
  174. },
  175. 'nonstop-nsx_put' => {
  176. inherit_from => [ 'nonstop-common',
  177. 'nonstop-archenv-x86_64-oss',
  178. 'nonstop-ilp32',
  179. 'nonstop-efloat-x86_64',
  180. 'nonstop-model-put' ],
  181. multilib => '-put',
  182. multibin => '-put',
  183. },
  184. 'nonstop-nsx_64' => {
  185. inherit_from => [ 'nonstop-common',
  186. 'nonstop-archenv-x86_64-oss',
  187. 'nonstop-lp64-x86_64',
  188. 'nonstop-efloat-x86_64' ],
  189. multilib => '64',
  190. multibin => '64',
  191. disable => ['threads'],
  192. },
  193. 'nonstop-nsx_64_put' => {
  194. inherit_from => [ 'nonstop-common',
  195. 'nonstop-archenv-x86_64-oss',
  196. 'nonstop-lp64-x86_64',
  197. 'nonstop-efloat-x86_64',
  198. 'nonstop-model-put' ],
  199. multilib => '64-put',
  200. multibin => '64-put',
  201. },
  202. 'nonstop-nsx_g' => {
  203. inherit_from => [ 'nonstop-common',
  204. 'nonstop-archenv-x86_64-guardian',
  205. 'nonstop-ilp32', 'nonstop-nfloat-x86_64' ],
  206. disable => ['threads'],
  207. },
  208. 'nonstop-nsx_g_tandem' => {
  209. inherit_from => [ 'nonstop-common',
  210. 'nonstop-archenv-x86_64-guardian',
  211. 'nonstop-ilp32', 'nonstop-tfloat-x86_64' ],
  212. disable => ['threads'],
  213. },
  214. 'nonstop-nsv' => {
  215. inherit_from => [ 'nonstop-nsx' ],
  216. },
  217. 'nonstop-nse' => {
  218. inherit_from => [ 'nonstop-common',
  219. 'nonstop-archenv-itanium-oss',
  220. 'nonstop-ilp32',
  221. 'nonstop-efloat-itanium' ],
  222. disable => ['threads'],
  223. },
  224. 'nonstop-nse_put' => {
  225. inherit_from => [ 'nonstop-common',
  226. 'nonstop-archenv-itanium-oss',
  227. 'nonstop-ilp32',
  228. 'nonstop-efloat-itanium',
  229. 'nonstop-model-put' ],
  230. multilib => '-put',
  231. multibin => '-put',
  232. },
  233. 'nonstop-nse_64' => {
  234. inherit_from => [ 'nonstop-common',
  235. 'nonstop-archenv-itanium-oss',
  236. 'nonstop-lp64-itanium',
  237. 'nonstop-efloat-itanium' ],
  238. multilib => '64',
  239. multibin => '64',
  240. disable => ['threads'],
  241. },
  242. 'nonstop-nse_64_put' => {
  243. inherit_from => [ 'nonstop-common',
  244. 'nonstop-archenv-itanium-oss',
  245. 'nonstop-lp64-itanium',
  246. 'nonstop-efloat-itanium',
  247. 'nonstop-model-put' ],
  248. multilib => '64-put',
  249. multibin => '64-put',
  250. },
  251. 'nonstop-nse_g' => {
  252. inherit_from => [ 'nonstop-common',
  253. 'nonstop-archenv-itanium-guardian',
  254. 'nonstop-ilp32', 'nonstop-nfloat-itanium' ],
  255. disable => ['threads'],
  256. },
  257. 'nonstop-nse_g_tandem' => {
  258. inherit_from => [ 'nonstop-common',
  259. 'nonstop-archenv-itanium-guardian',
  260. 'nonstop-ilp32', 'nonstop-tfloat-itanium' ],
  261. disable => ['threads'],
  262. },