Skip to content

Cannot build an (even the simplest) app on ARMv6 #94

@nicolaspernoud

Description

@nicolaspernoud

Hello,

Using that Dockerfile :

FROM rust:1.68
RUN rustup target add arm-unknown-linux-musleabihf
RUN apt update && apt install -y musl-tools musl-dev binutils-arm-linux-gnueabihf gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu libcap2-bin
RUN ln -s /usr/bin/arm-linux-gnueabihf-gcc /usr/bin/arm-linux-musleabihf-gcc
RUN ln -s /usr/bin/aarch64-linux-gnu-gcc /usr/bin/aarch64-linux-musl-gcc

WORKDIR /build

COPY . .

RUN cargo build --release --target arm-unknown-linux-musleabihf

Works for building the Mimalloc Rust crate directly, but not when building the simplest example application with :

  • Cargo.toml :
[package]
name = "mimalloc_test"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
mimalloc = "0.1"
  • main.rs :
use mimalloc::MiMalloc;

#[global_allocator]
static GLOBAL: MiMalloc = MiMalloc;

fn main() {
    let _s = String::from("TEST");
    println!("Hello, world!");
}

The error is then :

 > [8/8] RUN cargo build --release --target arm-unknown-linux-musleabihf:                                                      
#0 0.662     Updating crates.io index                                                                                          
#0 60.34  Downloading crates ...                                                                                               
#0 60.53   Downloaded mimalloc v0.1.36                                                                                         
#0 60.54   Downloaded cc v1.0.79                                                                                               
#0 60.55   Downloaded libc v0.2.141
#0 60.61   Downloaded libmimalloc-sys v0.1.32
#0 60.73    Compiling cc v1.0.79
#0 60.73    Compiling libc v0.2.141
#0 61.49    Compiling libmimalloc-sys v0.1.32
#0 64.25    Compiling mimalloc v0.1.36
#0 64.37    Compiling mimalloc_test v0.1.0 (/build)
#0 64.53 error: linking with `cc` failed: exit status: 1
#0 64.53   |
#0 64.53   = note: LC_ALL="C" PATH="/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/usr/local/cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/self-contained/crt1.o" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/self-contained/crti.o" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/self-contained/crtbegin.o" "/tmp/rustcDVTz23/symbols.o" "/build/target/arm-unknown-linux-musleabihf/release/deps/mimalloc_test-1028ca129bacc567.mimalloc_test.ec68869b-cgu.0.rcgu.o" "/build/target/arm-unknown-linux-musleabihf/release/deps/mimalloc_test-1028ca129bacc567.mimalloc_test.ec68869b-cgu.1.rcgu.o" "/build/target/arm-unknown-linux-musleabihf/release/deps/mimalloc_test-1028ca129bacc567.mimalloc_test.ec68869b-cgu.2.rcgu.o" "/build/target/arm-unknown-linux-musleabihf/release/deps/mimalloc_test-1028ca129bacc567.mimalloc_test.ec68869b-cgu.3.rcgu.o" "/build/target/arm-unknown-linux-musleabihf/release/deps/mimalloc_test-1028ca129bacc567.mimalloc_test.ec68869b-cgu.4.rcgu.o" "/build/target/arm-unknown-linux-musleabihf/release/deps/mimalloc_test-1028ca129bacc567.mimalloc_test.ec68869b-cgu.5.rcgu.o" "/build/target/arm-unknown-linux-musleabihf/release/deps/mimalloc_test-1028ca129bacc567.mimalloc_test.ec68869b-cgu.6.rcgu.o" "/build/target/arm-unknown-linux-musleabihf/release/deps/mimalloc_test-1028ca129bacc567.mimalloc_test.ec68869b-cgu.7.rcgu.o" "/build/target/arm-unknown-linux-musleabihf/release/deps/mimalloc_test-1028ca129bacc567.5f9bw7r2pmjbtmj8.rcgu.o" "-Wl,--as-needed" "-L" "/build/target/arm-unknown-linux-musleabihf/release/deps" "-L" "/build/target/release/deps" "-L" "/build/target/arm-unknown-linux-musleabihf/release/build/libmimalloc-sys-b7fd4f6c2fed1648/out" "-L" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib" "-Wl,-Bstatic" "/build/target/arm-unknown-linux-musleabihf/release/deps/libmimalloc-42b3f935fd55b22f.rlib" "/build/target/arm-unknown-linux-musleabihf/release/deps/liblibmimalloc_sys-f583ddf93b4852e5.rlib" "/build/target/arm-unknown-linux-musleabihf/release/deps/liblibc-8cbac95de92d3f8a.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/libstd-156f4170e33b8df4.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/libpanic_unwind-e270422b4fca28e3.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/libobject-49cd4b382f505f9d.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/libmemchr-eed355165f4866e0.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/libaddr2line-7e4a417a98d3e1fb.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/libgimli-19ab14456ef67ec3.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/librustc_demangle-94668fbad859bad0.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/libstd_detect-ddbf1f9293a44a9c.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/libhashbrown-fac09f5d7f857f6b.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/libminiz_oxide-f840348d8fb3422c.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/libadler-f7fa56e66eb13c9f.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/librustc_std_workspace_alloc-9cb6dfec2a561167.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/libunwind-b9f2e553466d47cf.rlib" "-lunwind" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/libcfg_if-fc80282540c648fb.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/liblibc-9f5698308f331dfe.rlib" "-lc" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/liballoc-5cb9b7f1b32dd35b.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/librustc_std_workspace_core-b2b48d67f7264a3c.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/libcore-21361f74a01c8c9e.rlib" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/libcompiler_builtins-eb461ae3a10c4720.rlib" "-Wl,-Bdynamic" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-nostartfiles" "-L" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib" "-L" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/self-contained" "-o" "/build/target/arm-unknown-linux-musleabihf/release/deps/mimalloc_test-1028ca129bacc567" "-Wl,--gc-sections" "-static" "-no-pie" "-Wl,-zrelro,-znow" "-Wl,-O1" "-nodefaultlibs" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/self-contained/crtend.o" "/usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/self-contained/crtn.o"
#0 64.53   = note: /usr/bin/ld: /usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/self-contained/crt1.o: relocations in generic ELF (EM: 40)
#0 64.53           /usr/bin/ld: /usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/self-contained/crt1.o: relocations in generic ELF (EM: 40)
#0 64.53           /usr/bin/ld: /usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/self-contained/crt1.o: relocations in generic ELF (EM: 40)
#0 64.53           /usr/bin/ld: /usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/self-contained/crt1.o: relocations in generic ELF (EM: 40)
#0 64.53           /usr/bin/ld: /usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/self-contained/crt1.o: relocations in generic ELF (EM: 40)
#0 64.53           /usr/bin/ld: /usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/self-contained/crt1.o: relocations in generic ELF (EM: 40)
#0 64.53           /usr/bin/ld: /usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/self-contained/crt1.o: relocations in generic ELF (EM: 40)
#0 64.53           /usr/bin/ld: /usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/self-contained/crt1.o: relocations in generic ELF (EM: 40)
#0 64.53           /usr/bin/ld: /usr/local/rustup/toolchains/1.68.2-x86_64-unknown-linux-gnu/lib/rustlib/arm-unknown-linux-musleabihf/lib/self-contained/crt1.o: error adding symbols: file in wrong format
#0 64.53           collect2: error: ld returned 1 exit status
#0 64.53           
#0 64.53 
#0 64.53 error: could not compile `mimalloc_test` due to previous error
------
Dockerfile:11
--------------------
   9 |     COPY . .
  10 |     
  11 | >>> RUN cargo build --release --target arm-unknown-linux-musleabihf
--------------------
ERROR: failed to solve: process "/bin/sh -c cargo build --release --target arm-unknown-linux-musleabihf" did not complete successfully: exit code: 101

There is another issue on mimalloc related : microsoft/mimalloc#719 .

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions