superfluous include paths can slow the build down by quite a measureable amount. With the integration of gnumake4 it is possible to set CXXFLAGS on the compile. Thus on Linux, with: make CXXFLAGS="-v" -srj30 -l9 2>&1 | grep nonexistent | sort | uniq one can get an idea of include paths, that might be superfluous. But beware of paths that might still be needed on other platforms! Also ordering the include paths (and removing dupes) might improve performance a bit (and make the output a lot more readable).
current candidates from tail_build: workspace/res workspace/solenv/inc/Xp31 workspace/solenv/unxlngx6/inc workspace/solver/350/unxlngx6.pro/inc/stl workspace/solver/350/unxlngx6.pro/inc/sw workspace/solver/350/unxlngx6.pro/workdir/inc/sw workspace/solver/350/unxlngx6.pro/workdir/inc/sw/sdi workspace/solver/350/unxlngx6.pro/workdir/Misc/sc/ workspace/solver/350/unxlngx6.pro/workdir/Misc/sc workspace/solver/350/unxlngx6.pro/workdir/Misc/sw/ workspace/solver/350/unxlngx6.pro/workdir/Misc/sw /usr/lib/jvm/java-6-sun/include/native_threads/include /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/../../../../../x86_64-linux-gnu/include /usr/local/include/x86_64-linux-gnu
Created attachment 55938 [details] remove nonexistent include paths I created more patches, similar to the attached one. Then I tried to build sw with as few include paths as possible and compare to the current state but there is no difference in speed. I had removed quite many paths, but not from SOLARINC. I will wait for set_soenv to be killed. (When testing speed in sw I removed everything possible from SOLARINC in Env.Host.sh) I think this will break ccache for one round ? Should I push now or wait for set_soenv and remove paths also there ?
I have done: http://cgit.freedesktop.org/libreoffice/core/commit/?id=4b30ec9def591ba77d5ec9ac09ded1e6782ede8d http://cgit.freedesktop.org/libreoffice/core/commit/?id=12bf03351ea38fb2d2eb5e184cd455d2d019fe1a http://cgit.freedesktop.org/libreoffice/core/commit/?id=19b33ca42f1ce38a2e58070f962f37ecae58be0d http://cgit.freedesktop.org/libreoffice/core/commit/?id=5cabaf5a32188f24344f68fa48cbdc0a8b8cfb41 But in SOLARINC, there are still: /usr/lib/jvm/java-6-sun/include/native_threads/include /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/../../../../../x86_64-linux-gnu/include /usr/local/include/x86_64-linux-gnu I did not remove them, because I fear to break something and moreover because I have not seen any improvement in build time.
oh, great work! closing for now as an EasyHack, might be worth a recheck in two-three releases.
Migrating Whiteboard tags to Keywords: (EasyHack DifficultyBeginner SkillScript ) [NinjaEdit]