2
0

README 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. Oberon Microsystems BlackBox Component Builder (http://www.oberon.ch/)
  2. Port for OpenBSD/i386, Linux/i386
  3. Some significant parts taken from OpenBUGS (http://www.openbugs.info/)
  4. How to build:
  5. compile loader executable (BlackBox itself and simple interpreter):
  6. `uname -s`/libBB*.so must be present (can be built from Windows)
  7. cd BlackBox/`uname -s`/Lin/Rsrc/loader; make
  8. compile self:
  9. cd BlackBox; ./switch-os `uname -s`; ./clean; ./build-lindev; ./build
  10. Files:
  11. original:
  12. BlackBox:
  13. Dev/Mod/*
  14. all except ElfLinker16
  15. Dev/Rsrc/*
  16. Docu/BB-License.odc
  17. Docu/BB-Licensing-Policy.odc
  18. Docu/BB-Open-Source-License.odc
  19. Obx/*
  20. Std/*
  21. System/Mod/
  22. all except Console
  23. System/Rsrc/*
  24. Text/*
  25. OpenBUGS:
  26. Dev/Mod/ElfLinker16.odc
  27. Dev/Docu/ElfLinker.odc
  28. System/Mod/Console.odc
  29. Docu/OpenBUGS-License.odc
  30. http://forum.oberoncore.ru/viewtopic.php?f=34&t=1159&sid=3e82517160caa46c64331178c1b61e95:
  31. {Linux,OpenBSD}/Lin/Mod/Kernel_so_init.odc
  32. modified:
  33. OpenBSD/Lin/Mod/Kernel.odc:
  34. 1.6-rc6 System/Mod/Kernel.odc, OpenBUGS Lin/Mod/linKernel.odc:
  35. OpenBSD specific:
  36. Memory management rewritten (based on mmap)
  37. Kernel.TrapHandler
  38. OpenBSD sigcontext-specific
  39. Kernel.Time
  40. CLOCKS_PER_SEC related
  41. Kernel.InitModule
  42. mprotect call added
  43. Kernel.InstallSignals:
  44. use alternate stack on which signals are to be processed (to catch stack overflow)
  45. do not install signal handler for SIGTHR (when executable linked with -pthread)
  46. Kernel.cmdLine support:
  47. Kernel.INIT (SetCmdLine2)
  48. Linux/Lin/Mod/Kernel.odc:
  49. OpenBSD/Lin/Mod/Kernel.odc modified for Linux:
  50. Time*
  51. TrapHandler
  52. mmap: use "/dev/zero" device instead of -1
  53. mprotect addresses must be page-aligned
  54. do not show warning message if signal install failed
  55. OpenBSD/Lin/Mod/HostFiles.odc:
  56. OpenBUGS Lin/Mod/linHostFiles.odc:
  57. OpenBSD-specific:
  58. size_t
  59. __xstat -> stat
  60. Kernel.cmdLine support:
  61. str := "" -> str := Kernel.cmdLine$
  62. Linux/Lin/Mod/HostFiles.odc:
  63. OpenBUGS Lin/Mod/linHostFiles.odc:
  64. Kernel.cmdLine support:
  65. str := "" -> str := Kernel.cmdLine$
  66. OpenBSD/Lin/Mod/Console.odc:
  67. OpenBUGS Lin/Mod/Console.odc:
  68. stdin -> SYSTEM.ADR(__sF[0])
  69. Linux/Lin/Mod/Console.odc:
  70. OpenBUGS Lin/Mod/Console.odc
  71. OpenBSD/Lin/Mod/Libc.txt:
  72. OpenBUGS Lin/Mod/Libc.odc:
  73. OpenBSD-specific
  74. Linux/Lin/Mod/Libc.odc:
  75. OpenBUGS Lin/Mod/Libc.odc:
  76. PROT_*, MAP_*, O_*, _SC_PAGESIZE, SIGSTKSZ CONSTs added
  77. open, close, read, write, mmap, munmap, mprotect, getenv, sysconf, sigaltstack functions added
  78. Linux/Lin/Mod/Dl.odc:
  79. OpenBUGS Lin/Mod/Dl.odc
  80. OpenBSD/Lin/Mod/Dates.odc:
  81. HostDates, from http://oberoncore.ru/:
  82. OpenBSD-specific
  83. Linux/Lin/Mod/Dates.odc:
  84. HostDates, from http://oberoncore.ru/
  85. Lindev/Mod
  86. CP*
  87. BlackBox 1.6-rc6 Dev CP* modified to not depend on Dates, Texts etc.
  88. Compiler.odc:
  89. modified original BlackBox Dev/Mod/Compiler.odc
  90. ElfLinker16.odc:
  91. modified OpenBUGS Dev/Mod/ElfLinker16.odc
  92. new:
  93. Cons/Mod
  94. Interp.odc: console interpreter
  95. Compiler.odc: console interface to Dev compiler
  96. {OpenBSD,Linux}/libBB.so: compiled and linked shared library to run BlackBox
  97. {OpenBSD,Linux}/libBB0.so: compiled and linked shared library to run simple development interpreter
  98. Views.odc: minimal Views implementation required to compile StdInterpreter
  99. HostFonts.odc, HostDialog.odc, HostWindows.odc: simple Hosts implementation
  100. Notes:
  101. Lindev:
  102. I will not remove Lindev because I can not link .so library based on ConsInterp and Dev
  103. Kernel_so_init.SetKernelBaseStack:
  104. required only in case of .so shared library dynamic loading
  105. (at run-time via dlopen, not on link-time)
  106. A. V. Shiryaev, 2012