Skip to content

Commit d21c040

Browse files
authored
Build libcxxabi and libcxx with threads enabled (WebAssembly#301)
1 parent a433a25 commit d21c040

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

Makefile

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,8 @@ LIBCXX_CMAKE_FLAGS = \
153153
-DLLVM_CONFIG_PATH=$(ROOT_DIR)/build/llvm/bin/llvm-config \
154154
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
155155
-DCXX_SUPPORTS_CXX11=ON \
156-
-DLIBCXX_ENABLE_THREADS:BOOL=OFF \
157-
-DLIBCXX_HAS_PTHREAD_API:BOOL=OFF \
156+
-DLIBCXX_ENABLE_THREADS:BOOL=@PTHREAD@ \
157+
-DLIBCXX_HAS_PTHREAD_API:BOOL=@PTHREAD@ \
158158
-DLIBCXX_HAS_EXTERNAL_THREAD_API:BOOL=OFF \
159159
-DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF \
160160
-DLIBCXX_HAS_WIN32_THREAD_API:BOOL=OFF \
@@ -171,8 +171,8 @@ LIBCXX_CMAKE_FLAGS = \
171171
-DLIBCXXABI_ENABLE_EXCEPTIONS:BOOL=OFF \
172172
-DLIBCXXABI_ENABLE_SHARED:BOOL=OFF \
173173
-DLIBCXXABI_SILENT_TERMINATE:BOOL=ON \
174-
-DLIBCXXABI_ENABLE_THREADS:BOOL=OFF \
175-
-DLIBCXXABI_HAS_PTHREAD_API:BOOL=OFF \
174+
-DLIBCXXABI_ENABLE_THREADS:BOOL=@PTHREAD@ \
175+
-DLIBCXXABI_HAS_PTHREAD_API:BOOL=@PTHREAD@ \
176176
-DLIBCXXABI_HAS_EXTERNAL_THREAD_API:BOOL=OFF \
177177
-DLIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF \
178178
-DLIBCXXABI_HAS_WIN32_THREAD_API:BOOL=OFF \
@@ -184,7 +184,7 @@ LIBCXX_CMAKE_FLAGS = \
184184
build/libcxx.BUILT: build/llvm.BUILT build/compiler-rt.BUILT build/wasi-libc.BUILT
185185
# Do the build.
186186
mkdir -p build/libcxx
187-
cd build/libcxx && cmake -G Ninja $(LIBCXX_CMAKE_FLAGS) \
187+
cd build/libcxx && cmake -G Ninja $(LIBCXX_CMAKE_FLAGS:@PTHREAD@=OFF) \
188188
-DCMAKE_SYSROOT=$(BUILD_PREFIX)/share/wasi-sysroot \
189189
-DCMAKE_C_FLAGS="$(DEBUG_PREFIX_MAP)" \
190190
-DCMAKE_CXX_FLAGS="$(DEBUG_PREFIX_MAP)" \
@@ -193,8 +193,19 @@ build/libcxx.BUILT: build/llvm.BUILT build/compiler-rt.BUILT build/wasi-libc.BUI
193193
-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
194194
$(LLVM_PROJ_DIR)/runtimes
195195
ninja $(NINJA_FLAGS) -C build/libcxx
196+
mkdir -p build/libcxx-threads
197+
cd build/libcxx-threads && cmake -G Ninja $(LIBCXX_CMAKE_FLAGS:@PTHREAD@=ON) \
198+
-DCMAKE_SYSROOT=$(BUILD_PREFIX)/share/wasi-sysroot \
199+
-DCMAKE_C_FLAGS="$(DEBUG_PREFIX_MAP) -pthread" \
200+
-DCMAKE_CXX_FLAGS="$(DEBUG_PREFIX_MAP) -pthread" \
201+
-DLIBCXX_LIBDIR_SUFFIX=$(ESCAPE_SLASH)/wasm32-wasi-threads \
202+
-DLIBCXXABI_LIBDIR_SUFFIX=$(ESCAPE_SLASH)/wasm32-wasi-threads \
203+
-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
204+
$(LLVM_PROJ_DIR)/runtimes
205+
ninja $(NINJA_FLAGS) -C build/libcxx-threads
196206
# Do the install.
197207
DESTDIR=$(DESTDIR) ninja $(NINJA_FLAGS) -C build/libcxx install
208+
DESTDIR=$(DESTDIR) ninja $(NINJA_FLAGS) -C build/libcxx-threads install
198209
touch build/libcxx.BUILT
199210

200211
build/config.BUILT:

src/wasi-libc

0 commit comments

Comments
 (0)