build-libcxx: Configure libcxx and generate headers before building libcxxabi
This fixes building with the latest versions, where the headers strictly need __config_site to be available.
This commit is contained in:
1 parent
2377f1a839
commit
ea3ff51d2c
1 file changed
+50
-40
+50
-40
@@ -125,46 +125,8 @@ build_all() {
|
|||||||
done
|
done
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
cd libcxxabi
|
# Configure, but don't build, libcxx, so that libcxxabi has
|
||||||
for arch in $ARCHS; do
|
# proper headers to refer to
|
||||||
[ -z "$CLEAN" ] || rm -rf build-$arch-$type
|
|
||||||
mkdir -p build-$arch-$type
|
|
||||||
cd build-$arch-$type
|
|
||||||
if [ "$type" = "shared" ]; then
|
|
||||||
LIBCXXABI_VISIBILITY_FLAGS="-D_LIBCPP_BUILDING_LIBRARY= -U_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS"
|
|
||||||
else
|
|
||||||
LIBCXXABI_VISIBILITY_FLAGS="-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS"
|
|
||||||
fi
|
|
||||||
cmake \
|
|
||||||
${CMAKE_GENERATOR+-G} "$CMAKE_GENERATOR" \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DCMAKE_INSTALL_PREFIX="$PREFIX/$arch-w64-mingw32" \
|
|
||||||
-DCMAKE_C_COMPILER=$arch-w64-mingw32-clang \
|
|
||||||
-DCMAKE_CXX_COMPILER=$arch-w64-mingw32-clang++ \
|
|
||||||
-DCMAKE_CROSSCOMPILING=TRUE \
|
|
||||||
-DCMAKE_SYSTEM_NAME=Windows \
|
|
||||||
-DCMAKE_C_COMPILER_WORKS=TRUE \
|
|
||||||
-DCMAKE_CXX_COMPILER_WORKS=TRUE \
|
|
||||||
-DLLVM_PATH="$LLVM_PATH" \
|
|
||||||
-DLLVM_COMPILER_CHECKED=TRUE \
|
|
||||||
-DCMAKE_AR="$PREFIX/bin/llvm-ar" \
|
|
||||||
-DCMAKE_RANLIB="$PREFIX/bin/llvm-ranlib" \
|
|
||||||
-DLIBCXXABI_USE_COMPILER_RT=ON \
|
|
||||||
-DLIBCXXABI_ENABLE_EXCEPTIONS=ON \
|
|
||||||
-DLIBCXXABI_ENABLE_THREADS=ON \
|
|
||||||
-DLIBCXXABI_TARGET_TRIPLE=$arch-w64-mingw32 \
|
|
||||||
-DLIBCXXABI_ENABLE_SHARED=OFF \
|
|
||||||
-DLIBCXXABI_LIBCXX_INCLUDES=../../libcxx/include \
|
|
||||||
-DLIBCXXABI_LIBDIR_SUFFIX="" \
|
|
||||||
-DLIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS=OFF \
|
|
||||||
-DCXX_SUPPORTS_CXX_STD=TRUE \
|
|
||||||
-DCMAKE_CXX_FLAGS="$LIBCXXABI_VISIBILITY_FLAGS -D_LIBCPP_HAS_THREAD_API_WIN32" \
|
|
||||||
..
|
|
||||||
$BUILDCMD ${CORES+-j$CORES}
|
|
||||||
cd ..
|
|
||||||
done
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
cd libcxx
|
cd libcxx
|
||||||
for arch in $ARCHS; do
|
for arch in $ARCHS; do
|
||||||
[ -z "$CLEAN" ] || rm -rf build-$arch-$type
|
[ -z "$CLEAN" ] || rm -rf build-$arch-$type
|
||||||
@@ -212,6 +174,54 @@ build_all() {
|
|||||||
-DCMAKE_SHARED_LINKER_FLAGS="-lunwind" \
|
-DCMAKE_SHARED_LINKER_FLAGS="-lunwind" \
|
||||||
-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=FALSE \
|
-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=FALSE \
|
||||||
..
|
..
|
||||||
|
$BUILDCMD ${CORES+-j$CORES} generate-cxx-headers
|
||||||
|
cd ..
|
||||||
|
done
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
cd libcxxabi
|
||||||
|
for arch in $ARCHS; do
|
||||||
|
[ -z "$CLEAN" ] || rm -rf build-$arch-$type
|
||||||
|
mkdir -p build-$arch-$type
|
||||||
|
cd build-$arch-$type
|
||||||
|
if [ "$type" = "shared" ]; then
|
||||||
|
LIBCXXABI_VISIBILITY_FLAGS="-D_LIBCPP_BUILDING_LIBRARY= -U_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS"
|
||||||
|
else
|
||||||
|
LIBCXXABI_VISIBILITY_FLAGS="-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS"
|
||||||
|
fi
|
||||||
|
cmake \
|
||||||
|
${CMAKE_GENERATOR+-G} "$CMAKE_GENERATOR" \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX="$PREFIX/$arch-w64-mingw32" \
|
||||||
|
-DCMAKE_C_COMPILER=$arch-w64-mingw32-clang \
|
||||||
|
-DCMAKE_CXX_COMPILER=$arch-w64-mingw32-clang++ \
|
||||||
|
-DCMAKE_CROSSCOMPILING=TRUE \
|
||||||
|
-DCMAKE_SYSTEM_NAME=Windows \
|
||||||
|
-DCMAKE_C_COMPILER_WORKS=TRUE \
|
||||||
|
-DCMAKE_CXX_COMPILER_WORKS=TRUE \
|
||||||
|
-DLLVM_PATH="$LLVM_PATH" \
|
||||||
|
-DLLVM_COMPILER_CHECKED=TRUE \
|
||||||
|
-DCMAKE_AR="$PREFIX/bin/llvm-ar" \
|
||||||
|
-DCMAKE_RANLIB="$PREFIX/bin/llvm-ranlib" \
|
||||||
|
-DLIBCXXABI_USE_COMPILER_RT=ON \
|
||||||
|
-DLIBCXXABI_ENABLE_EXCEPTIONS=ON \
|
||||||
|
-DLIBCXXABI_ENABLE_THREADS=ON \
|
||||||
|
-DLIBCXXABI_TARGET_TRIPLE=$arch-w64-mingw32 \
|
||||||
|
-DLIBCXXABI_ENABLE_SHARED=OFF \
|
||||||
|
-DLIBCXXABI_LIBCXX_INCLUDES=../../libcxx/build-$arch-$type/include/c++/v1 \
|
||||||
|
-DLIBCXXABI_LIBDIR_SUFFIX="" \
|
||||||
|
-DLIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS=OFF \
|
||||||
|
-DCXX_SUPPORTS_CXX_STD=TRUE \
|
||||||
|
-DCMAKE_CXX_FLAGS="$LIBCXXABI_VISIBILITY_FLAGS -D_LIBCPP_HAS_THREAD_API_WIN32" \
|
||||||
|
..
|
||||||
|
$BUILDCMD ${CORES+-j$CORES}
|
||||||
|
cd ..
|
||||||
|
done
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
cd libcxx
|
||||||
|
for arch in $ARCHS; do
|
||||||
|
cd build-$arch-$type
|
||||||
$BUILDCMD ${CORES+-j$CORES}
|
$BUILDCMD ${CORES+-j$CORES}
|
||||||
$BUILDCMD install
|
$BUILDCMD install
|
||||||
if [ "$type" = "shared" ]; then
|
if [ "$type" = "shared" ]; then
|
||||||
|
|||||||
Reference in new issue
Block a user