@@ -67,15 +67,11 @@ Then to start an interactive unix shell:
67
67
68
68
## Optimized for size
69
69
70
- The language runtimes in w64devkit are optimized for size, so it produces
71
- particularly small binaries when programs are also optimized for size
72
- (` -Os ` ) during compilation. If your program only uses the ` printf ` family
73
- of functions with MSVC-compatible directives (i.e. limited to C89), and
74
- you want even smaller binaries, you can avoid embedding the Mingw-w64's
75
- improved implementation by setting ` __USE_MINGW_ANSI_STDIO ` to 0 before
76
- including any headers.
77
-
78
- $ cc -Os -D__USE_MINGW_ANSI_STDIO=0 ...
70
+ Runtime components are optimized for size, leading to smaller application
71
+ executables. Unique to w64devkit, ` libmemory.a ` is a library of ` memset ` ,
72
+ ` memcpy ` , ` memmove ` , ` memcmp ` , and ` strlen ` implemented as x86 string
73
+ instructions. When [ not linking a CRT] [ crt ] , linking ` -lmemory ` provides
74
+ tiny definitions, particularly when GCC requires them.
79
75
80
76
## Fortran support
81
77
@@ -184,6 +180,11 @@ The kit includes a unique [`debugbreak` command][debugbreak]. It causes
184
180
all debugee processes to break in the debugger, like using Windows' F12
185
181
debugger hotkey. This is especially useful for console subsystem programs.
186
182
183
+ The ` vc++filt ` command, unique to w64devkit, works just like ` c++filt ` but
184
+ processes [ Visual C++ name decorations] [ names ] instead. It's useful when
185
+ examining GCC-incompatible libraries, potentially to make some use of them
186
+ anyway.
187
+
187
188
Since the build environment is so stable and predicable, it would be
188
189
great for the .zip to be reproducible, i.e. builds by different people
189
190
are bit-for-bit identical. There are multiple reasons why this is not
@@ -208,6 +209,7 @@ binaries.
208
209
[ break ] : https://nullprogram.com/blog/2022/06/26/
209
210
[ bs ] : https://www.rdegges.com/2016/i-dont-give-a-shit-about-licensing/
210
211
[ cppcheck ] : https://cppcheck.sourceforge.io/
212
+ [ crt ] : https://nullprogram.com/blog/2023/02/15/
211
213
[ ctags ] : https://github.com/universal-ctags/ctags
212
214
[ debugbreak ] : https://nullprogram.com/blog/2022/07/31/
213
215
[ doc-bb ] : https://busybox.net/downloads/BusyBox.txt
@@ -227,6 +229,7 @@ binaries.
227
229
[ lic1 ] : https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/COPYING.MinGW-w64-runtime/COPYING.MinGW-w64-runtime.txt
228
230
[ lic2 ] : https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-libraries/winpthreads/COPYING
229
231
[ make ] : https://www.gnu.org/software/make/
232
+ [ names ] : https://learn.microsoft.com/en-us/cpp/build/reference/decorated-names
230
233
[ nasm ] : https://www.nasm.us/
231
234
[ quilt ] : http://savannah.nongnu.org/projects/quilt
232
235
[ san ] : http://mingw-w64.org/doku.php/contribute#sanitizers_asan_tsan_usan
0 commit comments