@@ -55,6 +55,7 @@ cd $BUILD_DIR
5555
5656ZLIB_BUILD=${BUILD_DIR} /zlib
5757LIBCXX_BUILD=${BUILD_DIR} /libcxx
58+ LIBCXX_INSTALL=${BUILD_DIR} /libcxx-install
5859LLVM_BUILD=${BUILD_DIR} /llvm
5960SYMBOLIZER_BUILD=${BUILD_DIR} /symbolizer
6061
@@ -87,11 +88,12 @@ make -j libz.a
8788
8889# Build and install libcxxabi and libcxx.
8990if [[ ! -f ${LLVM_BUILD} /build.ninja ]]; then
90- rm -rf ${LIBCXX_BUILD}
91- mkdir -p ${LIBCXX_BUILD}
91+ rm -rf " ${LIBCXX_BUILD} " " ${LIBCXX_INSTALL} "
92+ mkdir -p ${LIBCXX_BUILD} ${LIBCXX_INSTALL}
9293 cd ${LIBCXX_BUILD}
9394 LIBCXX_FLAGS=" ${FLAGS} -Wno-macro-redefined"
9495 cmake -GNinja \
96+ -DCMAKE_INSTALL_PREFIX=" ${LIBCXX_INSTALL} " \
9597 -DLLVM_ENABLE_RUNTIMES=" libcxx;libcxxabi" \
9698 -DCMAKE_BUILD_TYPE=Release \
9799 -DCMAKE_C_COMPILER_WORKS=ON \
@@ -114,11 +116,11 @@ if [[ ! -f ${LLVM_BUILD}/build.ninja ]]; then
114116 $LLVM_SRC /../runtimes
115117fi
116118cd ${LIBCXX_BUILD}
117- ninja cxx cxxabi
119+ ninja cxx cxxabi && ninja install-cxx install-cxxabi
118120
119121FLAGS=" ${FLAGS} -fno-rtti -fno-exceptions"
120122LLVM_CFLAGS=" ${FLAGS} -Wno-global-constructors"
121- LLVM_CXXFLAGS=" ${LLVM_CFLAGS} -nostdinc++ -I${ZLIB_BUILD} -isystem ${LIBCXX_BUILD } /include -isystem ${LIBCXX_BUILD } /include/c++/v1"
123+ LLVM_CXXFLAGS=" ${LLVM_CFLAGS} -nostdinc++ -I${ZLIB_BUILD} -isystem ${LIBCXX_INSTALL } /include -isystem ${LIBCXX_INSTALL } /include/c++/v1"
122124
123125# Build LLVM.
124126if [[ ! -f ${LLVM_BUILD} /build.ninja ]]; then
@@ -134,7 +136,7 @@ if [[ ! -f ${LLVM_BUILD}/build.ninja ]]; then
134136 -DLLVM_ENABLE_LIBCXX=ON \
135137 -DCMAKE_C_FLAGS_RELEASE=" ${LLVM_CFLAGS} " \
136138 -DCMAKE_CXX_FLAGS_RELEASE=" ${LLVM_CXXFLAGS} " \
137- -DCMAKE_EXE_LINKER_FLAGS=" $LINKFLAGS -stdlib=libc++ -L${LIBCXX_BUILD } /lib" \
139+ -DCMAKE_EXE_LINKER_FLAGS=" $LINKFLAGS -stdlib=libc++ -L${LIBCXX_INSTALL } /lib" \
138140 -DLLVM_TABLEGEN=$TBLGEN \
139141 -DLLVM_INCLUDE_TESTS=OFF \
140142 -DLLVM_ENABLE_ZLIB=ON \
@@ -163,7 +165,7 @@ SYMBOLIZER_API_LIST+=,__sanitizer_symbolize_demangle
163165SYMBOLIZER_API_LIST+=,__sanitizer_symbolize_set_demangle
164166SYMBOLIZER_API_LIST+=,__sanitizer_symbolize_set_inline_frames
165167
166- LIBCXX_ARCHIVE_DIR=$( dirname $( find $LIBCXX_BUILD -name libc++.a | head -n1) )
168+ LIBCXX_ARCHIVE_DIR=$( dirname $( find $LIBCXX_INSTALL -name libc++.a | head -n1) )
167169
168170# Merge all the object files together and copy the resulting library back.
169171$LINK $LIBCXX_ARCHIVE_DIR /libc++.a \
0 commit comments