Closed 0xalex88 closed 9 months ago
I'm trying to build from arm mac to amd64, this is my Dockerfile
FROM --platform=$BUILDPLATFORM tonistiigi/xx AS xx FROM --platform=$BUILDPLATFORM rust:1.72-alpine AS builder COPY --from=xx / / RUN apk add --update --no-cache clang lld ARG TARGETPLATFORM RUN xx-apk add --update --no-cache pkgconf openssl-dev openssl-libs-static xx-cxx-essentials xx-c-essentials WORKDIR /app COPY . . RUN xx-cargo build --release --target-dir ./build && \ xx-verify ./build/$(xx-cargo --print-target-triple)/release/myapp
however I'm getting error
8.722 error: linking with `cc` failed: exit status: 1 8.722 | 8.722 = note: LC_ALL="C" PATH="/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/bin:/usr/local/cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-Wl,--version-script=/tmp/rustcrnHWhH/list" "-Wl,--no-undefined-version" "/tmp/rustcrnHWhH/symbols.o" "/app/./build/release/deps/rustversion-45caf256a5b1157d.rustversion.b42d4fc6a9e585a1-cgu.00.rcgu.o" "/app/./build/release/deps/rustversion-45caf256a5b1157d.rustversion.b42d4fc6a9e585a1-cgu.01.rcgu.o" "/app/./build/release/deps/rustversion-45caf256a5b1157d.rustversion.b42d4fc6a9e585a1-cgu.02.rcgu.o" "/app/./build/release/deps/rustversion-45caf256a5b1157d.rustversion.b42d4fc6a9e585a1-cgu.03.rcgu.o" "/app/./build/release/deps/rustversion-45caf256a5b1157d.rustversion.b42d4fc6a9e585a1-cgu.04.rcgu.o" "/app/./build/release/deps/rustversion-45caf256a5b1157d.rustversion.b42d4fc6a9e585a1-cgu.05.rcgu.o" "/app/./build/release/deps/rustversion-45caf256a5b1157d.rustversion.b42d4fc6a9e585a1-cgu.06.rcgu.o" "/app/./build/release/deps/rustversion-45caf256a5b1157d.rustversion.b42d4fc6a9e585a1-cgu.07.rcgu.o" "/app/./build/release/deps/rustversion-45caf256a5b1157d.rustversion.b42d4fc6a9e585a1-cgu.08.rcgu.o" "/app/./build/release/deps/rustversion-45caf256a5b1157d.rustversion.b42d4fc6a9e585a1-cgu.09.rcgu.o" "/app/./build/release/deps/rustversion-45caf256a5b1157d.v07b23alknc5pwk.rcgu.rmeta" "/app/./build/release/deps/rustversion-45caf256a5b1157d.1g4q1izjb5srsc1x.rcgu.o" "-Wl,--as-needed" "-L" "/app/./build/release/deps" "-L" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib" "-Wl,-Bstatic" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libproc_macro-79235d7eda7d2297.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libstd-2ad8dcade37f4a90.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libpanic_unwind-979572faa2a17916.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libobject-93508898bcfc3702.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libmemchr-ab66446b81463d74.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libaddr2line-6083b516af549008.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libgimli-2389476f2626efb6.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/librustc_demangle-97faebafc321e964.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libstd_detect-e8ac812a6dab364e.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libhashbrown-dde0af57b0f2901e.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/librustc_std_workspace_alloc-8df52c7f042aeffd.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libminiz_oxide-8789ebd13f9e0a12.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libadler-cb238a2d7c01ef75.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libunwind-0ebf8faa9e79b9cc.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libcfg_if-73698e09b48b4cfd.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/liblibc-3f7bca623c41b752.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/liballoc-11ab57860e7dd426.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/librustc_std_workspace_core-7ffd2525fa6ce213.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libcore-e91e1df47a197349.rlib" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libcompiler_builtins-5b084770a5817f4e.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib" "-o" "/app/./build/release/deps/librustversion-45caf256a5b1157d.so" "-Wl,--gc-sections" "-shared" "-Wl,-z,relro,-z,now" "-nodefaultlibs" 8.722 = note: /usr/lib/gcc/aarch64-alpine-linux-musl/12.2.1/../../../../aarch64-alpine-linux-musl/bin/ld: cannot find crti.o: No such file or directory 8.722 collect2: error: ld returned 1 exit status
it seems it's not finding the crti.o which should be installed by xx-c-essentials since it should be in the musl-dev package right?
Update: a quick find shows two files:
/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/self-contained/crti.o /x86_64-alpine-linux-musl/usr/lib/crti.o
Found the problem, had to move musl-dev at the top (non xx-apk one)
I'm trying to build from arm mac to amd64, this is my Dockerfile
however I'm getting error
it seems it's not finding the crti.o which should be installed by xx-c-essentials since it should be in the musl-dev package right?
Update: a quick find shows two files:
/usr/local/rustup/toolchains/1.72.0-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/self-contained/crti.o /x86_64-alpine-linux-musl/usr/lib/crti.o