musl-cross-make
gcc
musl-cross-make | gcc | |
---|---|---|
1 | 1 | |
10 | 14 | |
- | - | |
0.0 | 0.0 | |
7 months ago | 3 months ago | |
MIT License | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
musl-cross-make
-
Patching GCC to Build Portable Executables
I wrote this post: the title should be "Patching GCC to build Actually Portable Executables", because it refers to Cosmopolitan Libc and jart's Actually Portable Executable format.
With my gcc patch, you can now build software like vim, emacs, ninja, bash, git, gcc etc with Cosmopolitan Libc, via their usual autotools/cmake-style build system. The built executables should run on Linux, FreeBSD, MacOS, OpenBSD, NetBSD, and also Windows (although I haven't tested Windows yet.)
Here's a list of software I got to build with this technique: https://github.com/ahgamut/superconfigure
The superconfigure script is just a wrapper around the usual configure script used to build your software, supplying flags like --enable-static.
If you want to build gcc using Cosmopolitan Libc -- try out this repo: https://github.com/ahgamut/musl-cross-make/tree/gccbuild
gcc
-
Patching GCC to Build Portable Executables
Dereferencing the runtime symbol with a function sounds interesting! If you can show me an example of where it works, I'd be happy to try it out. I like the if-else-goto arrangement because it fit in perfectly with the other parts of gcc -- if you look at my patch[1], you will find that I had to change very little of gcc's existing code to add this capability.
[1]: https://github.com/ahgamut/gcc/tree/portcosmo-11.2
What are some alternatives?
cosmonim - A Nim template to compile your code with the Cosmopolitan libc
rust-ape-example - A simple example with Rust and Cosmopolitan Libc
superconfigure - wrap autotools configure scripts to build with Cosmopolitan Libc
ripgrep - ripgrep recursively searches directories for a regex pattern while respecting your gitignore
cosmopolitan - build-once run-anywhere c library
go - The Go programming language
blink - tiniest x86-64-linux emulator
lnav - Log file navigator