luporl wrote:

Adding `--target=x86_64-linux-gnu`, as @MaskRay suggests, fixes the test on 
Windows. But then we are not actually testing linking on Windows.

On my Windows machine, the test output is practically the same as that reported 
by buildkite, as mentioned by @tarunprabhu above. I see no differences in the 
output with or without `-static`. Using `-shared` adds `-dll -implib:a.lib` and 
the output becomes a `dll` instead of an `exe`, which makes sense, according to 
MSVC documentation 
(https://learn.microsoft.com/en-us/cpp/build/reference/dll-build-a-dll?view=msvc-170).

I've also tried linking a hello world program with and without `-static` and it 
runs fine. With `-shared`, it also produces an `a.exe` file (`-o a.dll` is 
needed to create the output file with the right extension), but that doesn't 
run, because it's actually a `dll` it seems, although I didn't try to use it as 
such.

In short, when using MSVC linker, `-rpath` is passed to it, `-static` doesn't 
change its invocation and `-shared` is translated to `-dll`.

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

Reply via email to