Open derekbruening opened 7 years ago
Dropping VS2010 support and building with a later VS would also shrink the pdb's; should measure and see by how much.
Actually VS2013 produces a much larger build than VS2010: both binaries and pdb's are larger. I believe that the only reason I thought they might be smaller is that VS2010 made smaller pdbs than VS2008.
VS2010: 136356 DynamoRIO-Windows-7.0.0-RC1.zip VS2013: 179116 DynamoRIO-Windows-7.0.0-RC2.zip
% ls -sh samples/bin64/bbbuf*
80K samples/bin64/bbbuf.dll 4.0K samples/bin64/bbbuf.lib 604K samples/bin64/bbbuf.pdb
% ls -sh samples/bin64/bbbuf*
184K samples/bin64/bbbuf.dll 4.0K samples/bin64/bbbuf.lib 1.2M samples/bin64/bbbuf.pdb
Adding "/opt:ref /opt:icf /pdbcompress" to both DR and DrM top-level (adding to CMAKE_LINKER_FLAGS) we have a size almost as small as VS2010 (maybe drltrace binary and some other new stuff is here too): 138424 DynamoRIO-Windows-7.0.0-RC3.zip
Looking at samples/bin64: it's still 5M total bigger, everything being slightly larger.
% ls -sh samples/bin64/bbbuf*
84K samples/bin64/bbbuf.dll 4.0K samples/bin64/bbbuf.lib 924K samples/bin64/bbbuf.pdb
So we have to put in effort to try and get a VS2013 build to get close to the VS2010 build size.
The same flags for VS2010: 116752 DynamoRIO-Windows-7.0.0-RC3-VS2010.zip
% ls -sh samples/bin64/bbbuf*
40K samples/bin64/bbbuf.dll 4.0K samples/bin64/bbbuf.lib 556K samples/bin64/bbbuf.pdb
I put these in:
The 7.0 release is significantly larger than 6.2, due to the static DR library:
25MB larger: 111132 DynamoRIO-Windows-6.2.0-2.zip 136356 DynamoRIO-Windows-7.0.0-RC1.zip
Unpacked it's 92M larger:
37M of that is adding drcachesim (pdb's are large!) The rest is the static DR build, which is huge: 15MB each x 4!
Linux is also much bigger:
98312 DynamoRIO-Linux-7.0.0-RC1.tar.gz 75036 DynamoRIO-Linux-6.2.0-2.tar.gz
Also from static DR: 20MB each x 4!
Should we consider putting the pdb's and .debugs in a separate package? That cuts Windows more than in half: shrinks from 536M to 242M. For Linux, from 319M to 231M.