diff options
Diffstat (limited to 'development/cosmocc/README')
-rw-r--r-- | development/cosmocc/README | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/development/cosmocc/README b/development/cosmocc/README new file mode 100644 index 0000000000..a8557c1f29 --- /dev/null +++ b/development/cosmocc/README @@ -0,0 +1,39 @@ +cosmocc is a precompiled version of GCC that produces polyglot +executables for the x86_64 / aarch64 architecture using the +Cosmopolitan libc. + +Cosmopolitan Libc makes C a build-once run-anywhere language, like Java, +except it doesn't need an interpreter or virtual machine. Instead, it +reconfigures stock GCC and Clang to output a POSIX-approved polyglot +format that runs natively on many operating systems with the best +possible performance and a tiny footprint. + +======= Support Vector ======= +Platform | Min Version | Circa +============================== +AMD | K8 Venus | 2005 +Intel | Core | 2006 +Linux | 2.6.18 | 2007 +Windows | 8 | 2012 +Mac OS X | 15.6 | 2018 +OpenBSD | 7 | 2021 +FreeBSD | 13 | 2020 +NetBSD | 9.2 | 2021 +============================== + +NOTES: +* on calling APE programs: + upto zsh version 5.9, it's required to call APE programs + this way: + sh -c ./APE-program + The same case is for Python's subprocess, old versions of fish, etc. +* on reproducible builds: + The cosmocc compiler is designed to generate deterministic output + across platforms. Please note that users who need reproducible + builds may also want to look into explicitly defining environment + variables like `LC_ALL=C` and `SOURCE_DATE_EPOCH=0`, in addition to + undefining macros such as `-U__DATE__` and `-U__TIME__`. +* on (un)registering APE with binfmt_misc: + two simple scripts are included in case you want to register or + unregister the APE loader with the binfmt_misc kernel facility. + You may find them in the /opt/cosmocc/scripts/ directory. |