Find a file
2021-02-07 07:02:46 -08:00
.github Create FUNDING.yml 2021-01-29 14:56:22 -08:00
.vscode Definen LLP64 data model for code completion 2021-02-04 16:56:43 -08:00
ape Elevate .text.syscall to .privileged 2021-02-06 04:49:22 -08:00
build Apply some touchups 2021-02-07 07:02:46 -08:00
dsp Fix Clang support 2021-02-06 00:29:09 -08:00
examples Elevate .text.syscall to .privileged 2021-02-06 04:49:22 -08:00
libc Apply some touchups 2021-02-07 07:02:46 -08:00
net finish intellisense support and sync with upstream 2021-02-03 13:50:08 -05:00
test Apply some touchups 2021-02-07 07:02:46 -08:00
third_party Apply some touchups 2021-02-07 07:02:46 -08:00
tool Apply some touchups 2021-02-07 07:02:46 -08:00
usr/share Add Cosmopolitan Honeybadger to README.md 2021-02-04 03:31:03 -08:00
.clang-format Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
.gitignore Make terminal ui binaries work well everywhere 2020-10-19 06:38:31 -07:00
Makefile Apply some touchups 2021-02-07 07:02:46 -08:00
NOTICE Change license 2020-12-27 17:18:44 -08:00
README.md Apply some touchups 2021-02-07 07:02:46 -08:00

Cosmopolitan Honeybadger

Cosmopolitan

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 to output a POSIX-approved polyglot format that runs natively on Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS with the best possible performance and the tiniest footprint imaginable.

Background

For an introduction to this project, please read the αcτµαlly pδrταblε εxεcµταblε blog post and cosmopolitan libc website. We also have API documentation.

Getting Started

Cosmopolitan can be compiled from source on any Linux distro.

tar xf cosmopolitan-0.1.2.tar.gz  # see releases page
cd cosmopolitan-0.1.2
make -j16
o//examples/hello.com
find o -name \*.com | xargs ls -rShal | less

Alternatively you can use the release binaries:

unzip cosmopolitan-amalgamated-0.1.2.zip  # see releases page
echo 'main() { printf("hello world\n"); }' >hello.c
gcc -g -O -static -fno-pie -no-pie -mno-red-zone -nostdlib -nostdinc \
  -o hello.com.dbg hello.c -Wl,--gc-sections -Wl,-z,max-page-size=0x1000 -fuse-ld=bfd \
  -Wl,-T,ape.lds -include cosmopolitan.h crt.o ape.o cosmopolitan.a
objcopy -SO binary hello.com.dbg hello.com
./hello.com