summaryrefslogtreecommitdiffstats
path: root/devel/boehm-gc
diff options
context:
space:
mode:
authorarved <arved@FreeBSD.org>2004-05-05 12:47:25 +0000
committerarved <arved@FreeBSD.org>2004-05-05 12:47:25 +0000
commit7c88f164a8e1d323c11eb0fc9e160596c0ebe1aa (patch)
treea0f605c7443198364296e9452b661883890a3523 /devel/boehm-gc
parenta396aa2a9c0a25be7e8b6017efbfe976d4396a62 (diff)
downloadFreeBSD-ports-7c88f164a8e1d323c11eb0fc9e160596c0ebe1aa.zip
FreeBSD-ports-7c88f164a8e1d323c11eb0fc9e160596c0ebe1aa.tar.gz
Fix boehm-gc on amd64.
Tested with: w3m Obtained from: NetBSD (via Marc Recht <recht@NetBSD.org>)
Diffstat (limited to 'devel/boehm-gc')
-rw-r--r--devel/boehm-gc/Makefile4
-rw-r--r--devel/boehm-gc/files/patch-dyn_load.c22
-rw-r--r--devel/boehm-gc/files/patch-include-private-gcconfig.h27
3 files changed, 51 insertions, 2 deletions
diff --git a/devel/boehm-gc/Makefile b/devel/boehm-gc/Makefile
index 22b732b..89cf1e4 100644
--- a/devel/boehm-gc/Makefile
+++ b/devel/boehm-gc/Makefile
@@ -24,8 +24,8 @@ MAN3= gc.3
.include <bsd.port.pre.mk>
-.if ${ARCH} != "i386" && ${ARCH} != "alpha"
-BROKEN= "Does not compile on !i386 and !alpha"
+.if ${ARCH} != "i386" && ${ARCH} != "alpha" && ${ARCH} != "amd64"
+BROKEN= "Does not compile on !i386 and !alpha and !amd64"
.endif
post-patch:
diff --git a/devel/boehm-gc/files/patch-dyn_load.c b/devel/boehm-gc/files/patch-dyn_load.c
new file mode 100644
index 0000000..e0f6f0c
--- /dev/null
+++ b/devel/boehm-gc/files/patch-dyn_load.c
@@ -0,0 +1,22 @@
+--- dyn_load.c.orig 2004-05-05 11:53:09.000000000 +0200
++++ dyn_load.c 2004-05-05 12:03:40.000000000 +0200
+@@ -91,11 +91,19 @@
+ /* Newer versions of GNU/Linux define this macro. We
+ * define it similarly for any ELF systems that don't. */
+ # ifndef ElfW
++#ifdef __FreeBSD__
++#if ELFSIZE == 32
++#define ElfW(type) Elf32_##type
++#else
++#define ElfW(type) Elf64_##type
++#endif
++#else
+ # if !defined(ELF_CLASS) || ELF_CLASS == ELFCLASS32
+ # define ElfW(type) Elf32_##type
+ # else
+ # define ElfW(type) Elf64_##type
+ # endif
++#endif
+ # endif
+
+ #if defined(SUNOS5DL) && !defined(USE_PROC_FOR_LIBRARIES)
diff --git a/devel/boehm-gc/files/patch-include-private-gcconfig.h b/devel/boehm-gc/files/patch-include-private-gcconfig.h
new file mode 100644
index 0000000..4614764
--- /dev/null
+++ b/devel/boehm-gc/files/patch-include-private-gcconfig.h
@@ -0,0 +1,27 @@
+--- include/private/gcconfig.h.orig Tue Jun 17 04:01:23 2003
++++ include/private/gcconfig.h Wed May 5 14:35:44 2004
+@@ -306,6 +306,10 @@
+ # define I386
+ # define mach_type_known
+ # endif
++# if defined(__FreeBSD__) && defined(__amd64__)
++# define X86_64
++# define mach_type_known
++# endif
+ # if defined(bsdi) && (defined(i386) || defined(__i386__))
+ # define I386
+ # define BSDI
+@@ -1793,6 +1797,13 @@
+ __asm__ __volatile__ (" prefetch %0": : "m"(*(char *)(x)))
+ # define PREFETCH_FOR_WRITE(x) \
+ __asm__ __volatile__ (" prefetchw %0": : "m"(*(char *)(x)))
++# endif
++# ifdef FREEBSD
++# define OS_TYPE "FREEBSD"
++# define DYNAMIC_LOADING
++# define HEURISTIC2
++ extern char etext[];
++# define SEARCH_FOR_DATA_START
+ # endif
+ # endif
+
OpenPOWER on IntegriCloud