Hey Amine,
seeing
https://jira.reactos.org/browse/CORE-14288 just prompted me to
look into static vs dynamic 3rd party libraries, zlib and libxml2 in
particular. We use zlib in a bunch of modules these days, and libxml2 is
large and used in two, so I'm thinking we should make them dynamic.
I just did the experiment for libxml2 and it resulted in at least 0.5MB
binary size reduction and 2MB build folder size reduction, so clearly
seems worth it.[1] I'll do the test for zlib as well to make sure that's
also an improvement.
However I was thinking there might be a reason why we build those
statically right now. Do you (or anyone else) recall anything that makes
switching to dynamic a bad idea?
Thanks!
-Thomas
[1] Raw results:
Static libxml2 (MSVC debug with RTC):
msxml3.dll - 1887 KB
libxslt.dll - 1142 KB
libxml2.lib - 4953 KB (build dir only)
Dynamic libxml2 (MSVC debug with RTC):
msxml3.dll - 799 KB
libxslt.dll - 259 KB
libxml2.dll - 1592 KB
libxml2.lib - 371 KB (build dir only)
Static libxml2 (GCC debug with -O1):
msxml3.dll - 3856 KB
libxslt.dll - 2776 KB
liblibxml2.a - 48 KB (build dir only)
Dynamic libxml2 (GCC debug with -O1):
msxml3.dll - 1505 KB
libxslt.dll - 429 KB
libxml2.dll - 2553 KB