Hi, > I may be asking a stupid question, but why does the build system have to > build everything every time.
until recently this wasn't possible due to certain technical limitations, some of which we already addressed [1]. > Under OpenWRT a typical build will take 12 - 16+ hours, of which 10+ > will be spent building the packages. very few of which will have changed. Correct. > Would it be possible to split the base system and the packages into two > separate builds in order to speed up the build process. We already did that [2], also see: http://phase1.builds.lede-project.org/ http://phase2.builds.lede-project.org/ > Would it be possible to build only those packages that have changed. I > realize that if some underlying common source code has changed then all > the affected apps will need to be rebuilt. However, if a linked library > has changed why do we recompile, why not just re-link? Not at the moment. Implementing that would imply the ability to keep all build trees on disk, we currently lack the resources to do so. Another approach is to rebuild single packages (plus their dependency subtrees) using the SDK, then patch and re-sign the repository index files in-place. This is an approach I used for binary security updates in OpenWrt [3] but it has certain locking / race condition implications as multiple parallel running builders need to patch the same repository index files so it is rather hard to do correctly in a distributed manner. 1: https://git.lede-project.org/?p=source.git;a=commit;h=5170393f8cae3c5acac61bd6ac6e127f9727cee4 2: https://git.lede-project.org/?p=buildbot.git;a=summary 3: https://github.com/openwrt/buildscripts ~ Jo _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev