12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- 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>
- When using the new "configure; make" build process, please
- run configure with the --disable-shared option. "Make check" does not
- yet pass with dynamic libraries. Ther reasons for that are not yet
- understood. (HB, paraphrasing message from Hironori SAKAMOTO.)
|