cb6a8938ed
progress, largely based on the gcc port in ports/lang/gcc/4.2. Requested by jsg@. It's somewhat usable on i386 (shared lib versions not yet properly under control). Build on amd64 currently fails with -fPIC problems. -- -- lvm-gcc is the LLVM C front end. It is a modified version of gcc that compiles C/C++/ObjC programs into native objects, LLVM bitcode or LLVM assembly language, depending upon the options. By default, llvm-gcc compiles to native objects just like GCC does. If the -emit-llvm option is given then it will generate LLVM bitcode files instead. If -S (assembly) is also given, then it will generate LLVM assembly. Being derived from the GNU Compiler Collection, llvm-gcc has many of gcc's features and accepts most of gcc's options. It handles a number of gcc's extensions to the C programming language. <sthen@zephyr:/usr/ports/mystuff/lang/llvm-gcc4:9>$CVS: ----------------------------------------------------------------------
357 lines
9.8 KiB
Plaintext
357 lines
9.8 KiB
Plaintext
$OpenBSD: patch-boehm-gc_include_private_gcconfig_h,v 1.1.1.1 2009/06/22 22:37:32 sthen Exp $
|
|
--- boehm-gc/include/private/gcconfig.h.orig Thu Nov 8 22:56:19 2007
|
|
+++ boehm-gc/include/private/gcconfig.h Mon Jun 22 00:53:47 2009
|
|
@@ -62,7 +62,7 @@
|
|
/* Determine the machine type: */
|
|
# if defined(__arm__) || defined(__thumb__)
|
|
# define ARM32
|
|
-# if !defined(LINUX) && !defined(NETBSD)
|
|
+# if !defined(LINUX) && !defined(NETBSD) && !defined(OPENBSD)
|
|
# define NOSYS
|
|
# define mach_type_known
|
|
# endif
|
|
@@ -77,14 +77,18 @@
|
|
# define HP
|
|
# define mach_type_known
|
|
# endif
|
|
-# if defined(OPENBSD) && defined(m68k)
|
|
-# define M68K
|
|
-# define mach_type_known
|
|
-# endif
|
|
# if defined(OPENBSD) && defined(__sparc__)
|
|
# define SPARC
|
|
# define mach_type_known
|
|
# endif
|
|
+# if defined(OPENBSD) && defined(__arm__)
|
|
+# define ARM32
|
|
+# define mach_type_known
|
|
+# endif
|
|
+# if defined(OPENBSD) && defined(__sh__)
|
|
+# define SH
|
|
+# define mach_type_known
|
|
+# endif
|
|
# if defined(NETBSD) && (defined(m68k) || defined(__m68k__))
|
|
# define M68K
|
|
# define mach_type_known
|
|
@@ -101,7 +105,7 @@
|
|
# define SH
|
|
# define mach_type_known
|
|
# endif
|
|
-# if defined(vax)
|
|
+# if defined(vax) || defined(__vax__)
|
|
# define VAX
|
|
# ifdef ultrix
|
|
# define ULTRIX
|
|
@@ -119,7 +123,7 @@
|
|
# if defined(nec_ews) || defined(_nec_ews)
|
|
# define EWS4800
|
|
# endif
|
|
-# if !defined(LINUX) && !defined(EWS4800) && !defined(NETBSD)
|
|
+# if !defined(LINUX) && !defined(EWS4800) && !defined(NETBSD) && !defined(OPENBSD)
|
|
# if defined(ultrix) || defined(__ultrix)
|
|
# define ULTRIX
|
|
# else
|
|
@@ -205,7 +209,7 @@
|
|
# if defined(_PA_RISC1_0) || defined(_PA_RISC1_1) || defined(_PA_RISC2_0) \
|
|
|| defined(hppa) || defined(__hppa__)
|
|
# define HP_PA
|
|
-# if !defined(LINUX) && !defined(HPUX)
|
|
+# if !defined(LINUX) && !defined(HPUX) && !defined(OPENBSD)
|
|
# define HPUX
|
|
# endif
|
|
# define mach_type_known
|
|
@@ -226,6 +230,10 @@
|
|
# define I386
|
|
# define mach_type_known
|
|
# endif
|
|
+# if defined(OPENBSD) && defined(__amd64__)
|
|
+# define X86_64
|
|
+# define mach_type_known
|
|
+# endif
|
|
# if defined(LINUX) && defined(__x86_64__)
|
|
# define X86_64
|
|
# define mach_type_known
|
|
@@ -297,6 +305,11 @@
|
|
# define MACOS
|
|
# define mach_type_known
|
|
# endif
|
|
+# if defined(__OpenBSD__) && (defined(__powerpc__))
|
|
+# define POWERPC
|
|
+# define OPENBSD
|
|
+# define mach_type_known
|
|
+# endif
|
|
# if defined(macosx) || (defined(__APPLE__) && defined(__MACH__))
|
|
# define DARWIN
|
|
# if defined(__ppc__) || defined(__ppc64__)
|
|
@@ -646,18 +659,6 @@
|
|
# ifdef M68K
|
|
# define MACH_TYPE "M68K"
|
|
# define ALIGNMENT 2
|
|
-# ifdef OPENBSD
|
|
-# define OS_TYPE "OPENBSD"
|
|
-# define HEURISTIC2
|
|
-# ifdef __ELF__
|
|
-# define DATASTART GC_data_start
|
|
-# define DYNAMIC_LOADING
|
|
-# else
|
|
- extern char etext[];
|
|
-# define DATASTART ((ptr_t)(etext))
|
|
-# endif
|
|
-# define USE_GENERIC_PUSH_REGS
|
|
-# endif
|
|
# ifdef NETBSD
|
|
# define OS_TYPE "NETBSD"
|
|
# define HEURISTIC2
|
|
@@ -831,6 +832,24 @@
|
|
should be looked into some more */
|
|
# define NO_PTHREAD_TRYLOCK
|
|
# endif
|
|
+# ifdef OPENBSD
|
|
+# define OS_TYPE "OPENBSD"
|
|
+# define ALIGNMENT 4
|
|
+# ifdef GC_OPENBSD_THREADS
|
|
+# define UTHREAD_SP_OFFSET 268
|
|
+# else
|
|
+# include <sys/param.h>
|
|
+# include <uvm/uvm_extern.h>
|
|
+# define STACKBOTTOM USRSTACK
|
|
+# endif
|
|
+ extern int __data_start[];
|
|
+# define DATASTART ((ptr_t)(__data_start))
|
|
+ extern char _end[];
|
|
+# define DATAEND ((ptr_t)(&_end))
|
|
+# define DYNAMIC_LOADING
|
|
+# define USE_MMAP
|
|
+# define USE_MMAP_ANON
|
|
+# endif
|
|
# ifdef FREEBSD
|
|
# define ALIGNMENT 4
|
|
# define OS_TYPE "FREEBSD"
|
|
@@ -989,9 +1008,20 @@
|
|
# endif
|
|
# ifdef OPENBSD
|
|
# define OS_TYPE "OPENBSD"
|
|
-# define STACKBOTTOM ((ptr_t) 0xf8000000)
|
|
- extern int etext[];
|
|
-# define DATASTART ((ptr_t)(etext))
|
|
+# ifdef GC_OPENBSD_THREADS
|
|
+# define UTHREAD_SP_OFFSET 232
|
|
+# else
|
|
+# include <sys/param.h>
|
|
+# include <uvm/uvm_extern.h>
|
|
+# define STACKBOTTOM USRSTACK
|
|
+# endif
|
|
+ extern int __data_start[];
|
|
+# define DATASTART ((ptr_t)(__data_start))
|
|
+ extern char _end[];
|
|
+# define DATAEND ((ptr_t)(&_end))
|
|
+# define DYNAMIC_LOADING
|
|
+# define USE_MMAP
|
|
+# define USE_MMAP_ANON
|
|
# endif
|
|
# ifdef NETBSD
|
|
# define OS_TYPE "NETBSD"
|
|
@@ -1245,6 +1275,20 @@
|
|
# endif
|
|
# ifdef OPENBSD
|
|
# define OS_TYPE "OPENBSD"
|
|
+# ifdef GC_OPENBSD_THREADS
|
|
+# define UTHREAD_SP_OFFSET 176
|
|
+# else
|
|
+# include <sys/param.h>
|
|
+# include <uvm/uvm_extern.h>
|
|
+# define STACKBOTTOM USRSTACK
|
|
+# endif
|
|
+ extern int __data_start[];
|
|
+# define DATASTART ((ptr_t)(__data_start))
|
|
+ extern char _end[];
|
|
+# define DATAEND ((ptr_t)(&_end))
|
|
+# define DYNAMIC_LOADING
|
|
+# define USE_MMAP
|
|
+# define USE_MMAP_ANON
|
|
# endif
|
|
# ifdef FREEBSD
|
|
# define OS_TYPE "FREEBSD"
|
|
@@ -1280,7 +1324,7 @@
|
|
# ifdef BSDI
|
|
# define OS_TYPE "BSDI"
|
|
# endif
|
|
-# if defined(OPENBSD) || defined(NETBSD) \
|
|
+# if defined(NETBSD) \
|
|
|| defined(THREE86BSD) || defined(BSDI)
|
|
# define HEURISTIC2
|
|
extern char etext[];
|
|
@@ -1458,8 +1502,25 @@
|
|
# define STACKBOTTOM ((ptr_t) 0x7ffff000)
|
|
# endif /* _ELF_ */
|
|
# endif
|
|
+# ifdef OPENBSD
|
|
+# define OS_TYPE "OPENBSD"
|
|
+# define ALIGNMENT 4
|
|
+# ifdef GC_OPENBSD_THREADS
|
|
+# define UTHREAD_SP_OFFSET 808
|
|
+# else
|
|
+# include <sys/param.h>
|
|
+# include <uvm/uvm_extern.h>
|
|
+# define STACKBOTTOM USRSTACK
|
|
+# endif
|
|
+ extern int _fdata[];
|
|
+# define DATASTART ((ptr_t)(_fdata))
|
|
+ extern char _end[];
|
|
+# define DATAEND ((ptr_t)(&_end))
|
|
+# define DYNAMIC_LOADING
|
|
+# define USE_MMAP
|
|
+# define USE_MMAP_ANON
|
|
+# endif
|
|
# endif
|
|
-
|
|
# ifdef RS6000
|
|
# define MACH_TYPE "RS6000"
|
|
# ifdef ALIGNMENT
|
|
@@ -1505,7 +1566,7 @@
|
|
# define ALIGNMENT 4
|
|
# define ALIGN_DOUBLE
|
|
# endif
|
|
-# if !defined(GC_HPUX_THREADS) && !defined(GC_LINUX_THREADS)
|
|
+# if !defined(GC_HPUX_THREADS) && !defined(GC_LINUX_THREADS) && !defined(OPENBSD)
|
|
# ifndef LINUX /* For now. */
|
|
# define MPROTECT_VDB
|
|
# endif
|
|
@@ -1557,6 +1618,23 @@
|
|
extern int _end[];
|
|
# define DATAEND (&_end)
|
|
# endif /* LINUX */
|
|
+# ifdef OPENBSD
|
|
+# define OS_TYPE "OPENBSD"
|
|
+# ifdef GC_OPENBSD_THREADS
|
|
+# define UTHREAD_SP_OFFSET 520
|
|
+# else
|
|
+# include <sys/param.h>
|
|
+# include <uvm/uvm_extern.h>
|
|
+# define STACKBOTTOM USRSTACK
|
|
+# endif
|
|
+ extern int __data_start[];
|
|
+# define DATASTART ((ptr_t)(__data_start))
|
|
+ extern char _end[];
|
|
+# define DATAEND ((ptr_t)(&_end))
|
|
+# define DYNAMIC_LOADING
|
|
+# define USE_MMAP
|
|
+# define USE_MMAP_ANON
|
|
+# endif
|
|
# endif /* HP_PA */
|
|
|
|
# ifdef ALPHA
|
|
@@ -1581,15 +1659,21 @@
|
|
# endif
|
|
# ifdef OPENBSD
|
|
# define OS_TYPE "OPENBSD"
|
|
-# define HEURISTIC2
|
|
-# ifdef __ELF__ /* since OpenBSD/Alpha 2.9 */
|
|
-# define DATASTART GC_data_start
|
|
-# define ELFCLASS32 32
|
|
-# define ELFCLASS64 64
|
|
-# define ELF_CLASS ELFCLASS64
|
|
-# else /* ECOFF, until OpenBSD/Alpha 2.7 */
|
|
-# define DATASTART ((ptr_t) 0x140000000)
|
|
-# endif
|
|
+# define ELF_CLASS ELFCLASS64
|
|
+# ifdef GC_OPENBSD_THREADS
|
|
+# define UTHREAD_SP_OFFSET 816
|
|
+# else
|
|
+# include <sys/param.h>
|
|
+# include <uvm/uvm_extern.h>
|
|
+# define STACKBOTTOM USRSTACK
|
|
+# endif
|
|
+ extern int __data_start[];
|
|
+# define DATASTART ((ptr_t)(__data_start))
|
|
+ extern char _end[];
|
|
+# define DATAEND ((ptr_t)(&_end))
|
|
+# define DYNAMIC_LOADING
|
|
+# define USE_MMAP
|
|
+# define USE_MMAP_ANON
|
|
# endif
|
|
# ifdef FREEBSD
|
|
# define OS_TYPE "FREEBSD"
|
|
@@ -1769,6 +1853,7 @@
|
|
# ifdef CX_UX
|
|
# define OS_TYPE "CX_UX"
|
|
# define DATASTART ((((word)etext + 0x3fffff) & ~0x3fffff) + 0x10000)
|
|
+# define STACKBOTTOM ((char*)0xf0000000) /* determined empirically */
|
|
# endif
|
|
# ifdef DGUX
|
|
# define OS_TYPE "DGUX"
|
|
@@ -1879,6 +1964,24 @@
|
|
# define OS_TYPE "MSWINCE"
|
|
# define DATAEND /* not needed */
|
|
# endif
|
|
+# ifdef OPENBSD
|
|
+# define ALIGNMENT 4
|
|
+# define OS_TYPE "OPENBSD"
|
|
+# ifdef GC_OPENBSD_THREADS
|
|
+# define UTHREAD_SP_OFFSET 176
|
|
+# else
|
|
+# include <sys/param.h>
|
|
+# include <uvm/uvm_extern.h>
|
|
+# define STACKBOTTOM USRSTACK
|
|
+# endif
|
|
+ extern int __data_start[];
|
|
+# define DATASTART ((ptr_t)(__data_start))
|
|
+ extern char _end[];
|
|
+# define DATAEND ((ptr_t)(&_end))
|
|
+# define DYNAMIC_LOADING
|
|
+# define USE_MMAP
|
|
+# define USE_MMAP_ANON
|
|
+# endif
|
|
# ifdef NOSYS
|
|
/* __data_start is usually defined in the target linker script. */
|
|
extern int __data_start[];
|
|
@@ -1926,6 +2029,23 @@
|
|
# define USE_GENERIC_PUSH_REGS
|
|
# define DYNAMIC_LOADING
|
|
# endif
|
|
+# ifdef OPENBSD
|
|
+# define OS_TYPE "OPENBSD"
|
|
+# ifdef GC_OPENBSD_THREADS
|
|
+# define UTHREAD_SP_OFFSET 332
|
|
+# else
|
|
+# include <sys/param.h>
|
|
+# include <uvm/uvm_extern.h>
|
|
+# define STACKBOTTOM USRSTACK
|
|
+# endif
|
|
+ extern int __data_start[];
|
|
+# define DATASTART ((ptr_t)(__data_start))
|
|
+ extern char _end[];
|
|
+# define DATAEND ((ptr_t)(&_end))
|
|
+# define DYNAMIC_LOADING
|
|
+# define USE_MMAP
|
|
+# define USE_MMAP_ANON
|
|
+# endif
|
|
# endif
|
|
|
|
# ifdef SH4
|
|
@@ -1958,6 +2078,24 @@
|
|
# define CPP_WORDSZ 64
|
|
# ifndef HBLKSIZE
|
|
# define HBLKSIZE 4096
|
|
+# endif
|
|
+# ifdef OPENBSD
|
|
+# define OS_TYPE "OPENBSD"
|
|
+# define ELF_CLASS ELFCLASS64
|
|
+# ifdef GC_OPENBSD_THREADS
|
|
+# define UTHREAD_SP_OFFSET 400
|
|
+# else
|
|
+# include <sys/param.h>
|
|
+# include <uvm/uvm_extern.h>
|
|
+# define STACKBOTTOM USRSTACK
|
|
+# endif
|
|
+ extern int __data_start[];
|
|
+# define DATASTART ((ptr_t)(__data_start))
|
|
+ extern char _end[];
|
|
+# define DATAEND ((ptr_t)(&_end))
|
|
+# define DYNAMIC_LOADING
|
|
+# define USE_MMAP
|
|
+# define USE_MMAP_ANON
|
|
# endif
|
|
# define CACHE_LINE_SIZE 64
|
|
# define USE_GENERIC_PUSH_REGS
|