[llvm-dev] Invoking lld for PE/COFF (Windows) linking

kyra via llvm-dev llvm-dev at lists.llvm.org
Fri Mar 31 13:53:35 PDT 2017


Perhaps, you'll find these useful:
https://sourceforge.net/p/mingw-w64/bugs/597
https://github.com/lhmouse/mcfgthread/issues/21

(awson is me)

On 31.03.2017 23:07, Edward Diener via llvm-dev wrote:
> On 3/30/2017 9:03 PM, Reid Kleckner via llvm-dev wrote:
>> On Thu, Mar 30, 2017 at 5:57 PM, Edward Diener via llvm-dev
>> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>>
>>     Actually just doing:
>>
>>     clang++ -c t.cpp -o t.o --target=x86_64-windows-msvc 
>> -fmsc-version=1900
>>     clang++ t.o -o t.exe --target=x86_64-windows-msvc -fuse-ld=lld
>>
>>     is not working for me. The first invocation works but the second
>>     just hangs and never completes. Should it work ? If not, how can I
>>     invoke the second to make it work properly ?
>>
>>
>> Is it actually running lld-link.exe?  Does lld-link.exe exist next to
>> clang++.exe? If you add -###, what linker command line is clang trying
>> to run?
>
> "C:/Programming/VersionControl/bninja_installed_clang/bin/clang++" -o 
> "C:\Programming\VersionControl\modular-boost\build\boost\bin.v2\libs\preprocessor\test\config_info.test\clang-linux-5.0cl\debug\address-model-32\config_info.exe" 
> -Wl,--start-group 
> "C:\Programming\VersionControl\modular-boost\build\boost\bin.v2\libs\preprocessor\test\config_info.test\clang-linux-5.0cl\debug\address-model-32\config_info.obj" 
>  -Wl,-Bstatic  -Wl,-Bdynamic  -Wl,--end-group -g 
> --target=i686-pc-windows-msvc -### -fuse-ld=lld
>
> clang version 5.0.0 (trunk 298890)
> Target: i686-pc-windows-msvc
> Thread model: posix
> InstalledDir: C:\Programming\VersionControl\bninja_installed_clang\bin
>
> "C:\\Programming\\VersionControl\\bninja_installed_clang\\bin\\lld-link.exe" 
> "-out:C:\\Programming\\VersionControl\\modular-boost\\build\\boost\\bin.v2\\libs\\preprocessor\\test\\config_info.test\\clang-linux-5.0cl\\debug\\address-model-32\\config_info.exe" 
> "-defaultlib:libcmt" "-libpath:C:\\Program Files (x86)\\Microsoft 
> Visual Studio 14.0\\VC\\lib" "-libpath:C:\\Program Files 
> (x86)\\Windows Kits\\10\\Lib\\10.0.14393.0\\ucrt\\x86" 
> "-libpath:C:\\Program Files (x86)\\Windows 
> Kits\\10\\Lib\\10.0.14393.0\\um\\x86" "-nologo" "-debug" 
> "--start-group" 
> "C:\\Programming\\VersionControl\\modular-boost\\build\\boost\\bin.v2\\libs\\preprocessor\\test\\config_info.test\\clang-linux-5.0cl\\de
>
> When I actually try to run the lld-link command as:
>
> C:\Programming\VersionControl\bninja_installed_clang\bin\lld-link.exe 
> -out:C:\Programming\VersionControl\modular-boost\build\boost\bin.v2\libs\preprocessor\test\config_info.test\clang-linux-5.0cl\debug\address-model-32\config_info.exe 
> -defaultlib:libcmt "-libpath:C:\Program Files (x86)\Microsoft Visual 
> Studio 14.0\VC\lib" "-libpath:C:\Program Files (x86)\Windows 
> Kits\10\Lib\10.0.14393.0\ucrt\x86" "-libpath:C:\Program Files 
> (x86)\Windows Kits\10\Lib\10.0.14393.0\um\x86" -nologo -debug 
> --start-group 
> C:\Programming\VersionControl\modular-boost\build\boost\bin.v2\libs\preprocessor\test\config_info.test\clang-linux-5.0cl\debug\address-model-32\config_info.obj 
> -Bstatic -Bdynamic --end-group
>
> I get for output in a Windows command window:
>
> C:\Programming\VersionControl\bninja_installed_clang\bin\lld-link.exe: 
> warning:
> ignoring unknown argument: --start-group
> C:\Programming\VersionControl\bninja_installed_clang\bin\lld-link.exe: 
> warning:
> ignoring unknown argument: -Bstatic
> C:\Programming\VersionControl\bninja_installed_clang\bin\lld-link.exe: 
> warning:
> ignoring unknown argument: -Bdynamic
> C:\Programming\VersionControl\bninja_installed_clang\bin\lld-link.exe: 
> warning:
> ignoring unknown argument: --end-group
>
> and then nothing further and lld_link.exe just hangs and never 
> completes. So it looks to me that lld_link, in it effort to link 
> PE/COFF (Windows) files created by clang++ targeting VC++, has some 
> sort of bug.
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev




More information about the llvm-dev mailing list