View | Details | Raw Unified | Return to bug 201473 | Differences between
and this patch

Collapse All | Expand All

(-)devel/boehm-gc/Makefile (-2 / +6 lines)
Lines 3-9 Link Here
3
3
4
PORTNAME=	gc
4
PORTNAME=	gc
5
PORTVERSION=	7.4.2
5
PORTVERSION=	7.4.2
6
PORTREVISION=	4
6
PORTREVISION=	5
7
CATEGORIES=	devel
7
CATEGORIES=	devel
8
MASTER_SITES=	http://www.hboehm.info/gc/gc_source/
8
MASTER_SITES=	http://www.hboehm.info/gc/gc_source/
9
PKGNAMEPREFIX=	boehm-
9
PKGNAMEPREFIX=	boehm-
Lines 64-69 Link Here
64
64
65
.include <bsd.port.options.mk>
65
.include <bsd.port.options.mk>
66
66
67
.if ${ARCH} == "aarch64" || ${ARCH} == "armv6" || ${ARCH} == "mips"
68
CFLAGS+=	-DNO_INCREMENTAL
69
.endif
70
67
.if ${PORT_OPTIONS:MDEBUG}
71
.if ${PORT_OPTIONS:MDEBUG}
68
CONFIGURE_ARGS+=--enable-gc-debug
72
CONFIGURE_ARGS+=--enable-gc-debug
69
PKGNAMESUFFIX:=	${PKGNAMESUFFIX}+fulldebug
73
PKGNAMESUFFIX:=	${PKGNAMESUFFIX}+fulldebug
Lines 105-111 Link Here
105
109
106
.endif
110
.endif
107
111
108
regression-test: build
112
post-build:
109
	(cd ${WRKSRC} && ${MAKE_CMD} check)
113
	(cd ${WRKSRC} && ${MAKE_CMD} check)
110
114
111
.include <bsd.port.mk>
115
.include <bsd.port.mk>
(-)devel/boehm-gc/files/patch-doc_gc.man (-6 / +6 lines)
Lines 1-6 Link Here
1
--- doc/gc.man.orig	2012-07-25 14:54:48.000000000 +0300
1
--- doc/gc.man.orig	2014-05-22 20:47:28 UTC
2
+++ doc/gc.man	2012-07-25 14:57:40.000000000 +0300
2
+++ doc/gc.man
3
@@ -11,7 +11,7 @@
3
@@ -11,7 +11,7 @@ void GC_free(void *ptr);
4
 void * GC_realloc(void *ptr, size_t size);
4
 void * GC_realloc(void *ptr, size_t size);
5
 .br
5
 .br
6
 .sp
6
 .sp
Lines 9-15 Link Here
9
 .LP
9
 .LP
10
 .SH DESCRIPTION
10
 .SH DESCRIPTION
11
 .I GC_malloc
11
 .I GC_malloc
12
@@ -88,6 +88,48 @@
12
@@ -88,6 +88,48 @@ This may temporarily write protect pages
13
 .LP
13
 .LP
14
 Other facilities not discussed here include limited facilities to support incremental collection on machines without appropriate VM support, provisions for providing more explicit object layout information to the garbage collector, more direct support for ``weak'' pointers, support for ``abortable'' garbage collections during idle time, etc.
14
 Other facilities not discussed here include limited facilities to support incremental collection on machines without appropriate VM support, provisions for providing more explicit object layout information to the garbage collector, more direct support for ``weak'' pointers, support for ``abortable'' garbage collections during idle time, etc.
15
 .LP
15
 .LP
