I am getting LINK error 1181 about `lib\LLVM.lib` not found. After
investigating, `lib\LLVM.lib` is supposed to be produced along with
`bin\LLVM.dll`. `bin\LLVM.dll` is indeed produced, but it does not
contain any exported symbols (10KB only) because LLVM does not use
`__declspec(dllexport)` and `__declspec(dllimport)`, so lib.exe
refuses to produce `lib\LLVM.lib`.
If I just build static-linked Clang/LLVM (default), it works fine.
Windows bot of WebAssembly waterfall is also affected:
https://github.com/WebAssembly/waterfall/commit/2051fd4cdb2b4017e66dfcd70203d40f3d0b461d
Compiler: Visual Studio 2017
CMake configuration:
cmake -GNinja -Bbuild -Hllvm -DCMAKE_BUILD_TYPE=Release
-DLLVM_INCLUDE_EXAMPLES=OFF
-DLLVM_INCLUDE_TESTS=OFF
-DCMAKE_INSTALL_PREFIX=d:\a\1\b
-DLLVM_TARGETS_TO_BUILD=X86
-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON
-DLLVM_BUILD_LLVM_DYLIB=ON
-DLLVM_LINK_LLVM_DYLIB=ON
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly
_______________________________________________
LLVM Developers mailing list
llvm...@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
clang.exe, clang++.exe, clang-cl.exe, clang-cl.exe and
msbuild-bin/cl.exe are each 37MB, but they serve almost the same
purpose, just receive different flavours of command flags.
By passing -v flag, I noticed that all of them will parse the command
flags, then call itself with more command flags for the main parsing
and compiling.
This is quite similar with gcc.exe, g++.exe, c++.exe and cpp.exe in
GCC, but these GCC drivers are much smaller (each around 600KB to
900KB) and they all call another program cc1.exe or cc1plus,exe (each
around 20MB). Therefore, GCC toolchain is much smaller.
Can Clang/LLVM add a configuration similar to GCC?
On Unix systems these are all symlinks and so essentially free. I hear
Windows doesn't cope well with that though so it looks like we just
copy the files there.
> Can Clang/LLVM add a configuration similar to GCC?
That's probably best discussed on the cfe-dev mailing list. Doing it
optimally would involve substantial refactoring (essentially splitting
lib/Driver out into its own tool). I think you'd be lucky to get
anyone to sign up to work on that, but you might be able to convince
them patches are welcome.
Cheers.
Tim.
You should be able to replace clang++.exe and clang-cpp.exe with a
trivial program that uses execvp with clang.exe as file and argv as
given to the program.
Joerg
With this hack and ninja -C build install-clang install-clang-headers,
the resulting toolset is only 44MB, which is a great improvement when
compared with the default installation (380+MB).
Thanks for pointing out that these drivers are just symlinks!