1GC on EWS4800
2-------------
3
41. About EWS4800
5   EWS4800 is 32bit/64bit workstation.
6
7     Vender: NEC Corporation
8     OS: UX/4800 R9.* - R13.* (SystemV R4.2)
9     CPU: R4000, R4400, R10000 (MIPS)
10
112. Compiler
12
13 32bit:
14   Use ANSI C compiler.
15     CC = /usr/abiccs/bin/cc
16
17 64bit:
18   Use 64bit ANSI C compiler.
19     CC = /usr/ccs64/bin/cc
20     AR = /usr/ccs64/bin/ar
21
223. ELF file format
23   *** Caution: The following infomation is empirical. ***
24
25 32bit:
26   ELF file has an unique format. (See a.out(4) and end(3C).)
27
28     &_start
29        :      text segment
30     &etext
31     DATASTART
32        :      data segment (initialized)
33     &edata
34     DATASTART2
35        :      data segment (uninitialized)
36     &end
37
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.
42
43     DATASTART  = ((&etext + 0x3ffff) & ~0x3ffff) + (&etext & 0xffff)
44
45    Dynamically linked:
46     DATASTART2 = (&_gp + 0x8000 + 0x3ffff) & ~0x3ffff
47
48    Statically linked:
49     DATASTART2 = &edata
50
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.
55
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.
59
60 64bit:
61   ELF file has a simple format. (See end(3C).)
62
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
72
73--
74Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
75
76
77When using the new "configure; make" build process, please
78run configure with the --disable-shared option.  "Make check" does not
79yet pass with dynamic libraries.  Ther reasons for that are not yet
80understood.  (HB, paraphrasing message from Hironori SAKAMOTO.)
81
82