Open thehans opened 2 years ago
Thank you for your detailed report @thehans -- and really nice to see that openSCAD is otherwise working well with mimalloc.
The issue is that the recommended way to use mimalloc on Windows is through the visual C++ or clang that both generate standard windows executables using the universal C runtime that is part of the OS. The redirection dll (mimalloc-redirect.dll
) is made to work in this setting.
Now, I have not tested with mingw64
and I really should; if I have some time I will look into it as it would be great to support it well. With the mingw64
toolchain, I believe it links by default to the old msvcrt dll's instead of ucrt.dll
(I might be wrong here). I read somewhere about using -D_UCRT -lucrt
as command line options when building? or gcc -mcrtdll=ucrt
? Not sure.
With regard to console output -- this is just output from mimalloc right? This is because on Windows (since mingw
sets -DWIN32
) mimalloc uses direct-to-the-console output (_cputs
) to avoid deadlock in the universal C runtime. A way around this is to call mi_register_output(&myoutput,NULL)
at the start of main and define:
static void myoutput( const char* msg, void* arg ) {
printf(stderr, msg);
}
for example.
to be continued; I'll try to set up mingw and see if I can see what is going on.
I keep seeing references to mimalloc-override.dll;
I think this is just due to cross compiling from Linux -- we will need to add cmake options/tests to take care of the correct naming. (but it is indeed libmimalloc.dll
)
Looking at the redirection output, it does look as if it is linking to ucrt.dll
. In that case, it may indeed be the case that the mimalloc-override.dll
is not early enough in the import table.
mi_register_output
), set the environment variable MIMALLOC_VERBOSE=3
and show the output here so I can see what dll's are loaded.mimalloc
earlier on the linker command line; if that still doesn't work, then checkout the latest version of mimalloc from the dev
(v1.7.x) or dev-slice
(v2.0.x) branch . This contains the bin/minject.exe
utility which can fix up the dll loading order, just run it on the final executable and see if works.Thanks for the info about mi_register_output
. Btw, the printf
call you show is not quite right, I'm guessing you meant fprintf
. Anyways I ended up using fputs(msg, stderr);
which worked for me, since there's no formatting string involved.
Here is the output (still on tag v1.7.3 for now)
C:\Program Files\Openscad_mimalloc>set MIMALLOC_VERBOSE=3
C:\Program Files\Openscad_mimalloc>.\openscad
mimalloc: option 'show_errors': 0
mimalloc: option 'show_stats': 0
mimalloc: option 'eager_commit': 1
mimalloc: option 'eager_region_commit': 0
mimalloc: option 'reset_decommits': 1
mimalloc: option 'large_os_pages': 0
mimalloc: option 'reserve_huge_os_pages': 0
mimalloc: option 'reserve_huge_os_pages_at': -1
mimalloc: option 'reserve_os_memory': 0
mimalloc: option 'segment_cache': 0
mimalloc: option 'page_reset': 1
mimalloc: option 'abandoned_page_reset': 0
mimalloc: option 'segment_reset': 0
mimalloc: option 'eager_commit_delay': 1
mimalloc: option 'reset_delay': 100
mimalloc: option 'use_numa_nodes': 0
mimalloc: option 'limit_os_alloc': 0
mimalloc: option 'os_tag': 100
mimalloc: option 'max_errors': 16
mimalloc: option 'max_warnings': 16
mimalloc: process init: 0x38127d6000
mimalloc: secure level: 0
mimalloc-redirect: trace: build: Nov 22 2019
mimalloc-redirect: trace: checking for target mimalloc.dll
mimalloc-redirect: trace: module "C:\Program Files\Openscad_mimalloc\openscad.exe"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\ntdll.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\KERNEL32.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\KERNELBASE.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\ADVAPI32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\msvcrt.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\sechost.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\RPCRT4.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\bcrypt.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\GDI32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\win32u.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\gdi32full.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\msvcp_win.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\ucrtbase.dll"
mimalloc-redirect: trace: resolving "ucrtbase.dll"
mimalloc-redirect: trace: resolve "malloc" at ucrtbase.dll!0x00007FFCDEB2FDA0 to mimalloc!0x00007FFCA4A09B20 (0)
mimalloc-redirect: trace: resolve "calloc" at ucrtbase.dll!0x00007FFCDEB2DCE0 to mimalloc!0x00007FFCA4A0A1D0 (0)
mimalloc-redirect: trace: resolve "realloc" at ucrtbase.dll!0x00007FFCDEB31650 to mimalloc!0x00007FFCA4A0A600 (0)
mimalloc-redirect: trace: resolve "free" at ucrtbase.dll!0x00007FFCDEB2F020 to mimalloc!0x00007FFCA4A09FF0 (0)
mimalloc-redirect: trace: resolve "_expand" at ucrtbase.dll!0x00007FFCDEB8C5F0 to mimalloc!0x00007FFCA4A0A370 (0)
mimalloc-redirect: trace: resolve "_recalloc" at ucrtbase.dll!0x00007FFCDEB42990 to mimalloc!0x00007FFCA4A0A760 (0)
mimalloc-redirect: trace: resolve "_msize" at ucrtbase.dll!0x00007FFCDEB360D0 to mimalloc!0x00007FFCA4A0A120 (0)
mimalloc-redirect: trace: resolve "_malloc_base" at ucrtbase.dll!0x00007FFCDEB2FDB0 to mimalloc!0x00007FFCA4A09B20 (0)
mimalloc-redirect: trace: resolve "_calloc_base" at ucrtbase.dll!0x00007FFCDEB2DCF0 to mimalloc!0x00007FFCA4A0A1D0 (0)
mimalloc-redirect: trace: resolve "_realloc_base" at ucrtbase.dll!0x00007FFCDEB31660 to mimalloc!0x00007FFCA4A0A600 (0)
mimalloc-redirect: trace: resolve "_free_base" at ucrtbase.dll!0x00007FFCDEB2F040 to mimalloc!0x00007FFCA4A09FF0 (0)
mimalloc-redirect: trace: resolve "_expand_base" at ucrtbase.dll!0x00007FFCDEB8C5FC to mimalloc!0x00007FFCD9344D80 (0)
mimalloc-redirect: trace: resolve "_recalloc_base" at ucrtbase.dll!0x00007FFCDEB32494 to mimalloc!0x00007FFCD9344DB0 (0)
mimalloc-redirect: trace: resolve "_msize_base" at ucrtbase.dll!0x00007FFCDEB360E0 to mimalloc!0x00007FFCD9344D60 (0)
mimalloc-redirect: trace: resolve "_aligned_malloc" at ucrtbase.dll!0x00007FFCDEB42880 to mimalloc!0x00007FFCA4A0B330 (0)
mimalloc-redirect: trace: resolve "_aligned_realloc" at ucrtbase.dll!0x00007FFCDEB8C180 to mimalloc!0x00007FFCA4A0B720 (0)
mimalloc-redirect: trace: resolve "_aligned_free" at ucrtbase.dll!0x00007FFCDEB43280 to mimalloc!0x00007FFCA4A09FF0 (0)
mimalloc-redirect: trace: resolve "_aligned_recalloc" at ucrtbase.dll!0x00007FFCDEB8C380 to mimalloc!0x00007FFCA4A0BE60 (0)
mimalloc-redirect: trace: resolve "_aligned_msize" at ucrtbase.dll!0x00007FFCDEB8BAE0 to mimalloc!0x00007FFCD9345190 (0)
mimalloc-redirect: trace: resolve "_aligned_offset_malloc" at ucrtbase.dll!0x00007FFCDEB8BB50 to mimalloc!0x00007FFCA4A0B2F0 (0)
mimalloc-redirect: trace: resolve "_aligned_offset_realloc" at ucrtbase.dll!0x00007FFCDEB8BC20 to mimalloc!0x00007FFCA4A0B6D0 (0)
mimalloc-redirect: trace: resolve "_aligned_offset_recalloc" at ucrtbase.dll!0x00007FFCDEB8BE80 to mimalloc!0x00007FFCA4A0BE50 (0)
mimalloc-redirect: error: mimalloc-redirect.dll seems to be initialized after ucrtbase.dll
(hint: try to link with 'mimalloc-override.lib' earlier on the command line?)
mimalloc-redirect: trace: module load order:
mimalloc-redirect: trace: 0: C:\WINDOWS\SYSTEM32\ntdll.dll, un-initialized, base: 0x0
mimalloc-redirect: trace: 1: C:\WINDOWS\System32\KERNEL32.DLL, initialized, base: 0x1
mimalloc-redirect: trace: 2: C:\WINDOWS\System32\KERNELBASE.dll, initialized, base: 0x2
mimalloc-redirect: trace: 3: C:\WINDOWS\System32\ADVAPI32.dll, initialized, base: 0x3
mimalloc-redirect: trace: 4: C:\WINDOWS\System32\msvcrt.dll, initialized, base: 0x4
mimalloc-redirect: trace: 5: C:\WINDOWS\System32\sechost.dll, initialized, base: 0x5
mimalloc-redirect: trace: 6: C:\WINDOWS\System32\RPCRT4.dll, initialized, base: 0x6
mimalloc-redirect: trace: 7: C:\WINDOWS\System32\bcrypt.dll, initialized, base: 0x7
mimalloc-redirect: trace: 8: C:\WINDOWS\System32\GDI32.dll, initialized, base: 0x8
mimalloc-redirect: trace: 9: C:\WINDOWS\System32\win32u.dll, initialized, base: 0x9
mimalloc-redirect: trace: 10: C:\WINDOWS\System32\gdi32full.dll, initialized, base: 0xA
mimalloc-redirect: trace: 11: C:\WINDOWS\System32\msvcp_win.dll, initialized, base: 0xB
mimalloc-redirect: trace: 12: C:\WINDOWS\System32\ucrtbase.dll, initialized, base: 0xC
mimalloc-redirect: trace: 13: C:\WINDOWS\System32\USER32.dll, initialized, base: 0xD
mimalloc-redirect: trace: 14: C:\WINDOWS\System32\SHELL32.dll, initialized, base: 0xE
mimalloc-redirect: trace: 15: C:\WINDOWS\System32\CRYPT32.dll, initialized, base: 0xF
mimalloc-redirect: trace: 16: C:\WINDOWS\System32\IMM32.dll, initialized, base: 0x10
mimalloc-redirect: trace: 17: C:\WINDOWS\System32\ole32.dll, initialized, base: 0x11
mimalloc-redirect: trace: 18: C:\WINDOWS\System32\combase.dll, initialized, base: 0x12
mimalloc-redirect: trace: 19: C:\WINDOWS\SYSTEM32\d3d9.dll, initialized, base: 0x13
mimalloc-redirect: trace: 20: C:\WINDOWS\SYSTEM32\GLU32.dll, initialized, base: 0x14
mimalloc-redirect: trace: 21: C:\WINDOWS\System32\OLEAUT32.dll, initialized, base: 0x15
mimalloc-redirect: trace: 22: C:\WINDOWS\SYSTEM32\OPENGL32.dll, initialized, base: 0x16
mimalloc-redirect: trace: 23: C:\WINDOWS\System32\WS2_32.dll, initialized, base: 0x17
mimalloc-redirect: trace: 24: C:\WINDOWS\SYSTEM32\dwmapi.dll, initialized, base: 0x18
mimalloc-redirect: trace: 25: C:\WINDOWS\SYSTEM32\dxva2.dll, initialized, base: 0x19
mimalloc-redirect: trace: 26: C:\WINDOWS\SYSTEM32\EVR.dll, initialized, base: 0x1A
mimalloc-redirect: trace: 27: C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL, initialized, base: 0x1B
mimalloc-redirect: trace: 28: C:\WINDOWS\SYSTEM32\MF.dll, initialized, base: 0x1C
mimalloc-redirect: trace: 29: C:\WINDOWS\SYSTEM32\MFPlat.DLL, initialized, base: 0x1D
mimalloc-redirect: trace: 30: C:\WINDOWS\SYSTEM32\NETAPI32.dll, initialized, base: 0x1E
mimalloc-redirect: trace: 31: C:\WINDOWS\System32\cfgmgr32.dll, initialized, base: 0x1F
mimalloc-redirect: trace: 32: C:\WINDOWS\SYSTEM32\kernel.appcore.dll, initialized, base: 0x20
mimalloc-redirect: trace: 33: C:\WINDOWS\System32\shcore.dll, initialized, base: 0x21
mimalloc-redirect: trace: 34: C:\WINDOWS\SYSTEM32\windows.storage.dll, initialized, base: 0x22
mimalloc-redirect: trace: 35: C:\WINDOWS\SYSTEM32\USERENV.dll, initialized, base: 0x23
mimalloc-redirect: trace: 36: C:\WINDOWS\SYSTEM32\UxTheme.dll, initialized, base: 0x24
mimalloc-redirect: trace: 37: C:\WINDOWS\SYSTEM32\VERSION.dll, initialized, base: 0x25
mimalloc-redirect: trace: 38: C:\WINDOWS\SYSTEM32\WINMM.dll, initialized, base: 0x26
mimalloc-redirect: trace: 39: C:\WINDOWS\SYSTEM32\WTSAPI32.dll, initialized, base: 0x27
mimalloc-redirect: trace: 40: C:\WINDOWS\SYSTEM32\powrprof.dll, initialized, base: 0x28
mimalloc-redirect: trace: 41: C:\WINDOWS\SYSTEM32\RTWorkQ.DLL, initialized, base: 0x29
mimalloc-redirect: trace: 42: C:\WINDOWS\SYSTEM32\Wldp.dll, initialized, base: 0x2A
mimalloc-redirect: trace: 43: C:\Program Files\Openscad_mimalloc\mimalloc.dll, un-initialized, base: 0x2B
mimalloc-redirect: trace: 44: C:\WINDOWS\System32\PSAPI.DLL, un-initialized, base: 0x2C
mimalloc-redirect: trace: 45: C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL, initialized, base: 0x2D
mimalloc-redirect: trace: 46: C:\WINDOWS\SYSTEM32\MFCORE.DLL, un-initialized, base: 0x2E
mimalloc-redirect: trace: 47: C:\WINDOWS\SYSTEM32\NETUTILS.DLL, un-initialized, base: 0x2F
mimalloc-redirect: trace: 48: C:\WINDOWS\SYSTEM32\ksuser.dll, un-initialized, base: 0x30
mimalloc-redirect: trace: 49: C:\WINDOWS\SYSTEM32\SRVCLI.DLL, un-initialized, base: 0x31
mimalloc-redirect: trace: 50: C:\Program Files\Openscad_mimalloc\mimalloc-redirect.dll, un-initialized, base: 0x32
mimalloc-redirect: trace: 51: C:\WINDOWS\SYSTEM32\UMPDC.dll, initialized, base: 0x33
mimalloc-redirect: trace: 52: C:\WINDOWS\System32\bcryptPrimitives.dll, initialized, base: 0x34
mimalloc-redirect: trace: 53: , un-initialized, base: 0x35
mimalloc-redirect: trace: 54: C:\Program Files\Openscad_mimalloc\openscad.exe, un-initialized, base: 0x36
mimalloc-redirect: trace: module initialization order:
mimalloc-redirect: trace: 0: C:\WINDOWS\SYSTEM32\ntdll.dll, un-initialized, base: 0x0
mimalloc-redirect: trace: 1: C:\WINDOWS\System32\KERNELBASE.dll, initialized, base: 0x1
mimalloc-redirect: trace: 2: C:\WINDOWS\System32\KERNEL32.DLL, initialized, base: 0x2
mimalloc-redirect: trace: 3: C:\WINDOWS\System32\msvcrt.dll, initialized, base: 0x3
mimalloc-redirect: trace: 4: C:\WINDOWS\System32\RPCRT4.dll, initialized, base: 0x4
mimalloc-redirect: trace: 5: C:\WINDOWS\System32\sechost.dll, initialized, base: 0x5
mimalloc-redirect: trace: 6: C:\WINDOWS\System32\ADVAPI32.dll, initialized, base: 0x6
mimalloc-redirect: trace: 7: C:\WINDOWS\System32\bcrypt.dll, initialized, base: 0x7
mimalloc-redirect: trace: 8: C:\WINDOWS\System32\win32u.dll, initialized, base: 0x8
mimalloc-redirect: trace: 9: C:\WINDOWS\System32\ucrtbase.dll, initialized, base: 0x9
mimalloc-redirect: trace: 10: C:\WINDOWS\System32\msvcp_win.dll, initialized, base: 0xA
mimalloc-redirect: trace: 11: C:\WINDOWS\System32\USER32.dll, initialized, base: 0xB
mimalloc-redirect: trace: 12: C:\WINDOWS\System32\gdi32full.dll, initialized, base: 0xC
mimalloc-redirect: trace: 13: C:\WINDOWS\System32\GDI32.dll, initialized, base: 0xD
mimalloc-redirect: trace: 14: C:\WINDOWS\System32\combase.dll, initialized, base: 0xE
mimalloc-redirect: trace: 15: C:\WINDOWS\SYSTEM32\OPENGL32.dll, initialized, base: 0xF
mimalloc-redirect: trace: 16: C:\WINDOWS\SYSTEM32\GLU32.dll, initialized, base: 0x10
mimalloc-redirect: trace: 17: C:\WINDOWS\System32\SHELL32.dll, initialized, base: 0x11
mimalloc-redirect: trace: 18: C:\WINDOWS\System32\CRYPT32.dll, initialized, base: 0x12
mimalloc-redirect: trace: 19: C:\WINDOWS\SYSTEM32\kernel.appcore.dll, initialized, base: 0x13
mimalloc-redirect: trace: 20: C:\WINDOWS\SYSTEM32\dwmapi.dll, initialized, base: 0x14
mimalloc-redirect: trace: 21: C:\WINDOWS\SYSTEM32\Wldp.dll, initialized, base: 0x15
mimalloc-redirect: trace: 22: C:\WINDOWS\SYSTEM32\windows.storage.dll, initialized, base: 0x16
mimalloc-redirect: trace: 23: C:\WINDOWS\SYSTEM32\d3d9.dll, initialized, base: 0x17
mimalloc-redirect: trace: 24: C:\WINDOWS\SYSTEM32\dxva2.dll, initialized, base: 0x18
mimalloc-redirect: trace: 25: C:\WINDOWS\SYSTEM32\powrprof.dll, initialized, base: 0x19
mimalloc-redirect: trace: 26: C:\WINDOWS\SYSTEM32\UMPDC.dll, initialized, base: 0x1A
mimalloc-redirect: trace: 27: C:\WINDOWS\System32\shcore.dll, initialized, base: 0x1B
mimalloc-redirect: trace: 28: C:\WINDOWS\SYSTEM32\RTWorkQ.DLL, initialized, base: 0x1C
mimalloc-redirect: trace: 29: C:\WINDOWS\SYSTEM32\EVR.dll, initialized, base: 0x1D
mimalloc-redirect: trace: 30: C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL, initialized, base: 0x1E
mimalloc-redirect: trace: 31: C:\WINDOWS\System32\bcryptPrimitives.dll, initialized, base: 0x1F
mimalloc-redirect: trace: 32: C:\WINDOWS\System32\IMM32.dll, initialized, base: 0x20
mimalloc-redirect: trace: 33: C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL, initialized, base: 0x21
mimalloc-redirect: trace: 34: C:\WINDOWS\SYSTEM32\MF.dll, initialized, base: 0x22
mimalloc-redirect: trace: 35: C:\WINDOWS\System32\cfgmgr32.dll, initialized, base: 0x23
mimalloc-redirect: trace: 36: C:\WINDOWS\SYSTEM32\MFPlat.DLL, initialized, base: 0x24
mimalloc-redirect: trace: 37: C:\WINDOWS\SYSTEM32\NETAPI32.dll, initialized, base: 0x25
mimalloc-redirect: trace: 38: C:\WINDOWS\System32\ole32.dll, initialized, base: 0x26
mimalloc-redirect: trace: 39: C:\WINDOWS\System32\OLEAUT32.dll, initialized, base: 0x27
mimalloc-redirect: trace: 40: C:\WINDOWS\SYSTEM32\USERENV.dll, initialized, base: 0x28
mimalloc-redirect: trace: 41: C:\WINDOWS\SYSTEM32\UxTheme.dll, initialized, base: 0x29
mimalloc-redirect: trace: 42: C:\WINDOWS\SYSTEM32\VERSION.dll, initialized, base: 0x2A
mimalloc-redirect: trace: 43: C:\WINDOWS\SYSTEM32\WINMM.dll, initialized, base: 0x2B
mimalloc-redirect: trace: 44: C:\WINDOWS\System32\WS2_32.dll, initialized, base: 0x2C
mimalloc-redirect: trace: 45: C:\WINDOWS\SYSTEM32\WTSAPI32.dll, initialized, base: 0x2D
mimalloc-redirect: trace: 46: C:\Program Files\Openscad_mimalloc\mimalloc-redirect.dll, un-initialized, base: 0x2E
mimalloc-redirect: trace: 47: , un-initialized, base: 0x2F
mimalloc-redirect: trace: module "C:\WINDOWS\System32\USER32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\SHELL32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\CRYPT32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\IMM32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\ole32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\combase.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\d3d9.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\GLU32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\OLEAUT32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\OPENGL32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\WS2_32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\dwmapi.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\dxva2.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\EVR.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\MF.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\MFPlat.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\NETAPI32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\cfgmgr32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\kernel.appcore.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\shcore.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\windows.storage.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\USERENV.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\UxTheme.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\VERSION.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\WINMM.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\WTSAPI32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\powrprof.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\RTWorkQ.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\Wldp.dll"
mimalloc-redirect: trace: module "C:\Program Files\Openscad_mimalloc\mimalloc.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\PSAPI.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\MFCORE.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\NETUTILS.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\ksuser.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\SRVCLI.DLL"
mimalloc-redirect: trace: module "C:\Program Files\Openscad_mimalloc\mimalloc-redirect.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\UMPDC.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\bcryptPrimitives.dll"
mimalloc-redirect: warning: standard malloc is _not_ redirected! -- using regular malloc/free
mimalloc: using 1 numa regions
heap stats: peak total freed current unit count
reserved: 768.0 MiB 768.0 MiB 0 768.0 MiB not all freed!
committed: 622.1 MiB 845.6 MiB 223.5 MiB 622.1 MiB not all freed!
reset: 0 0 0 0 ok
touched: 0 0 11.0 MiB -11.0 MiB ok
segments: 6 7 3 4 not all freed!
-abandoned: 0 0 0 0 ok
-cached: 0 0 0 0 ok
pages: 149 365 268 97 not all freed!
-abandoned: 0 0 0 0 ok
-extended: 0
-noretire: 0
mmaps: 0
commits: 2.0 Ki
threads: 9 22 29 -7 ok
searches: 0.0 avg
numa nodes: 1
elapsed: 152.398 s
process: user: 47.515 s, system: 2.796 s, faults: 371649, rss: 879.0 MiB, commit: 1007.7 MiB
mimalloc: process done: 0x38127d6000
I will look into using minject.exe
from dev
branch next.
@daanx Our Windows builds are still completely built and packaged from Linux based CI server, so running minject.exe
might still be a problem for us. I could see if wine
can be installed on the build server, if you think that would work for running minject? Is there any possibility of a minject executable specifically for linux->windows cross-compiles?
Hi @thehans; very interesting, thanks. Did minject
work for you? -- you can just run it on the exe and try. It looks like indeed this is only a problem that mimalloc-redirect is loaded too late and minject
can confirm this for us. If this is the case, we should try to link differently so mimalloc-redirect
occurs earliest in the link order. It looks that now it actually occurs really late, or even last, so perhaps switch the order of the linking? Or compile verbose so you can check the final linking command manually and perhaps put mimalloc-redirect there earlier on the command line?
@daanx I attempted a build where mimalloc is the first library specified to be linked (via cmake) and did a verbose build. I originally didn't think the linking order mattered specifically for dynamic override on windows, since the docs make no mention of order? Here is the final build/link step (I converted spaces to new lines for extra readability)
[277/277]
:
&&
/mxe/usr/x86_64-pc-linux-gnu/bin/x86_64-w64-mingw32.static.posix-g++
-frounding-math
-Wno-attributes
-O2
-g
-DNDEBUG
-mwindows
-Wl,--stack,8388608
CMakeFiles/OpenSCAD.dir/OpenSCAD_autogen/mocs_compilation.cpp.obj
CMakeFiles/OpenSCAD.dir/src/openscad.cc.obj
CMakeFiles/OpenSCAD.dir/src/annotation.cc.obj
CMakeFiles/OpenSCAD.dir/src/arguments.cc.obj
CMakeFiles/OpenSCAD.dir/src/boost-utils.cc.obj
CMakeFiles/OpenSCAD.dir/src/builtin.cc.obj
CMakeFiles/OpenSCAD.dir/src/builtincontext.cc.obj
CMakeFiles/OpenSCAD.dir/src/calc.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgaladv.cc.obj
CMakeFiles/OpenSCAD.dir/src/children.cc.obj
CMakeFiles/OpenSCAD.dir/src/clipper-utils.cc.obj
CMakeFiles/OpenSCAD.dir/src/color.cc.obj
CMakeFiles/OpenSCAD.dir/src/colormap.cc.obj
CMakeFiles/OpenSCAD.dir/src/context.cc.obj
CMakeFiles/OpenSCAD.dir/src/contextframe.cc.obj
CMakeFiles/OpenSCAD.dir/src/context-mm.cc.obj
CMakeFiles/OpenSCAD.dir/src/control.cc.obj
CMakeFiles/OpenSCAD.dir/src/comment.cc.obj
CMakeFiles/OpenSCAD.dir/src/csgnode.cc.obj
CMakeFiles/OpenSCAD.dir/src/csgops.cc.obj
CMakeFiles/OpenSCAD.dir/src/degree_trig.cc.obj
CMakeFiles/OpenSCAD.dir/src/dxfdata.cc.obj
CMakeFiles/OpenSCAD.dir/src/dxfdim.cc.obj
CMakeFiles/OpenSCAD.dir/src/evaluationsession.cc.obj
CMakeFiles/OpenSCAD.dir/src/IndexedMesh.cc.obj
CMakeFiles/OpenSCAD.dir/src/export.cc.obj
CMakeFiles/OpenSCAD.dir/src/export_3mf.cc.obj
CMakeFiles/OpenSCAD.dir/src/export_amf.cc.obj
CMakeFiles/OpenSCAD.dir/src/export_dxf.cc.obj
CMakeFiles/OpenSCAD.dir/src/export_off.cc.obj
CMakeFiles/OpenSCAD.dir/src/export_wrl.cc.obj
CMakeFiles/OpenSCAD.dir/src/export_pdf.cc.obj
CMakeFiles/OpenSCAD.dir/src/export_stl.cc.obj
CMakeFiles/OpenSCAD.dir/src/export_svg.cc.obj
CMakeFiles/OpenSCAD.dir/src/export_param.cc.obj
CMakeFiles/OpenSCAD.dir/src/expr.cc.obj
CMakeFiles/OpenSCAD.dir/src/feature.cc.obj
CMakeFiles/OpenSCAD.dir/src/fileutils.cc.obj
CMakeFiles/OpenSCAD.dir/src/func.cc.obj
CMakeFiles/OpenSCAD.dir/src/function.cc.obj
CMakeFiles/OpenSCAD.dir/src/handle_dep.cc.obj
CMakeFiles/OpenSCAD.dir/src/hash.cc.obj
CMakeFiles/OpenSCAD.dir/src/import.cc.obj
CMakeFiles/OpenSCAD.dir/src/import_3mf.cc.obj
CMakeFiles/OpenSCAD.dir/src/import_amf.cc.obj
CMakeFiles/OpenSCAD.dir/src/import_stl.cc.obj
CMakeFiles/OpenSCAD.dir/src/import_off.cc.obj
CMakeFiles/OpenSCAD.dir/src/import_svg.cc.obj
CMakeFiles/OpenSCAD.dir/src/import_json.cc.obj
CMakeFiles/OpenSCAD.dir/src/linalg.cc.obj
CMakeFiles/OpenSCAD.dir/src/linearextrude.cc.obj
CMakeFiles/OpenSCAD.dir/src/localscope.cc.obj
CMakeFiles/OpenSCAD.dir/src/modcontext.cc.obj
CMakeFiles/OpenSCAD.dir/src/module.cc.obj
CMakeFiles/OpenSCAD.dir/src/node.cc.obj
CMakeFiles/OpenSCAD.dir/src/nodedumper.cc.obj
CMakeFiles/OpenSCAD.dir/src/offset.cc.obj
CMakeFiles/OpenSCAD.dir/src/parameters.cc.obj
CMakeFiles/OpenSCAD.dir/src/parsersettings.cc.obj
CMakeFiles/OpenSCAD.dir/src/polyset.cc.obj
CMakeFiles/OpenSCAD.dir/src/polyset-utils.cc.obj
CMakeFiles/OpenSCAD.dir/src/primitives.cc.obj
CMakeFiles/OpenSCAD.dir/src/printutils.cc.obj
CMakeFiles/OpenSCAD.dir/src/progress.cc.obj
CMakeFiles/OpenSCAD.dir/src/projection.cc.obj
CMakeFiles/OpenSCAD.dir/src/render.cc.obj
CMakeFiles/OpenSCAD.dir/src/rendersettings.cc.obj
CMakeFiles/OpenSCAD.dir/src/roof.cc.obj
CMakeFiles/OpenSCAD.dir/src/roof_ss.cc.obj
CMakeFiles/OpenSCAD.dir/src/roof_vd.cc.obj
CMakeFiles/OpenSCAD.dir/src/rotateextrude.cc.obj
CMakeFiles/OpenSCAD.dir/src/surface.cc.obj
CMakeFiles/OpenSCAD.dir/src/svg.cc.obj
CMakeFiles/OpenSCAD.dir/src/text.cc.obj
CMakeFiles/OpenSCAD.dir/src/transform.cc.obj
CMakeFiles/OpenSCAD.dir/src/value.cc.obj
CMakeFiles/OpenSCAD.dir/src/version.cc.obj
CMakeFiles/OpenSCAD.dir/src/Assignment.cc.obj
CMakeFiles/OpenSCAD.dir/src/AST.cc.obj
CMakeFiles/OpenSCAD.dir/src/Camera.cc.obj
CMakeFiles/OpenSCAD.dir/src/CSGTreeNormalizer.cc.obj
CMakeFiles/OpenSCAD.dir/src/DrawingCallback.cc.obj
CMakeFiles/OpenSCAD.dir/src/FontCache.cc.obj
CMakeFiles/OpenSCAD.dir/src/FreetypeRenderer.cc.obj
CMakeFiles/OpenSCAD.dir/src/Geometry.cc.obj
CMakeFiles/OpenSCAD.dir/src/GeometryCache.cc.obj
CMakeFiles/OpenSCAD.dir/src/GeometryUtils.cc.obj
CMakeFiles/OpenSCAD.dir/src/GroupModule.cc.obj
CMakeFiles/OpenSCAD.dir/src/LibraryInfo.cc.obj
CMakeFiles/OpenSCAD.dir/src/ModuleInstantiation.cc.obj
CMakeFiles/OpenSCAD.dir/src/NodeVisitor.cc.obj
CMakeFiles/OpenSCAD.dir/src/PlatformUtils.cc.obj
CMakeFiles/OpenSCAD.dir/src/Polygon2d.cc.obj
CMakeFiles/OpenSCAD.dir/src/RenderStatistic.cc.obj
CMakeFiles/OpenSCAD.dir/src/SourceFile.cc.obj
CMakeFiles/OpenSCAD.dir/src/SourceFileCache.cc.obj
CMakeFiles/OpenSCAD.dir/src/StatCache.cc.obj
CMakeFiles/OpenSCAD.dir/src/UserModule.cc.obj
CMakeFiles/OpenSCAD.dir/src/Tree.cc.obj
CMakeFiles/OpenSCAD.dir/src/ext/lodepng/lodepng.cpp.obj
CMakeFiles/OpenSCAD.dir/src/ext/polyclipping/clipper.cpp.obj
CMakeFiles/OpenSCAD.dir/src/ext/libtess2/Source/bucketalloc.c.obj
CMakeFiles/OpenSCAD.dir/src/ext/libtess2/Source/dict.c.obj
CMakeFiles/OpenSCAD.dir/src/ext/libtess2/Source/geom.c.obj
CMakeFiles/OpenSCAD.dir/src/ext/libtess2/Source/mesh.c.obj
CMakeFiles/OpenSCAD.dir/src/ext/libtess2/Source/priorityq.c.obj
CMakeFiles/OpenSCAD.dir/src/ext/libtess2/Source/sweep.c.obj
CMakeFiles/OpenSCAD.dir/src/ext/libtess2/Source/tess.c.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/circle.cc.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/data.cc.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/ellipse.cc.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/group.cc.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/libsvg.cc.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/line.cc.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/path.cc.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/polygon.cc.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/polyline.cc.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/rect.cc.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/shape.cc.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/svgpage.cc.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/text.cc.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/transformation.cc.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/tspan.cc.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/use.cc.obj
CMakeFiles/OpenSCAD.dir/src/libsvg/util.cc.obj
CMakeFiles/OpenSCAD.dir/src/parameter/parameterobject.cc.obj
CMakeFiles/OpenSCAD.dir/src/parameter/parameterset.cc.obj
CMakeFiles/OpenSCAD.dir/src/imageutils-lodepng.cc.obj
CMakeFiles/OpenSCAD.dir/src/PlatformUtils-win.cc.obj
CMakeFiles/OpenSCAD.dir/src/OffscreenContextWGL.cc.obj
CMakeFiles/OpenSCAD.dir/objects/lexer.cxx.obj
CMakeFiles/OpenSCAD.dir/objects/parser.cxx.obj
CMakeFiles/OpenSCAD.dir/objects/comment_lexer.cxx.obj
CMakeFiles/OpenSCAD.dir/objects/comment_parser.cxx.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils-applyops.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils-applyops-hybrid.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils-applyops-hybrid-minkowski.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils-closed.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils-convex.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils-corefine.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils-kernel.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils-hybrid.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils-mesh.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils-minkowski.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils-nef.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils-orient.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils-polyhedron.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils-project.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils-tess.cc.obj
CMakeFiles/OpenSCAD.dir/src/cgalutils-triangulate.cc.obj
CMakeFiles/OpenSCAD.dir/src/export_nef.cc.obj
CMakeFiles/OpenSCAD.dir/src/CGALHybridPolyhedron.cc.obj
CMakeFiles/OpenSCAD.dir/src/import_nef.cc.obj
CMakeFiles/OpenSCAD.dir/src/CGAL_Nef_polyhedron.cc.obj
CMakeFiles/OpenSCAD.dir/src/CGALCache.cc.obj
CMakeFiles/OpenSCAD.dir/src/CSGTreeEvaluator.cc.obj
CMakeFiles/OpenSCAD.dir/src/Polygon2d-CGAL.cc.obj
CMakeFiles/OpenSCAD.dir/src/GeometryEvaluator.cc.obj
CMakeFiles/OpenSCAD.dir/src/export_png.cc.obj
CMakeFiles/OpenSCAD.dir/src/fbo.cc.obj
CMakeFiles/OpenSCAD.dir/src/imageutils.cc.obj
CMakeFiles/OpenSCAD.dir/src/renderer.cc.obj
CMakeFiles/OpenSCAD.dir/src/system-gl.cc.obj
CMakeFiles/OpenSCAD.dir/src/VertexArray.cc.obj
CMakeFiles/OpenSCAD.dir/src/VBORenderer.cc.obj
CMakeFiles/OpenSCAD.dir/src/CGALRenderer.cc.obj
CMakeFiles/OpenSCAD.dir/src/GLView.cc.obj
CMakeFiles/OpenSCAD.dir/src/OffscreenView.cc.obj
CMakeFiles/OpenSCAD.dir/src/OpenCSGRenderer.cc.obj
CMakeFiles/OpenSCAD.dir/src/ThrownTogetherRenderer.cc.obj
CMakeFiles/OpenSCAD.dir/src/input/QGamepadInputDriver.cc.obj
CMakeFiles/OpenSCAD.dir/src/AutoUpdater.cc.obj
CMakeFiles/OpenSCAD.dir/src/CGALWorker.cc.obj
CMakeFiles/OpenSCAD.dir/src/Console.cc.obj
CMakeFiles/OpenSCAD.dir/src/Dock.cc.obj
CMakeFiles/OpenSCAD.dir/src/Editor.cc.obj
CMakeFiles/OpenSCAD.dir/src/ErrorLog.cc.obj
CMakeFiles/OpenSCAD.dir/src/FontListDialog.cc.obj
CMakeFiles/OpenSCAD.dir/src/FontListTableView.cc.obj
CMakeFiles/OpenSCAD.dir/src/InitConfigurator.cc.obj
CMakeFiles/OpenSCAD.dir/src/LaunchingScreen.cc.obj
CMakeFiles/OpenSCAD.dir/src/LibraryInfoDialog.cc.obj
CMakeFiles/OpenSCAD.dir/src/MainWindow.cc.obj
CMakeFiles/OpenSCAD.dir/src/MouseSelector.cc.obj
CMakeFiles/OpenSCAD.dir/src/OctoPrint.cc.obj
CMakeFiles/OpenSCAD.dir/src/OpenCSGWarningDialog.cc.obj
CMakeFiles/OpenSCAD.dir/src/OpenSCADApp.cc.obj
CMakeFiles/OpenSCAD.dir/src/Preferences.cc.obj
CMakeFiles/OpenSCAD.dir/src/PrintInitDialog.cc.obj
CMakeFiles/OpenSCAD.dir/src/PrintService.cc.obj
CMakeFiles/OpenSCAD.dir/src/ProgressWidget.cc.obj
CMakeFiles/OpenSCAD.dir/src/QGLView.cc.obj
CMakeFiles/OpenSCAD.dir/src/QSettingsCached.cc.obj
CMakeFiles/OpenSCAD.dir/src/QWordSearchField.cc.obj
CMakeFiles/OpenSCAD.dir/src/ScadApi.cc.obj
CMakeFiles/OpenSCAD.dir/src/ScadLexer.cc.obj
CMakeFiles/OpenSCAD.dir/src/ScintillaEditor.cc.obj
CMakeFiles/OpenSCAD.dir/src/Settings.cc.obj
CMakeFiles/OpenSCAD.dir/src/SettingsWriter.cc.obj
CMakeFiles/OpenSCAD.dir/src/TabManager.cc.obj
CMakeFiles/OpenSCAD.dir/src/TabWidget.cc.obj
CMakeFiles/OpenSCAD.dir/src/UIUtils.cc.obj
CMakeFiles/OpenSCAD.dir/src/WindowManager.cc.obj
CMakeFiles/OpenSCAD.dir/src/input/AxisConfigWidget.cc.obj
CMakeFiles/OpenSCAD.dir/src/input/ButtonConfigWidget.cc.obj
CMakeFiles/OpenSCAD.dir/src/input/InputDriver.cc.obj
CMakeFiles/OpenSCAD.dir/src/input/InputDriverManager.cc.obj
CMakeFiles/OpenSCAD.dir/src/input/InputEventMapper.cc.obj
CMakeFiles/OpenSCAD.dir/src/input/WheelIgnorer.cc.obj
CMakeFiles/OpenSCAD.dir/src/parameter/GroupWidget.cc.obj
CMakeFiles/OpenSCAD.dir/src/parameter/IgnoreWheelWhenNotFocused.cc.obj
CMakeFiles/OpenSCAD.dir/src/parameter/ParameterCheckBox.cc.obj
CMakeFiles/OpenSCAD.dir/src/parameter/ParameterComboBox.cc.obj
CMakeFiles/OpenSCAD.dir/src/parameter/ParameterSlider.cc.obj
CMakeFiles/OpenSCAD.dir/src/parameter/ParameterSpinBox.cc.obj
CMakeFiles/OpenSCAD.dir/src/parameter/ParameterText.cc.obj
CMakeFiles/OpenSCAD.dir/src/parameter/ParameterVector.cc.obj
CMakeFiles/OpenSCAD.dir/src/parameter/ParameterVirtualWidget.cc.obj
CMakeFiles/OpenSCAD.dir/src/parameter/ParameterWidget.cc.obj
CMakeFiles/OpenSCAD.dir/src/input/DBusInputDriver.cc.obj
CMakeFiles/OpenSCAD.dir/openscad_interface.cpp.obj
CMakeFiles/OpenSCAD.dir/openscad_adaptor.cpp.obj
CMakeFiles/OpenSCAD.dir/openscad_win32-nightly.rc.res
CMakeFiles/OpenSCAD.dir/OpenSCAD_autogen/EWIEGA46WW/qrc_openscad.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Gui/Qt5Gui_QGifPlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Gui/Qt5Gui_QICNSPlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Gui/Qt5Gui_QICOPlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Gui/Qt5Gui_QJp2Plugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Gui/Qt5Gui_QJpegPlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Gui/Qt5Gui_QMngPlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Gui/Qt5Gui_QTgaPlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Gui/Qt5Gui_QTiffPlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Gui/Qt5Gui_QWbmpPlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Gui/Qt5Gui_QWebpPlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Gui/Qt5Gui_QWindowsIntegrationPlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Widgets/Qt5Widgets_QWindowsVistaStylePlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Network/Qt5Network_QGenericEnginePlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Multimedia/Qt5Multimedia_AudioCaptureServicePlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Multimedia/Qt5Multimedia_DSServicePlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Multimedia/Qt5Multimedia_QM3uPlaylistPlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Multimedia/Qt5Multimedia_QWindowsAudioPlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Gamepad/Qt5Gamepad_QXInputGamepadBackendPlugin_Import.cpp.obj
CMakeFiles/OpenSCAD.dir/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/cmake/Qt5Gui/Qt5Gui_QSvgPlugin_Import.cpp.obj
-o
openscad.exe
-Wl,--out-implib,libopenscad.dll.a
-Wl,--major-image-version,0,--minor-image-version,0
submodules/mimalloc/libmimalloc.dll.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libboost_filesystem-mt-x64.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libboost_system-mt-x64.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libboost_regex-mt-x64.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libboost_program_options-mt-x64.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libharfbuzz.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libfontconfig.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libglib-2.0.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libws2_32.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libole32.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libwinmm.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libshlwapi.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libpcre.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libintl.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libiconv.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libdouble-conversion.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libopencsg.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libglew32s.a
-lopengl32
-lglu32
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libzip.a
-lharfbuzz
-lcairo
-lgobject-2.0
-lfontconfig
-lfreetype
-lm
-lusp10
-lmsimg32
-lgdi32
-lpixman-1
-lffi
-lexpat
-lbz2
-lpng16
-lz
-lharfbuzz_too
-lfreetype_too
-lglib-2.0
-lws2_32
-lole32
-lwinmm
-lshlwapi
-lpcre
-lintl
-liconv
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libxml2.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libcairo.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/lib3MF.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libzip.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libz.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Core.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Widgets.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Multimedia.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5OpenGL.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Concurrent.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Network.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Svg.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libqscintilla2_qt5.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5DBus.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Gamepad.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqsvg.a
-lbcrypt
-lpsapi
-lshell32
-luser32
-ladvapi32
-lbcrypt
-lsynchronization
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libboost_atomic-mt-x64.a
-lharfbuzz
-lcairo
-lgobject-2.0
-lfontconfig
-lfreetype
-lm
-lusp10
-lmsimg32
-lgdi32
-lpixman-1
-lffi
-lexpat
-lbz2
-lpng16
-lz
-lharfbuzz_too
-lfreetype_too
-lglib-2.0
-lws2_32
-lole32
-lwinmm
-lshlwapi
-lpcre
-lintl
-liconv
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libxml2.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/lib3MF.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libqscintilla2_qt5.a
-lbcrypt
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libgmpxx.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libmpfr.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libgmp.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/mediaservice/libqtmedia_audioengine.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/mediaservice/libdsengine.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/playlistformats/libqtmultimedia_m3u.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/audio/libqtaudio_windows.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Multimedia.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/mediaservice/libqtmedia_audioengine.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/mediaservice/libdsengine.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/playlistformats/libqtmultimedia_m3u.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/audio/libqtaudio_windows.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Network.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/bearer/libqgenericbearer.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Network.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/bearer/libqgenericbearer.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libmf.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libmfplat.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libmfuuid.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libd3d9.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libdxva2.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libevr.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libdmoguids.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libmsdmo.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libksuser.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib//libQt5Multimedia.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib//libQt5Network.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libdnsapi.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libssl.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libcrypto.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libcrypt32.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libstrmiids.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libamstrmid.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libdbus-1.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libiphlpapi.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libdbghelp.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/gamepads/libxinputgamepad.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Gamepad.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/gamepads/libxinputgamepad.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib//libQt5Gamepad.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Svg.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Widgets.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/styles/libqwindowsvistastyle.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Widgets.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/styles/libqwindowsvistastyle.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Gui.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqgif.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqicns.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqico.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqjp2.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqjpeg.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqmng.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqtga.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqtiff.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqwbmp.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqwebp.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/platforms/libqwindows.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5EventDispatcherSupport.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5FontDatabaseSupport.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5ThemeSupport.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5AccessibilitySupport.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5WindowsUIAutomationSupport.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Gui.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqgif.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqicns.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqico.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqjp2.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqjpeg.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqmng.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqtga.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqtiff.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqwbmp.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/imageformats/libqwebp.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/plugins/platforms/libqwindows.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5EventDispatcherSupport.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5FontDatabaseSupport.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5ThemeSupport.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5AccessibilitySupport.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5WindowsUIAutomationSupport.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libjasper.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libmng.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/liblcms2.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libtiff.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/liblzma.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libjpeg.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libwebpmux.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libwebpdemux.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libwebp.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libwinspool.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libwtsapi32.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib//libQt5EventDispatcherSupport.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib//libQt5FontDatabaseSupport.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib//libQt5ThemeSupport.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib//libQt5AccessibilitySupport.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib//libQt5WindowsUIAutomationSupport.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libdwrite.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libd2d1.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libQt5Core.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib/libqtmain.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib//libQt5Svg.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib//libQt5Widgets.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib//libQt5Gui.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libd3d11.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libdxgi.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libdxguid.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libharfbuzz.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libcairo.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libgobject-2.0.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libfontconfig.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libfreetype.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libm.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libusp10.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libmsimg32.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libpixman-1.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libffi.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libexpat.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libbz2.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libpng16.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libharfbuzz_too.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libfreetype_too.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libglib-2.0.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libshlwapi.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libpcre.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libintl.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libiconv.a
/mxe/usr/x86_64-w64-mingw32.static.posix/qt5/lib//libQt5Core.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libmpr.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libuserenv.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libversion.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libdouble-conversion.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libz.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libpcre2-16.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libzstd.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libnetapi32.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libuxtheme.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libdwmapi.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libgdi32.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libcomdlg32.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/liboleaut32.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libimm32.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libws2_32.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libadvapi32.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libkernel32.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libole32.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libshell32.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libuuid.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libuser32.a
/mxe/usr/x86_64-w64-mingw32.static.posix/lib/libwinmm.a
-lkernel32
-luser32
-lgdi32
-lwinspool
-lshell32
-lole32
-loleaut32
-luuid
-lcomdlg32
-ladvapi32
&&
cd
/root/workspace/mingw64.static.posix
&&
/bin/sh
/root/workspace/scripts/translation-make.sh
Running that build showed slightly different module initialization order, but mimalloc dll's did not seem to change their positions.
C:\Program Files\Openscad_mimalloc2>.\openscad
mimalloc: option 'show_errors': 0
mimalloc: option 'show_stats': 0
mimalloc: option 'eager_commit': 1
mimalloc: option 'eager_region_commit': 0
mimalloc: option 'reset_decommits': 1
mimalloc: option 'large_os_pages': 0
mimalloc: option 'reserve_huge_os_pages': 0
mimalloc: option 'reserve_huge_os_pages_at': -1
mimalloc: option 'reserve_os_memory': 0
mimalloc: option 'segment_cache': 0
mimalloc: option 'page_reset': 1
mimalloc: option 'abandoned_page_reset': 0
mimalloc: option 'segment_reset': 0
mimalloc: option 'eager_commit_delay': 1
mimalloc: option 'reset_delay': 100
mimalloc: option 'use_numa_nodes': 0
mimalloc: option 'limit_os_alloc': 0
mimalloc: option 'os_tag': 100
mimalloc: option 'max_errors': 16
mimalloc: option 'max_warnings': 16
mimalloc: process init: 0xd2c2658000
mimalloc: secure level: 0
mimalloc-redirect: trace: build: Nov 22 2019
mimalloc-redirect: trace: checking for target mimalloc.dll
mimalloc-redirect: trace: module "C:\Program Files\Openscad_mimalloc2\openscad.exe"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\ntdll.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\KERNEL32.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\KERNELBASE.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\ADVAPI32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\msvcrt.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\sechost.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\RPCRT4.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\bcrypt.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\GDI32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\win32u.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\gdi32full.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\msvcp_win.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\ucrtbase.dll"
mimalloc-redirect: trace: resolving "ucrtbase.dll"
mimalloc-redirect: trace: resolve "malloc" at ucrtbase.dll!0x00007FFCDEB2FDA0 to mimalloc!0x00007FFC82F59B20 (0)
mimalloc-redirect: trace: resolve "calloc" at ucrtbase.dll!0x00007FFCDEB2DCE0 to mimalloc!0x00007FFC82F5A1D0 (0)
mimalloc-redirect: trace: resolve "realloc" at ucrtbase.dll!0x00007FFCDEB31650 to mimalloc!0x00007FFC82F5A600 (0)
mimalloc-redirect: trace: resolve "free" at ucrtbase.dll!0x00007FFCDEB2F020 to mimalloc!0x00007FFC82F59FF0 (0)
mimalloc-redirect: trace: resolve "_expand" at ucrtbase.dll!0x00007FFCDEB8C5F0 to mimalloc!0x00007FFC82F5A370 (0)
mimalloc-redirect: trace: resolve "_recalloc" at ucrtbase.dll!0x00007FFCDEB42990 to mimalloc!0x00007FFC82F5A760 (0)
mimalloc-redirect: trace: resolve "_msize" at ucrtbase.dll!0x00007FFCDEB360D0 to mimalloc!0x00007FFC82F5A120 (0)
mimalloc-redirect: trace: resolve "_malloc_base" at ucrtbase.dll!0x00007FFCDEB2FDB0 to mimalloc!0x00007FFC82F59B20 (0)
mimalloc-redirect: trace: resolve "_calloc_base" at ucrtbase.dll!0x00007FFCDEB2DCF0 to mimalloc!0x00007FFC82F5A1D0 (0)
mimalloc-redirect: trace: resolve "_realloc_base" at ucrtbase.dll!0x00007FFCDEB31660 to mimalloc!0x00007FFC82F5A600 (0)
mimalloc-redirect: trace: resolve "_free_base" at ucrtbase.dll!0x00007FFCDEB2F040 to mimalloc!0x00007FFC82F59FF0 (0)
mimalloc-redirect: trace: resolve "_expand_base" at ucrtbase.dll!0x00007FFCDEB8C5FC to mimalloc!0x00007FFCC56C4D80 (0)
mimalloc-redirect: trace: resolve "_recalloc_base" at ucrtbase.dll!0x00007FFCDEB32494 to mimalloc!0x00007FFCC56C4DB0 (0)
mimalloc-redirect: trace: resolve "_msize_base" at ucrtbase.dll!0x00007FFCDEB360E0 to mimalloc!0x00007FFCC56C4D60 (0)
mimalloc-redirect: trace: resolve "_aligned_malloc" at ucrtbase.dll!0x00007FFCDEB42880 to mimalloc!0x00007FFC82F5B330 (0)
mimalloc-redirect: trace: resolve "_aligned_realloc" at ucrtbase.dll!0x00007FFCDEB8C180 to mimalloc!0x00007FFC82F5B720 (0)
mimalloc-redirect: trace: resolve "_aligned_free" at ucrtbase.dll!0x00007FFCDEB43280 to mimalloc!0x00007FFC82F59FF0 (0)
mimalloc-redirect: trace: resolve "_aligned_recalloc" at ucrtbase.dll!0x00007FFCDEB8C380 to mimalloc!0x00007FFC82F5BE60 (0)
mimalloc-redirect: trace: resolve "_aligned_msize" at ucrtbase.dll!0x00007FFCDEB8BAE0 to mimalloc!0x00007FFCC56C5190 (0)
mimalloc-redirect: trace: resolve "_aligned_offset_malloc" at ucrtbase.dll!0x00007FFCDEB8BB50 to mimalloc!0x00007FFC82F5B2F0 (0)
mimalloc-redirect: trace: resolve "_aligned_offset_realloc" at ucrtbase.dll!0x00007FFCDEB8BC20 to mimalloc!0x00007FFC82F5B6D0 (0)
mimalloc-redirect: trace: resolve "_aligned_offset_recalloc" at ucrtbase.dll!0x00007FFCDEB8BE80 to mimalloc!0x00007FFC82F5BE50 (0)
mimalloc-redirect: error: mimalloc-redirect.dll seems to be initialized after ucrtbase.dll
(hint: try to link with 'mimalloc-override.lib' earlier on the command line?)
mimalloc-redirect: trace: module load order:
mimalloc-redirect: trace: 0: C:\WINDOWS\SYSTEM32\ntdll.dll, un-initialized, base: 0x0
mimalloc-redirect: trace: 1: C:\WINDOWS\System32\KERNEL32.DLL, initialized, base: 0x1
mimalloc-redirect: trace: 2: C:\WINDOWS\System32\KERNELBASE.dll, initialized, base: 0x2
mimalloc-redirect: trace: 3: C:\WINDOWS\System32\ADVAPI32.dll, initialized, base: 0x3
mimalloc-redirect: trace: 4: C:\WINDOWS\System32\msvcrt.dll, initialized, base: 0x4
mimalloc-redirect: trace: 5: C:\WINDOWS\System32\sechost.dll, initialized, base: 0x5
mimalloc-redirect: trace: 6: C:\WINDOWS\System32\RPCRT4.dll, initialized, base: 0x6
mimalloc-redirect: trace: 7: C:\WINDOWS\System32\bcrypt.dll, initialized, base: 0x7
mimalloc-redirect: trace: 8: C:\WINDOWS\System32\GDI32.dll, initialized, base: 0x8
mimalloc-redirect: trace: 9: C:\WINDOWS\System32\win32u.dll, initialized, base: 0x9
mimalloc-redirect: trace: 10: C:\WINDOWS\System32\gdi32full.dll, initialized, base: 0xA
mimalloc-redirect: trace: 11: C:\WINDOWS\System32\msvcp_win.dll, initialized, base: 0xB
mimalloc-redirect: trace: 12: C:\WINDOWS\System32\ucrtbase.dll, initialized, base: 0xC
mimalloc-redirect: trace: 13: C:\WINDOWS\System32\USER32.dll, initialized, base: 0xD
mimalloc-redirect: trace: 14: C:\WINDOWS\System32\SHELL32.dll, initialized, base: 0xE
mimalloc-redirect: trace: 15: C:\WINDOWS\System32\CRYPT32.dll, initialized, base: 0xF
mimalloc-redirect: trace: 16: C:\WINDOWS\System32\IMM32.dll, initialized, base: 0x10
mimalloc-redirect: trace: 17: C:\WINDOWS\System32\ole32.dll, initialized, base: 0x11
mimalloc-redirect: trace: 18: C:\WINDOWS\System32\combase.dll, initialized, base: 0x12
mimalloc-redirect: trace: 19: C:\WINDOWS\SYSTEM32\GLU32.dll, initialized, base: 0x13
mimalloc-redirect: trace: 20: C:\WINDOWS\SYSTEM32\OPENGL32.dll, initialized, base: 0x14
mimalloc-redirect: trace: 21: C:\WINDOWS\SYSTEM32\d3d9.dll, initialized, base: 0x15
mimalloc-redirect: trace: 22: C:\WINDOWS\System32\OLEAUT32.dll, initialized, base: 0x16
mimalloc-redirect: trace: 23: C:\WINDOWS\System32\WS2_32.dll, initialized, base: 0x17
mimalloc-redirect: trace: 24: C:\WINDOWS\SYSTEM32\dwmapi.dll, initialized, base: 0x18
mimalloc-redirect: trace: 25: C:\WINDOWS\SYSTEM32\dxva2.dll, initialized, base: 0x19
mimalloc-redirect: trace: 26: C:\WINDOWS\SYSTEM32\EVR.dll, initialized, base: 0x1A
mimalloc-redirect: trace: 27: C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL, initialized, base: 0x1B
mimalloc-redirect: trace: 28: C:\WINDOWS\SYSTEM32\MF.dll, initialized, base: 0x1C
mimalloc-redirect: trace: 29: C:\WINDOWS\SYSTEM32\MFPlat.DLL, initialized, base: 0x1D
mimalloc-redirect: trace: 30: C:\WINDOWS\SYSTEM32\NETAPI32.dll, initialized, base: 0x1E
mimalloc-redirect: trace: 31: C:\WINDOWS\SYSTEM32\kernel.appcore.dll, initialized, base: 0x1F
mimalloc-redirect: trace: 32: C:\WINDOWS\System32\cfgmgr32.dll, initialized, base: 0x20
mimalloc-redirect: trace: 33: C:\WINDOWS\SYSTEM32\windows.storage.dll, initialized, base: 0x21
mimalloc-redirect: trace: 34: C:\WINDOWS\System32\shcore.dll, initialized, base: 0x22
mimalloc-redirect: trace: 35: C:\WINDOWS\SYSTEM32\USERENV.dll, initialized, base: 0x23
mimalloc-redirect: trace: 36: C:\WINDOWS\SYSTEM32\UxTheme.dll, initialized, base: 0x24
mimalloc-redirect: trace: 37: C:\WINDOWS\SYSTEM32\VERSION.dll, initialized, base: 0x25
mimalloc-redirect: trace: 38: C:\WINDOWS\SYSTEM32\WINMM.dll, initialized, base: 0x26
mimalloc-redirect: trace: 39: C:\WINDOWS\SYSTEM32\WTSAPI32.dll, initialized, base: 0x27
mimalloc-redirect: trace: 40: C:\WINDOWS\SYSTEM32\powrprof.dll, initialized, base: 0x28
mimalloc-redirect: trace: 41: C:\WINDOWS\SYSTEM32\RTWorkQ.DLL, initialized, base: 0x29
mimalloc-redirect: trace: 42: C:\WINDOWS\SYSTEM32\Wldp.dll, initialized, base: 0x2A
mimalloc-redirect: trace: 43: C:\Program Files\Openscad_mimalloc2\mimalloc.dll, un-initialized, base: 0x2B
mimalloc-redirect: trace: 44: C:\WINDOWS\System32\PSAPI.DLL, un-initialized, base: 0x2C
mimalloc-redirect: trace: 45: C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL, initialized, base: 0x2D
mimalloc-redirect: trace: 46: C:\WINDOWS\SYSTEM32\MFCORE.DLL, un-initialized, base: 0x2E
mimalloc-redirect: trace: 47: C:\WINDOWS\SYSTEM32\NETUTILS.DLL, un-initialized, base: 0x2F
mimalloc-redirect: trace: 48: C:\WINDOWS\SYSTEM32\ksuser.dll, un-initialized, base: 0x30
mimalloc-redirect: trace: 49: C:\WINDOWS\SYSTEM32\SRVCLI.DLL, un-initialized, base: 0x31
mimalloc-redirect: trace: 50: C:\Program Files\Openscad_mimalloc2\mimalloc-redirect.dll, un-initialized, base: 0x32
mimalloc-redirect: trace: 51: C:\WINDOWS\SYSTEM32\UMPDC.dll, initialized, base: 0x33
mimalloc-redirect: trace: 52: C:\WINDOWS\System32\bcryptPrimitives.dll, initialized, base: 0x34
mimalloc-redirect: trace: 53: , un-initialized, base: 0x35
mimalloc-redirect: trace: 54: C:\Program Files\Openscad_mimalloc2\openscad.exe, un-initialized, base: 0x36
mimalloc-redirect: trace: module initialization order:
mimalloc-redirect: trace: 0: C:\WINDOWS\SYSTEM32\ntdll.dll, un-initialized, base: 0x0
mimalloc-redirect: trace: 1: C:\WINDOWS\System32\KERNELBASE.dll, initialized, base: 0x1
mimalloc-redirect: trace: 2: C:\WINDOWS\System32\KERNEL32.DLL, initialized, base: 0x2
mimalloc-redirect: trace: 3: C:\WINDOWS\System32\msvcrt.dll, initialized, base: 0x3
mimalloc-redirect: trace: 4: C:\WINDOWS\System32\RPCRT4.dll, initialized, base: 0x4
mimalloc-redirect: trace: 5: C:\WINDOWS\System32\sechost.dll, initialized, base: 0x5
mimalloc-redirect: trace: 6: C:\WINDOWS\System32\ADVAPI32.dll, initialized, base: 0x6
mimalloc-redirect: trace: 7: C:\WINDOWS\System32\bcrypt.dll, initialized, base: 0x7
mimalloc-redirect: trace: 8: C:\WINDOWS\System32\win32u.dll, initialized, base: 0x8
mimalloc-redirect: trace: 9: C:\WINDOWS\System32\ucrtbase.dll, initialized, base: 0x9
mimalloc-redirect: trace: 10: C:\WINDOWS\System32\msvcp_win.dll, initialized, base: 0xA
mimalloc-redirect: trace: 11: C:\WINDOWS\System32\USER32.dll, initialized, base: 0xB
mimalloc-redirect: trace: 12: C:\WINDOWS\System32\gdi32full.dll, initialized, base: 0xC
mimalloc-redirect: trace: 13: C:\WINDOWS\System32\GDI32.dll, initialized, base: 0xD
mimalloc-redirect: trace: 14: C:\WINDOWS\System32\combase.dll, initialized, base: 0xE
mimalloc-redirect: trace: 15: C:\WINDOWS\SYSTEM32\OPENGL32.dll, initialized, base: 0xF
mimalloc-redirect: trace: 16: C:\WINDOWS\SYSTEM32\GLU32.dll, initialized, base: 0x10
mimalloc-redirect: trace: 17: C:\WINDOWS\System32\SHELL32.dll, initialized, base: 0x11
mimalloc-redirect: trace: 18: C:\WINDOWS\System32\CRYPT32.dll, initialized, base: 0x12
mimalloc-redirect: trace: 19: C:\WINDOWS\SYSTEM32\kernel.appcore.dll, initialized, base: 0x13
mimalloc-redirect: trace: 20: C:\WINDOWS\SYSTEM32\dwmapi.dll, initialized, base: 0x14
mimalloc-redirect: trace: 21: C:\WINDOWS\SYSTEM32\Wldp.dll, initialized, base: 0x15
mimalloc-redirect: trace: 22: C:\WINDOWS\SYSTEM32\windows.storage.dll, initialized, base: 0x16
mimalloc-redirect: trace: 23: C:\WINDOWS\SYSTEM32\d3d9.dll, initialized, base: 0x17
mimalloc-redirect: trace: 24: C:\WINDOWS\SYSTEM32\dxva2.dll, initialized, base: 0x18
mimalloc-redirect: trace: 25: C:\WINDOWS\SYSTEM32\powrprof.dll, initialized, base: 0x19
mimalloc-redirect: trace: 26: C:\WINDOWS\SYSTEM32\UMPDC.dll, initialized, base: 0x1A
mimalloc-redirect: trace: 27: C:\WINDOWS\System32\shcore.dll, initialized, base: 0x1B
mimalloc-redirect: trace: 28: C:\WINDOWS\SYSTEM32\RTWorkQ.DLL, initialized, base: 0x1C
mimalloc-redirect: trace: 29: C:\WINDOWS\SYSTEM32\EVR.dll, initialized, base: 0x1D
mimalloc-redirect: trace: 30: C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL, initialized, base: 0x1E
mimalloc-redirect: trace: 31: C:\WINDOWS\System32\bcryptPrimitives.dll, initialized, base: 0x1F
mimalloc-redirect: trace: 32: C:\WINDOWS\System32\IMM32.dll, initialized, base: 0x20
mimalloc-redirect: trace: 33: C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL, initialized, base: 0x21
mimalloc-redirect: trace: 34: C:\WINDOWS\SYSTEM32\MF.dll, initialized, base: 0x22
mimalloc-redirect: trace: 35: C:\WINDOWS\System32\cfgmgr32.dll, initialized, base: 0x23
mimalloc-redirect: trace: 36: C:\WINDOWS\SYSTEM32\MFPlat.DLL, initialized, base: 0x24
mimalloc-redirect: trace: 37: C:\WINDOWS\SYSTEM32\NETAPI32.dll, initialized, base: 0x25
mimalloc-redirect: trace: 38: C:\WINDOWS\System32\ole32.dll, initialized, base: 0x26
mimalloc-redirect: trace: 39: C:\WINDOWS\System32\OLEAUT32.dll, initialized, base: 0x27
mimalloc-redirect: trace: 40: C:\WINDOWS\SYSTEM32\USERENV.dll, initialized, base: 0x28
mimalloc-redirect: trace: 41: C:\WINDOWS\SYSTEM32\UxTheme.dll, initialized, base: 0x29
mimalloc-redirect: trace: 42: C:\WINDOWS\SYSTEM32\VERSION.dll, initialized, base: 0x2A
mimalloc-redirect: trace: 43: C:\WINDOWS\SYSTEM32\WINMM.dll, initialized, base: 0x2B
mimalloc-redirect: trace: 44: C:\WINDOWS\System32\WS2_32.dll, initialized, base: 0x2C
mimalloc-redirect: trace: 45: C:\WINDOWS\SYSTEM32\WTSAPI32.dll, initialized, base: 0x2D
mimalloc-redirect: trace: 46: C:\Program Files\Openscad_mimalloc2\mimalloc-redirect.dll, un-initialized, base: 0x2E
mimalloc-redirect: trace: 47: , un-initialized, base: 0x2F
mimalloc-redirect: trace: module "C:\WINDOWS\System32\USER32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\SHELL32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\CRYPT32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\IMM32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\ole32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\combase.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\GLU32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\OPENGL32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\d3d9.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\OLEAUT32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\WS2_32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\dwmapi.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\dxva2.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\EVR.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\MF.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\MFPlat.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\NETAPI32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\kernel.appcore.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\cfgmgr32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\windows.storage.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\shcore.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\USERENV.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\UxTheme.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\VERSION.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\WINMM.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\WTSAPI32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\powrprof.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\RTWorkQ.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\Wldp.dll"
mimalloc-redirect: trace: module "C:\Program Files\Openscad_mimalloc2\mimalloc.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\PSAPI.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\MFCORE.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\NETUTILS.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\ksuser.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\SRVCLI.DLL"
mimalloc-redirect: trace: module "C:\Program Files\Openscad_mimalloc2\mimalloc-redirect.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\UMPDC.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\bcryptPrimitives.dll"
mimalloc-redirect: warning: standard malloc is _not_ redirected! -- using regular malloc/free
mimalloc: using 1 numa regions
heap stats: peak total freed current unit count
reserved: 768.0 MiB 768.0 MiB 0 768.0 MiB not all freed!
committed: 628.4 MiB 849.9 MiB 225.9 MiB 623.9 MiB not all freed!
reset: 0 0 0 0 ok
touched: 0 0 7.1 MiB -7.1 MiB ok
segments: 4 4 0 4 not all freed!
-abandoned: 0 0 0 0 ok
-cached: 0 0 0 0 ok
pages: 136 332 247 85 not all freed!
-abandoned: 0 0 0 0 ok
-extended: 0
-noretire: 0
mmaps: 0
commits: 2.1 Ki
threads: 8 14 20 -6 ok
searches: 0.0 avg
numa nodes: 1
elapsed: 65.642 s
process: user: 46.828 s, system: 2.328 s, faults: 355488, rss: 879.9 MiB, commit: 1005.1 MiB
mimalloc: process done: 0xd2c2658000
Then I ran minject.exe
on my openscad.exe
, which seemed to succeed.
>minject.exe openscad.exe
wrote 'openscad-mi.exe' with new import order.
I renamed openscad-mi.exe
back to openscad.exe
and when I tried to run it I got a system error dialog:
The code execution cannot proceed because mimalloc-override.dll was not found. Reinstalling the program may fix this problem.
So I renamed mimalloc.dll
to mimalloc-override.dll
and tried again, and got another system error:
The code execution cannot proceed because mimalloc.dll was not found. Reinstalling the program may fix this problem.
So copied the dll as both mimalloc.dll
and mimalloc-override.dll
, which ran and seems to function correctly, with this output:
C:\Program Files\Openscad_mimalloc2>.\openscad
mimalloc: process init: 0x9e744fa000
mimalloc: secure level: 0
mimalloc: using 1 numa regions
mimalloc: option 'show_errors': 0
mimalloc: option 'show_stats': 0
mimalloc: option 'eager_commit': 1
mimalloc: option 'eager_region_commit': 0
mimalloc: option 'reset_decommits': 1
mimalloc: option 'large_os_pages': 0
mimalloc: option 'reserve_huge_os_pages': 0
mimalloc: option 'reserve_huge_os_pages_at': -1
mimalloc: option 'reserve_os_memory': 0
mimalloc: option 'segment_cache': 0
mimalloc: option 'page_reset': 1
mimalloc: option 'abandoned_page_reset': 0
mimalloc: option 'segment_reset': 0
mimalloc: option 'eager_commit_delay': 1
mimalloc: option 'reset_delay': 100
mimalloc: option 'use_numa_nodes': 0
mimalloc: option 'limit_os_alloc': 0
mimalloc: option 'os_tag': 100
mimalloc: option 'max_errors': 16
mimalloc: option 'max_warnings': 16
mimalloc: malloc is redirected.
mimalloc-redirect: trace: build: Nov 22 2019
mimalloc-redirect: trace: checking for target mimalloc.dll
mimalloc-redirect: trace: module "C:\Program Files\Openscad_mimalloc2\openscad.exe"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\ntdll.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\KERNEL32.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\KERNELBASE.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\ADVAPI32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\msvcrt.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\sechost.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\RPCRT4.dll"
mimalloc-redirect: trace: module "C:\Program Files\Openscad_mimalloc2\mimalloc-redirect.dll"
mimalloc-redirect: trace: module "C:\Program Files\Openscad_mimalloc2\mimalloc-override.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\bcrypt.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\GDI32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\PSAPI.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\win32u.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\gdi32full.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\msvcp_win.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\ucrtbase.dll"
mimalloc-redirect: trace: resolving "ucrtbase.dll"
mimalloc-redirect: trace: resolve "malloc" at ucrtbase.dll!0x00007FFCDEB2FDA0 to mimalloc!0x00007FFC7AED9B20 (0)
mimalloc-redirect: trace: resolve "calloc" at ucrtbase.dll!0x00007FFCDEB2DCE0 to mimalloc!0x00007FFC7AEDA1D0 (0)
mimalloc-redirect: trace: resolve "realloc" at ucrtbase.dll!0x00007FFCDEB31650 to mimalloc!0x00007FFC7AEDA600 (0)
mimalloc-redirect: trace: resolve "free" at ucrtbase.dll!0x00007FFCDEB2F020 to mimalloc!0x00007FFC7AED9FF0 (0)
mimalloc-redirect: trace: resolve "_expand" at ucrtbase.dll!0x00007FFCDEB8C5F0 to mimalloc!0x00007FFC7AEDA370 (0)
mimalloc-redirect: trace: resolve "_recalloc" at ucrtbase.dll!0x00007FFCDEB42990 to mimalloc!0x00007FFC7AEDA760 (0)
mimalloc-redirect: trace: resolve "_msize" at ucrtbase.dll!0x00007FFCDEB360D0 to mimalloc!0x00007FFC7AEDA120 (0)
mimalloc-redirect: trace: resolve "_malloc_base" at ucrtbase.dll!0x00007FFCDEB2FDB0 to mimalloc!0x00007FFC7AED9B20 (0)
mimalloc-redirect: trace: resolve "_calloc_base" at ucrtbase.dll!0x00007FFCDEB2DCF0 to mimalloc!0x00007FFC7AEDA1D0 (0)
mimalloc-redirect: trace: resolve "_realloc_base" at ucrtbase.dll!0x00007FFCDEB31660 to mimalloc!0x00007FFC7AEDA600 (0)
mimalloc-redirect: trace: resolve "_free_base" at ucrtbase.dll!0x00007FFCDEB2F040 to mimalloc!0x00007FFC7AED9FF0 (0)
mimalloc-redirect: trace: resolve "_expand_base" at ucrtbase.dll!0x00007FFCDEB8C5FC to mimalloc!0x00007FFCD92C4D80 (0)
mimalloc-redirect: trace: resolve "_recalloc_base" at ucrtbase.dll!0x00007FFCDEB32494 to mimalloc!0x00007FFCD92C4DB0 (0)
mimalloc-redirect: trace: resolve "_msize_base" at ucrtbase.dll!0x00007FFCDEB360E0 to mimalloc!0x00007FFCD92C4D60 (0)
mimalloc-redirect: trace: resolve "_aligned_malloc" at ucrtbase.dll!0x00007FFCDEB42880 to mimalloc!0x00007FFC7AEDB330 (0)
mimalloc-redirect: trace: resolve "_aligned_realloc" at ucrtbase.dll!0x00007FFCDEB8C180 to mimalloc!0x00007FFC7AEDB720 (0)
mimalloc-redirect: trace: resolve "_aligned_free" at ucrtbase.dll!0x00007FFCDEB43280 to mimalloc!0x00007FFC7AED9FF0 (0)
mimalloc-redirect: trace: resolve "_aligned_recalloc" at ucrtbase.dll!0x00007FFCDEB8C380 to mimalloc!0x00007FFC7AEDBE60 (0)
mimalloc-redirect: trace: resolve "_aligned_msize" at ucrtbase.dll!0x00007FFCDEB8BAE0 to mimalloc!0x00007FFCD92C5190 (0)
mimalloc-redirect: trace: resolve "_aligned_offset_malloc" at ucrtbase.dll!0x00007FFCDEB8BB50 to mimalloc!0x00007FFC7AEDB2F0 (0)
mimalloc-redirect: trace: resolve "_aligned_offset_realloc" at ucrtbase.dll!0x00007FFCDEB8BC20 to mimalloc!0x00007FFC7AEDB6D0 (0)
mimalloc-redirect: trace: resolve "_aligned_offset_recalloc" at ucrtbase.dll!0x00007FFCDEB8BE80 to mimalloc!0x00007FFC7AEDBE50 (0)
mimalloc-redirect: trace: module "C:\WINDOWS\System32\USER32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\SHELL32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\CRYPT32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\GLU32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\OPENGL32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\IMM32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\combase.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\ole32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\d3d9.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\dwmapi.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\OLEAUT32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\WS2_32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\dxva2.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\EVR.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\MF.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\MFPlat.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\NETAPI32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\cfgmgr32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\System32\shcore.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\kernel.appcore.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\windows.storage.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\USERENV.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\VERSION.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\UxTheme.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\WINMM.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\WTSAPI32.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\powrprof.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\RTWorkQ.DLL"
mimalloc-redirect: trace: module "C:\Program Files\Openscad_mimalloc2\mimalloc.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\Wldp.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\MFCORE.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\NETUTILS.DLL"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\ksuser.dll"
mimalloc-redirect: trace: module "C:\WINDOWS\SYSTEM32\SRVCLI.DLL"
mimalloc-redirect: trace: standard malloc is redirected
heap stats: peak total freed current unit count
reserved: 768.1 MiB 768.1 MiB 0 768.1 MiB not all freed!
committed: 623.4 MiB 837.2 MiB 216.7 MiB 620.5 MiB not all freed!
reset: 0 0 0 0 ok
touched: 0 0 7.7 MiB -7.7 MiB ok
segments: 4 4 0 4 not all freed!
-abandoned: 0 0 0 0 ok
-cached: 0 0 0 0 ok
pages: 136 515 430 85 not all freed!
-abandoned: 0 0 0 0 ok
-extended: 0
-noretire: 0
mmaps: 0
commits: 2.0 Ki
threads: 21 30 23 7 not all freed!
searches: 0.0 avg
numa nodes: 1
elapsed: 81.789 s
process: user: 46.578 s, system: 2.015 s, faults: 349867, rss: 875.6 MiB, commit: 1.0 GiB
mimalloc: process done: 0x9e744fa000
So I guess minject.exe
does require the file to be named mimalloc-override.dll
after all? I was trying to ask before if this override suffix is important, but I think my comments/question was misunderstood.
If that is the case, then please fix cmake to generate the expected -override
filename.
Also, is this now duplicated mimalloc.dll
linkage in my exe likely to cause any issues?
Thanks for the extensive output -- and sorry to put you through this cross-platform build nightmare :-)
ucrtbase
as is.-v
to minject
it will show the order). You may want to experiment with different orders to see if it makes a difference (like putting it last or something?). I do not know what determines the eventual import table order in exe. Otherwise, one would need to use a tool like minject
to reorder the entries in the exe. minject
is for Windows, it expects the name mimallloc-override.dll
but since you cross-build for Linux it is wrongly named. That is not good, as all the other code still links to mimalloc.dll
. Similarly, mimalloc-redirect.dll
also expects the mimalloc-override.dll
to redirect to, and mixing two mimalloc dll's is not good. We need to fix this -- I see that the VS2019 project calls it mimalloc-override.dll
but the cmake project seems to use mimalloc.dll
; that is not quite right -- I will look into this and make it consistent. @daanx I was just re-reading your comment from much earlier regarding msvcrt
vs ucrt
, and I'm wondering if this is still part of the issue of the import table order:
With the mingw64 toolchain, I believe it links by default to the old msvcrt dll's instead of ucrt.dll (I might be wrong here). I read somewhere about using -D_UCRT -lucrt as command line options when building? or gcc -mcrtdll=ucrt? Not sure.
Can you explain what the significance of this is? Are you saying mimalloc does not support programs linked to msvcrt.dll
?
I'm very confused now because the logs I pasted show linking to ucrtbase.dll
, but they also link to msvcrt.dll
!
To be honest I don't understand enough of the details of the linking process, nor what the differences are between various windows CRTs, to tell what aspects of our convoluted build process are relevant.
So I have not yet tried any compile flags that would force using ucrt over msvcrt. I don't even know if such a thing is supported via MXE, and/or if it that's something that would need to be specified during configure time of gcc
itself.
Another thing is that the whole MXE toolchain we are using is x86_64-w64-mingw32.static.posix
, which is to say gcc
, cmake
, and other tools get configured and built with this specific static
label, then all our library dependencies are built and linked as static using those tools.
But I don't know if that makes any difference for the build of mimalloc
itself. since it is the one dependency which is not implemented as a MXE package, and instead built as a cmake subdirectory / git submodule (though it still uses those underlying "static" tools).
Also I just tried verbose minject, and it shows only msvcrt
, and no ucrt
>minject.exe -v openscad.exe
reading 'openscad.exe'
original imported modules (29):
0: ADVAPI32.dll
1: bcrypt.dll
2: GDI32.dll
3: GLU32.dll
4: msvcrt.dll
5: OPENGL32.dll
6: SHELL32.dll
7: api-ms-win-core-synch-l1-2-0.dll
8: USER32.dll
9: CRYPT32.dll
10: d3d9.dll
11: dwmapi.dll
12: dxva2.dll
13: EVR.dll
14: IMM32.dll
15: IPHLPAPI.DLL
16: KERNEL32.dll
17: MF.dll
18: MFPlat.DLL
19: NETAPI32.dll
20: ole32.dll
21: OLEAUT32.dll
22: USERENV.dll
23: UxTheme.dll
24: VERSION.dll
25: WINMM.dll
26: WS2_32.dll
27: WTSAPI32.dll
28: mimalloc.dll
inject 'mimalloc-redirect.dll'
inject 'mimalloc-override.dll'
leave at position 0: 'mimalloc-redirect.dll'
leave at position 1: 'mimalloc-override.dll'
module order unchanged
wrote 'openscad-mi.exe' with new import order.
Hi @thehans,
msvcrt.dll
is good, it will actually recursively import ucrtbase.dll
; here as a good overview of how all these libraries (ucrt
, vcruntime
, msvcrt
, etc.) all relate: https://docs.microsoft.com/en-us/cpp/c-runtime-library/crt-library-features?view=msvc-170; quite complex unfortunately but as longs as in the end everyone links dynamically with ucrtbase
all will be good :-) minject
to the dev
branch that use mimalloc.dll
by default; this way we won't need the mimalloc-override.dll
(as mimalloc-redirect
will also work with mimalloc.dll
). minject
in the first place by linking "just right". If you do minject --list <program>
it will only list the import table; I see that mimalloc.dll
is at spot 28 above which is just too late.. can you try to reorder things further on the link command line and see if that changes things? (it may be unfixable though in the cross-compile mingw toolchain, but it does work with the visual C++ compiler and clang-cl).Thanks for your persistence -- hope we can make it work
I'm now guessing that the reason mimalloc shows up last is that maybe the linker refuses to import a dll before it's dependencies?
I tried to get a better understanding of the dependency graph and used this tool: https://www.dependencywalker.com/
The pic here shows that the mimalloc.dll
itself depends on msvcrt.dll
(at least this one built from mingw-w64 does)
Does mimalloc-override.dll
when built from visual studio also have it directly dependent upon a CRT DLL like that too?
Does it not actually matter if a library is linked/imported/loaded/initialized (not sure I understand the distinction in these terms anyways) before it's dependencies?
Would it possibly help to try linking directly to mimalloc-redirect.dll
from cmake, as the first library, instead? So far mimaloc-redirect.dll
has not been explicitly linked with the exe.
Or, if the exe doesn't directly use any functions from the redirect dll, would the linker ignore that too?
@daanx I've been looking through ld
options and found this -z initfirst
This option is only meaningful when building a shared object. It marks the object so that its runtime initialization will occur before the runtime initialization of any other objects brought into the process at the same time. Similarly the runtime finalization of the object will occur after the runtime finalization of any other objects.
So I'm wondering, if mimalloc's CMakeLists.txt
was made to build mimalloc.dll
with that flag (probably within a if(MINGW)
or if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
check), maybe that would be enough?
I have been working on replacing malloc with mimalloc for OpenSCAD on all our various supported platforms. So far there have been great improvements to performance on Linux and Mac, but I have not been able to get something fully working on Windows.
Most recently I attempted the recommended method of dynamic override / redirect with DLLs. Our builds which target Windows use MXE to cross compile from Linux This creates a mingw64/gcc based toolchain. Our application is built with cmake, with mimalloc included as a git submodule (using cmake's
add_subdirectory()
) from our project's CMakeLists.txtIt successfully builds a DLL and links our application to it, but when I run the program, there are a number of issues:
1) No console output. I have tried setting
MIMALLOC_VERBOSE
,MIMALLOC_SHOW_STATS
, etc. and am unable to get any output from the mimalloc library on Windows (from any of cmd.exe, powershell or even git Bash from Git for Windows).2) Standard malloc is not redirected! (on wine at least) Here is a log from wine, which is the only way I was able to see any console messages from mimalloc:
3) I keep seeing references to
mimalloc-override.dll
; In documentation, the warnings above, and various github issue comments, but cmake never generates such a file. In fact it was generating alibmimalloc.dll
for me, and when I ran the build I got a message which said something like "redirect: unable to find module". It may just be a unique consequence of us cross-compiling from linux, but I basically ended up adding this to our cmake, just beforeadd_subdirectory(mimalloc)
Now it generates
mimalloc.dll
and links to that, and instead of "unable to find module" I see the messages which I pasted above for point 2, but... does it actually need to be named:mimalloc-override.dll
for override to work?4) Despite the dynamic override/redirect not working, I still do a manual override of allocation functions specifically for GMP. When I run an interactive session, with Qt based GUI, it functions ok, but upon closing I often get a crash, pasted below. (This may just be a bug in Wine? I don't recall if I got similar crashes on native windows, I didn't do much testing there due to the lack of console output)