Wine fails to load executables that reference dxil.dll

Stefan Dösinger stefandoesinger at gmail.com
Sun Dec 2 06:58:39 CST 2018


Hi,

Going by the following line in your blog:

> wine: Call from 0x7b44d447 to unimplemented function api-ms-win-crt-private-l1-1-0.dll._o__initialize_onexit_table, aborting

This line says that dxil.dll (or something else - we don't know where the call is coming from) calls a function in Wine's api-ms-win-crt-private-l1-1-0.dll that we do not yet implement. The correct solution is to implement the necessary function(s). A stop-gap workaround is to use the native (Microsoft's) version of this DLL. Because this DLL usually just contains forwards to other DLLs, mostly ucrtbase, you'll also need native ucrtbase and probably others.

You can use the native DLL by dropping the .dll file in C:\windows\syswow64 and/or C:\windows\system32 and setting the DLL to native or native, builtin with winecfg. This will also fix the earlier problem that made you solved via static CRT. Using static CRT has the same effect, except that you embed the CRT in the binary. Note that the MS CRT license agreement probably prohibits you to redistribute the CRT for non-Windows operating systems.

Stefan

> Am 02.12.2018 um 15:12 schrieb Graham Wihlidal <graham at wihlidal.ca>:
> 
> Hello!
> 
> I have been doing a lot of recent work in getting Windows graphics utilities (especially shader compilers) running on Linux, and some of these tools require Wine to operate correctly. The new DirectX shader compiler now compiles on Linux, but the signing must occur using a signed validator (dxil.dll that ships with Windows 10).
> 
> I wrote a little utility that loads dxil.dll and can do dxil signing post-compilation, and the hope was to run this in Wine, but I get some errors when trying to do so. I blogged about the adventure here: https://www.wihlidal.com/blog/pipeline/ ... t-compile/ <https://www.wihlidal.com/blog/pipeline/2018-09-16-dxil-signing-post-compile/>
> 
> I'm hoping someone can shed some light on what the issue here is, preferably with a fix or some instructions on how to debug this on my end. My utility that reproduces the Wine error is open source in case someone wants to give it a whirl (prebuilt Windows binaries in the releases area): https://github.com/gwihlidal/dxil-signing <https://github.com/gwihlidal/dxil-signing>
> 
> Thank you,
> Graham

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20181202/fdfa08b6/attachment.html>


More information about the wine-devel mailing list