head 1.4; access; symbols OPENPKG_E1_MP_HEAD:1.3 OPENPKG_E1_MP:1.3 OPENPKG_E1_MP_2_STABLE:1.2.4.1 OPENPKG_E1_FP:1.2.4.1 OPENPKG_2_STABLE_MP:1.3 OPENPKG_2_STABLE_20061018:1.2.4.1 OPENPKG_2_STABLE_20060622:1.2 OPENPKG_2_STABLE:1.2.0.4 OPENPKG_2_STABLE_BP:1.2 OPENPKG_2_5_RELEASE:1.2 OPENPKG_2_5_SOLID:1.2.0.2 OPENPKG_2_5_SOLID_BP:1.2; locks; strict; comment @# @; 1.4 date 2009.12.24.21.37.52; author rse; state dead; branches; next 1.3; commitid eU1iZ5OdmO2VOFgu; 1.3 date 2006.10.12.08.29.46; author rse; state Exp; branches; next 1.2; commitid P1AkckNY9xGf2nQr; 1.2 date 2005.10.07.20.32.31; author rse; state Exp; branches 1.2.4.1; next 1.1; 1.1 date 2005.09.23.16.01.55; author rse; state Exp; branches; next ; 1.2.4.1 date 2006.10.16.14.50.15; author rse; state Exp; branches; next ; commitid iZxwRSmmWscPXUQr; desc @@ 1.4 log @upgrading package: gc 6.8 -> 7.2a4 @ text @Index: dyn_load.c --- dyn_load.c.orig 2006-06-07 07:01:52 +0200 +++ dyn_load.c 2006-10-12 10:24:45 +0200 @@@@ -102,6 +102,12 @@@@ # else # define ElfW(type) Elf64_##type # endif +# elif defined(__FreeBSD__) +# if __ELF_WORD_SIZE == 32 +# define ElfW(type) Elf32_##type +# else +# define ElfW(type) Elf64_##type +# endif # else # ifdef NETBSD # if ELFSIZE == 32 Index: include/private/gcconfig.h --- include/private/gcconfig.h.orig 2006-07-07 23:08:05 +0200 +++ include/private/gcconfig.h 2006-10-12 10:26:54 +0200 @@@@ -63,7 +63,7 @@@@ /* Determine the machine type: */ # if defined(__arm__) || defined(__thumb__) # define ARM32 -# if !defined(LINUX) && !defined(NETBSD) +# if !defined(LINUX) && !defined(NETBSD) && !defined(FREEBSD) # define NOSYS # define mach_type_known # endif @@@@ -342,10 +342,26 @@@@ # define X86_64 # define mach_type_known # endif +# if defined(FREEBSD) && defined(__amd64__) +# define X86_64 +# define mach_type_known +# endif # if defined(FREEBSD) && defined(__sparc__) # define SPARC # define mach_type_known -#endif +# endif +# if defined(FREEBSD) && defined(__powerpc__) +# define POWERPC +# define mach_type_known +# endif +# if defined(FREEBSD) && defined(__arm__) +# define ARM32 +# define mach_type_known +# endif +# if defined(FREEBSD) && defined(__ia64__) +# define IA64 +# define mach_type_known +# endif # if defined(bsdi) && (defined(i386) || defined(__i386__)) # define I386 # define BSDI @@@@ -860,6 +876,16 @@@@ # define DATASTART GC_data_start # 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 # define ALIGNMENT 4 # define OS_TYPE "NOSYS" @@@@ -1776,6 +1802,19 @@@@ # endif # define ALIGNMENT 8 # endif +# ifdef FREEBSD +# define ALIGNMENT 8 +# define OS_TYPE "FREEBSD" +# ifdef __ELF__ +# define DYNAMIC_LOADING +# endif +# define SEARCH_FOR_DATA_START +# define HEURISTIC2 + extern char etext[]; +# define SEARCH_FOR_DATA_START + extern ptr_t GC_register_stackbottom; +# define BACKING_STORE_BASE GC_register_stackbottom +# endif # endif # ifdef M88K @@@@ -1862,6 +1901,17 @@@@ # endif # define USE_GENERIC_PUSH_REGS # 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 LINUX # define OS_TYPE "LINUX" # define LINUX_STACKBOTTOM @@@@ -1967,6 +2017,15 @@@@ extern int _end[]; # define DATAEND (_end) # endif +# ifdef FREEBSD +# define OS_TYPE "FREEBSD" +# ifdef __ELF__ +# define DYNAMIC_LOADING +# endif +# define HEURISTIC2 + extern char etext[]; +# define SEARCH_FOR_DATA_START +# endif # endif # ifdef X86_64 @@@@ -2009,6 +2068,7 @@@@ # endif # ifdef FREEBSD # define OS_TYPE "FREEBSD" +# define NEED_FIND_LIMIT # ifndef GC_FREEBSD_THREADS # define MPROTECT_VDB # endif Index: os_dep.c --- os_dep.c.orig 2006-04-22 01:26:47 +0200 +++ os_dep.c 2006-10-12 10:24:45 +0200 @@@@ -694,7 +694,7 @@@@ || defined(HURD) || defined(NETBSD) static struct sigaction old_segv_act; # if defined(IRIX5) || defined(HPUX) \ - || defined(HURD) || defined(NETBSD) + || defined(HURD) || defined(NETBSD) || defined(FREEBSD) static struct sigaction old_bus_act; # endif # else @@@@ -709,7 +709,7 @@@@ # endif { # if defined(SUNOS5SIGS) || defined(IRIX5) \ - || defined(OSF1) || defined(HURD) || defined(NETBSD) + || defined(OSF1) || defined(HURD) || defined(NETBSD) || defined(FREEBSD) struct sigaction act; act.sa_handler = h; @@@@ -731,7 +731,7 @@@@ # else (void) sigaction(SIGSEGV, &act, &old_segv_act); # if defined(IRIX5) \ - || defined(HPUX) || defined(HURD) || defined(NETBSD) + || defined(HPUX) || defined(HURD) || defined(NETBSD) || defined(FREEBSD) /* Under Irix 5.x or HP/UX, we may get SIGBUS. */ /* Pthreads doesn't exist under Irix 5.x, so we */ /* don't have to worry in the threads case. */ @@@@ -1392,7 +1392,7 @@@@ } # endif -# if defined(FREEBSD) && (defined(I386) || defined(powerpc) || defined(__powerpc__)) && !defined(PCR) +# if defined(FREEBSD) && (defined(I386) || defined(X86_64) || defined(powerpc) || defined(__powerpc__)) && !defined(PCR) /* Its unclear whether this should be identical to the above, or */ /* whether it should apply to non-X86 architectures. */ /* For now we don't assume that there is always an empty page after */ @ 1.3 log @fix run-time under FreeBSD/amd64 and this way fix building of other packages on this platform which depend on GC @ text @@ 1.2 log @add first cut for FreeBSD/ia64 support @ text @d2 2 a3 2 --- dyn_load.c.orig 2005-07-13 02:07:42 +0200 +++ dyn_load.c 2005-10-07 22:08:52 +0200 d18 3 a20 3 --- include/private/gcconfig.h.orig 2005-08-12 03:31:22 +0200 +++ include/private/gcconfig.h 2005-10-07 22:30:28 +0200 @@@@ -62,7 +62,7 @@@@ d29 1 a29 1 @@@@ -334,10 +334,26 @@@@ d57 1 a57 1 @@@@ -845,6 +861,16 @@@@ d74 1 a74 1 @@@@ -1721,6 +1747,19 @@@@ d94 1 a94 1 @@@@ -1807,6 +1846,17 @@@@ d112 3 a114 3 @@@@ -1961,6 +2011,15 @@@@ extern char etext[]; # define SEARCH_FOR_DATA_START d127 9 a135 1 #if defined(LINUX) && defined(USE_MMAP) d137 2 a138 2 --- os_dep.c.orig 2005-07-28 02:33:34 +0200 +++ os_dep.c 2005-10-07 22:08:52 +0200 d166 9 @ 1.2.4.1 log @Mass merge from CURRENT to 2-STABLE (all packages except those of JUNK class) @ text @d2 2 a3 2 --- dyn_load.c.orig 2006-06-07 07:01:52 +0200 +++ dyn_load.c 2006-10-12 10:24:45 +0200 d18 3 a20 3 --- include/private/gcconfig.h.orig 2006-07-07 23:08:05 +0200 +++ include/private/gcconfig.h 2006-10-12 10:26:54 +0200 @@@@ -63,7 +63,7 @@@@ d29 1 a29 1 @@@@ -342,10 +342,26 @@@@ d57 1 a57 1 @@@@ -860,6 +876,16 @@@@ d74 1 a74 1 @@@@ -1776,6 +1802,19 @@@@ d94 1 a94 1 @@@@ -1862,6 +1901,17 @@@@ d112 3 a114 3 @@@@ -1967,6 +2017,15 @@@@ extern int _end[]; # define DATAEND (_end) d127 1 a127 9 # ifdef X86_64 @@@@ -2009,6 +2068,7 @@@@ # endif # ifdef FREEBSD # define OS_TYPE "FREEBSD" +# define NEED_FIND_LIMIT # ifndef GC_FREEBSD_THREADS # define MPROTECT_VDB # endif d129 2 a130 2 --- os_dep.c.orig 2006-04-22 01:26:47 +0200 +++ os_dep.c 2006-10-12 10:24:45 +0200 a157 9 @@@@ -1392,7 +1392,7 @@@@ } # endif -# if defined(FREEBSD) && (defined(I386) || defined(powerpc) || defined(__powerpc__)) && !defined(PCR) +# if defined(FREEBSD) && (defined(I386) || defined(X86_64) || defined(powerpc) || defined(__powerpc__)) && !defined(PCR) /* Its unclear whether this should be identical to the above, or */ /* whether it should apply to non-X86 architectures. */ /* For now we don't assume that there is always an empty page after */ @ 1.1 log @port to FreeBSD/amd64 and more (taken from FreeBSD ports) @ text @d3 1 a3 1 +++ dyn_load.c 2005-09-23 17:01:57 +0200 d19 1 a19 1 +++ include/private/gcconfig.h 2005-09-23 17:01:57 +0200 d29 1 a29 1 @@@@ -334,10 +334,22 @@@@ d33 1 a33 1 +# if defined(__FreeBSD__) && defined(__amd64__) d50 4 d57 1 a57 1 @@@@ -845,6 +857,16 @@@@ d74 21 a94 1 @@@@ -1807,6 +1829,17 @@@@ d112 1 a112 1 @@@@ -1961,6 +1994,15 @@@@ d130 1 a130 1 +++ os_dep.c 2005-09-23 17:01:57 +0200 @