Przeglądaj źródła

add first cut for FreeBSD/ia64 support

Ralf S. Engelschall 20 lat temu
rodzic
commit
e45050cd81
2 zmienionych plików z 33 dodań i 9 usunięć
  1. 32 8
      gc/gc.patch
  2. 1 1
      gc/gc.spec

+ 32 - 8
gc/gc.patch

@@ -1,6 +1,6 @@
 Index: dyn_load.c
 --- dyn_load.c.orig	2005-07-13 02:07:42 +0200
-+++ dyn_load.c	2005-09-23 17:01:57 +0200
++++ dyn_load.c	2005-10-07 22:08:52 +0200
 @@ -102,6 +102,12 @@
  #      else
  #        define ElfW(type) Elf64_##type
@@ -16,7 +16,7 @@ Index: dyn_load.c
  #        if ELFSIZE == 32
 Index: include/private/gcconfig.h
 --- include/private/gcconfig.h.orig	2005-08-12 03:31:22 +0200
-+++ include/private/gcconfig.h	2005-09-23 17:01:57 +0200
++++ include/private/gcconfig.h	2005-10-07 22:30:28 +0200
 @@ -62,7 +62,7 @@
  /* Determine the machine type: */
  # if defined(__arm__) || defined(__thumb__)
@@ -26,11 +26,11 @@ Index: include/private/gcconfig.h
  #      define NOSYS
  #      define mach_type_known
  #    endif
-@@ -334,10 +334,22 @@
+@@ -334,10 +334,26 @@
  #    define X86_64
  #    define mach_type_known
  # endif
-+# if defined(__FreeBSD__) && defined(__amd64__)
++# if defined(FREEBSD) && defined(__amd64__)
 +#    define X86_64
 +#    define mach_type_known
 +# endif
@@ -46,11 +46,15 @@ Index: include/private/gcconfig.h
 +# 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
-@@ -845,6 +857,16 @@
+@@ -845,6 +861,16 @@
  #     define DATASTART GC_data_start
  #     define DYNAMIC_LOADING
  #   endif
@@ -67,7 +71,27 @@ Index: include/private/gcconfig.h
  #   ifdef NOSYS
  #     define ALIGNMENT 4
  #     define OS_TYPE "NOSYS"
-@@ -1807,6 +1829,17 @@
+@@ -1721,6 +1747,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
+@@ -1807,6 +1846,17 @@
  #	endif
  #       define USE_GENERIC_PUSH_REGS
  #   endif
@@ -85,7 +109,7 @@ Index: include/private/gcconfig.h
  #   ifdef LINUX
  #       define OS_TYPE "LINUX"
  #       define LINUX_STACKBOTTOM
-@@ -1961,6 +1994,15 @@
+@@ -1961,6 +2011,15 @@
  	extern char etext[];
  #	define SEARCH_FOR_DATA_START
  #   endif
@@ -103,7 +127,7 @@ Index: include/private/gcconfig.h
  #if defined(LINUX) && defined(USE_MMAP)
 Index: os_dep.c
 --- os_dep.c.orig	2005-07-28 02:33:34 +0200
-+++ os_dep.c	2005-09-23 17:01:57 +0200
++++ os_dep.c	2005-10-07 22:08:52 +0200
 @@ -694,7 +694,7 @@
      || defined(HURD) || defined(NETBSD)
  	static struct sigaction old_segv_act;

+ 1 - 1
gc/gc.spec

@@ -33,7 +33,7 @@ Class:        BASE
 Group:        System
 License:      MIT-style
 Version:      6.6
-Release:      20050930
+Release:      20051007
 
 #   list of sources
 Source0:      http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc%{version}.tar.gz