Skip to content

Homebrew formula to brew Linux cross compilers based on GCC 8 and musl libc

License

Notifications You must be signed in to change notification settings

MarioSchwalbe/homebrew-gcc-musl-cross

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3d4bf96 · Apr 3, 2020

History

33 Commits
Nov 1, 2019
Oct 27, 2019
Oct 28, 2019
Oct 28, 2019
May 25, 2018
Apr 3, 2020
Oct 28, 2019
Oct 27, 2019
Nov 1, 2019
Nov 1, 2019
May 27, 2018
May 26, 2018
Oct 27, 2019

Repository files navigation

gcc-musl-cross

Homebrew package manager formula to install cross-compiler toolchains targeting Linux boxes.

The default installation contains toolchains for x86 64-bit Linux (x86_64-linux-musl) and ARM 32/64-bit Linux (arm-linux-musleabihf/aarch64-linux-musl) as used on Raspberry Pi and similar devices. Others can be installed with package options (see brew info).

Note, when using the toolchain, the generated binaries will only run on a system with musl libc installed. Either musl-based distributions like Alpine Linux or distributions having musl libc installed as separate packages (e.g., Debian/Ubuntu).

Binaries statically linked with musl libc (linked with -static) have no external dependencies, even for features like DNS lookups or character set conversions that are implemented with dynamic loading on glibc. The application can be deployed as a single binary file and run on any device with the appropriate ISA and Linux kernel or Linux syscall ABI emulation layer including bare docker containers.

Tool Versions:

Based upon:

Usage

  1. Install with Homebrew:

    $ brew tap MarioSchwalbe/gcc-musl-cross
    $ brew install gcc-8-musl-cross
  2. For dynamically linked applications install the Debian/Ubuntu packages on the target device:

    $ sudo apt install musl:i386=1.1.19-1 musl:amd64=1.1.19-1

    Make sure to install the correct version. As of this writing Ubuntu 18.04 (Bionic) ships musl libc 1.1.19 also used to build the toolchain.

  3. Compile with <TARGET>-gcc e.g., x86_64-linux-musl-gcc, deploy, and run.

Supported Targets

  1. i686-linux-musl
  2. x86_64-linux-musl
  3. x86_64-linux-muslx32
  4. arm-linux-musleabi
  5. arm-linux-musleabihf
  6. aarch64-linux-musl
  7. mips-linux-musl
  8. mips64-linux-musl
  9. powerpc-linux-musl
  10. powerpc64-linux-musl

Other targets or variants can be added easily by extending the hash OPTION_TARGET_MAP in the formula as long as musl-cross-make and musl libc also support them.

About

Homebrew formula to brew Linux cross compilers based on GCC 8 and musl libc

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages