mstorsjo wrote:

Ok, now I tried this myself (and indeed, it wasn't very hard to set up - sorry 
for not trying it earlier).

Here's the effect on the configure run, caused by this patch:
```diff
--- log-good-truncated  2024-12-18 13:59:16.334711800 +0200
+++ log-bad     2024-12-18 13:58:07.287917504 +0200
@@ -29,10 +29,19 @@
 -- Could NOT find Clang (missing: Clang_DIR)
 -- Performing Test CXX_SUPPORTS_UNWINDLIB_EQ_NONE_FLAG
 -- Performing Test CXX_SUPPORTS_UNWINDLIB_EQ_NONE_FLAG - Failed
--- Performing Test CXX_SUPPORTS_NOSTDLIBXX_FLAG
--- Performing Test CXX_SUPPORTS_NOSTDLIBXX_FLAG - Failed
--- Performing Test CXX_SUPPORTS_NOSTDINCXX_FLAG
--- Performing Test CXX_SUPPORTS_NOSTDINCXX_FLAG - Success
+-- Performing Test C_SUPPORTS_NOSTDLIBXX_FLAG
+-- Performing Test C_SUPPORTS_NOSTDLIBXX_FLAG - Success
+-- Performing Test C_SUPPORTS_NOSTDINCXX_FLAG
+-- Performing Test C_SUPPORTS_NOSTDINCXX_FLAG - Success
 -- Linker detection: LLD
 -- Performing Test CXX_SUPPORTS_CUSTOM_LINKER
--- Performing Test CXX_SUPPORTS_CUSTOM_LINKER - Success
+-- Performing Test CXX_SUPPORTS_CUSTOM_LINKER - Failed
+CMake Error at /home/martin/code/llvm-project/llvm/cmake/modules/HandleLLVMOpti
ons.cmake:412 (message):
+  Host compiler does not support '-fuse-ld=lld'.  Please make sure that 'lld'
+  is installed and that your host compiler can compile a simple program when
+  given the option '-fuse-ld=lld'.
+Call Stack (most recent call first):
+  CMakeLists.txt:179 (include)
+
+
+-- Configuring incomplete, errors occurred!
```

So previously, `CXX_SUPPORTS_NOSTDLIBXX_FLAG` failed, so we didn't add 
`-nostdlib++`. It failed due to the issue that does get fixed by 
https://github.com/llvm/llvm-project/pull/120370. By applying this change, we 
happen to go around that issue, so we end up adding `-nostdlib++`, even when it 
fails to link in C++ mode.

So, indeed, https://github.com/llvm/llvm-project/pull/120370 seems like a 
proper fix for this. Thanks!

(Ideally, we probably should probe for support for these flags separately for C 
and C++ mode, but it would require CMake to have something like 
`CMAKE_REQUIRED_FLAGS` separately for C and C++, which it doesn't - that's the 
whole root cause for this mess.)

https://github.com/llvm/llvm-project/pull/108357
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to