[DTrace-devel] [PATCH v3 0/9] improve build configurability

Nick Alcock nick.alcock at oracle.com
Fri Jan 26 13:58:40 UTC 2024


This series improves the build system, letting you override the results
of all Makeconfig tests, making it a tiny bit more likely that cross-
compilation will succeed (though since it is still untested, only a
*bit* more likely), and implementing a configure script so that you
can avoid having to specify Make variable assignments over and
over again.

A couple of possible configurable values are missing, mostly because they're
not in the top-level makefile and thus cannot be overridden by this
mechanism (notably KERNELDIRPREFIX and KERNELDIRSUFFIX): these have recently
changed name, and can be added to this machinery once that goes in.

We also fix a number of bugs related to needless reinvocation of configure
tests, re-execution of can-never-change commands, etc: these had no effect
but performance before, but now they can accidentally overwrite
configure-specified test results the bug has become observable.

This series is also pushed to
https://github.com/oracle/dtrace-utils nix/review/configury

The dtrace userspace this series applies atop is found at
https://github.com/oracle/dtrace-utils devel

DTrace should work against unmodified upstream kernels now, but some
features work better with a couple of patches and with natively-built CTF. A
kernel tree that does that is here (do a make ctf after building, and a
make ctf_install after make modules_install):
https://github.com/oracle/dtrace-linux-kernel devel/v2/6.6/dtrace

Changes since v2:
 - fix the no-options-provided case
 - filter out function arguments from help text
 - fix some spelling errors
 - reduce code duplication
 - respect $CC everywhere other than the testsuite
 - shuffle a couple of commits around for clarity
 - drop the gcc -dumpmachine change for now

Nick Alcock (9):
  build: overridable configuration variables
  build: support make help-overrides and make help-options
  build: avoid building config.mk unnecessarily
  build: avoid needless re-executions
  build: only touch .dir.stamp if it doesn't already exist
  build: force regeneration of config.{h,mk} when configure options
    change
  build: support make help-overrides-option and help-overrides-header
  build: add configure script
  build: consistently respect CC env var if set

 GNUmakefile          |  89 ++++++++++++---------
 Makeconfig           | 156 +++++++++++++++++++++++++++++--------
 Makeoptions          |  19 +++--
 README.md            |  15 ++--
 configure            | 181 +++++++++++++++++++++++++++++++++++++++++++
 libproc/mkoffsets.sh |   2 +-
 6 files changed, 382 insertions(+), 80 deletions(-)
 create mode 100755 configure


base-commit: 347ad8afa3a13135641ea2e6c73692d1743254be
-- 
2.43.0.272.gce700b77fd




More information about the DTrace-devel mailing list