Lines 20-28 Link Here
20
+and
20
+and
21
+.I gc_cpp.h
21
+.I gc_cpp.h
22
+will probably be found in
22
+will probably be found in
23
+.I %%PREFIX%%/include,
23
+.I /usr/local/include,
24
+and the library in
24
+and the library in
25
+.I %%PREFIX%%/lib.
25
+.I /usr/local/lib.
26
+.LP
26
+.LP
27
+This library has been compiled as drop-in replacements
27
+This library has been compiled as drop-in replacements
28
+for malloc and free (which is to say, all malloc
28
+for malloc and free (which is to say, all malloc
(-)devel/boehm-gc/files/patch-include_private_gc__priv.h (-2 / +4 lines)
Lines 1-12 Link Here
1
--- include/private/gc_priv.h.orig	2014-06-03 06:08:02 UTC
1
--- include/private/gc_priv.h.orig	2014-06-03 06:08:02 UTC
2
+++ include/private/gc_priv.h
2
+++ include/private/gc_priv.h
3
@@ -2461,7 +2461,9 @@ GC_INNER ptr_t GC_store_debug_info(ptr_t
3
@@ -2461,7 +2461,11 @@ GC_INNER ptr_t GC_store_debug_info(ptr_t
4
 #endif
4
 #endif
5
 
5
 
6
 #if defined(FREEBSD) && (defined(I386) || defined(X86_64) \
6
 #if defined(FREEBSD) && (defined(I386) || defined(X86_64) \
7
-                        || defined(powerpc) || defined(__powerpc__))
7
-                        || defined(powerpc) || defined(__powerpc__))
8
+                        || defined(powerpc) || defined(__powerpc__) \
8
+                        || defined(powerpc) || defined(__powerpc__) \
9
+			|| defined(__aarch64__))
9
+			|| defined(__aarch64__) || defined(__arm__) \
10
+                        || defined(mips) || defined(__mips) \
11
+                        || defined(_mips))
10
+
12
+
11
 # include <machine/trap.h>
13
 # include <machine/trap.h>
12
 # if !defined(PCR)
14
 # if !defined(PCR)
(-)devel/boehm-gc/files/patch-include_private_gcconfig.h (-12 / +44 lines)
Lines 29-41 Link Here
29
 # if defined(FREEBSD) && (defined(__amd64__) || defined(__x86_64__))
29
 # if defined(FREEBSD) && (defined(__amd64__) || defined(__x86_64__))
30
 #   define X86_64
30
 #   define X86_64
31
 #   define mach_type_known
31
 #   define mach_type_known
32
@@ -1647,6 +1651,26 @@
32
@@ -422,6 +426,10 @@
33
 #   define ARM32
34
 #   define mach_type_known
35
 # endif
36
+# if defined(FREEBSD) && (defined(mips) || defined(__mips) || defined(_mips))
37
+#   define MIPS
38
+#   define mach_type_known
39
+# endif
40
 # if defined(bsdi) && (defined(i386) || defined(__i386__))
41
 #    define I386
42
 #    define BSDI
43
@@ -1647,6 +1655,23 @@
33
 #    define DATAEND ((ptr_t)(&_end))
44
 #    define DATAEND ((ptr_t)(&_end))
34
 #    define DYNAMIC_LOADING
45
 #    define DYNAMIC_LOADING
35
 #  endif
46
 #  endif
36
+#  ifdef FREEBSD
47
+#  ifdef FREEBSD
37
+#    define OS_TYPE "FREEBSD"
38
+#    define ALIGNMENT 4
48
+#    define ALIGNMENT 4
49
+#    define OS_TYPE "FREEBSD"
50
+#    ifndef GC_FREEBSD_THREADS
51
+#        define MPROTECT_VDB
52
+#    endif
39
+#    define SIG_SUSPEND SIGUSR1
53
+#    define SIG_SUSPEND SIGUSR1
40
+#    define SIG_THR_RESTART SIGUSR2
54
+#    define SIG_THR_RESTART SIGUSR2
41
+#    define FREEBSD_STACKBOTTOM
55
+#    define FREEBSD_STACKBOTTOM
Lines 43-62 Link Here
43
+#        define DYNAMIC_LOADING
57
+#        define DYNAMIC_LOADING
44
+#    endif
58
+#    endif
45
+     extern char etext[];
59
+     extern char etext[];
46
+     extern char edata[];
60
+     ptr_t GC_FreeBSDGetDataStart(size_t, ptr_t);
47
+     extern char end[];
61
+#    define DATASTART GC_FreeBSDGetDataStart(0x1000, (ptr_t)etext)
48
+#    define NEED_FIND_LIMIT
62
+#    define DATASTART_IS_FUNC
49
+#    define DATASTART ((ptr_t)(&etext))
50
+     ptr_t GC_find_limit(ptr_t, GC_bool);
51
+#    define DATAEND (GC_find_limit (DATASTART, TRUE))
52
+#    define DATAEND_IS_FUNC
53
+#    define DATASTART2 ((ptr_t)(&edata))
54
+#    define DATAEND2 ((ptr_t)(&end))
55
+#  endif
63
+#  endif
56
 #  if defined(NONSTOP)
64
 #  if defined(NONSTOP)
57
 #    define CPP_WORDSZ 32
65
 #    define CPP_WORDSZ 32
58
 #    define OS_TYPE "NONSTOP"
66
 #    define OS_TYPE "NONSTOP"
