README.ews4800 2.1 KB

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