patch-boehm-gc_include_private_gcconfig_h 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  1. $OpenBSD: patch-boehm-gc_include_private_gcconfig_h,v 1.6 2016/03/09 18:45:52 jasper Exp $
  2. --- boehm-gc/include/private/gcconfig.h.orig Fri Mar 2 19:21:41 2012
  3. +++ boehm-gc/include/private/gcconfig.h Sat Apr 13 16:20:18 2013
  4. @@ -62,7 +62,7 @@
  5. /* Determine the machine type: */
  6. # if defined(__arm__) || defined(__thumb__)
  7. # define ARM32
  8. -# if !defined(LINUX) && !defined(NETBSD)
  9. +# if !defined(LINUX) && !defined(NETBSD) && !defined(OPENBSD)
  10. # define NOSYS
  11. # define mach_type_known
  12. # endif
  13. @@ -77,14 +77,18 @@
  14. # define HP
  15. # define mach_type_known
  16. # endif
  17. -# if defined(OPENBSD) && defined(m68k)
  18. -# define M68K
  19. -# define mach_type_known
  20. -# endif
  21. # if defined(OPENBSD) && defined(__sparc__)
  22. # define SPARC
  23. # define mach_type_known
  24. # endif
  25. +# if defined(OPENBSD) && defined(__arm__)
  26. +# define ARM32
  27. +# define mach_type_known
  28. +# endif
  29. +# if defined(OPENBSD) && defined(__sh__)
  30. +# define SH
  31. +# define mach_type_known
  32. +# endif
  33. # if defined(NETBSD) && (defined(m68k) || defined(__m68k__))
  34. # define M68K
  35. # define mach_type_known
  36. @@ -119,7 +123,7 @@
  37. # if defined(nec_ews) || defined(_nec_ews)
  38. # define EWS4800
  39. # endif
  40. -# if !defined(LINUX) && !defined(EWS4800) && !defined(NETBSD)
  41. +# if !defined(LINUX) && !defined(EWS4800) && !defined(NETBSD) && !defined(OPENBSD)
  42. # if defined(ultrix) || defined(__ultrix)
  43. # define ULTRIX
  44. # else
  45. @@ -210,7 +214,7 @@
  46. # if defined(_PA_RISC1_0) || defined(_PA_RISC1_1) || defined(_PA_RISC2_0) \
  47. || defined(hppa) || defined(__hppa__)
  48. # define HP_PA
  49. -# if !defined(LINUX) && !defined(HPUX)
  50. +# if !defined(LINUX) && !defined(HPUX) && !defined(OPENBSD)
  51. # define HPUX
  52. # endif
  53. # define mach_type_known
  54. @@ -231,6 +235,10 @@
  55. # define I386
  56. # define mach_type_known
  57. # endif
  58. +# if defined(OPENBSD) && defined(__amd64)
  59. +# define X86_64
  60. +# define mach_type_known
  61. +# endif
  62. # if defined(LINUX) && defined(__x86_64__)
  63. # define X86_64
  64. # define mach_type_known
  65. @@ -302,6 +310,11 @@
  66. # define MACOS
  67. # define mach_type_known
  68. # endif
  69. +# if defined(__OpenBSD__) && defined(__powerpc__)
  70. +# define POWERPC
  71. +# define OPENBSD
  72. +# define mach_type_known
  73. +# endif
  74. # if defined(macosx) || (defined(__APPLE__) && defined(__MACH__))
  75. # define DARWIN
  76. # if defined(__ppc__) || defined(__ppc64__)
  77. @@ -651,18 +664,6 @@
  78. # ifdef M68K
  79. # define MACH_TYPE "M68K"
  80. # define ALIGNMENT 2
  81. -# ifdef OPENBSD
  82. -# define OS_TYPE "OPENBSD"
  83. -# define HEURISTIC2
  84. -# ifdef __ELF__
  85. -# define DATASTART GC_data_start
  86. -# define DYNAMIC_LOADING
  87. -# else
  88. - extern char etext[];
  89. -# define DATASTART ((ptr_t)(etext))
  90. -# endif
  91. -# define USE_GENERIC_PUSH_REGS
  92. -# endif
  93. # ifdef NETBSD
  94. # define OS_TYPE "NETBSD"
  95. # define HEURISTIC2
  96. @@ -836,6 +837,24 @@
  97. should be looked into some more */
  98. # define NO_PTHREAD_TRYLOCK
  99. # endif
  100. +# ifdef OPENBSD
  101. +# define OS_TYPE "OPENBSD"
  102. +# define ALIGNMENT 4
  103. +# define SIG_SUSPEND SIGXFSZ
  104. +# define SIG_THR_RESTART SIGXCPU
  105. +# ifndef GC_OPENBSD_THREADS
  106. +# include <sys/param.h>
  107. +# include <uvm/uvm_extern.h>
  108. +# define STACKBOTTOM USRSTACK
  109. +# endif
  110. + extern int __data_start[];
  111. +# define DATASTART ((ptr_t)(__data_start))
  112. + extern char _end[];
  113. +# define DATAEND ((ptr_t)(&_end))
  114. +# define DYNAMIC_LOADING
  115. +# define USE_MMAP
  116. +# define USE_MMAP_ANON
  117. +# endif
  118. # ifdef FREEBSD
  119. # define ALIGNMENT 4
  120. # define OS_TYPE "FREEBSD"
  121. @@ -994,9 +1013,20 @@
  122. # endif
  123. # ifdef OPENBSD
  124. # define OS_TYPE "OPENBSD"
  125. -# define STACKBOTTOM ((ptr_t) 0xf8000000)
  126. - extern int etext[];
  127. -# define DATASTART ((ptr_t)(etext))
  128. +# define SIG_SUSPEND SIGXFSZ
  129. +# define SIG_THR_RESTART SIGXCPU
  130. +# ifndef GC_OPENBSD_THREADS
  131. +# include <sys/param.h>
  132. +# include <uvm/uvm_extern.h>
  133. +# define STACKBOTTOM USRSTACK
  134. +# endif
  135. + extern int __data_start[];
  136. +# define DATASTART ((ptr_t)(__data_start))
  137. + extern char _end[];
  138. +# define DATAEND ((ptr_t)(&_end))
  139. +# define DYNAMIC_LOADING
  140. +# define USE_MMAP
  141. +# define USE_MMAP_ANON
  142. # endif
  143. # ifdef NETBSD
  144. # define OS_TYPE "NETBSD"
  145. @@ -1250,6 +1280,20 @@
  146. # endif
  147. # ifdef OPENBSD
  148. # define OS_TYPE "OPENBSD"
  149. +# define SIG_SUSPEND SIGXFSZ
  150. +# define SIG_THR_RESTART SIGXCPU
  151. +# ifndef GC_OPENBSD_THREADS
  152. +# include <sys/param.h>
  153. +# include <uvm/uvm_extern.h>
  154. +# define STACKBOTTOM USRSTACK
  155. +# endif
  156. + extern int __data_start[];
  157. +# define DATASTART ((ptr_t)(__data_start))
  158. + extern char _end[];
  159. +# define DATAEND ((ptr_t)(&_end))
  160. +# define DYNAMIC_LOADING
  161. +# define USE_MMAP
  162. +# define USE_MMAP_ANON
  163. # endif
  164. # ifdef FREEBSD
  165. # define OS_TYPE "FREEBSD"
  166. @@ -1285,7 +1329,7 @@
  167. # ifdef BSDI
  168. # define OS_TYPE "BSDI"
  169. # endif
  170. -# if defined(OPENBSD) || defined(NETBSD) \
  171. +# if defined(NETBSD) \
  172. || defined(THREE86BSD) || defined(BSDI)
  173. # define HEURISTIC2
  174. extern char etext[];
  175. @@ -1475,6 +1519,24 @@
  176. # define STACKBOTTOM ((ptr_t) 0x7ffff000)
  177. # endif /* _ELF_ */
  178. # endif
  179. +# ifdef OPENBSD
  180. +# define OS_TYPE "OPENBSD"
  181. +# define ALIGNMENT 4
  182. +# define SIG_SUSPEND SIGXFSZ
  183. +# define SIG_THR_RESTART SIGXCPU
  184. +# ifndef GC_OPENBSD_THREADS
  185. +# include <sys/param.h>
  186. +# include <uvm/uvm_extern.h>
  187. +# define STACKBOTTOM USRSTACK
  188. +# endif
  189. + extern int _fdata[];
  190. +# define DATASTART ((ptr_t)(_fdata))
  191. + extern char _end[];
  192. +# define DATAEND ((ptr_t)(&_end))
  193. +# define DYNAMIC_LOADING
  194. +# define USE_MMAP
  195. +# define USE_MMAP_ANON
  196. +# endif
  197. # endif
  198. # ifdef RS6000
  199. @@ -1522,7 +1584,7 @@
  200. # define ALIGNMENT 4
  201. # define ALIGN_DOUBLE
  202. # endif
  203. -# if !defined(GC_HPUX_THREADS) && !defined(GC_LINUX_THREADS)
  204. +# if !defined(GC_HPUX_THREADS) && !defined(GC_LINUX_THREADS) && !defined(OPENBSD)
  205. # ifndef LINUX /* For now. */
  206. # define MPROTECT_VDB
  207. # endif
  208. @@ -1574,6 +1636,23 @@
  209. extern int _end[];
  210. # define DATAEND (&_end)
  211. # endif /* LINUX */
  212. +# ifdef OPENBSD
  213. +# define OS_TYPE "OPENBSD"
  214. +# define SIG_SUSPEND SIGXFSZ
  215. +# define SIG_THR_RESTART SIGXCPU
  216. +# ifndef GC_OPENBSD_THREADS
  217. +# include <sys/param.h>
  218. +# include <uvm/uvm_extern.h>
  219. +# define STACKBOTTOM USRSTACK
  220. +# endif
  221. + extern int __data_start[];
  222. +# define DATASTART ((ptr_t)(__data_start))
  223. + extern char _end[];
  224. +# define DATAEND ((ptr_t)(&_end))
  225. +# define DYNAMIC_LOADING
  226. +# define USE_MMAP
  227. +# define USE_MMAP_ANON
  228. +# endif
  229. # endif /* HP_PA */
  230. # ifdef ALPHA
  231. @@ -1598,15 +1677,21 @@
  232. # endif
  233. # ifdef OPENBSD
  234. # define OS_TYPE "OPENBSD"
  235. -# define HEURISTIC2
  236. -# ifdef __ELF__ /* since OpenBSD/Alpha 2.9 */
  237. -# define DATASTART GC_data_start
  238. -# define ELFCLASS32 32
  239. -# define ELFCLASS64 64
  240. -# define ELF_CLASS ELFCLASS64
  241. -# else /* ECOFF, until OpenBSD/Alpha 2.7 */
  242. -# define DATASTART ((ptr_t) 0x140000000)
  243. -# endif
  244. +# define ELF_CLASS ELFCLASS64
  245. +# define SIG_SUSPEND SIGXFSZ
  246. +# define SIG_THR_RESTART SIGXCPU
  247. +# ifndef GC_OPENBSD_THREADS
  248. +# include <sys/param.h>
  249. +# include <uvm/uvm_extern.h>
  250. +# define STACKBOTTOM USRSTACK
  251. +# endif
  252. + extern int __data_start[];
  253. +# define DATASTART ((ptr_t)(__data_start))
  254. + extern char _end[];
  255. +# define DATAEND ((ptr_t)(&_end))
  256. +# define DYNAMIC_LOADING
  257. +# define USE_MMAP
  258. +# define USE_MMAP_ANON
  259. # endif
  260. # ifdef FREEBSD
  261. # define OS_TYPE "FREEBSD"
  262. @@ -1786,6 +1871,7 @@
  263. # ifdef CX_UX
  264. # define OS_TYPE "CX_UX"
  265. # define DATASTART ((((word)etext + 0x3fffff) & ~0x3fffff) + 0x10000)
  266. +# define STACKBOTTOM ((char*)0xf0000000) /* determined empirically */
  267. # endif
  268. # ifdef DGUX
  269. # define OS_TYPE "DGUX"
  270. @@ -1896,6 +1982,24 @@
  271. # define OS_TYPE "MSWINCE"
  272. # define DATAEND /* not needed */
  273. # endif
  274. +# ifdef OPENBSD
  275. +# define ALIGNMENT 4
  276. +# define OS_TYPE "OPENBSD"
  277. +# define SIG_SUSPEND SIGXFSZ
  278. +# define SIG_THR_RESTART SIGXCPU
  279. +# ifndef GC_OPENBSD_THREADS
  280. +# include <sys/param.h>
  281. +# include <uvm/uvm_extern.h>
  282. +# define STACKBOTTOM USRSTACK
  283. +# endif
  284. + extern int __data_start[];
  285. +# define DATASTART ((ptr_t)(__data_start))
  286. + extern char _end[];
  287. +# define DATAEND ((ptr_t)(&_end))
  288. +# define DYNAMIC_LOADING
  289. +# define USE_MMAP
  290. +# define USE_MMAP_ANON
  291. +# endif
  292. # ifdef NOSYS
  293. /* __data_start is usually defined in the target linker script. */
  294. extern int __data_start[];
  295. @@ -1943,6 +2047,23 @@
  296. # define USE_GENERIC_PUSH_REGS
  297. # define DYNAMIC_LOADING
  298. # endif
  299. +# ifdef OPENBSD
  300. +# define OS_TYPE "OPENBSD"
  301. +# define SIG_SUSPEND SIGXFSZ
  302. +# define SIG_THR_RESTART SIGXCPU
  303. +# ifndef GC_OPENBSD_THREADS
  304. +# include <sys/param.h>
  305. +# include <uvm/uvm_extern.h>
  306. +# define STACKBOTTOM USRSTACK
  307. +# endif
  308. + extern int __data_start[];
  309. +# define DATASTART ((ptr_t)(__data_start))
  310. + extern char _end[];
  311. +# define DATAEND ((ptr_t)(&_end))
  312. +# define DYNAMIC_LOADING
  313. +# define USE_MMAP
  314. +# define USE_MMAP_ANON
  315. +# endif
  316. # endif
  317. # ifdef SH4
  318. @@ -1975,6 +2096,24 @@
  319. # define CPP_WORDSZ 64
  320. # ifndef HBLKSIZE
  321. # define HBLKSIZE 4096
  322. +# endif
  323. +# ifdef OPENBSD
  324. +# define OS_TYPE "OPENBSD"
  325. +# define ELF_CLASS ELFCLASS64
  326. +# define SIG_SUSPEND SIGXFSZ
  327. +# define SIG_THR_RESTART SIGXCPU
  328. +# ifndef GC_OPENBSD_THREADS
  329. +# include <sys/param.h>
  330. +# include <uvm/uvm_extern.h>
  331. +# define STACKBOTTOM USRSTACK
  332. +# endif
  333. + extern int __data_start[];
  334. +# define DATASTART ((ptr_t)(__data_start))
  335. + extern char _end[];
  336. +# define DATAEND ((ptr_t)(&_end))
  337. +# define DYNAMIC_LOADING
  338. +# define USE_MMAP
  339. +# define USE_MMAP_ANON
  340. # endif
  341. # define CACHE_LINE_SIZE 64
  342. # define USE_GENERIC_PUSH_REGS