Hello Marius Mikucionis,
I am not anyhow involved in maintaining mingw-w64.
But I guess I found something.

First I fear that mingw-w64 does not link as much static
as you expect it to.
All crossbuilt executables still dynamically link to msvcrt.dll.

    $ i686-w64-mingw32-objdump -p strftime-6.exe | grep 'DLL Name:'
            DLL Name: KERNEL32.dll
            DLL Name: msvcrt.dll

And the Microsoft page might just be right for later versions
of c runtimes they provide.

Further I found this information [2], which is as far as
I understand about recompiling mingw.
But I tried just to modify the compile/link command,
which I guess is kind of the expected output?

    $ i686-w64-mingw32-gcc -static -O3 -Wall -o strftime-ucrt-7.exe strftime.c 
-lucrt
    $ i686-w64-mingw32-objdump -p strftime-ucrt-7.exe | grep 'DLL Name:'
            DLL Name: KERNEL32.dll
            DLL Name: msvcrt.dll
            DLL Name: api-ms-win-crt-environment-l1-1-0.dll
            DLL Name: api-ms-win-crt-heap-l1-1-0.dll
            DLL Name: api-ms-win-crt-private-l1-1-0.dll
            DLL Name: api-ms-win-crt-runtime-l1-1-0.dll
            DLL Name: api-ms-win-crt-stdio-l1-1-0.dll
            DLL Name: api-ms-win-crt-string-l1-1-0.dll
            DLL Name: api-ms-win-crt-time-l1-1-0.dll

    $ wine strftime-ucrt-7.exe
    [%a]: [Tue]
    [%e]: [ 5]
    [%d]: [05]
    [%-d]: (empty) errno=22
    [%#d]: [5]
    [%b]: [Nov]
    [%Y]: [2019]
    [%H]: [03]
    [%M]: [02]
    [%S]: [01]
    [%z]: [+0100]
    [%Z]: [Mitteleuropõische Zeit]
    [%b%e, %Y, %H:%M:%S %z]: [Nov 5, 2019, 03:02:01 +0100]

(msvcrt.dll still appears; the same result for 7.0.0-2 and 6.0.0-3.)


So maybe you could examine this binaries from 2014 if they
need also some Dlls?

At least the binaries produced in my tests behave the same
in Wine and Windows.

Kind regards,
Bernhard


[1] 
https://stackoverflow.com/questions/55728544/how-to-avoid-msvcrt-dll-compiling-with-mingw64

Reply via email to