59
@@ -1998,6 +2022,20 @@
67
@@ -1998,6 +2023,20 @@
60
       extern char _end[];
68
       extern char _end[];
61
 #     define DATAEND ((ptr_t)(&_end))
69
 #     define DATAEND ((ptr_t)(&_end))
62
 #   endif
70
 #   endif
Lines 77-79 Link Here
77
 #   ifdef NOSYS
85
 #   ifdef NOSYS
78
       /* __data_start is usually defined in the target linker script.   */
86
       /* __data_start is usually defined in the target linker script.   */
79
       extern int __data_start[];
87
       extern int __data_start[];
88
@@ -2059,14 +2098,20 @@
89
 #   endif
90
 #   ifdef FREEBSD
91
       /* FreeBSD/arm */
92
-#     define ALIGNMENT 4
93
 #     define OS_TYPE "FREEBSD"
94
+#     ifndef GC_FREEBSD_THREADS
95
+#       define MPROTECT_VDB
96
+#     endif
97
+#     define SIG_SUSPEND SIGUSR1
98
+#     define SIG_THR_RESTART SIGUSR2
99
+#     define FREEBSD_STACKBOTTOM
100
 #     ifdef __ELF__
101
 #       define DYNAMIC_LOADING
102
 #     endif
103
-#     define HEURISTIC2
104
       extern char etext[];
105
-#     define SEARCH_FOR_DATA_START
106
+      ptr_t GC_FreeBSDGetDataStart(size_t, ptr_t);
107
+#     define DATASTART GC_FreeBSDGetDataStart(0x1000, (ptr_t)etext)
108
+#     define DATASTART_IS_FUNC
109
 #   endif
110
 #   ifdef DARWIN
111
       /* iPhone */
(-)devel/boehm-gc/files/patch-os__dep.c (-5 / +7 lines)
Lines 1-21 Link Here
1
--- os_dep.c.orig	2014-06-03 06:08:02 UTC
1
--- os_dep.c.orig	2014-06-03 06:08:02 UTC
2
+++ os_dep.c
2
+++ os_dep.c
3
@@ -1869,7 +1869,8 @@ void GC_register_data_segments(void)
3
@@ -1869,7 +1869,10 @@ void GC_register_data_segments(void)
4
 # endif
4
 # endif
5
 
5
 
6
 # if defined(FREEBSD) && !defined(PCR) && (defined(I386) || defined(X86_64) \
6
 # if defined(FREEBSD) && !defined(PCR) && (defined(I386) || defined(X86_64) \
7
-                                || defined(powerpc) || defined(__powerpc__))
7
-                                || defined(powerpc) || defined(__powerpc__))
8
+                                || defined(powerpc) || defined(__powerpc__) \
8
+                                || defined(powerpc) || defined(__powerpc__) \
9
+				|| defined(__aarch64__))
9
+				|| defined(__aarch64__) || defined(__arm__) \
10
+                                || defined(mips) || defined(__mips) \
11
+                                || defined(_mips))
10
 
12
 
11
 /* Its unclear whether this should be identical to the above, or        */
13
 /* Its unclear whether this should be identical to the above, or        */
12
 /* whether it should apply to non-X86 architectures.                    */
14
 /* whether it should apply to non-X86 architectures.                    */
13
@@ -3094,6 +3095,8 @@ GC_API GC_push_other_roots_proc GC_CALL 
15
@@ -3094,6 +3097,8 @@ GC_API GC_push_other_roots_proc GC_CALL 
14
 #       include <machine/trap.h>
16
 #       include <machine/trap.h>
15
 #       define CODE_OK (si -> si_code == EXC_DSI \
17
 #       define CODE_OK (si -> si_code == EXC_DSI \
16
                         || si -> si_code == SEGV_ACCERR)
18
                         || si -> si_code == SEGV_ACCERR)
17
+#     elif defined(AARCH64)
19
+#     elif defined(AARCH64) || defined(ARM32) || defined(MIPS)
18
+#       define CODE_OK (si -> si_code == SEGV_ACCERR)
20
+#       define CODE_OK (si -> si_code == SEGV_ACCERR)   	
19
 #     else
21
 #     else
20
 #       define CODE_OK (si -> si_code == BUS_PAGE_FAULT \
22
 #       define CODE_OK (si -> si_code == BUS_PAGE_FAULT \
21
                         || si -> si_code == SEGV_ACCERR)
23
                         || si -> si_code == SEGV_ACCERR)

Return to bug 201473