forked from rust-cross/rust-musl-cross
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
There are issues around time64 and similar types. See: - cross-rs/cross#478 - rust-lang/libc#1848
- Loading branch information
Showing
4 changed files
with
87 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,19 @@ | ||
#!/bin/bash | ||
set -ex | ||
|
||
# x86_64-unknown-linux-musl | ||
docker build -t messense/rust-musl-cross:x86_64-musl . | ||
# arm-unknown-linux-musleabi | ||
docker build --build-arg TARGET=arm-unknown-linux-musleabi --build-arg OPENSSL_ARCH=linux-generic32 -t messense/rust-musl-cross:arm-musleabi . | ||
docker build --build-arg TARGET=arm-unknown-linux-musleabi --build-arg OPENSSL_ARCH=linux-generic32 --build-arg RUST_MUSL_MAKE_CONFIG=config.mak.32 -t messense/rust-musl-cross:arm-musleabi . | ||
# arm-unknown-linux-musleabihf | ||
docker build --build-arg TARGET=arm-unknown-linux-musleabihf --build-arg OPENSSL_ARCH=linux-generic32 -t messense/rust-musl-cross:arm-musleabihf . | ||
docker build --build-arg TARGET=arm-unknown-linux-musleabihf --build-arg OPENSSL_ARCH=linux-generic32 --build-arg RUST_MUSL_MAKE_CONFIG=config.mak.32 -t messense/rust-musl-cross:arm-musleabihf . | ||
# armv5te-unknown-linux-musleabi | ||
docker build --build-arg TARGET=armv5te-unknown-linux-musleabi --build-arg OPENSSL_ARCH=linux-generic32 -t messense/rust-musl-cross:arm-musleabi . | ||
docker build --build-arg TARGET=armv5te-unknown-linux-musleabi --build-arg OPENSSL_ARCH=linux-generic32 --build-arg RUST_MUSL_MAKE_CONFIG=config.mak.32 -t messense/rust-musl-cross:armv5te-musleabi . | ||
# armv7-unknown-linux-musleabihf | ||
docker build --build-arg TARGET=armv7-unknown-linux-musleabihf --build-arg OPENSSL_ARCH=linux-generic32 -t messense/rust-musl-cross:armv7-musleabihf . | ||
docker build --build-arg TARGET=armv7-unknown-linux-musleabihf --build-arg OPENSSL_ARCH=linux-generic32 --build-arg RUST_MUSL_MAKE_CONFIG=config.mak.32 -t messense/rust-musl-cross:armv7-musleabihf . | ||
# i686-unknown-linux-musl | ||
docker build --build-arg TARGET=i686-unknown-linux-musl --build-arg OPENSSL_ARCH=linux-generic32 -t messense/rust-musl-cross:i686-musl . | ||
docker build --build-arg TARGET=i686-unknown-linux-musl --build-arg OPENSSL_ARCH=linux-generic32 --build-arg RUST_MUSL_MAKE_CONFIG=config.mak.32 -t messense/rust-musl-cross:i686-musl . | ||
# mips-unknown-linux-musl | ||
docker build --build-arg TARGET=mips-unknown-linux-musl --build-arg OPENSSL_ARCH=linux-mips32 -t messense/rust-musl-cross:mips-musl . | ||
docker build --build-arg TARGET=mips-unknown-linux-musl --build-arg OPENSSL_ARCH=linux-mips32 --build-arg RUST_MUSL_MAKE_CONFIG=config.mak.32 -t messense/rust-musl-cross:mips-musl . | ||
# mipsel-unknown-linux-musl | ||
docker build --build-arg TARGET=mipsel-unknown-linux-musl --build-arg OPENSSL_ARCH=linux-mips32 -t messense/rust-musl-cross:mipsel-musl . | ||
docker build --build-arg TARGET=mipsel-unknown-linux-musl --build-arg OPENSSL_ARCH=linux-mips32 --build-arg RUST_MUSL_MAKE_CONFIG=config.mak.32 -t messense/rust-musl-cross:mipsel-musl . |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
# By default, cross compilers are installed to ./output under the top-level | ||
# musl-cross-make directory and can later be moved wherever you want them. | ||
# To install directly to a specific location, set it here. Multiple targets | ||
# can safely be installed in the same location. Some examples: | ||
|
||
OUTPUT = /usr/local/musl | ||
|
||
# By default, latest supported release versions of musl and the toolchain | ||
# components are used. You can override those here, but the version selected | ||
# must be supported (under hashes/ and patches/) to work. For musl, you | ||
# can use "git-refname" (e.g. git-master) instead of a release. Setting a | ||
# blank version for gmp, mpc, mpfr and isl will suppress download and | ||
# in-tree build of these libraries and instead depend on pre-installed | ||
# libraries when available (isl is optional and not set by default). | ||
# Setting a blank version for linux will suppress installation of kernel | ||
# headers, which are not needed unless compiling programs that use them. | ||
|
||
# BINUTILS_VER = | ||
# GCC_VER = | ||
|
||
# https://github.com/rust-embedded/cross/issues/478 | ||
# https://github.com/rust-lang/libc/issues/1848 | ||
MUSL_VER = 1.1.24 | ||
|
||
# GMP_VER = | ||
# MPC_VER = | ||
# MPFR_VER = | ||
# ISL_VER = | ||
# LINUX_VER = | ||
|
||
# By default source archives are downloaded with wget. curl is also an option. | ||
|
||
# DL_CMD = wget -c -O | ||
DL_CMD = curl -C - -L -o | ||
|
||
# Something like the following can be used to produce a static-linked | ||
# toolchain that's deployable to any system with matching arch, using | ||
# an existing musl-targeted cross compiler. This only # works if the | ||
# system you build on can natively (or via binfmt_misc and # qemu) run | ||
# binaries produced by the existing toolchain (in this example, i486). | ||
|
||
# COMMON_CONFIG += CC="i486-linux-musl-gcc -static --static" CXX="i486-linux-musl-g++ -static --static" | ||
|
||
# Recommended options for smaller build for deploying binaries: | ||
|
||
COMMON_CONFIG += CFLAGS="-g0 -Os" CXXFLAGS="-g0 -Os" LDFLAGS="-s" | ||
|
||
# Recommended options for faster/simpler build: | ||
|
||
COMMON_CONFIG += --disable-nls | ||
GCC_CONFIG += --enable-languages=c,c++ | ||
GCC_CONFIG += --disable-libquadmath --disable-decimal-float | ||
GCC_CONFIG += --disable-multilib | ||
|
||
# You can keep the local build path out of your toolchain binaries and | ||
# target libraries with the following, but then gdb needs to be told | ||
# where to look for source files. | ||
|
||
COMMON_CONFIG += --with-debug-prefix-map=$(CURDIR)= |