gh-137056: Fix DTrace build support on NetBSD (GH-137057)

This commit is contained in:
Furkan Onder
2025-08-06 07:19:56 +00:00
committed by GitHub
parent c2428ca9ea
commit 54a5fdffc8
3 changed files with 41 additions and 6 deletions

View File

@@ -5104,16 +5104,33 @@ then
# linked into the binary. Correspondingly, dtrace(1) is missing the ELF
# generation flag '-G'. We check for presence of this flag, rather than
# hardcoding support by OS, in the interest of robustness.
#
# NetBSD DTrace requires the -x nolibs flag to avoid system library conflicts
# and uses header generation for testing instead of object generation.
AC_CACHE_CHECK([whether DTrace probes require linking],
[ac_cv_dtrace_link], [dnl
[ac_cv_dtrace_link], [
ac_cv_dtrace_link=no
echo 'BEGIN{}' > conftest.d
"$DTRACE" $DFLAGS -G -s conftest.d -o conftest.o > /dev/null 2>&1 && \
case $host in
*netbsd*)
DTRACE_TEST_FLAGS="-x nolibs -h"
;;
*)
DTRACE_TEST_FLAGS="-G"
;;
esac
"$DTRACE" $DFLAGS $DTRACE_TEST_FLAGS -s conftest.d -o conftest.o > /dev/null 2>&1 && \
ac_cv_dtrace_link=yes
])
if test "$ac_cv_dtrace_link" = "yes"; then
DTRACE_OBJS="Python/pydtrace.o"
fi
# Set NetBSD-specific DTrace flags in DFLAGS
case $host in
*netbsd*)
DFLAGS="$DFLAGS -x nolibs"
;;
esac
fi
dnl Platform-specific C and header files.