]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Update to bmake-20200517
authorSimon J. Gerraty <sjg@FreeBSD.org>
Sun, 31 May 2020 21:43:59 +0000 (21:43 +0000)
committerSimon J. Gerraty <sjg@FreeBSD.org>
Sun, 31 May 2020 21:43:59 +0000 (21:43 +0000)
commit8fcb0ac17d3aff3794cb43395c111506f7a781f5
tree92343006b1b7fc22fc70a60efa408de06cb0d0a7
parentb67b94671efd8f63160d7e351267e26288616695
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
87 files changed:
contrib/bmake/ChangeLog
contrib/bmake/FILES
contrib/bmake/Makefile
contrib/bmake/Makefile.config.in
contrib/bmake/VERSION
contrib/bmake/arch.c
contrib/bmake/bmake.1
contrib/bmake/boot-strap
contrib/bmake/bsd.after-import.mk
contrib/bmake/compat.c
contrib/bmake/config.h.in
contrib/bmake/configure
contrib/bmake/configure.in
contrib/bmake/dir.c
contrib/bmake/dirname.c
contrib/bmake/filemon/filemon.h [new file with mode: 0644]
contrib/bmake/filemon/filemon_dev.c [new file with mode: 0644]
contrib/bmake/filemon/filemon_ktrace.c [new file with mode: 0644]
contrib/bmake/job.c
contrib/bmake/make-bootstrap.sh.in
contrib/bmake/make.1
contrib/bmake/make.h
contrib/bmake/meta.c
contrib/bmake/meta.h
contrib/bmake/mk/ChangeLog
contrib/bmake/mk/FILES
contrib/bmake/mk/autodep.mk
contrib/bmake/mk/compiler.mk [new file with mode: 0644]
contrib/bmake/mk/dirdeps-options.mk
contrib/bmake/mk/dirdeps-targets.mk [new file with mode: 0644]
contrib/bmake/mk/dirdeps.mk
contrib/bmake/mk/doc.mk
contrib/bmake/mk/dpadd.mk
contrib/bmake/mk/gendirdeps.mk
contrib/bmake/mk/init.mk
contrib/bmake/mk/install-mk
contrib/bmake/mk/lib.mk
contrib/bmake/mk/meta.autodep.mk
contrib/bmake/mk/meta.stage.mk
contrib/bmake/mk/meta.sys.mk
contrib/bmake/mk/meta2deps.py
contrib/bmake/mk/mk-files.txt
contrib/bmake/mk/options.mk
contrib/bmake/mk/sys.mk
contrib/bmake/mk/sys.vars.mk
contrib/bmake/mk/sys/AIX.mk
contrib/bmake/mk/sys/Darwin.mk
contrib/bmake/mk/sys/Generic.mk
contrib/bmake/mk/sys/HP-UX.mk
contrib/bmake/mk/sys/IRIX.mk
contrib/bmake/mk/sys/Linux.mk
contrib/bmake/mk/sys/NetBSD.mk
contrib/bmake/mk/sys/OSF1.mk
contrib/bmake/mk/sys/OpenBSD.mk
contrib/bmake/mk/sys/SunOS.mk
contrib/bmake/mk/sys/UnixWare.mk
contrib/bmake/mk/whats.mk
contrib/bmake/nonints.h
contrib/bmake/parse.c
contrib/bmake/str.c
contrib/bmake/unit-tests/Makefile [moved from contrib/bmake/unit-tests/Makefile.in with 93% similarity]
contrib/bmake/unit-tests/Makefile.config.in [new file with mode: 0644]
contrib/bmake/unit-tests/cond-late.exp [new file with mode: 0644]
contrib/bmake/unit-tests/cond-late.mk [new file with mode: 0644]
contrib/bmake/unit-tests/dollar.exp [new file with mode: 0644]
contrib/bmake/unit-tests/dollar.mk [new file with mode: 0644]
contrib/bmake/unit-tests/escape.mk
contrib/bmake/unit-tests/forloop.exp
contrib/bmake/unit-tests/forloop.mk
contrib/bmake/unit-tests/include-main.exp [new file with mode: 0644]
contrib/bmake/unit-tests/include-main.mk [new file with mode: 0644]
contrib/bmake/unit-tests/include-sub.mk [new file with mode: 0644]
contrib/bmake/unit-tests/include-subsub.mk [new file with mode: 0644]
contrib/bmake/unit-tests/modorder.mk
contrib/bmake/unit-tests/sysv.exp
contrib/bmake/unit-tests/sysv.mk
contrib/bmake/unit-tests/varmod-edge.exp [new file with mode: 0644]
contrib/bmake/unit-tests/varmod-edge.mk [new file with mode: 0644]
contrib/bmake/unit-tests/varquote.exp [new file with mode: 0644]
contrib/bmake/unit-tests/varquote.mk [new file with mode: 0644]
contrib/bmake/util.c
contrib/bmake/var.c
usr.bin/bmake/Makefile
usr.bin/bmake/Makefile.config
usr.bin/bmake/Makefile.depend
usr.bin/bmake/config.h
usr.bin/bmake/unit-tests/Makefile