slackbuilds/development/cosmocc
Juan M. Lasca ef19e20224
development/cosmocc: Added (C library).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
2024-02-10 16:09:46 +07:00
..
scripts development/cosmocc: Added (C library). 2024-02-10 16:09:46 +07:00
README development/cosmocc: Added (C library). 2024-02-10 16:09:46 +07:00
cosmocc.SlackBuild development/cosmocc: Added (C library). 2024-02-10 16:09:46 +07:00
cosmocc.info development/cosmocc: Added (C library). 2024-02-10 16:09:46 +07:00
slack-desc development/cosmocc: Added (C library). 2024-02-10 16:09:46 +07:00

README

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.