summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitaly Magerya <vmagerya@gmail.com>2013-07-21 16:53:31 +0400
committerIvan Maidanski <ivmai@mail.ru>2013-08-25 22:17:35 +0400
commit8a90c5e7844c74344917043d6db7ba9be579e383 (patch)
tree4a030ed5b0aaefc6b665ffa00ea5c903c15ca64e
parent97d71091e67380b6812dd8673c337cbf20410996 (diff)
downloadbdwgc-8a90c5e7844c74344917043d6db7ba9be579e383.tar.gz
FreeBSD New ports collection for boehm-gc v7.2d
(Apply commit 8666ba2 from 'release-7_2' branch.) * include/private/gc_priv.h (RA): Define to "GC_RETURN_ADDR_PARENT," if GC_RETURN_ADDR_PARENT defined. * include/private/gcconfig.h (FREEBSD): Group rules. Conflicts: Makefile.in configure dbg_mlc.c include/private/gc_priv.h include/private/gcconfig.h os_dep.c
-rw-r--r--dyn_load.c2
-rw-r--r--include/private/gc_priv.h5
-rw-r--r--include/private/gcconfig.h43
3 files changed, 22 insertions, 28 deletions
diff --git a/dyn_load.c b/dyn_load.c
index 76a12abb..e26a6bbc 100644
--- a/dyn_load.c
+++ b/dyn_load.c
@@ -118,7 +118,7 @@ STATIC GC_has_static_roots_func GC_has_static_roots = 0;
/* Newer versions of GNU/Linux define this macro. We
* define it similarly for any ELF systems that don't. */
# ifndef ElfW
-# if defined(FREEBSD)
+# if defined(FREEBSD) || defined(__FreeBSD__)
# if __ELF_WORD_SIZE == 32
# define ElfW(type) Elf32_##type
# else
diff --git a/include/private/gc_priv.h b/include/private/gc_priv.h
index a2795ff2..d207ab05 100644
--- a/include/private/gc_priv.h
+++ b/include/private/gc_priv.h
@@ -1807,10 +1807,11 @@ GC_INNER ptr_t GC_allocobj(size_t sz, int kind);
/* head. Sz is in granules. */
#ifdef GC_ADD_CALLER
+# define GC_DBG_RA GC_RETURN_ADDR,
# ifdef GC_RETURN_ADDR_PARENT
-# define GC_DBG_RA GC_RETURN_ADDR_PARENT,
+# define RA GC_RETURN_ADDR_PARENT,
# else
-# define GC_DBG_RA GC_RETURN_ADDR,
+# define RA GC_RETURN_ADDR,
# endif
#else
# define GC_DBG_RA /* empty */
diff --git a/include/private/gcconfig.h b/include/private/gcconfig.h
index 8a86864a..fe90da39 100644
--- a/include/private/gcconfig.h
+++ b/include/private/gcconfig.h
@@ -309,10 +309,6 @@
# define M32R
# define mach_type_known
# endif
-# if defined(FREEBSD) && (defined(powerpc) || defined(__powerpc__))
-# define POWERPC
-# define mach_type_known
-# endif
# if defined(__alpha) || defined(__alpha__)
# define ALPHA
# if !defined(LINUX) && !defined(NETBSD) && !defined(OPENBSD) \
@@ -381,14 +377,6 @@
# define OPENBSD
# define mach_type_known
# endif
-# if defined(FREEBSD) && (defined(i386) || defined(__i386__))
-# define I386
-# define mach_type_known
-# endif
-# if defined(FREEBSD) && defined(__x86_64__)
-# define X86_64
-# define mach_type_known
-# endif
# if defined(__NetBSD__) && (defined(i386) || defined(__i386__))
# define I386
# define mach_type_known
@@ -397,11 +385,15 @@
# define X86_64
# define mach_type_known
# endif
-# if defined(__FreeBSD__) && defined(__amd64__)
+# if defined(FREEBSD) && (defined(i386) || defined(__i386__))
+# define I386
+# define mach_type_known
+# endif
+# if defined(FREEBSD) && defined(__amd64__)
# define X86_64
# define mach_type_known
# endif
-# if defined(__FreeBSD__) && defined(__ia64__)
+# if defined(FREEBSD) && defined(__ia64__)
# define IA64
# define mach_type_known
# endif
@@ -409,7 +401,7 @@
# define SPARC
# define mach_type_known
# endif
-# if defined(FREEBSD) && defined(__powerpc__)
+# if defined(FREEBSD) && (defined(powerpc) || defined(__powerpc__))
# define POWERPC
# define mach_type_known
# endif
@@ -2033,6 +2025,17 @@
# define OS_TYPE "MSWINCE"
# define DATAEND /* not needed */
# endif
+/* To the future maintainer of this diff: this is the "ifdef ARM32" section */
+# ifdef FREEBSD
+# define ALIGNMENT 4
+# define OS_TYPE "FREEBSD"
+# ifdef __ELF__
+# define DYNAMIC_LOADING
+# endif
+# define HEURISTIC2
+ extern char etext[];
+# define SEARCH_FOR_DATA_START
+# endif
# ifdef DARWIN
/* iPhone */
# define OS_TYPE "DARWIN"
@@ -2070,16 +2073,6 @@
# define DATAEND ((ptr_t)(&_end))
# define DYNAMIC_LOADING
# endif
-# ifdef FREEBSD
-# define ALIGNMENT 4
-# define OS_TYPE "FREEBSD"
-# ifdef __ELF__
-# define DYNAMIC_LOADING
-# endif
-# define HEURISTIC2
- extern char etext[];
-# define SEARCH_FOR_DATA_START
-# endif
# ifdef NOSYS
/* __data_start is usually defined in the target linker script. */
extern int __data_start[];