-
Notifications
You must be signed in to change notification settings - Fork 107
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
122 additions
and
1 deletion.
There are no files selected for viewing
39 changes: 39 additions & 0 deletions
39
src/azurelinux/3.0/net10.0/cross/loongarch64-musl/Dockerfile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
ARG ROOTFS_DIR=/crossrootfs/loongarch64 | ||
|
||
FROM mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-crossdeps-builder-amd64 AS builder | ||
ARG ROOTFS_DIR | ||
|
||
# temp | ||
RUN rm -rf /scripts && git clone --depth 1 --single-branch https://github.com/am11/arcade -b patch-14 /scripts | ||
|
||
RUN /scripts/eng/common/cross/build-rootfs.sh loongarch64 alpineedge --skipunmount --skipsigcheck | ||
|
||
RUN TARGET_TRIPLE="loongarch64-alpine-linux-musl" && \ | ||
cmake -S llvm-project.src/runtimes -B runtimes \ | ||
-DCMAKE_BUILD_TYPE=Release \ | ||
-DCMAKE_ASM_COMPILER=clang \ | ||
-DCMAKE_C_COMPILER=clang \ | ||
-DCMAKE_CXX_COMPILER=clang++ \ | ||
-DCMAKE_ASM_COMPILER_TARGET="$TARGET_TRIPLE" \ | ||
-DCMAKE_C_COMPILER_TARGET="$TARGET_TRIPLE" \ | ||
-DCMAKE_CXX_COMPILER_TARGET="$TARGET_TRIPLE" \ | ||
# We're going to link the static libraries we build here into PIC images, so build the static libraries as PIC. | ||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \ | ||
-DCMAKE_SYSROOT="$ROOTFS_DIR" \ | ||
# Specify linker to use for exes directly for CMake toolchain detection | ||
-DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" \ | ||
# Don't search for tools in the sysroot as we're cross-compiling | ||
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="NEVER" \ | ||
-DLLVM_USE_LINKER=lld \ | ||
-DLLVM_ENABLE_RUNTIMES="libcxx" \ | ||
-DLIBCXX_ENABLE_SHARED=OFF \ | ||
-DLIBCXX_HAS_MUSL_LIBC=ON \ | ||
-DLIBCXX_CXX_ABI=libstdc++ \ | ||
-DLIBCXX_CXX_ABI_INCLUDE_PATHS="$ROOTFS_DIR/usr/include/c++/14.2.0/;$ROOTFS_DIR/usr/include/c++/14.2.0/$TARGET_TRIPLE" && \ | ||
cmake --build runtimes -j $(getconf _NPROCESSORS_ONLN) && \ | ||
cmake --install runtimes --prefix "$ROOTFS_DIR/usr" | ||
|
||
FROM mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-crossdeps-llvm-amd64 | ||
ARG ROOTFS_DIR | ||
|
||
COPY --from=builder $ROOTFS_DIR $ROOTFS_DIR |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
ARG ROOTFS_DIR=/crossrootfs/loongarch64 | ||
|
||
FROM mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-crossdeps-builder-amd64 AS builder | ||
ARG ROOTFS_DIR | ||
|
||
# Install the latest debootstrap | ||
RUN tdnf remove -y debootstrap && \ | ||
curl -fsL -o debootstrap.tar.gz https://deb.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.138.tar.gz && \ | ||
echo "e8e8b72388b6e5ced65d1b5e69ce0b9e13f4813da0c328a52add57ee5f79430a debootstrap.tar.gz" | sha256sum -c - && \ | ||
tar xzf debootstrap.tar.gz -C / && \ | ||
ln -s /debootstrap/debootstrap -t /usr/local/bin && \ | ||
rm -f debootstrap.tar.gz | ||
|
||
# temp | ||
RUN rm -rf /scripts && git clone --depth 1 --single-branch https://github.com/am11/arcade -b patch-14 /scripts | ||
|
||
RUN /scripts/eng/common/cross/build-rootfs.sh loongarch64 sid --skipunmount --skipsigcheck | ||
|
||
RUN TARGET_TRIPLE="loongarch64-linux-gnu" && \ | ||
CLANG_MAJOR_VERSION=$(clang --version | grep -oP "(?<=version )\d+") && \ | ||
cmake -S llvm-project.src/runtimes -B runtimes \ | ||
-DCMAKE_BUILD_TYPE=Release \ | ||
-DCMAKE_ASM_COMPILER=clang \ | ||
-DCMAKE_C_COMPILER=clang \ | ||
-DCMAKE_CXX_COMPILER=clang++ \ | ||
-DCMAKE_ASM_COMPILER_TARGET="$TARGET_TRIPLE" \ | ||
-DCMAKE_C_COMPILER_TARGET="$TARGET_TRIPLE" \ | ||
-DCMAKE_CXX_COMPILER_TARGET="$TARGET_TRIPLE" \ | ||
# We're going to link the static libraries we build here into PIC images, so build the static libraries as PIC. | ||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \ | ||
-DCMAKE_SYSROOT="$ROOTFS_DIR" \ | ||
# Specify linker to use for exes directly for CMake toolchain detection | ||
-DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" \ | ||
# Don't search for tools in the sysroot as we're cross-compiling | ||
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="NEVER" \ | ||
-DLLVM_USE_LINKER=lld \ | ||
-DLLVM_ENABLE_RUNTIMES="libcxx;compiler-rt" \ | ||
-DLIBCXX_ENABLE_SHARED=OFF \ | ||
-DLIBCXX_CXX_ABI=libstdc++ \ | ||
-DLIBCXX_CXX_ABI_INCLUDE_PATHS="$ROOTFS_DIR/usr/include/c++/13/;$ROOTFS_DIR/usr/include/$TARGET_TRIPLE" \ | ||
-DCOMPILER_RT_CXX_LIBRARY="libcxx" \ | ||
-DCOMPILER_RT_STATIC_CXX_LIBRARY=ON \ | ||
-DCOMPILER_RT_BUILD_SANITIZERS=OFF \ | ||
-DCOMPILER_RT_BUILD_MEMPROF=OFF \ | ||
# The libfuzzer build in LLVM doesn't correctly forward the required CMake properties to the "fuzzed libc++" build | ||
# so skip it here. | ||
-DCOMPILER_RT_BUILD_LIBFUZZER=OFF \ | ||
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \ | ||
-DCOMPILER_RT_INSTALL_PATH="/usr/local/lib/clang/$CLANG_MAJOR_VERSION" && \ | ||
cmake --build runtimes -j $(getconf _NPROCESSORS_ONLN) && \ | ||
cmake --install runtimes --prefix "$ROOTFS_DIR/usr" | ||
|
||
FROM mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-crossdeps-llvm-amd64 | ||
ARG ROOTFS_DIR | ||
|
||
COPY --from=builder /usr/local/lib/clang /usr/local/lib/clang/ | ||
COPY --from=builder $ROOTFS_DIR $ROOTFS_DIR |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters