Closed davidgiven closed 7 months ago
This is because tmpfile()
on mingw with msvcrt doesn't work. It tries to create a file under C:\
which you don't have access to. Also, the assembler doesn't check whether it worked or not, which is bad.
The solution is to use ucrt64 rather than mingw32 --- that links against ucrt rather than msvcrt. If we want to make 32-bit binaries, we'll need to emulate our own tmpfile()
which creates temporaries in the right place.
The mingw build doesn't work --- symbol tables don't get generate properly by the assembler on Windows.
Example from Linux:
Example from Windows: