diff options
author | Dai Sato <satodai@dog.intcul.tohoku.ac.jp> | 2001-11-22 17:52:28 +0000 |
---|---|---|
committer | Dai Sato <satodai@dog.intcul.tohoku.ac.jp> | 2001-11-22 17:52:28 +0000 |
commit | a5067a1853b490e9c551ac2ff7c4cb58a9bb3f48 (patch) | |
tree | 42ca751a0b79dd050082b1e87c7d8957c161c6ff /gc/doc/README.ews4800 | |
parent | [w3m-dev 02509] (diff) | |
download | w3m-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.ews4800 | 75 |
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> + |