Mercurial > emacs
comparison gc/doc/README.ews4800 @ 51488:5de98dce4bd1
*** empty log message ***
author | Dave Love <fx@gnu.org> |
---|---|
date | Thu, 05 Jun 2003 17:49:22 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
51487:01d68b199093 | 51488:5de98dce4bd1 |
---|---|
1 GC on EWS4800 | |
2 ------------- | |
3 | |
4 1. 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 | |
11 2. 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 | |
22 3. 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 -- | |
74 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> | |
75 | |
76 | |
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.) | |
81 |