From 7ce8ccb94fa0452f309efc97522692b38b4d0200 Mon Sep 17 00:00:00 2001 From: Justine Tunney Date: Thu, 28 Jan 2021 16:19:10 -0800 Subject: [PATCH] Cosmopolitan 0.1 All 196 tests passing on the following systems is confirmed: - Alpine Linux 5.4.43 - Debian Linux 10 Buster 4.19.0 - Red Hat Enterprise Linux 7 3.10.0 - Red Hat Enterprise Linux 5 2.6.18 - XNU 19.6.0 - Windows 7 - Windows 10 - FreeBSD 12.1 - OpenBSD 6.8 Proof: https://justine.lol/cosmopolitan/cosmopolitan-0.1.png My name is Justine Tunney and I approve this release. --- Makefile | 2 +- README.md | 46 ++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 2a8142b71e5..60cb180f34c 100644 --- a/Makefile +++ b/Makefile @@ -61,7 +61,7 @@ # build/config.mk SHELL = /bin/sh -HOSTS ?= freebsd openbsd rhel7 rhel5 xnu win10 +HOSTS ?= freebsd openbsd rhel7 rhel5 xnu win7 win10 SANITY := $(shell build/sanitycheck $$PPID) GNUMAKEFLAGS += --output-sync diff --git a/README.md b/README.md index 7e7ae21e7c2..82c4d86ceca 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,40 @@ # Cosmopolitan -Fast portable static native textmode executable containers. - -For an introduction to this project, please read the αcτµαlly pδrταblε εxεcµταblε -blog post and cosmopolitan libc -website. API documentation is available here. +[Cosmopolitan Libc](https://justine.lol/cosmopolitan/index.html) 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 + 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ε](https://justine.lol/ape.html) blog post and [cosmopolitan +libc](https://justine.lol/cosmopolitan/index.html) website. We also have +[API documentation](https://justine.lol/cosmopolitan/documentation.html). + +## Getting Started + +Here's how to get started with the freestanding hermetically-sealed +monolithic source repository: + +```sh +tar xf cosmopolitan-0.1.tar.gz # see our releases page +cd cosmo +make -j12 +o//examples/hello.com +``` + +Here's how to get started with the amalgamated binaries, which let you +bring your own build system: + +```sh +unzip cosmopolitan-amalgamated-0.1.zip # see our 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 +```