OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [boehm-gc/] [doc/] [README.ews4800] - Blame information for rev 721

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 721 jeremybenn
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 
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
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.