aboutsummaryrefslogtreecommitdiffstats
path: root/gc/doc/README.ews4800
diff options
context:
space:
mode:
authorDai Sato <satodai@dog.intcul.tohoku.ac.jp>2001-11-22 17:52:28 +0000
committerDai Sato <satodai@dog.intcul.tohoku.ac.jp>2001-11-22 17:52:28 +0000
commita5067a1853b490e9c551ac2ff7c4cb58a9bb3f48 (patch)
tree42ca751a0b79dd050082b1e87c7d8957c161c6ff /gc/doc/README.ews4800
parent[w3m-dev 02509] (diff)
downloadw3m-a5067a1853b490e9c551ac2ff7c4cb58a9bb3f48.tar.gz
w3m-a5067a1853b490e9c551ac2ff7c4cb58a9bb3f48.zip
w3m-0.2.2-inu-1.1 sourceinu-0-2-2-rel-1-1inu-0-2-2
Diffstat (limited to 'gc/doc/README.ews4800')
-rw-r--r--gc/doc/README.ews480075
1 files changed, 75 insertions, 0 deletions
diff --git a/gc/doc/README.ews4800 b/gc/doc/README.ews4800
new file mode 100644
index 0000000..bced243
--- /dev/null
+++ b/gc/doc/README.ews4800
@@ -0,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>
+