[PATCH] winnt.h: Fix MSVC variants of InterlockedIncrement16 and InterlockedDecrement16.

Jacek Caban jacek at codeweavers.com
Wed Feb 10 10:37:43 CST 2021


On 24.01.2021 20:38, Jacek Caban wrote:
> On 22/01/2021 20:34, Martin Storsjö wrote:
>
>> On Fri, 22 Jan 2021, Jacek Caban wrote:
>>
>>> If there is reason for llvm-dlltool to be problematic, we may try to 
>>> use llvm-lib (or maybe even let lld-link do that for us).
>>
>> Not sure if there's a reason for it to be problematic, other than 
>> just not a very universally acknowledged tool in itself. (It only 
>> implements essentially 1 operation out of the ones that GNU dlltool 
>> support as well, generating import libs from def files, needed by the 
>> mingw-w64-crt build.)
>>
>> Reducing the tool interface down from 3 tools to 2 sounds pretty nice 
>> though, unless it's too much of a mess.
>
>
> It indeed sounds nice. I experimented a bit a got it working, I will 
> send patches after clean up and some testing. This way we may stop 
> requiring llvm-ar and llvm-ranlib as well.
>
>
> My first attempt didn't work because llvm-link does not support -def 
> option, which would allow creating a library from both object files 
> and def file in one pass. I got it working with two passes (which is 
> similar to how we handle other platforms anyway): first exec lld-link 
> -implib to generate importlib, then lld-link /lib to create a static 
> library. 


I had another look at it and I sent the part that replaces use of 
llvm-ar and llvm-ranlib with lld-link /lib. However, I couldn't get 
importlibs using lld-link -implib right. I tried MSVC, suspecting that 
something is wrong with lld-link, but I found that what I was trying to 
do is not supported by link.exe. -implib option is really meant for an 
addition to linker, not for importlib-only execution.


Unless I'm missing something, llvm-dlltool is currently the only 
supported way to do that using current LLVM. We could look at -def 
option support in llvm-lib, but a symlink in Ubuntu will be needed for now.


Thanks,

Jacek




More information about the wine-devel mailing list