diff --git a/packages/glibc/Containerfile b/packages/glibc/Containerfile index d8f0625..c03b6a3 100644 --- a/packages/glibc/Containerfile +++ b/packages/glibc/Containerfile @@ -29,6 +29,9 @@ COPY --from=stagex/python . / RUN tar -xzf ${SRC_FILE} WORKDIR glibc-${VERSION} COPY --from=stagex/linux-headers /usr/include /usr/include/x86_64-linux-gnu +ENV _TRIPLE=x86_64-linux-gnu +ENV _LIBDIR=/usr/lib/${_TRIPLE} +ENV _INCDIR=/usr/include/${_TRIPLE} RUN --network=none <<-EOF set -eux @@ -36,6 +39,8 @@ RUN --network=none <<-EOF mkdir build cd build + echo "slibdir=${_LIBDIR}" >> configparams + echo "rtlddir=${_LIBDIR}" >> configparams ../configure \ --build=${ARCH}-linux-musl \ --host=${ARCH}-linux-musl \ @@ -43,10 +48,11 @@ RUN --network=none <<-EOF --sysconfdir=/etc \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ - --libdir=/usr/lib/x86_64-linux-gnu \ - --includedir=/usr/include/x86_64-linux-gnu \ + --libdir=${_LIBDIR} \ + --libexecdir=${_LIBDIR} \ + --includedir=${_INCDIR} \ --localstatedir=/var \ - --with-headers=/usr/include/x86_64-linux-gnu \ + --with-headers=${_INCDIR} \ --disable-nls \ --disable-werror \ --enable-debug @@ -58,9 +64,9 @@ RUN --network=none <<-EOF set -eux cd build make DESTDIR=/rootfs install - mv /rootfs/lib64/* /rootfs/usr/lib/x86_64-linux-gnu/ mv /rootfs/sbin/* /rootfs/usr/bin - rmdir /rootfs/lib64 /rootfs/sbin + mv /rootfs/lib64 /rootfs/usr/lib64-pre-move + rmdir /rootfs/sbin # mkdir -p /rootfs/usr/bin /rootfs/usr/lib # rm -rf /rootfs/lib # ln -sf /usr/lib/ld-musl-${ARCH}.so.1 /rootfs/usr/bin/ldd @@ -69,5 +75,6 @@ RUN --network=none <<-EOF # ln -sf /usr/lib/ld-musl-${ARCH}.so.1 /rootfs/usr/lib/libc.so EOF -FROM stagex/filesystem AS package +FROM scratch AS package +COPY --from=stagex/filesystem . / COPY --from=install /rootfs/. / diff --git a/packages/rust-target-x86_64-gnu/Containerfile b/packages/rust-target-x86_64-gnu/Containerfile new file mode 100644 index 0000000..eeacdbc --- /dev/null +++ b/packages/rust-target-x86_64-gnu/Containerfile @@ -0,0 +1,105 @@ +FROM scratch AS base +ARG VERSION=1.76.0 +ENV SRC_SITE=https://static.rust-lang.org/dist +ENV SRC_HASH=9e5cff033a7f0d2266818982ad90e4d3e4ef8f8ee1715776c6e25073a136c021 + +FROM base AS fetch +COPY --from=stagex/busybox . / +ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE}/rustc-${VERSION}-src.tar.gz . +#ADD rust rustc-${VERSION}-src + +FROM fetch AS build +COPY --from=stagex/binutils . / +COPY --from=stagex/bash . / +COPY --from=stagex/make . / +COPY --from=stagex/cmake . / +COPY --from=stagex/python . / +COPY --from=stagex/py-setuptools . / +COPY --from=stagex/zlib . / +COPY --from=stagex/pkgconf . / +COPY --from=stagex/openssl . / +COPY --from=stagex/perl . / +COPY --from=stagex/gcc . / +COPY --from=stagex/libunwind . / +COPY --from=stagex/musl . / +COPY --from=stagex/rust . / + +COPY --from=stagex/glibc . / + +COPY --from=stagex/curl . / +COPY --from=stagex/ca-certificates . / + +COPY --from=stagex/llvm16 . / +RUN mkdir -p $HOME/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ + +#ADD no-default-static.patch . +ADD glibc.patch . +RUN <, target: TargetSelection, stage: u32, car + + // Help the libc crate compile by assisting it in finding various + // sysroot native libraries. +- if target.contains("musl") { ++ //if target.contains("musl") { + if let Some(p) = builder.musl_libdir(target) { + let root = format!("native={}", p.to_str().unwrap()); + cargo.rustflag("-L").rustflag(&root); + } +- } ++ //} + + if target.contains("-wasi") { + if let Some(p) = builder.wasi_root(target) {