Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Jul 2015 20:57:17 +0000 (UTC)
From:      Brad Davis <brd@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r391600 - in head/devel/boehm-gc: . files
Message-ID:  <201507082057.t68KvHhD041349@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: brd
Date: Wed Jul  8 20:57:16 2015
New Revision: 391600
URL: https://svnweb.freebsd.org/changeset/ports/391600

Log:
  Patch devel/boehm-gc to build on AArch64.
  
  PR:		201183
  Submitted by:	Carlos Jacobo Puga Medina <cpm@fbsd.es>, andrew, sbruno
  Approved by:	bdrewery (mentor)

Added:
  head/devel/boehm-gc/files/patch-include_gc__config__macros.h   (contents, props changed)
  head/devel/boehm-gc/files/patch-include_private_gc__priv.h   (contents, props changed)
  head/devel/boehm-gc/files/patch-os__dep.c   (contents, props changed)
Modified:
  head/devel/boehm-gc/Makefile
  head/devel/boehm-gc/files/patch-include_private_gcconfig.h

Modified: head/devel/boehm-gc/Makefile
==============================================================================
--- head/devel/boehm-gc/Makefile	Wed Jul  8 20:48:51 2015	(r391599)
+++ head/devel/boehm-gc/Makefile	Wed Jul  8 20:57:16 2015	(r391600)
@@ -3,7 +3,7 @@
 
 PORTNAME=	gc
 PORTVERSION=	7.4.2
-PORTREVISION=	3
+PORTREVISION=	4
 CATEGORIES=	devel
 MASTER_SITES=	http://www.hboehm.info/gc/gc_source/
 PKGNAMEPREFIX=	boehm-

Added: head/devel/boehm-gc/files/patch-include_gc__config__macros.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/boehm-gc/files/patch-include_gc__config__macros.h	Wed Jul  8 20:57:16 2015	(r391600)
@@ -0,0 +1,25 @@
+--- include/gc_config_macros.h.orig	2014-06-03 06:08:02 UTC
++++ include/gc_config_macros.h
+@@ -242,13 +242,17 @@
+ #ifndef GC_ATTR_ALLOC_SIZE
+   /* 'alloc_size' attribute improves __builtin_object_size correctness. */
+   /* Only single-argument form of 'alloc_size' attribute is used.       */
+-# if defined(__GNUC__) && (__GNUC__ > 4 \
+-        || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3 && !defined(__ICC)) \
+-        || __clang_major__ > 3 \
+-        || (__clang_major__ == 3 && __clang_minor__ >= 2))
++# ifdef __clang__
++#   if __has_attribute(__alloc_size__)
++#     define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
++#   else
++#     define GC_ATTR_ALLOC_SIZE(argnum) /* empty */
++#   endif
++# elif __GNUC__ > 4 \
++       || (__GNUC__ == 4 && __GNUC_MINOR__ >=3 && !defined(__ICC))
+ #   define GC_ATTR_ALLOC_SIZE(argnum) __attribute__((__alloc_size__(argnum)))
+ # else
+-#   define GC_ATTR_ALLOC_SIZE(argnum)
++#   define GC_ATTR_ALLOC_SIZE(argnum) /* empty */
+ # endif
+ #endif
+ 

Added: head/devel/boehm-gc/files/patch-include_private_gc__priv.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/boehm-gc/files/patch-include_private_gc__priv.h	Wed Jul  8 20:57:16 2015	(r391600)
@@ -0,0 +1,13 @@
+--- 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
+ #endif
+ 
+ #if defined(FREEBSD) && (defined(I386) || defined(X86_64) \
+-                        || defined(powerpc) || defined(__powerpc__))
++                        || defined(powerpc) || defined(__powerpc__) \
++			|| defined(__aarch64__))
++
+ # include <machine/trap.h>
+ # if !defined(PCR)
+ #   define NEED_FIND_LIMIT

Modified: head/devel/boehm-gc/files/patch-include_private_gcconfig.h
==============================================================================
--- head/devel/boehm-gc/files/patch-include_private_gcconfig.h	Wed Jul  8 20:48:51 2015	(r391599)
+++ head/devel/boehm-gc/files/patch-include_private_gcconfig.h	Wed Jul  8 20:57:16 2015	(r391600)
@@ -1,5 +1,14 @@
---- ./include/private/gcconfig.h.orig
-+++ ./include/private/gcconfig.h
+--- include/private/gcconfig.h.orig	2014-06-03 06:08:02 UTC
++++ include/private/gcconfig.h
+@@ -97,7 +97,7 @@
+ # endif
+ # if defined(__aarch64__)
+ #    define AARCH64
+-#    if !defined(LINUX)
++#    if !defined(LINUX) && !defined(FREEBSD)
+ #      define NOSYS
+ #      define mach_type_known
+ #    endif
 @@ -169,7 +169,7 @@
  #      define EWS4800
  #    endif
@@ -9,7 +18,18 @@
  #      if defined(ultrix) || defined(__ultrix)
  #        define ULTRIX
  #      else
-@@ -1647,6 +1647,26 @@
+@@ -402,6 +402,10 @@
+ #   define I386
+ #   define mach_type_known
+ # endif
++# if defined(FREEBSD) && defined(__aarch64__)
++#   define AARCH64
++#   define mach_type_known
++# endif
+ # if defined(FREEBSD) && (defined(__amd64__) || defined(__x86_64__))
+ #   define X86_64
+ #   define mach_type_known
+@@ -1647,6 +1651,26 @@
  #    define DATAEND ((ptr_t)(&_end))
  #    define DYNAMIC_LOADING
  #  endif
@@ -36,3 +56,24 @@
  #  if defined(NONSTOP)
  #    define CPP_WORDSZ 32
  #    define OS_TYPE "NONSTOP"
+@@ -1998,6 +2022,20 @@
+       extern char _end[];
+ #     define DATAEND ((ptr_t)(&_end))
+ #   endif
++#   ifdef FREEBSD
++#     define OS_TYPE "FREEBSD"
++#     ifndef GC_FREEBSD_THREADS
++#       define MPROTECT_VDB
++#     endif
++#     define FREEBSD_STACKBOTTOM
++#     ifdef __ELF__
++#       define DYNAMIC_LOADING
++#     endif
++      extern char etext[];
++      ptr_t GC_FreeBSDGetDataStart(size_t, ptr_t);
++#     define DATASTART GC_FreeBSDGetDataStart(0x1000, (ptr_t)etext)
++#     define DATASTART_IS_FUNC
++#   endif
+ #   ifdef NOSYS
+       /* __data_start is usually defined in the target linker script.   */
+       extern int __data_start[];

Added: head/devel/boehm-gc/files/patch-os__dep.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/boehm-gc/files/patch-os__dep.c	Wed Jul  8 20:57:16 2015	(r391600)
@@ -0,0 +1,21 @@
+--- os_dep.c.orig	2014-06-03 06:08:02 UTC
++++ os_dep.c
+@@ -1869,7 +1869,8 @@ 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__))
+ 
+ /* 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 
+ #       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)
+ #     else
+ #       define CODE_OK (si -> si_code == BUS_PAGE_FAULT \
+                         || si -> si_code == SEGV_ACCERR)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201507082057.t68KvHhD041349>