From 6a60ac8e6e722157e7fe38e5c3cc171f6bde3fd1 Mon Sep 17 00:00:00 2001 From: Tilman Keskinoz Date: Wed, 5 May 2004 12:47:25 +0000 Subject: Fix boehm-gc on amd64. Tested with: w3m Obtained from: NetBSD (via Marc Recht ) --- devel/boehm-gc/Makefile | 4 ++-- devel/boehm-gc/files/patch-dyn_load.c | 22 ++++++++++++++++++ .../files/patch-include-private-gcconfig.h | 27 ++++++++++++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 devel/boehm-gc/files/patch-dyn_load.c create mode 100644 devel/boehm-gc/files/patch-include-private-gcconfig.h (limited to 'devel/boehm-gc') diff --git a/devel/boehm-gc/Makefile b/devel/boehm-gc/Makefile index 22b732b02432..89cf1e484574 100644 --- a/devel/boehm-gc/Makefile +++ b/devel/boehm-gc/Makefile @@ -24,8 +24,8 @@ MAN3= gc.3 .include -.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 000000000000..e0f6f0cdadf4 --- /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 000000000000..4614764af153 --- /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 + -- cgit v1.2.3