Completely Remove C Runtime with DMD for win32

Jonathan Marler johnnymarler at gmail.com
Mon Jul 16 19:53:58 UTC 2018


On Sunday, 15 July 2018 at 20:29:29 UTC, tcb wrote:
> I've been trying to compile a trivial program (extern C int 
> main() {return 0;}) without linking parts of the C runtime with 
> no success.
>
> I compile with dmd -debuglib= -defaultlib= -v -L=/INFORMATION 
> -betterC but optlink shows a lot of things from snn.lib being 
> pulled in and the resultant executable is about 12kb. I also 
> replaced object.d with an empty module.
>
> If I pass /nodefaultlib to the linker I get warning 23: no 
> stack and __acrtused_con is undefined so the linker fails with 
> no start address.
>
> Is it possible to completely remove the C runtime on windows, 
> and if so how? Sorry for the sloppily formatted post.

I recently created an issue that included an example that allows 
you to compile a Hello World program on linux x64 without the c 
standard library, druntime or phobos.

https://issues.dlang.org/show_bug.cgi?id=19078

You can modify it to run on windows as well.  I'm not sure if the 
_start assembly implementation would be the same on windows.  Try 
it out and let me know how it works.


More information about the Digitalmars-d mailing list