-
The size table at the end of the readme does not include the MASM32 Link size of TinyOriginal and shows that its size with crinkler is smaller than the shell code version. I see some opportunity to improve still but it is easier to think about the pre-crinkler version and sizes. Thanks! |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 4 replies
-
Your observations about the size table are correct:
If you want to think about pre-Crinkler versions from a code size perspective, then I think it is now best to look at obj file sizes, so after assembly but before linking. From the perspective of the challenge this repo is connected to, the goal is the smallest executable. That is clearly achieved with Crinkler being used with the (optimized) TinyOriginal code. As your observations are correct but don't translate to an error in the readme (or code), I've closed this as an issue and converted it to a Q&A topic in Discussions. |
Beta Was this translation helpful? Give feedback.
-
Cool thanks! I'll have to recheck. I was able to link TinyOriginal, but I don't always use the linker from MASM32. (I usually use the linker from VS2022) Thanks again for the hints. Hopefully I can submit something useful soon. |
Beta Was this translation helpful? Give feedback.
-
link /LIBPATH:"C:\masm32\lib" /NODEFAULTLIB:LIBCMT.lib /ENTRY:MainEntry /DEBUG:NONE /subsystem:windows /map /merge:.rdata=.text /merge:.data=.text /align:16 gdi32.lib user32.lib kernel32.lib tiny.obj The result runs and is: I see it slightly larger (32 bytes) if I link against the libraries in the Windows 10 SDK. |
Beta Was this translation helpful? Give feedback.
Your observations about the size table are correct:
If you want to think about pre-Crinkler versions f…