Cross compile on Alpine Linux targeting debian : undefined reference to `__res_init'

Viewed 1812

I am trying to setup CI in GitLab.

  • Building OS: Alpine Linux Container, actually it is Docker-In-Docker image. (see Dockerfile below)
  • Targeting OS: x86_64-unknown-linux-gnu
  • Building Tool: cross https://github.com/rust-embedded/cross
  • Error: undefined reference to `__res_init'

Full log : https://github.com/rust-embedded/cross/files/4894721/build.log

Here is Dockerfile of Alpine running cross

FROM docker:stable-dind


RUN apk add --no-cache ca-certificates gcc mingw-w64-gcc libc-dev musl-dev

# Copied from https://github.com/rust-lang/docker-rust/blob/6314c6bc3d54d5b9284458c6a9061ef5766c9607/1.44.1/alpine3.12/Dockerfile
ENV RUSTUP_HOME=/usr/local/rustup \
    CARGO_HOME=/usr/local/cargo \
    PATH=/usr/local/cargo/bin:$PATH \
    RUST_VERSION=1.44.1

RUN set -eux; \
    url="https://static.rust-lang.org/rustup/archive/1.21.1/x86_64-unknown-linux-musl/rustup-init"; \
    wget "$url"; \
    echo "0c86d467982bdf5c4b8d844bf8c3f7fc602cc4ac30b29262b8941d6d8b363d7e *rustup-init" | sha256sum -c -; \
    chmod +x rustup-init; \
    ./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION; \
    rm rustup-init; \
    chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \
    rustup --version; \
    cargo --version; \
    rustc --version;

RUN cargo install cross
RUN rustup target add x86_64-pc-windows-gnu
RUN rustup target add x86_64-unknown-linux-gnu

ENV CROSS_DOCKER_IN_DOCKER=true


RUN mkdir ~/.cargo/ && \
    printf "\n[target.x86_64-pc-windows-gnu]" >> ~/.cargo/config  && \
    printf "\nlinker = \"/usr/bin/x86_64-w64-mingw32-gcc\"" >> ~/.cargo/config 


0 Answers
Related