Skip to content

Commit 81bb62c

Browse files
committed
Link LLVM-based tools dynamically to LLVM
I noticed that WebAssembly#388 increased the size of the Windows distribution by 200M+ and my guess for that is that all the symlinks which point to clang get copied as real files (due to symlinks not always working on Windows). To help counteract that this commit enables the `LLVM_LINK_LLVM_DYLIB=ON` option when building LLVM and Clang. That should build a `libLLVM.so` which helps reduce the size of all the tools since they no longer all statically link LLVM. Locally the size of a full build is ~100M less as a result of this change. On Windows where all the binaries are copied around it should hopefully help much more. I've additionally taken a leaf out of rust-lang/rust's book of building LLVM to pass the `LLVM_VERSION_SUFFIX` option here too. That I believe helps avoid `libLLVM.so` conflicting with a system-installed `libLLVM.so` by accident by ensuring there's a suffix present on the binaries built for wasi-sdk.
1 parent e62ec5d commit 81bb62c

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

Makefile

+4
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ build/llvm.BUILT:
7878
-DCLANG_LINKS_TO_CREATE="$(call join-with,;,$(CLANG_LINKS_TO_CREATE))" \
7979
-DCMAKE_BUILD_TYPE=MinSizeRel \
8080
-DLLVM_ENABLE_TERMINFO=OFF \
81+
-DLLVM_LINK_LLVM_DYLIB=ON \
82+
-DLLVM_VERSION_SUFFIX=-wasi-sdk \
8183
-DLLVM_ENABLE_ZLIB=OFF \
8284
-DLLVM_ENABLE_ZSTD=OFF \
8385
-DLLVM_STATIC_LINK_CXX_STDLIB=ON \
@@ -118,6 +120,8 @@ build/llvm.BUILT:
118120
install-objdump \
119121
install-objcopy \
120122
install-c++filt \
123+
install-LLVM \
124+
install-clang-cpp \
121125
llvm-config
122126
touch build/llvm.BUILT
123127

0 commit comments

Comments
 (0)