@@ -141,7 +141,7 @@ LIBCXX_CMAKE_FLAGS = \
141
141
-DCMAKE_BUILD_TYPE=RelWithDebugInfo \
142
142
-DLIBCXX_ENABLE_SHARED:BOOL=OFF \
143
143
-DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY:BOOL=OFF \
144
- -DLIBCXX_ENABLE_EXCEPTIONS:BOOL=OFF \
144
+ -DLIBCXX_ENABLE_EXCEPTIONS:BOOL=ON \
145
145
-DLIBCXX_ENABLE_FILESYSTEM:BOOL=OFF \
146
146
-DLIBCXX_CXX_ABI=libcxxabi \
147
147
-DLIBCXX_CXX_ABI_INCLUDE_PATHS=$(LLVM_PROJ_DIR ) /libcxxabi/include \
@@ -154,8 +154,8 @@ build/libcxx.BUILT: build/llvm.BUILT build/compiler-rt.BUILT build/wasi-libc.BUI
154
154
# Do the build.
155
155
mkdir -p build/libcxx
156
156
cd build/libcxx && cmake -G Ninja $(LIBCXX_CMAKE_FLAGS ) \
157
- -DCMAKE_C_FLAGS=" $( DEBUG_PREFIX_MAP) --sysroot=$( BUILD_PREFIX) /share/wasi-sysroot" \
158
- -DCMAKE_CXX_FLAGS=" $( DEBUG_PREFIX_MAP) --sysroot=$( BUILD_PREFIX) /share/wasi-sysroot" \
157
+ -DCMAKE_C_FLAGS=" $( DEBUG_PREFIX_MAP) --sysroot=$( BUILD_PREFIX) /share/wasi-sysroot -fwasm-exceptions " \
158
+ -DCMAKE_CXX_FLAGS=" $( DEBUG_PREFIX_MAP) --sysroot=$( BUILD_PREFIX) /share/wasi-sysroot -fwasm-exceptions " \
159
159
-DLIBCXX_LIBDIR_SUFFIX=$(ESCAPE_SLASH ) /wasm32-wasi \
160
160
$(LLVM_PROJ_DIR ) /libcxx
161
161
ninja $(NINJA_FLAGS ) -v -C build/libcxx
@@ -170,7 +170,7 @@ LIBCXXABI_CMAKE_FLAGS = \
170
170
-DCMAKE_AR=$(BUILD_PREFIX ) /bin/ar \
171
171
-DCMAKE_MODULE_PATH=$(ROOT_DIR ) /cmake \
172
172
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
173
- -DLIBCXXABI_ENABLE_EXCEPTIONS:BOOL=OFF \
173
+ -DLIBCXXABI_ENABLE_EXCEPTIONS:BOOL=ON \
174
174
-DLIBCXXABI_ENABLE_SHARED:BOOL=OFF \
175
175
-DLIBCXXABI_SILENT_TERMINATE:BOOL=ON \
176
176
-DLIBCXXABI_ENABLE_THREADS:BOOL=OFF \
@@ -195,23 +195,57 @@ build/libcxxabi.BUILT: build/libcxx.BUILT build/llvm.BUILT
195
195
# Do the build.
196
196
mkdir -p build/libcxxabi
197
197
cd build/libcxxabi && cmake -G Ninja $(LIBCXXABI_CMAKE_FLAGS ) \
198
- -DCMAKE_C_FLAGS=" $( DEBUG_PREFIX_MAP) --sysroot=$( BUILD_PREFIX) /share/wasi-sysroot" \
199
- -DCMAKE_CXX_FLAGS=" $( DEBUG_PREFIX_MAP) --sysroot=$( BUILD_PREFIX) /share/wasi-sysroot" \
198
+ -DCMAKE_C_FLAGS=" $( DEBUG_PREFIX_MAP) --sysroot=$( BUILD_PREFIX) /share/wasi-sysroot -fwasm-exceptions " \
199
+ -DCMAKE_CXX_FLAGS=" $( DEBUG_PREFIX_MAP) --sysroot=$( BUILD_PREFIX) /share/wasi-sysroot -fwasm-exceptions " \
200
200
-DLIBCXXABI_LIBDIR_SUFFIX=$(ESCAPE_SLASH ) /wasm32-wasi \
201
201
$(LLVM_PROJ_DIR ) /libcxxabi
202
202
ninja $(NINJA_FLAGS ) -v -C build/libcxxabi
203
203
# Do the install.
204
204
DESTDIR=$(DESTDIR ) ninja $(NINJA_FLAGS ) -v -C build/libcxxabi install
205
205
touch build/libcxxabi.BUILT
206
206
207
+ # Flags for libunwind.
208
+ LIBUNWIND_CMAKE_FLAGS = \
209
+ -DCMAKE_C_COMPILER_WORKS=ON \
210
+ -DCMAKE_CXX_COMPILER_WORKS=ON \
211
+ -DCMAKE_AR=$(BUILD_PREFIX ) /bin/ar \
212
+ -DCMAKE_MODULE_PATH=$(ROOT_DIR ) /cmake \
213
+ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
214
+ -DLIBUNWIND_ENABLE_SHARED:BOOL=OFF \
215
+ -DLIBUNWIND_ENABLE_THREADS:BOOL=OFF \
216
+ -DLIBUNWIND_ENABLE_ASSERTIONS:BOOL=OFF \
217
+ -DLIBUNWIND_USE_COMPILER_RT:BOOL=ON \
218
+ -DCXX_SUPPORTS_CXX11=ON \
219
+ -DLLVM_COMPILER_CHECKED=ON \
220
+ -DCMAKE_BUILD_TYPE=RelWithDebugInfo \
221
+ -DLIBUNWIND_LIBCXX_PATH=$(LLVM_PROJ_DIR ) /libcxx \
222
+ -DCMAKE_TOOLCHAIN_FILE=$(ROOT_DIR ) /wasi-sdk.cmake \
223
+ -DCMAKE_STAGING_PREFIX=$(PREFIX ) /share/wasi-sysroot \
224
+ -DWASI_SDK_PREFIX=$(BUILD_PREFIX ) \
225
+ -DUNIX:BOOL=ON \
226
+ --debug-trycompile
227
+
228
+ build/libunwind.BUILT : build/libcxx.BUILT build/llvm.BUILT
229
+ # Do the build.
230
+ mkdir -p build/libunwind
231
+ cd build/libunwind && cmake -G Ninja $(LIBUNWIND_CMAKE_FLAGS ) \
232
+ -DCMAKE_C_FLAGS=" $( DEBUG_PREFIX_MAP) --sysroot=$( BUILD_PREFIX) /share/wasi-sysroot -fwasm-exceptions" \
233
+ -DCMAKE_CXX_FLAGS=" $( DEBUG_PREFIX_MAP) --sysroot=$( BUILD_PREFIX) /share/wasi-sysroot -fwasm-exceptions" \
234
+ -DLIBUNWIND_LIBDIR_SUFFIX=$(ESCAPE_SLASH ) /wasm32-wasi \
235
+ $(LLVM_PROJ_DIR ) /libunwind
236
+ ninja $(NINJA_FLAGS ) -v -C build/libunwind
237
+ # Do the install.
238
+ DESTDIR=$(DESTDIR ) ninja $(NINJA_FLAGS ) -v -C build/libunwind install
239
+ touch build/libunwind.BUILT
240
+
207
241
build/config.BUILT :
208
242
mkdir -p $(BUILD_PREFIX ) /share/misc
209
243
cp src/config/config.sub src/config/config.guess $(BUILD_PREFIX ) /share/misc
210
244
mkdir -p $(BUILD_PREFIX ) /share/cmake
211
245
cp wasi-sdk.cmake $(BUILD_PREFIX ) /share/cmake
212
246
touch build/config.BUILT
213
247
214
- build : build/llvm.BUILT build/wasi-libc.BUILT build/compiler-rt.BUILT build/libcxxabi.BUILT build/libcxx.BUILT build/config.BUILT
248
+ build : build/llvm.BUILT build/wasi-libc.BUILT build/compiler-rt.BUILT build/libcxxabi.BUILT build/libcxx.BUILT build/libunwind.BUILT build/ config.BUILT
215
249
216
250
strip : build/llvm.BUILT
217
251
./strip_symbols.sh $(BUILD_PREFIX )
0 commit comments