From 81c39dda6adaa455f89330baa91927fa91524e9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Fri, 5 Nov 2021 14:36:09 +0200 Subject: [PATCH] Build libunwind before mingw-w64-libraries When --unwindlib=libunwind is implicit, we need to build libunwind to have a complete working C compiler too. Currently this is worked around by initially creating a dummy, empty libunwind.a, but with the current version of libcxx/libunwind, we can get rid of that workaround if we build it as soon as possible. --- Dockerfile | 4 ++-- Dockerfile.dev | 8 ++++---- build-all.sh | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index d30797c..8a7d482 100644 --- a/Dockerfile +++ b/Dockerfile @@ -45,7 +45,7 @@ ARG TOOLCHAIN_ARCHS="i686 x86_64 armv7 aarch64" ARG DEFAULT_CRT=ucrt # Build everything that uses the llvm monorepo. We need to build the mingw runtime before the compiler-rt/libunwind/libcxxabi/libcxx runtimes. -COPY build-llvm.sh build-lldb-mi.sh strip-llvm.sh install-wrappers.sh build-mingw-w64.sh build-mingw-w64-tools.sh build-compiler-rt.sh build-mingw-w64-libraries.sh build-libcxx.sh build-openmp.sh ./ +COPY build-llvm.sh build-lldb-mi.sh strip-llvm.sh install-wrappers.sh build-mingw-w64.sh build-mingw-w64-tools.sh build-compiler-rt.sh build-libcxx.sh build-mingw-w64-libraries.sh build-openmp.sh ./ COPY wrappers/*.sh wrappers/*.c wrappers/*.h ./wrappers/ RUN ./build-llvm.sh $TOOLCHAIN_PREFIX && \ ./build-lldb-mi.sh $TOOLCHAIN_PREFIX && \ @@ -54,8 +54,8 @@ RUN ./build-llvm.sh $TOOLCHAIN_PREFIX && \ ./build-mingw-w64.sh $TOOLCHAIN_PREFIX --with-default-msvcrt=$DEFAULT_CRT && \ ./build-mingw-w64-tools.sh $TOOLCHAIN_PREFIX && \ ./build-compiler-rt.sh $TOOLCHAIN_PREFIX && \ - ./build-mingw-w64-libraries.sh $TOOLCHAIN_PREFIX && \ ./build-libcxx.sh $TOOLCHAIN_PREFIX && \ + ./build-mingw-w64-libraries.sh $TOOLCHAIN_PREFIX && \ ./build-compiler-rt.sh $TOOLCHAIN_PREFIX --build-sanitizers && \ ./build-openmp.sh $TOOLCHAIN_PREFIX && \ rm -rf /build/* diff --git a/Dockerfile.dev b/Dockerfile.dev index a615a52..4ade1b0 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -78,6 +78,10 @@ RUN ./build-mingw-w64-tools.sh $TOOLCHAIN_PREFIX COPY build-compiler-rt.sh ./ RUN ./build-compiler-rt.sh $TOOLCHAIN_PREFIX +# Build libunwind/libcxxabi/libcxx +COPY build-libcxx.sh ./ +RUN ./build-libcxx.sh $TOOLCHAIN_PREFIX + # Build mingw-w64's extra libraries COPY build-mingw-w64-libraries.sh ./ RUN ./build-mingw-w64-libraries.sh $TOOLCHAIN_PREFIX @@ -105,10 +109,6 @@ RUN cd test && \ done; \ done -# Build libunwind/libcxxabi/libcxx -COPY build-libcxx.sh ./ -RUN ./build-libcxx.sh $TOOLCHAIN_PREFIX - # Build C++ test applications COPY test/*.cpp ./test/ RUN cd test && \ diff --git a/build-all.sh b/build-all.sh index 0a9c63a..c713603 100755 --- a/build-all.sh +++ b/build-all.sh @@ -35,8 +35,8 @@ done ./build-mingw-w64.sh $PREFIX ./build-mingw-w64-tools.sh $PREFIX ./build-compiler-rt.sh $PREFIX -./build-mingw-w64-libraries.sh $PREFIX ./build-libcxx.sh $PREFIX +./build-mingw-w64-libraries.sh $PREFIX ./build-compiler-rt.sh $PREFIX --build-sanitizers ./build-libssp.sh $PREFIX ./build-openmp.sh $PREFIX