December 29
Hey all,

I'm trying to get DMD to compile in x64 under Wine but I'm having issues with:

"LLVM ERROR: Could not acquire a cryptographic context: Unknown error
(0x80090017)
Stack dump:
0.      Program arguments: C:\D\dmd2\windows\bin\lld-link.exe /NOLOGO
test.obj /DEFAULTLIB:phobos64 /OPT:NOICF /LIBPATH:C:\D\dmd2\windows\bin\.
.\lib64\mingw
Error: linker exited with status 1"


The file I'm trying to compile is simply a basic hello world with 1 writeln (compiles fine under Windows).

Compilation string is simply: "wine64 cmd.exe /c 'dmd -m64 .\test.d'".  It works fine if I remove "-m64".


I'm using DMD instead of LDC because the resulting x64 binary doesn't rely on vcruntime140.dll or any other DLLs like LDC does (unless someone knows how to remove this restriction in LDC).


Am I missing something?  It looks like the linker is trying to use cryptographic functions and fatal erroring?  Any tips?

Thanks,
Chris


December 30
On 29 Dec 2020, at 18:37, Chris King via dmd-internals wrote:
> Am I missing something?  It looks like the linker is trying to use
> cryptographic functions and fatal erroring?  Any tips?

IIRC LLVM is using these just to generate random numbers. As to why it fails to run on Wine, no idea.

This is really more of a Wine/LLD/DMD question, though, than anything specific to LDC.

As for the dependency on Microsoft's C runtime libraries, you can use the mingw-w64-based libraries with LDC as well (https://github.com/ldc-developers/mingw-w64-libs), although I'm not sure whether they are currently shipped with the installer by default.

 — David
_______________________________________________
dmd-internals mailing list
dmd-internals@puremagic.com
http://lists.puremagic.com/mailman/listinfo/dmd-internals