Sign inSign up

martadinata666/rust

By martadinata666

•Updated about 3 years ago

development image for rust application

Image
0

4.5K

martadinata666/rust repository overview

⁠Rust

pipeline status

⁠Supported tag

  • latest
  • 1.xx
⁠Notable change
  • Rust 1.70.0 support triplet GNU and MUSL ootb

⁠Build info

This image come from martadinata666/debian⁠ that based on debian:sid adding :

  • sccache support
  • GNU-GCC X86_64 and aarch64.
  • MUSL-GCC x86_64 and aarch64
  • rust target for musl x86_64 and aarch64
  • statically prebuild openssl reduce openssl-sys headache
⁠Predefined env
CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
RUSTUP_HOME=$HOME/rustup
CARGO_HOME=$HOME/cargo
CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER="x86_64-linux-gnu-gcc"
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER="aarch64-linux-gnu-gcc"
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER="arm-linux-gnueabihf-gcc" 
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER="aarch64-linux-musl-gcc"
CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER="x86_64-linux-musl-gcc"
PKG_CONFIG_ALLOW_CROSS=true
PKG_CONFIG_ALL_STATIC=true
OPENSSL_STATIC=true
X86_64_UNKNOWN_LINUX_GNU_OPENSSL_DIR=/opt/lib/openssl-static-gnu
X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR=/opt/lib/openssl-static-gnu/lib64
X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR=/opt/lib/openssl-static-gnu/include
X86_64_UNKNOWN_LINUX_MUSL_OPENSSL_DIR=/opt/lib/openssl-static-musl
X86_64_UNKNOWN_LINUX_MUSL_OPENSSL_LIB_DIR=/opt/lib/openssl-static-musl/lib64
X86_64_UNKNOWN_LINUX_MUSL_OPENSSL_INCLUDE_DIR=/opt/lib/openssl-static-musl/include
AARCH64_UNKNOWN_LINUX_MUSL_OPENSSL_DIR=/opt/lib/openssl-static-aarch64-musl
AARCH64_UNKNOWN_LINUX_MUSL_OPENSSL_LIB_DIR=/opt/lib/openssl-static-aarch64-musl/lib
AARCH64_UNKNOWN_LINUX_MUSL_OPENSSL_INCLUDE_DIR=/opt/lib/openssl-static-aarch64-musl/include
AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_DIR=/opt/lib/openssl-static-aarch64-gnu
AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR=/opt/lib/openssl-static-aarch64-gnu/lib
AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR=/opt/lib/openssl-static-aarch64-gnu/include
PATH="/opt/aarch64-linux-musl-cross/:/opt/aarch64-linux-musl-cross/bin/:/opt/x86_64-linux-musl-cross/:/opt/x86_64-linux-musl-cross/bin/:$HOME/cargo/bin/:/opt/lib/openssl-static/bin/:$PATH"
RUSTUP_VERSION=1.26.0 \
RUST_VERSION=1.69.0
⁠Aarch64 musl build (in my exp this due to openssl-sys), go to rustls if you can or build to gnu target
  • cpu model 'getauxval' error:
linux-musl/lib/libcompiler_builtins-50d8ea67cf3a12a5.rlib(cpu_model.o): in function `init_have_lse_atomics':
          /cargo/registry/src/index.crates.io-6f17d22bba15001f/compiler_builtins-0.1.87/./lib/builtins/cpu_model.c:829: undefined reference to `getauxval'
          collect2: error: ld returned 1 exit status

Workaround:

# Either of this will work, some don't unreliable error output
## https://github.com/rust-lang/rust/issues/89626
## https://github.com/rust-lang/rust/pull/83655
CFLAGS=-mno-outline-atomics cargo build --release --target aarch64-unknown-linux-musl
RUSTFLAGS="-Clinker=rust-lld" cargo build --release --target aarch64-unknown-linux-musl
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS: "-Zgcc-ld=lld"

More details:

Tag summary

Content type

Image

Digest

sha256:37c8a59e4…

Size

1.7 GB

Last updated

about 3 years ago

docker pull martadinata666/rust