50-nonstop.conf 11 KB

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