You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
build: pre-generate USDT probe header and add bpftrace CI
Implements the approach from the #62118 review discussion to remove
the build-time 'dtrace' dependency on Linux:
* Commit the SystemTap-generated probe header
(src/node_provider_linux.h, regenerate with
tools/usdt/generate_headers.py). USDT support is now on by
default on Linux whenever <sys/sdt.h> is available
(systemtap-sdt-dev on Debian/Ubuntu, systemtap-sdt-devel on
Fedora/RHEL) and never needs a 'dtrace' tool at build time. A
committed-header drift check runs in CI.
* Make native DTrace opt-in on macOS via the new
./configure --with-dtrace; FreeBSD/illumos remain unsupported
pending a 'dtrace -G' link step. --without-dtrace still disables
probes everywhere. The always-on <sys/sdt.h> fallback tier is
gone.
* Add a path-gated test-usdt job to the Linux CI workflow with a
default leg that runs the end-to-end bpftrace probe test as
root, and a --without-dtrace leg that pins the no-op tier.
The generated header is excluded from cpplint like
src/node_root_certs.h.
Signed-off-by: Bryan English <bryan@bryanenglish.com>
if echo "$FILES" | grep -qE '^(src/node_(usdt|provider|diagnostics_channel)\.(h|cc|d)|src/node_provider_linux\.h|lib/diagnostics_channel\.js|tools/usdt/|test/parallel/test-diagnostics-channel-usdt.*\.js|\.github/workflows/test-linux\.yml|configure\.py|node\.gyp|doc/api/diagnostics_channel\.md)'; then
0 commit comments