@@ -55,6 +55,7 @@ cd $BUILD_DIR
55
55
56
56
ZLIB_BUILD=${BUILD_DIR} /zlib
57
57
LIBCXX_BUILD=${BUILD_DIR} /libcxx
58
+ LIBCXX_INSTALL=${BUILD_DIR} /libcxx-install
58
59
LLVM_BUILD=${BUILD_DIR} /llvm
59
60
SYMBOLIZER_BUILD=${BUILD_DIR} /symbolizer
60
61
@@ -87,11 +88,12 @@ make -j libz.a
87
88
88
89
# Build and install libcxxabi and libcxx.
89
90
if [[ ! -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}
92
93
cd ${LIBCXX_BUILD}
93
94
LIBCXX_FLAGS=" ${FLAGS} -Wno-macro-redefined"
94
95
cmake -GNinja \
96
+ -DCMAKE_INSTALL_PREFIX=" ${LIBCXX_INSTALL} " \
95
97
-DLLVM_ENABLE_RUNTIMES=" libcxx;libcxxabi" \
96
98
-DCMAKE_BUILD_TYPE=Release \
97
99
-DCMAKE_C_COMPILER_WORKS=ON \
@@ -114,11 +116,11 @@ if [[ ! -f ${LLVM_BUILD}/build.ninja ]]; then
114
116
$LLVM_SRC /../runtimes
115
117
fi
116
118
cd ${LIBCXX_BUILD}
117
- ninja cxx cxxabi
119
+ ninja cxx cxxabi && ninja install-cxx install-cxxabi
118
120
119
121
FLAGS=" ${FLAGS} -fno-rtti -fno-exceptions"
120
122
LLVM_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"
122
124
123
125
# Build LLVM.
124
126
if [[ ! -f ${LLVM_BUILD} /build.ninja ]]; then
@@ -134,7 +136,7 @@ if [[ ! -f ${LLVM_BUILD}/build.ninja ]]; then
134
136
-DLLVM_ENABLE_LIBCXX=ON \
135
137
-DCMAKE_C_FLAGS_RELEASE=" ${LLVM_CFLAGS} " \
136
138
-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" \
138
140
-DLLVM_TABLEGEN=$TBLGEN \
139
141
-DLLVM_INCLUDE_TESTS=OFF \
140
142
-DLLVM_ENABLE_ZLIB=ON \
@@ -163,7 +165,7 @@ SYMBOLIZER_API_LIST+=,__sanitizer_symbolize_demangle
163
165
SYMBOLIZER_API_LIST+=,__sanitizer_symbolize_set_demangle
164
166
SYMBOLIZER_API_LIST+=,__sanitizer_symbolize_set_inline_frames
165
167
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) )
167
169
168
170
# Merge all the object files together and copy the resulting library back.
169
171
$LINK $LIBCXX_ARCHIVE_DIR /libc++.a \
0 commit comments