HomeFreeBSD

Update to bmake-20200517

Description

Update to bmake-20200517

MFC of r341652, r342376, r361307

Changes since 20180512 are mostly portability related
hence the large gap in versions imported.

There are however some bug fixes, and a rework of filemon handling.
In NetBSD make/filemon/filemon_ktrace.c allows use of fktrace
and elimination of filemon(4) which has not had the TLC it needs.

FreeBSD filemon(4) is in much better shape, so bmake/filemon/filemon_dev.c
allows use of that, with a bit less overhead than the ktrace model.

Summary of changes from ChangeLog

o str.c: empty string does not match % pattern

	  plus unit-test changes

o var.c: import handling of old sysV style modifier using '%'
o str.c: refactor brk_string
o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD

	  a blank command is perfectly valid.

o meta.c: meta_oodate, check for corrupted meta file

	  earlier and more often.
  • meta.c: meta_compat_parent check for USE_FILEMON
	  patch from Soeren Tempel

o meta.c: fix compat mode, need to call meta_job_output()
o job.c: extra fds for meta mode not needed if using filemon_dev
o meta.c: avoid passing NULL to filemon_*() when meta_needed()

	  returns FALSE.

o filemon/filemon_{dev,ktrace}.c: allow selection of

	  filemon implementation.  filemon_dev.c uses the kernel module
	  while filemon_ktrace.c leverages the fktrace api available in
	  NetBSD.  filemon_ktrace.c can hopefully form the basis for
	  adding support for other tracing mechanisms such as strace on
	  Linux.

o meta.c: when target is out-of-date per normal make rules

	  record value of .OODATE in meta file.

o parse.c: don't pass NULL to realpath(3)

	  some versions cannot handle it.

o parse.c: ParseDoDependency: free paths rather than assert
o parse.c: ParseVErrorInternal use .PARSEDIR

	  and apply if relative, and then use .PARSEFILE
	  for consistent result.

o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR

	  is relative

o var.c: avoid SEGFAULT in .unexport-env

	  when MAKELEVEL is not set

o var.c: add :q
o dir.c: cleanup caching of stats

plus more unit-tests

Details

Provenance
sjgAuthored on
Parents
rS361673: Correct the release date for 2.11BSD
Branches
Unknown
Tags
Unknown