2004-07-24 Alexander Kabaev <kan@freebsd.org>
[official-gcc.git] / boehm-gc / doc / README.ews4800
blob80bca2b3d9524463ecc69628b826d197b74b69b8
1 GC on EWS4800
2 -------------
4 1. About EWS4800
5    EWS4800 is 32bit/64bit workstation.
7      Vender: NEC Corporation
8      OS: UX/4800 R9.* - R13.* (SystemV R4.2)
9      CPU: R4000, R4400, R10000 (MIPS)
11 2. Compiler
13  32bit:
14    Use ANSI C compiler.
15      CC = /usr/abiccs/bin/cc
17  64bit:
18    Use 64bit ANSI C compiler.
19      CC = /usr/ccs64/bin/cc
20      AR = /usr/ccs64/bin/ar
22 3. ELF file format
23    *** Caution: The following infomation is empirical. ***
25  32bit:
26    ELF file has an unique format. (See a.out(4) and end(3C).)
28      &_start
29         :      text segment
30      &etext
31      DATASTART
32         :      data segment (initialized)
33      &edata
34      DATASTART2
35         :      data segment (uninitialized)
36      &end
38    Here, DATASTART and DATASTART2 are macros of GC, and are defined as
39    the following equations. (See include/private/gcconfig.h.)
40    The algorithm for DATASTART is similar with the function
41    GC_SysVGetDataStart() in os_dep.c.
43      DATASTART  = ((&etext + 0x3ffff) & ~0x3ffff) + (&etext & 0xffff)
45     Dynamically linked:
46      DATASTART2 = (&_gp + 0x8000 + 0x3ffff) & ~0x3ffff
48     Statically linked:
49      DATASTART2 = &edata
51    GC has to check addresses both between DATASTART and &edata, and
52    between DATASTART2 and &end. If a program accesses between &etext
53    and DATASTART, or between &edata and DATASTART2, the segmentation
54    error occurs and the program stops.
56    If a program is statically linked, there is not a gap between
57    &edata and DATASTART2. The global symbol &_DYNAMIC_LINKING is used
58    for the detection.
60  64bit:
61    ELF file has a simple format. (See end(3C).)
63      _ftext
64         :      text segment
65      _etext
66      _fdata = DATASTART
67         :      data segment (initialized)
68      _edata
69      _fbss
70         :      data segment (uninitialized)
71      _end = DATAEND
74 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
77 When using the new "configure; make" build process, please
78 run configure with the --disable-shared option.  "Make check" does not
79 yet pass with dynamic libraries.  Ther reasons for that are not yet
80 understood.  (HB, paraphrasing message from Hironori SAKAMOTO.)