diff options
Diffstat (limited to 'miniany/doc/gsoc.cat-v.org_projects_kencc.txt')
-rw-r--r-- | miniany/doc/gsoc.cat-v.org_projects_kencc.txt | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/miniany/doc/gsoc.cat-v.org_projects_kencc.txt b/miniany/doc/gsoc.cat-v.org_projects_kencc.txt new file mode 100644 index 0000000..1730e8c --- /dev/null +++ b/miniany/doc/gsoc.cat-v.org_projects_kencc.txt @@ -0,0 +1,136 @@ + [1]quotes | [2]docs | [3]repo | [4]golang | [5]sam | [6]man | [7]acme | + [8]Glenda | [9]9times | [10]harmful | [11]9P | [12]cat-v.org + + Related sites: | [13]site updates | [14]site map | + + [15]Plan 9 and Inferno at the Google Summer of Code + + * [16]> 2010 app + * [17]> FAQ + * [18]> News/ + * [19]> about + * [20]> blog/ + * [21]> hg/ + * [22]> ideas/ + * [23]> people/ + * [24]» projects/ + * + + [25]> OLP9C/ + + [26]> cocytus/ + + [27]> inferno ceb/ + + [28]> inferno synth/ + + [29]» kencc/ + + + o [30]> blog/ + + [31]> o9fs/ + + [32]> qemu/ + + [33]> synergy/ + + [34]> ventivac/ + + [35]> web9/ + + [36]> werc/ + + KenCC - Port of the Plan 9 compilers to *nix systems + + The KenCC port is very usable at the moment. It can be found at + [37]http://gsoc.cat-v.org/hg/kenc and it comes in 6 parts: +8a The Plan 9 386 assembler. +8c The Plan 9 386 C compiler. +cc The portable portions of the C compiler. +8l The Plan 9 386 linker. +pcc A wrapper around the compilers and linkers with a more + POSIXy interface. +libcsu The C startup linkage, namely _main() and operations on + long long types not provided by the compiler. + + The details: The linker will link Plan 9 .8 objects (binary 386 + assembly language, as produced by the compiler and assembler), as well + as ELF objects, along with their debugging information. It will also + link agains ELF shared objects, though it can't yet create them (and it + doesn't walk the dependency tree). It also generates basic debugging + information (as much as the compilers provide) for .8 objects. It + provides line number, stack frame/unwind, and param/auto variable + location information (ELF objects come with whatever debugging info + their compiler generated). There is currently no type information (all + variables are represented as longs, unless cast otherwise), unless you + use acid, for which the compiler can generate native debugging info. I + intend on fixing this in the future. + + I'd forgotten to upload the preprocessor, which only has one change, + the -P flag, which is used to preinclude the pcc.h file, which provides + varargck info for the POSIX formatted IO functions, and some defines to + get around some GCC specific gunk (incorrectly) in BSD header files. + + In the future, I'd like to support type information in debugging, + PIC/SO generation, constructors/destructors (which seem totally inane + to me; only for the linker), variable length auth arrays (for Plan 9 + too, for the sake of porting code), more object types (I've tried to + segregate the ELF related code; the BSDs still try to support COFF), + and some other bits I'm forgetting. + + On supporting other object types, 8l used to do it. At first, I tried + to change as little as possible, but the code quickly became unwieldy, + so I restructured the linker to work on sections, all the way down the + line. The section related code should probably be made mostly ELF + independant so (say) COFF and Plan 9 objects can be generated with + little extra code (as it was before). + + It would also be nice to port other archs. The ELF input/output code is + not intwined with other archs, but it's 32bit LEB specific. It would be + nice, I think, to structure the linker code like the compiler code, in + platform dependent and independent sections, since most of code + relating to object format is totally platform independent. The + compilers only required trivial changes (the register saving code was + done in the linker; the calling convention changes were not extensive, + and should be straightforward in the other compilers now that I've done + it once), so porting them should be simple and forthcoming. I'd like + very much for an AMD64 port, since it's becoming so prevalent. It + shouldn't be too difficult. + + Note: for building kenc you will need Inferno's ar (iar), it can be + found in inferno-os/utils/iar/ at the [38]inferno-os repo. + + [39]Powered by werc + + ____________________ Search + +References + + 1. http://quotes.cat-v.org/ + 2. http://doc.cat-v.org/ + 3. http://repo.cat-v.org/ + 4. http://go-lang.cat-v.org/ + 5. http://sam.cat-v.org/ + 6. http://man.cat-v.org/ + 7. http://acme.cat-v.org/ + 8. http://glenda.cat-v.org/ + 9. http://ninetimes.cat-v.org/ + 10. http://harmful.cat-v.org/ + 11. http://9p.cat-v.org/ + 12. http://cat-v.org/ + 13. http://cat-v.org/update_log + 14. http://gsoc.cat-v.org/sitemap + 15. http://gsoc.cat-v.org/ + 16. http://gsoc.cat-v.org/2010-app + 17. http://gsoc.cat-v.org/FAQ + 18. http://gsoc.cat-v.org/News/ + 19. http://gsoc.cat-v.org/about + 20. http://gsoc.cat-v.org/blog/ + 21. http://gsoc.cat-v.org/hg/ + 22. http://gsoc.cat-v.org/ideas/ + 23. http://gsoc.cat-v.org/people/ + 24. http://gsoc.cat-v.org/projects/ + 25. http://gsoc.cat-v.org/projects/OLP9C/ + 26. http://gsoc.cat-v.org/projects/cocytus/ + 27. http://gsoc.cat-v.org/projects/inferno-ceb/ + 28. http://gsoc.cat-v.org/projects/inferno-synth/ + 29. http://gsoc.cat-v.org/projects/kencc/ + 30. http://gsoc.cat-v.org/projects/kencc/blog/ + 31. http://gsoc.cat-v.org/projects/o9fs/ + 32. http://gsoc.cat-v.org/projects/qemu/ + 33. http://gsoc.cat-v.org/projects/synergy/ + 34. http://gsoc.cat-v.org/projects/ventivac/ + 35. http://gsoc.cat-v.org/projects/web9/ + 36. http://gsoc.cat-v.org/projects/werc/ + 37. http://gsoc.cat-v.org/hg/kenc + 38. http://code.google.com/p/inferno-os/ + 39. http://werc.cat-v.org/ |