aboutsummaryrefslogtreecommitdiffstats
path: root/Patches/ews4800
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--Patches/ews4800175
1 files changed, 0 insertions, 175 deletions
diff --git a/Patches/ews4800 b/Patches/ews4800
deleted file mode 100644
index 979d6a6..0000000
--- a/Patches/ews4800
+++ /dev/null
@@ -1,175 +0,0 @@
-diff -bcrN gc.org/doc/README.ews4800 gc/doc/README.ews4800
-*** gc.org/doc/README.ews4800 Thu Jan 1 09:00:00 1970
---- gc/doc/README.ews4800 Wed Jul 25 17:38:57 2001
-***************
-*** 0 ****
---- 1,75 ----
-+ GC on EWS4800
-+ -------------
-+
-+ 1. About EWS4800
-+ EWS4800 is 32bit/64bit workstation.
-+
-+ Vender: NEC Corporation
-+ OS: UX/4800 R9.* - R13.* (SystemV R4.2)
-+ CPU: R4000, R4400, R10000 (MIPS)
-+
-+ 2. Compiler
-+
-+ 32bit:
-+ Use ANSI C compiler.
-+ CC = /usr/abiccs/bin/cc
-+
-+ 64bit:
-+ Use 64bit ANSI C compiler.
-+ CC = /usr/ccs64/bin/cc
-+ AR = /usr/ccs64/bin/ar
-+
-+ 3. ELF file format
-+ *** Caution: The following infomation is empirical. ***
-+
-+ 32bit:
-+ ELF file has an unique format. (See a.out(4) and end(3C).)
-+
-+ &_start
-+ : text segment
-+ &etext
-+ DATASTART
-+ : data segment (initialized)
-+ &edata
-+ DATASTART2
-+ : data segment (uninitialized)
-+ &end
-+
-+ Here, DATASTART and DATASTART2 are macros of GC, and are defined as
-+ the following equations. (See include/private/gcconfig.h.)
-+ The algorithm for DATASTART is similar with the function
-+ GC_SysVGetDataStart() in os_dep.c.
-+
-+ DATASTART = ((&etext + 0x3ffff) & ~0x3ffff) + (&etext & 0xffff)
-+
-+ Dynamically linked:
-+ DATASTART2 = (&_gp + 0x8000 + 0x3ffff) & ~0x3ffff
-+
-+ Statically linked:
-+ DATASTART2 = &edata
-+
-+ GC has to check addresses both between DATASTART and &edata, and
-+ between DATASTART2 and &end. If a program accesses between &etext
-+ and DATASTART, or between &edata and DATASTART2, the segmentation
-+ error occurs and the program stops.
-+
-+ If a program is statically linked, there is not a gap between
-+ &edata and DATASTART2. The global symbol &_DYNAMIC_LINKING is used
-+ for the detection.
-+
-+ 64bit:
-+ ELF file has a simple format. (See end(3C).)
-+
-+ _ftext
-+ : text segment
-+ _etext
-+ _fdata = DATASTART
-+ : data segment (initialized)
-+ _edata
-+ _fbss
-+ : data segment (uninitialized)
-+ _end = DATAEND
-+
-+ --
-+ Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
-+
-diff -bcrN gc.org/include/private/gcconfig.h gc/include/private/gcconfig.h
-*** gc.org/include/private/gcconfig.h Sun Jul 1 06:29:27 2001
---- gc/include/private/gcconfig.h Wed Jul 25 17:38:57 2001
-***************
-*** 75,83 ****
- # endif
- # define mach_type_known
- # endif
-! # if defined(mips) || defined(__mips)
- # define MIPS
-! # if !defined(LINUX)
- # if defined(ultrix) || defined(__ultrix) || defined(__NetBSD__)
- # define ULTRIX
- # else
---- 75,86 ----
- # endif
- # define mach_type_known
- # endif
-! # if defined(mips) || defined(__mips) || defined(_mips)
- # define MIPS
-! # if defined(nec_ews) || defined(_nec_ews)
-! # define EWS4800
-! # endif
-! # if !defined(LINUX) && !defined(EWS4800)
- # if defined(ultrix) || defined(__ultrix) || defined(__NetBSD__)
- # define ULTRIX
- # else
-***************
-*** 1083,1088 ****
---- 1086,1114 ----
- /* instead. But some kernel versions seem to give the wrong */
- /* value from /proc. */
- # endif /* Linux */
-+ # ifdef EWS4800
-+ # define HEURISTIC2
-+ # if defined(_MIPS_SZPTR) && (_MIPS_SZPTR == 64)
-+ extern int _fdata[], _end[];
-+ # define DATASTART ((ptr_t)_fdata)
-+ # define DATAEND ((ptr_t)_end)
-+ # define CPP_WORDSZ _MIPS_SZPTR
-+ # define ALIGNMENT (_MIPS_SZPTR/8)
-+ # else
-+ extern int etext, edata, end;
-+ extern int _DYNAMIC_LINKING, _gp;
-+ # define DATASTART ((ptr_t)((((word)&etext + 0x3ffff) & ~0x3ffff) \
-+ + ((word)&etext & 0xffff)))
-+ # define DATAEND (&edata)
-+ # define DATASTART2 (&_DYNAMIC_LINKING \
-+ ? (ptr_t)(((word)&_gp + 0x8000 + 0x3ffff) & ~0x3ffff) \
-+ : (ptr_t)&edata)
-+ # define DATAEND2 (&end)
-+ # define ALIGNMENT 4
-+ # endif
-+ # define OS_TYPE "EWS4800"
-+ # define USE_GENERIC_PUSH_REGS 1
-+ # endif
- # ifdef ULTRIX
- # define HEURISTIC2
- # define DATASTART (ptr_t)0x10000000
-diff -bcrN gc.org/mach_dep.c gc/mach_dep.c
-*** gc.org/mach_dep.c Thu Jun 28 05:54:23 2001
---- gc/mach_dep.c Wed Jul 25 17:38:57 2001
-***************
-*** 429,435 ****
- *i = 0;
- }
- # if defined(POWERPC) || defined(MSWIN32) || defined(MSWINCE) \
-! || defined(UTS4) || defined(LINUX)
- (void) setjmp(regs);
- # else
- (void) _setjmp(regs);
---- 429,435 ----
- *i = 0;
- }
- # if defined(POWERPC) || defined(MSWIN32) || defined(MSWINCE) \
-! || defined(UTS4) || defined(LINUX) || defined(EWS4800)
- (void) setjmp(regs);
- # else
- (void) _setjmp(regs);
-diff -bcrN gc.org/os_dep.c gc/os_dep.c
-*** gc.org/os_dep.c Tue Jun 26 11:32:26 2001
---- gc/os_dep.c Wed Jul 25 17:38:57 2001
-***************
-*** 1088,1093 ****
---- 1088,1096 ----
- GC_add_roots_inner(DATASTART, (char *)sbrk(0), FALSE);
- # else
- GC_add_roots_inner(DATASTART, (char *)(DATAEND), FALSE);
-+ # if defined(DATASTART2)
-+ GC_add_roots_inner(DATASTART2, (char *)(DATAEND2), FALSE);
-+ # endif
- # endif
- # endif
- # if !defined(PCR) && (defined(NEXT) || defined(MACOSX))