version 1.1.1.1, 1999/12/03 07:39:09 |
version 1.2, 2000/04/10 08:31:31 |
|
|
# define NETBSD |
# define NETBSD |
# define mach_type_known |
# define mach_type_known |
# endif |
# endif |
|
# if defined(__NetBSD__) && defined(arm32) |
|
# define ARM32 |
|
# define NETBSD |
|
# define mach_type_known |
|
# endif |
# if defined(vax) |
# if defined(vax) |
# define VAX |
# define VAX |
# ifdef ultrix |
# ifdef ultrix |
|
|
# define SYSV |
# define SYSV |
# define mach_type_known |
# define mach_type_known |
# endif |
# endif |
# if defined(_PA_RISC1_0) || defined(_PA_RISC1_1) \ |
# if defined(_PA_RISC1_0) || defined(_PA_RISC1_1) || defined(_PA_RISC2_0) \ |
|| defined(hppa) || defined(__hppa__) |
|| defined(hppa) || defined(__hppa__) |
# define HP_PA |
# define HP_PA |
|
# ifndef LINUX |
|
# define HPUX |
|
# endif |
# define mach_type_known |
# define mach_type_known |
# endif |
# endif |
# if defined(LINUX) && (defined(i386) || defined(__i386__)) |
# if defined(LINUX) && (defined(i386) || defined(__i386__)) |
# define I386 |
# define I386 |
# define mach_type_known |
# define mach_type_known |
# endif |
# endif |
|
# if defined(LINUX) && (defined(__ia64__) || defined(__ia64)) |
|
# define IA64 |
|
# define mach_type_known |
|
# endif |
# if defined(LINUX) && defined(powerpc) |
# if defined(LINUX) && defined(powerpc) |
# define POWERPC |
# define POWERPC |
# define mach_type_known |
# define mach_type_known |
|
|
# define M68K |
# define M68K |
# define mach_type_known |
# define mach_type_known |
# endif |
# endif |
# if defined(linux) && defined(sparc) |
# if defined(LINUX) && defined(sparc) |
# define SPARC |
# define SPARC |
# define LINUX |
|
# define mach_type_known |
# define mach_type_known |
# endif |
# endif |
# if defined(__alpha) || defined(__alpha__) |
# if defined(__alpha) || defined(__alpha__) |
|
|
# define UTS4 |
# define UTS4 |
# define mach_type_known |
# define mach_type_known |
# endif |
# endif |
|
# if defined(__pj__) |
|
# define PJ |
|
# define mach_type_known |
|
# endif |
/* Ivan Demakov */ |
/* Ivan Demakov */ |
# if defined(__WATCOMC__) && defined(__386__) |
# if defined(__WATCOMC__) && defined(__386__) |
# define I386 |
# define I386 |
|
|
# define STACK_GRAN 0x10000000 |
# define STACK_GRAN 0x10000000 |
/* Stack usually starts at 0x80000000 */ |
/* Stack usually starts at 0x80000000 */ |
# define DATASTART GC_data_start |
# define DATASTART GC_data_start |
|
/* Others have reported better success with */ |
|
/* extern int __data_start; */ |
|
/*# define DATASTART (&__data_start) */ |
|
/* and disabling the GC_data_start */ |
|
/* initialization code. */ |
extern int _end; |
extern int _end; |
# define DATAEND (&_end) |
# define DATAEND (&_end) |
# endif |
# endif |
|
|
# endif |
# endif |
# ifdef LINUX |
# ifdef LINUX |
# define OS_TYPE "LINUX" |
# define OS_TYPE "LINUX" |
# define STACKBOTTOM ((ptr_t)0xc0000000) |
# define HEURISTIC1 |
/* Appears to be 0xe0000000 for at least one 2.1.91 kernel. */ |
# undef STACK_GRAN |
/* Probably needs to be more flexible, but I don't yet */ |
# define STACK_GRAN 0x10000000 |
/* fully understand how flexible. */ |
/* STACKBOTTOM is usually 0xc0000000, but this changes with */ |
|
/* different kernel configurations. In particular, systems */ |
|
/* with 2GB physical memory will usually move the user */ |
|
/* address space limit, and hence initial SP to 0x80000000. */ |
# if !defined(LINUX_THREADS) || !defined(REDIRECT_MALLOC) |
# if !defined(LINUX_THREADS) || !defined(REDIRECT_MALLOC) |
# define MPROTECT_VDB |
# define MPROTECT_VDB |
# else |
# else |
|
|
# endif |
# endif |
|
|
# ifdef HP_PA |
# ifdef HP_PA |
|
/* OS is assumed to be HP/UX */ |
# define MACH_TYPE "HP_PA" |
# define MACH_TYPE "HP_PA" |
# define ALIGNMENT 4 |
# define OS_TYPE "HPUX" |
# define ALIGN_DOUBLE |
# ifdef __LP64__ |
|
# define CPP_WORDSZ 64 |
|
# define ALIGNMENT 8 |
|
# else |
|
# define CPP_WORDSZ 32 |
|
# define ALIGNMENT 4 |
|
# define ALIGN_DOUBLE |
|
# endif |
extern int __data_start; |
extern int __data_start; |
# define DATASTART ((ptr_t)(&__data_start)) |
# define DATASTART ((ptr_t)(&__data_start)) |
# if 0 |
# if 0 |
|
|
# endif |
# endif |
# define STACK_GROWS_UP |
# define STACK_GROWS_UP |
# define DYNAMIC_LOADING |
# define DYNAMIC_LOADING |
|
# ifndef HPUX_THREADS |
|
# define MPROTECT_VDB |
|
# endif |
# include <unistd.h> |
# include <unistd.h> |
# define GETPAGESIZE() sysconf(_SC_PAGE_SIZE) |
# define GETPAGESIZE() sysconf(_SC_PAGE_SIZE) |
/* They misspelled the Posix macro? */ |
/* They misspelled the Posix macro? */ |
|
|
# endif |
# endif |
# endif |
# endif |
|
|
|
# ifdef IA64 |
|
# define MACH_TYPE "IA64" |
|
# define ALIGN_DOUBLE |
|
/* Requires 16 byte alignment for malloc */ |
|
# define ALIGNMENT 8 |
|
# ifdef HPUX |
|
--> needs work |
|
# endif |
|
# ifdef LINUX |
|
# define OS_TYPE "LINUX" |
|
# define CPP_WORDSZ 64 |
|
/* This should really be done through /proc, but that */ |
|
/* requires we run on an IA64 kernel. */ |
|
# define STACKBOTTOM ((ptr_t) 0xa000000000000000l) |
|
/* We also need the base address of the register stack */ |
|
/* backing store. There is probably a better way to */ |
|
/* get that, too ... */ |
|
# define BACKING_STORE_BASE ((ptr_t) 0x9fffffff80000000l) |
|
# define DATASTART GC_data_start |
|
# define DYNAMIC_LOADING |
|
extern int _end; |
|
# define DATAEND (&_end) |
|
# endif |
|
# endif |
|
|
# ifdef M88K |
# ifdef M88K |
# define MACH_TYPE "M88K" |
# define MACH_TYPE "M88K" |
# define ALIGNMENT 4 |
# define ALIGNMENT 4 |
|
|
# define HEURISTIC2 |
# define HEURISTIC2 |
# endif |
# endif |
|
|
|
# if defined(PJ) |
|
# define ALIGNMENT 4 |
|
extern int _etext; |
|
# define DATASTART ((ptr_t)(&_etext)) |
|
# define HEURISTIC1 |
|
# endif |
|
|
|
# ifdef ARM32 |
|
# define CPP_WORDSZ 32 |
|
# define MACH_TYPE "ARM32" |
|
# define ALIGNMENT 4 |
|
# ifdef NETBSD |
|
# define OS_TYPE "NETBSD" |
|
# define HEURISTIC2 |
|
extern char etext; |
|
# define DATASTART ((ptr_t)(&etext)) |
|
# define USE_GENERIC_PUSH_REGS |
|
# endif |
|
#endif |
|
|
# ifndef STACK_GROWS_UP |
# ifndef STACK_GROWS_UP |
# define STACK_GROWS_DOWN |
# define STACK_GROWS_DOWN |
# endif |
# endif |
|
|
# define SUNOS5SIGS |
# define SUNOS5SIGS |
# endif |
# endif |
|
|
|
# if defined(HPUX) |
|
# define SUNOS5SIGS |
|
# endif |
|
|
# if CPP_WORDSZ != 32 && CPP_WORDSZ != 64 |
# if CPP_WORDSZ != 32 && CPP_WORDSZ != 64 |
-> bad word size |
-> bad word size |
# endif |
# endif |
|
|
# if defined(SOLARIS_THREADS) && !defined(SUNOS5) |
# if defined(SOLARIS_THREADS) && !defined(SUNOS5) |
--> inconsistent configuration |
--> inconsistent configuration |
# endif |
# endif |
|
# if defined(HPUX_THREADS) && !defined(HPUX) |
|
--> inconsistent configuration |
|
# endif |
# if defined(PCR) || defined(SRC_M3) || \ |
# if defined(PCR) || defined(SRC_M3) || \ |
defined(SOLARIS_THREADS) || defined(WIN32_THREADS) || \ |
defined(SOLARIS_THREADS) || defined(WIN32_THREADS) || \ |
defined(IRIX_THREADS) || defined(LINUX_THREADS) || \ |
defined(IRIX_THREADS) || defined(LINUX_THREADS) || \ |
defined(IRIX_JDK_THREADS) |
defined(IRIX_JDK_THREADS) || defined(HPUX_THREADS) |
# define THREADS |
# define THREADS |
# endif |
# endif |
|
|