[CFT] WITH_META_MODE: Working incremental build

Bryan Drewery bdrewery at FreeBSD.org
Sun Jun 5 23:27:06 UTC 2016


On 5/31/16 5:17 PM, Simon J. Gerraty wrote:
>> Another reported issue just now is that right after an installworld,
>> everything rebuilds due to changed /bin/sh (-dM flag to make tells you
>> why things rebuild).  I'll look into some mitigations for this.
> 
> It is probably sufficient to just add
> 
> .MAKE.META.IGNORE_PATHS += ${__MAKE_SHELL}
> 

Several fixes are now in after r301475 (using several bmake updates):

- buildworld->installworld->buildworld will no longer rebuild everything
- .meta files lacking filemon data will force a rebuild
- No 'make cleanworld' needed now. The lack of .meta files will force a
rebuild
- WITH_SYSTEM_COMPILER is forced off with WITH_META_MODE due to it
causing buildworld->installworld->buildworld to rebuild everything due
to using new --sysroot/-target in CFLAGS.  This shouldn't be a big deal
since the build is incremental; clang should build infrequently or fast.
- cross-building causing a rebuild of make_keys in lib/ncurses is fixed
- bmake's processing of .meta files (incremental build) is something
like 77% faster now
- NOP 'Building .depend' lines will no longer show
- Building some targets multiple times (like yacc output)

Still remaining to fix:
- Libraries being relinked during a NOP build
- Jail installworld with WITH_META_MODE enabled errors since it is
forcing filemon in that case. Just disable for now during install.


-- 
Regards,
Bryan Drewery


More information about the freebsd-current mailing list