@@ -53,6 +53,8 @@ cd llvm-project
53
53
54
54
LLVM_PATH=" $( pwd) /llvm"
55
55
56
+ cd runtimes
57
+
56
58
if [ -n " $( which ninja) " ]; then
57
59
CMAKE_GENERATOR=" Ninja"
58
60
NINJA=1
74
76
75
77
build_all () {
76
78
type=" $1 "
79
+ CMAKEFLAGS=" "
77
80
if [ " $type " = " shared" ]; then
78
81
SHARED=TRUE
79
82
STATIC=FALSE
83
+ CMAKEFLAGS=" $CMAKEFLAGS -DLIBCXXABI_USE_LLVM_UNWINDER=ON"
80
84
else
81
85
SHARED=FALSE
82
86
STATIC=TRUE
83
87
fi
84
88
85
- cd libunwind
86
89
for arch in $ARCHS ; do
87
90
[ -z " $CLEAN " ] || rm -rf build-$arch -$type
88
91
mkdir -p build-$arch -$type
@@ -100,38 +103,12 @@ build_all() {
100
103
-DLLVM_PATH=" $LLVM_PATH " \
101
104
-DCMAKE_AR=" $PREFIX /bin/llvm-ar" \
102
105
-DCMAKE_RANLIB=" $PREFIX /bin/llvm-ranlib" \
106
+ -DLLVM_ENABLE_RUNTIMES=" libunwind;libcxxabi;libcxx" \
103
107
-DLIBUNWIND_USE_COMPILER_RT=TRUE \
104
108
-DLIBUNWIND_ENABLE_THREADS=TRUE \
105
109
-DLIBUNWIND_ENABLE_SHARED=$SHARED \
106
110
-DLIBUNWIND_ENABLE_STATIC=$STATIC \
107
111
-DLIBUNWIND_ENABLE_CROSS_UNWINDING=FALSE \
108
- ..
109
- $BUILDCMD ${CORES+-j$CORES }
110
- $BUILDCMD install
111
- cd ..
112
- done
113
- cd ..
114
-
115
- # Configure, but don't build, libcxx, so that libcxxabi has
116
- # proper headers to refer to
117
- cd libcxx
118
- for arch in $ARCHS ; do
119
- [ -z " $CLEAN " ] || rm -rf build-$arch -$type
120
- mkdir -p build-$arch -$type
121
- cd build-$arch -$type
122
- cmake \
123
- ${CMAKE_GENERATOR+-G} " $CMAKE_GENERATOR " \
124
- -DCMAKE_BUILD_TYPE=Release \
125
- -DCMAKE_INSTALL_PREFIX=" $PREFIX /$arch -w64-mingw32" \
126
- -DCMAKE_C_COMPILER=$arch -w64-mingw32-clang \
127
- -DCMAKE_CXX_COMPILER=$arch -w64-mingw32-clang++ \
128
- -DCMAKE_CROSSCOMPILING=TRUE \
129
- -DCMAKE_SYSTEM_NAME=Windows \
130
- -DCMAKE_C_COMPILER_WORKS=TRUE \
131
- -DCMAKE_CXX_COMPILER_WORKS=TRUE \
132
- -DCMAKE_AR=" $PREFIX /bin/llvm-ar" \
133
- -DCMAKE_RANLIB=" $PREFIX /bin/llvm-ranlib" \
134
- -DLLVM_PATH=" $LLVM_PATH " \
135
112
-DLIBCXX_USE_COMPILER_RT=ON \
136
113
-DLIBCXX_INSTALL_HEADERS=ON \
137
114
-DLIBCXX_ENABLE_EXCEPTIONS=ON \
@@ -143,54 +120,18 @@ build_all() {
143
120
-DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=TRUE \
144
121
-DLIBCXX_ENABLE_NEW_DELETE_DEFINITIONS=OFF \
145
122
-DLIBCXX_CXX_ABI=libcxxabi \
146
- -DLIBCXX_CXX_ABI_INCLUDE_PATHS=../../libcxxabi/include \
147
- -DLIBCXX_CXX_ABI_LIBRARY_PATH=../../libcxxabi/build-$arch -$type /lib \
148
123
-DLIBCXX_LIBDIR_SUFFIX=" " \
149
124
-DLIBCXX_INCLUDE_TESTS=FALSE \
150
- -DCMAKE_SHARED_LINKER_FLAGS=" -lunwind" \
151
125
-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=FALSE \
152
- ..
153
- $BUILDCMD ${CORES+-j$CORES } generate-cxx-headers
154
- cd ..
155
- done
156
- cd ..
157
-
158
- cd libcxxabi
159
- for arch in $ARCHS ; do
160
- [ -z " $CLEAN " ] || rm -rf build-$arch -$type
161
- mkdir -p build-$arch -$type
162
- cd build-$arch -$type
163
- cmake \
164
- ${CMAKE_GENERATOR+-G} " $CMAKE_GENERATOR " \
165
- -DCMAKE_BUILD_TYPE=Release \
166
- -DCMAKE_INSTALL_PREFIX=" $PREFIX /$arch -w64-mingw32" \
167
- -DCMAKE_C_COMPILER=$arch -w64-mingw32-clang \
168
- -DCMAKE_CXX_COMPILER=$arch -w64-mingw32-clang++ \
169
- -DCMAKE_CROSSCOMPILING=TRUE \
170
- -DCMAKE_SYSTEM_NAME=Windows \
171
- -DCMAKE_C_COMPILER_WORKS=TRUE \
172
- -DCMAKE_CXX_COMPILER_WORKS=TRUE \
173
- -DLLVM_PATH=" $LLVM_PATH " \
174
- -DCMAKE_AR=" $PREFIX /bin/llvm-ar" \
175
- -DCMAKE_RANLIB=" $PREFIX /bin/llvm-ranlib" \
176
126
-DLIBCXXABI_USE_COMPILER_RT=ON \
177
127
-DLIBCXXABI_ENABLE_EXCEPTIONS=ON \
178
128
-DLIBCXXABI_ENABLE_THREADS=ON \
179
129
-DLIBCXXABI_ENABLE_SHARED=OFF \
180
- -DLIBCXXABI_LIBCXX_INCLUDES=../../libcxx/build-$arch -$type /include/c++/v1 \
181
130
-DLIBCXXABI_LIBDIR_SUFFIX=" " \
182
131
-DLIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS=ON \
183
- -DLIBCXX_ENABLE_SHARED=$SHARED \
184
- -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=TRUE \
132
+ $CMAKEFLAGS \
185
133
..
186
- $BUILDCMD ${CORES+-j$CORES }
187
- cd ..
188
- done
189
- cd ..
190
134
191
- cd libcxx
192
- for arch in $ARCHS ; do
193
- cd build-$arch -$type
194
135
$BUILDCMD ${CORES+-j$CORES }
195
136
$BUILDCMD install
196
137
if [ " $type " = " shared" ]; then
@@ -204,7 +145,6 @@ build_all() {
204
145
fi
205
146
cd ..
206
147
done
207
- cd ..
208
148
}
209
149
210
150
# Build shared first and static afterwards; the headers for static linking also
0 commit comments