FreeBSD Bugzilla – Attachment 159604 Details for
Bug 201473
devel/boehm-gc: Fix armv6 support
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
boehm-gc add support for armv6 and mips
devel_boehm-gc.diff (text/plain), 7.48 KB, created by
Carlos J Puga Medina
on 2015-08-06 06:50:54 UTC
(
hide
)
Description:
boehm-gc add support for armv6 and mips
Filename:
MIME Type:
Creator:
Carlos J Puga Medina
Created:
2015-08-06 06:50:54 UTC
Size:
7.48 KB
patch
obsolete
>diff -urN devel/boehm-gc.old/Makefile devel/boehm-gc/Makefile >--- devel/boehm-gc.old/Makefile 2015-08-06 08:46:04.571796000 +0200 >+++ devel/boehm-gc/Makefile 2015-08-06 08:36:25.871254000 +0200 >@@ -3,7 +3,7 @@ > > PORTNAME= gc > PORTVERSION= 7.4.2 >-PORTREVISION= 4 >+PORTREVISION= 5 > CATEGORIES= devel > MASTER_SITES= http://www.hboehm.info/gc/gc_source/ > PKGNAMEPREFIX= boehm- >@@ -64,6 +64,10 @@ > > .include <bsd.port.options.mk> > >+.if ${ARCH} == "aarch64" || ${ARCH} == "armv6" || ${ARCH} == "mips" >+CFLAGS+= -DNO_INCREMENTAL >+.endif >+ > .if ${PORT_OPTIONS:MDEBUG} > CONFIGURE_ARGS+=--enable-gc-debug > PKGNAMESUFFIX:= ${PKGNAMESUFFIX}+fulldebug >@@ -105,7 +109,7 @@ > > .endif > >-regression-test: build >+post-build: > (cd ${WRKSRC} && ${MAKE_CMD} check) > > .include <bsd.port.mk> >diff -urN devel/boehm-gc.old/files/patch-doc_gc.man devel/boehm-gc/files/patch-doc_gc.man >--- devel/boehm-gc.old/files/patch-doc_gc.man 2015-08-06 08:46:04.572125000 +0200 >+++ devel/boehm-gc/files/patch-doc_gc.man 2015-07-31 18:26:25.159909000 +0200 >@@ -1,6 +1,6 @@ >---- doc/gc.man.orig 2012-07-25 14:54:48.000000000 +0300 >-+++ doc/gc.man 2012-07-25 14:57:40.000000000 +0300 >-@@ -11,7 +11,7 @@ >+--- doc/gc.man.orig 2014-05-22 20:47:28 UTC >++++ doc/gc.man >+@@ -11,7 +11,7 @@ void GC_free(void *ptr); > void * GC_realloc(void *ptr, size_t size); > .br > .sp >@@ -9,7 +9,7 @@ > .LP > .SH DESCRIPTION > .I GC_malloc >-@@ -88,6 +88,48 @@ >+@@ -88,6 +88,48 @@ This may temporarily write protect pages > .LP > 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. > .LP >@@ -20,9 +20,9 @@ > +and > +.I gc_cpp.h > +will probably be found in >-+.I %%PREFIX%%/include, >++.I /usr/local/include, > +and the library in >-+.I %%PREFIX%%/lib. >++.I /usr/local/lib. > +.LP > +This library has been compiled as drop-in replacements > +for malloc and free (which is to say, all malloc >diff -urN devel/boehm-gc.old/files/patch-include_private_gc__priv.h devel/boehm-gc/files/patch-include_private_gc__priv.h >--- devel/boehm-gc.old/files/patch-include_private_gc__priv.h 2015-08-06 08:46:04.572315000 +0200 >+++ devel/boehm-gc/files/patch-include_private_gc__priv.h 2015-07-31 18:26:25.160769000 +0200 >@@ -1,12 +1,14 @@ > --- include/private/gc_priv.h.orig 2014-06-03 06:08:02 UTC > +++ include/private/gc_priv.h >-@@ -2461,7 +2461,9 @@ GC_INNER ptr_t GC_store_debug_info(ptr_t >+@@ -2461,7 +2461,11 @@ GC_INNER ptr_t GC_store_debug_info(ptr_t > #endif > > #if defined(FREEBSD) && (defined(I386) || defined(X86_64) \ > - || defined(powerpc) || defined(__powerpc__)) > + || defined(powerpc) || defined(__powerpc__) \ >-+ || defined(__aarch64__)) >++ || defined(__aarch64__) || defined(__arm__) \ >++ || defined(mips) || defined(__mips) \ >++ || defined(_mips)) > + > # include <machine/trap.h> > # if !defined(PCR) >diff -urN devel/boehm-gc.old/files/patch-include_private_gcconfig.h devel/boehm-gc/files/patch-include_private_gcconfig.h >--- devel/boehm-gc.old/files/patch-include_private_gcconfig.h 2015-08-06 08:46:04.572463000 +0200 >+++ devel/boehm-gc/files/patch-include_private_gcconfig.h 2015-07-31 18:26:25.161411000 +0200 >@@ -29,13 +29,27 @@ > # if defined(FREEBSD) && (defined(__amd64__) || defined(__x86_64__)) > # define X86_64 > # define mach_type_known >-@@ -1647,6 +1651,26 @@ >+@@ -422,6 +426,10 @@ >+ # define ARM32 >+ # define mach_type_known >+ # endif >++# if defined(FREEBSD) && (defined(mips) || defined(__mips) || defined(_mips)) >++# define MIPS >++# define mach_type_known >++# endif >+ # if defined(bsdi) && (defined(i386) || defined(__i386__)) >+ # define I386 >+ # define BSDI >+@@ -1647,6 +1655,23 @@ > # define DATAEND ((ptr_t)(&_end)) > # define DYNAMIC_LOADING > # endif > +# ifdef FREEBSD >-+# define OS_TYPE "FREEBSD" > +# define ALIGNMENT 4 >++# define OS_TYPE "FREEBSD" >++# ifndef GC_FREEBSD_THREADS >++# define MPROTECT_VDB >++# endif > +# define SIG_SUSPEND SIGUSR1 > +# define SIG_THR_RESTART SIGUSR2 > +# define FREEBSD_STACKBOTTOM >@@ -43,20 +57,14 @@ > +# define DYNAMIC_LOADING > +# endif > + extern char etext[]; >-+ extern char edata[]; >-+ extern char end[]; >-+# define NEED_FIND_LIMIT >-+# define DATASTART ((ptr_t)(&etext)) >-+ ptr_t GC_find_limit(ptr_t, GC_bool); >-+# define DATAEND (GC_find_limit (DATASTART, TRUE)) >-+# define DATAEND_IS_FUNC >-+# define DATASTART2 ((ptr_t)(&edata)) >-+# define DATAEND2 ((ptr_t)(&end)) >++ ptr_t GC_FreeBSDGetDataStart(size_t, ptr_t); >++# define DATASTART GC_FreeBSDGetDataStart(0x1000, (ptr_t)etext) >++# define DATASTART_IS_FUNC > +# endif > # if defined(NONSTOP) > # define CPP_WORDSZ 32 > # define OS_TYPE "NONSTOP" >-@@ -1998,6 +2022,20 @@ >+@@ -1998,6 +2023,20 @@ > extern char _end[]; > # define DATAEND ((ptr_t)(&_end)) > # endif >@@ -77,3 +85,27 @@ > # ifdef NOSYS > /* __data_start is usually defined in the target linker script. */ > extern int __data_start[]; >+@@ -2059,14 +2098,20 @@ >+ # endif >+ # ifdef FREEBSD >+ /* FreeBSD/arm */ >+-# define ALIGNMENT 4 >+ # define OS_TYPE "FREEBSD" >++# ifndef GC_FREEBSD_THREADS >++# define MPROTECT_VDB >++# endif >++# define SIG_SUSPEND SIGUSR1 >++# define SIG_THR_RESTART SIGUSR2 >++# define FREEBSD_STACKBOTTOM >+ # ifdef __ELF__ >+ # define DYNAMIC_LOADING >+ # endif >+-# define HEURISTIC2 >+ extern char etext[]; >+-# define SEARCH_FOR_DATA_START >++ ptr_t GC_FreeBSDGetDataStart(size_t, ptr_t); >++# define DATASTART GC_FreeBSDGetDataStart(0x1000, (ptr_t)etext) >++# define DATASTART_IS_FUNC >+ # endif >+ # ifdef DARWIN >+ /* iPhone */ >diff -urN devel/boehm-gc.old/files/patch-os__dep.c devel/boehm-gc/files/patch-os__dep.c >--- devel/boehm-gc.old/files/patch-os__dep.c 2015-08-06 08:46:04.572561000 +0200 >+++ devel/boehm-gc/files/patch-os__dep.c 2015-07-31 18:26:25.163161000 +0200 >@@ -1,21 +1,23 @@ > --- os_dep.c.orig 2014-06-03 06:08:02 UTC > +++ os_dep.c >-@@ -1869,7 +1869,8 @@ void GC_register_data_segments(void) >+@@ -1869,7 +1869,10 @@ void GC_register_data_segments(void) > # endif > > # if defined(FREEBSD) && !defined(PCR) && (defined(I386) || defined(X86_64) \ > - || defined(powerpc) || defined(__powerpc__)) > + || defined(powerpc) || defined(__powerpc__) \ >-+ || defined(__aarch64__)) >++ || defined(__aarch64__) || defined(__arm__) \ >++ || defined(mips) || defined(__mips) \ >++ || defined(_mips)) > > /* Its unclear whether this should be identical to the above, or */ > /* whether it should apply to non-X86 architectures. */ >-@@ -3094,6 +3095,8 @@ GC_API GC_push_other_roots_proc GC_CALL >+@@ -3094,6 +3097,8 @@ GC_API GC_push_other_roots_proc GC_CALL > # include <machine/trap.h> > # define CODE_OK (si -> si_code == EXC_DSI \ > || si -> si_code == SEGV_ACCERR) >-+# elif defined(AARCH64) >-+# define CODE_OK (si -> si_code == SEGV_ACCERR) >++# elif defined(AARCH64) || defined(ARM32) || defined(MIPS) >++# define CODE_OK (si -> si_code == SEGV_ACCERR) > # else > # define CODE_OK (si -> si_code == BUS_PAGE_FAULT \ > || si -> si_code == SEGV_ACCERR)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 201473
:
158608
|
158743
|
158795
|
158796
|
158933
| 159604