summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Armstrong <andy@hexten.net>2008-01-10 22:20:52 +0000
committerNicholas Clark <nick@ccl4.org>2008-01-11 13:36:54 +0000
commit5ac1e9b286b068746476878a8a6206b06828a175 (patch)
tree9c3ea7b8fb39c431bd78a689aea2ff13f18de880
parent737ddd9966a0343f74f23dcc8d4025bbf64d3e59 (diff)
downloadperl-5ac1e9b286b068746476878a8a6206b06828a175.tar.gz
Add dtrace support
Message-Id: <F4AC553F-7C7F-49C3-98C2-E04681E1004F@hexten.net> with fixups as discussed on list, plus adding usedtrace to Glossary, plus propagating all the new config variables everywhere. (Was there an automatic way to do that? I did it with emacs macros) p4raw-id: //depot/perl@32953
-rwxr-xr-xConfigure69
-rw-r--r--Cross/config.sh-arm-linux2
-rw-r--r--MANIFEST2
-rw-r--r--Makefile.SH41
-rw-r--r--NetWare/config.wc2
-rw-r--r--Porting/Glossary7
-rw-r--r--config_h.SH6
-rw-r--r--configure.com2
-rw-r--r--cop.h9
-rw-r--r--epoc/config.sh2
-rw-r--r--mydtrace.h42
-rw-r--r--perldtrace.d9
-rw-r--r--plan9/config_sh.sample2
-rw-r--r--symbian/config.sh2
-rw-r--r--uconfig.h6
-rwxr-xr-xuconfig.sh2
-rw-r--r--win32/config.bc2
-rw-r--r--win32/config.ce2
-rw-r--r--win32/config.gc2
-rw-r--r--win32/config.vc2
-rw-r--r--win32/config.vc642
-rw-r--r--win32/config_H.bc6
-rw-r--r--win32/config_H.ce6
-rw-r--r--win32/config_H.gc6
-rw-r--r--win32/config_H.vc6
-rw-r--r--win32/config_H.vc646
26 files changed, 242 insertions, 3 deletions
diff --git a/Configure b/Configure
index f0335812ac..070427375a 100755
--- a/Configure
+++ b/Configure
@@ -238,6 +238,7 @@ cpio=''
cpp=''
csh=''
date=''
+dtrace=''
echo=''
egrep=''
emacs=''
@@ -1193,6 +1194,7 @@ use5005threads=''
useithreads=''
usereentrant=''
usethreads=''
+usedtrace=''
incpath=''
mips_type=''
usrinc=''
@@ -8949,6 +8951,71 @@ esac
set usefaststdio
eval $setvar
+: DTrace support
+dflt_dtrace='/usr/sbin/dtrace'
+cat <<EOM
+
+Perl can be built to support DTrace on platforms that support it.
+DTrace is a diagnosis and performance analysis tool from Sun.
+
+If this doesn't make any sense to you, just accept the default '$dflt'.
+EOM
+
+while test 1 ; do
+ case "$usedtrace" in
+ $define|true|[yY]*)
+ dflt='y'
+ ;;
+ ?*)
+ dflt='y'
+ dflt_dtrace=$usedtrace
+ ;;
+ *)
+ dflt='n'
+ ;;
+ esac
+
+ rp='Support DTrace if available?'
+ . ./myread
+ case "$ans" in
+ y|Y) val="$define" ;;
+ *) val="$undef" ;;
+ esac
+ set usedtrace
+ eval $setvar
+
+ test "X$usedtrace" != "X$define" && break
+
+ echo " "
+ rp='Where is the dtrace executable?'
+ dflt=$dflt_dtrace
+ . ./getfile
+ val="$ans"
+ set dtrace
+ eval $setvar
+
+ if test -f $dtrace
+ then
+ if ! $dtrace -h -s ../perldtrace.d \
+ -o perldtrace.tmp >/dev/null 2>&1 \
+ && rm -f perldtrace.tmp
+ then
+ cat >&2 <<EOM
+
+*** $me: Fatal Error: $dtrace doesn't support -h flag
+***
+*** Your installed dtrace doesn't support the -h switch to compile a D
+*** program into a C header. Can't continue.
+
+EOM
+ exit 1
+ fi
+ break;
+ fi
+
+ echo "$dtrace was not found."
+ echo " "
+done
: define an is-a-typedef? function
typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
@@ -22063,6 +22130,7 @@ dlsrc='$dlsrc'
doublesize='$doublesize'
drand01='$drand01'
drand48_r_proto='$drand48_r_proto'
+dtrace='$dtrace'
dynamic_ext='$dynamic_ext'
eagain='$eagain'
ebcdic='$ebcdic'
@@ -22523,6 +22591,7 @@ use64bitall='$use64bitall'
use64bitint='$use64bitint'
usecrosscompile='$usecrosscompile'
usedl='$usedl'
+usedtrace='$usedtrace'
usefaststdio='$usefaststdio'
useithreads='$useithreads'
uselargefiles='$uselargefiles'
diff --git a/Cross/config.sh-arm-linux b/Cross/config.sh-arm-linux
index 5e571161dc..ec468909a8 100644
--- a/Cross/config.sh-arm-linux
+++ b/Cross/config.sh-arm-linux
@@ -530,6 +530,7 @@ dlsrc='dl_dlopen.xs'
doublesize='8'
drand01='drand48()'
drand48_r_proto='0'
+dtrace=''
dynamic_ext='B ByteLoader Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re threads threads/shared'
eagain='EAGAIN'
ebcdic='undef'
@@ -985,6 +986,7 @@ use64bitall='undef'
use64bitint='undef'
usecrosscompile='undef'
usedl='define'
+usedtrace='undef'
usefaststdio='define'
useithreads='undef'
uselargefiles='define'
diff --git a/MANIFEST b/MANIFEST
index 91a450fa76..cd81824c90 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -2985,6 +2985,7 @@ mpeix/nm MPE/iX port
mpeix/relink MPE/iX port
mro.c Method Resolution Order code
myconfig.SH Prints summary of the current configuration
+mydtrace.h Support for optional DTrace probes
NetWare/bat/Buildtype.bat NetWare port
NetWare/bat/SetCodeWar.bat NetWare port
NetWare/bat/Setnlmsdk.bat NetWare port
@@ -3115,6 +3116,7 @@ parser.h parser object header
patchlevel.h The current patch level of perl
perlapi.c Perl API functions
perlapi.h Perl API function declarations
+perldtrace.d D script for Perl probes
perl.c main()
perl.h Global declarations
perlio.c C code for PerlIO abstraction
diff --git a/Makefile.SH b/Makefile.SH
index ac8681a7e0..28f8436622 100644
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -183,6 +183,16 @@ for f in $nonxs_ext; do
nonxs_list="$nonxs_list ext/$f/pm_to_blib"
done
+dtrace_h=''
+dtrace_o=''
+case "$usedtrace" in
+define|true)
+ dtrace_h='perldtrace.h'
+ $dtrace -G -s perldtrace.d -o perldtrace.tmp >/dev/null 2>&1 \
+ && rm -f perldtrace.tmp && dtrace_o='perldtrace$(OBJ_EXT)'
+ ;;
+esac
+
echo "Extracting Makefile (with variable substitutions)"
$spitshell >Makefile <<!GROK!THIS!
# Makefile.SH
@@ -274,6 +284,10 @@ PATH_SEP = $p_
# then you'll need to change this, or override it on the make command line.
VALGRIND=valgrind
+DTRACE = $dtrace
+DTRACE_H = $dtrace_h
+DTRACE_O = $dtrace_o
+
FIRSTMAKEFILE = $firstmakefile
# Any special object files needed by this architecture, e.g. os2/os2.obj
@@ -357,7 +371,7 @@ h1 = EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h dosish.h
h2 = embed.h form.h gv.h handy.h hv.h keywords.h mg.h op.h opcode.h
h3 = pad.h patchlevel.h perl.h perlapi.h perly.h pp.h proto.h regcomp.h
h4 = regexp.h scope.h sv.h unixish.h util.h iperlsys.h thread.h
-h5 = utf8.h warnings.h
+h5 = utf8.h warnings.h mydtrace.h
h = $(h1) $(h2) $(h3) $(h4) $(h5)
c1 = av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro.c perl.c
@@ -372,7 +386,8 @@ obj1 = $(madlyobj) $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) op$(
obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) perl$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)
obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) xsutils$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT)
-obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
+ndt_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
+obj = $(ndt_obj) $(DTRACE_O)
lintflags = \
-b \
@@ -586,6 +601,26 @@ if test -r $Makefile_s ; then
Makefile: $Makefile_s
!GROK!THIS!
else
+ case "$dtrace_h" in
+ ?*)
+ $spitshell >>Makefile <<'!NO!SUBS!'
+$(DTRACE_H): perldtrace.d
+ $(DTRACE) -h -s perldtrace.d -o $(DTRACE_H)
+
+mydtrace.h: $(DTRACE_H)
+
+!NO!SUBS!
+ ;;
+ esac
+ case "$dtrace_o" in
+ ?*)
+ $spitshell >>Makefile <<'!NO!SUBS!'
+$(DTRACE_O): perldtrace.d
+ $(DTRACE) -G -s perldtrace.d -o $(DTRACE_O) $(ndt_obj)
+
+!NO!SUBS!
+ ;;
+ esac
$spitshell >>Makefile <<'!NO!SUBS!'
$(LIBPERL): $& $(obj) $(DYNALOADER) $(LIBPERLEXPORT)
!NO!SUBS!
@@ -1082,7 +1117,7 @@ _mopup:
-rm -f cygwin.c libperl*.def libperl*.dll cygperl*.dll *.exe.stackdump
-rm -f perl$(EXE_EXT) suidperl$(EXE_EXT) miniperl$(EXE_EXT) $(LIBPERL) libperl.* microperl
-rm -f opcode.h-old opnames.h-old pp.sym-old pp_proto.h-old
- -rm -f config.over
+ -rm -f config.over $(DTRACE_H)
# Do not 'make _tidy' directly.
_tidy:
diff --git a/NetWare/config.wc b/NetWare/config.wc
index 2afe65e6c2..942226c899 100644
--- a/NetWare/config.wc
+++ b/NetWare/config.wc
@@ -522,6 +522,7 @@ dlsrc='dl_netware.xs'
doublesize='8'
drand01='(rand()/(double)((unsigned)1<<RANDBITS))'
drand48_r_proto='0'
+dtrace=''
dynamic_ext='Socket IO Fcntl Opcode SDBM_File attrs'
eagain='EAGAIN'
ebcdic='undef'
@@ -949,6 +950,7 @@ use64bitall='undef'
use64bitint='undef'
usecrosscompile='undef'
usedl='define'
+usedtrace='undef'
usefaststdio='undef'
useithreads='define'
uselargefiles='undef'
diff --git a/Porting/Glossary b/Porting/Glossary
index b69d7b993c..5b3c99b98d 100644
--- a/Porting/Glossary
+++ b/Porting/Glossary
@@ -2418,6 +2418,9 @@ dynamic_ext (Extensions.U):
This variable holds a list of XS extension files we want to
link dynamically into the package. It is used by Makefile.
+dtrace (dtrace.U):
+ This variable holds the location of the dtrace executable.
+
eagain (nblock_io.U):
This variable bears the symbolic errno code set by read() when no
data is present on the file and non-blocking I/O was enabled (otherwise,
@@ -4788,6 +4791,10 @@ usedl (dlsrc.U):
This variable indicates if the system supports dynamic
loading of some sort. See also dlsrc and dlobj.
+usedtrace (trace.U):
+ This variable indicates whether we are compiling with dtrace support.
+ See also dtrace.
+
usefaststdio (usefaststdio.U):
This variable conditionally defines the USE_FAST_STDIO symbol,
and indicates that Perl should be built to use 'fast stdio'.
diff --git a/config_h.SH b/config_h.SH
index d6cc1fa7cb..a9b626507a 100644
--- a/config_h.SH
+++ b/config_h.SH
@@ -2800,6 +2800,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
#$d_oldpthreads OLD_PTHREADS_API /**/
#$usereentrant USE_REENTRANT_API /**/
+/* USE_DTRACE
+ * This symbol, if defined, indicates that Perl should
+ * be built with support for DTrace.
+ */
+#$usedtrace USE_DTRACE /**/
+
/* PERL_VENDORARCH:
* If defined, this symbol contains the name of a private library.
* The library is private in the sense that it needn't be in anyone's
diff --git a/configure.com b/configure.com
index 800f054c21..f36d5c6a10 100644
--- a/configure.com
+++ b/configure.com
@@ -6127,6 +6127,7 @@ $ WC "dlobj='" + dlobj + "'"
$ WC "dlsrc='dl_vms.c'"
$ WC "doublesize='" + doublesize + "'"
$ WC "drand01='" + drand01 + "'"
+$ WC "dtrace=''"
$!
$! The extensions symbol may be quite long
$!
@@ -6442,6 +6443,7 @@ $ WC "usedebugging_perl='"+use_debugging_perl+"'"
$ WC "usedefaulttypes='" + usedefaulttypes + "'" ! VMS-specific
$ WC "usecrosscompile='undef'"
$ WC "usedl='" + usedl + "'"
+$ WC "usedtrace='undef'"
$ WC "usefaststdio='" + usefaststdio + "'"
$ WC "useieee='" + useieee + "'" ! VMS-specific
$ WC "useithreads='" + useithreads + "'"
diff --git a/cop.h b/cop.h
index 39dc9cb48d..0b63c67973 100644
--- a/cop.h
+++ b/cop.h
@@ -132,6 +132,7 @@ typedef struct jmpenv JMPENV;
#define CATCH_SET(v) (PL_top_env->je_mustcatch = (v))
+#include "mydtrace.h"
struct cop {
BASEOP
@@ -295,6 +296,10 @@ struct block_sub {
* decremented by LEAVESUB, the other by LEAVE. */
#define PUSHSUB_BASE(cx) \
+ ENTRY_PROBE(GvENAME(CvGV(cv)), \
+ CopFILE((COP*)CvSTART(cv)), \
+ CopLINE((COP*)CvSTART(cv))); \
+ \
cx->blk_sub.cv = cv; \
cx->blk_sub.olddepth = CvDEPTH(cv); \
cx->blk_sub.hasargs = hasargs; \
@@ -342,6 +347,10 @@ struct block_sub {
#define POPSUB(cx,sv) \
STMT_START { \
+ RETURN_PROBE(GvENAME(CvGV((CV*)cx->blk_sub.cv)), \
+ CopFILE((COP*)CvSTART((CV*)cx->blk_sub.cv)), \
+ CopLINE((COP*)CvSTART((CV*)cx->blk_sub.cv))); \
+ \
if (cx->blk_sub.hasargs) { \
POP_SAVEARRAY(); \
/* abandon @_ if it got reified */ \
diff --git a/epoc/config.sh b/epoc/config.sh
index e54f56836e..bd1a20fab3 100644
--- a/epoc/config.sh
+++ b/epoc/config.sh
@@ -498,6 +498,7 @@ dlsrc='dl_none.xs'
doublesize='8'
drand01='(rand()/(double)(1U<<RANDBITS))'
drand48_r_proto='0'
+dtrace=''
dynamic_ext=''
eagain='EAGAIN'
ebcdic='undef'
@@ -855,6 +856,7 @@ use64bitall='undef'
use64bitint='undef'
usecrosscompile='define'
usedl='undef'
+usedtrace='undef'
usefaststdio='undef'
uselargefiles='undef'
uselongdouble='undef'
diff --git a/mydtrace.h b/mydtrace.h
new file mode 100644
index 0000000000..daabcfa0b9
--- /dev/null
+++ b/mydtrace.h
@@ -0,0 +1,42 @@
+/* mydtrace.h
+ *
+ * Copyright (C) 2008, by Larry Wall and others
+ *
+ * You may distribute under the terms of either the GNU General Public
+ * License or the Artistic License, as specified in the README file.
+ *
+ * Provides macros that wrap the various DTrace probes we use. We add
+ * an extra level of wrapping to encapsulate the _ENABLED tests.
+ */
+
+#if defined(USE_DTRACE) && defined(PERL_CORE)
+
+# include "perldtrace.h"
+
+# define ENTRY_PROBE(func, file, line) \
+ if (PERL_SUB_ENTRY_ENABLED()) { \
+ PERL_SUB_ENTRY(func, file, line); \
+ }
+
+# define RETURN_PROBE(func, file, line) \
+ if (PERL_SUB_RETURN_ENABLED()) { \
+ PERL_SUB_RETURN(func, file, line); \
+ }
+
+#else
+
+/* NOPs */
+# define ENTRY_PROBE(func, file, line)
+# define RETURN_PROBE(func, file, line)
+
+#endif
+
+/*
+ * Local variables:
+ * c-indentation-style: bsd
+ * c-basic-offset: 4
+ * indent-tabs-mode: t
+ * End:
+ *
+ * ex: set ts=8 sts=4 sw=4 noet:
+ */
diff --git a/perldtrace.d b/perldtrace.d
new file mode 100644
index 0000000000..d90be532f7
--- /dev/null
+++ b/perldtrace.d
@@ -0,0 +1,9 @@
+/*
+ * Written by Alan Burlinson -- taken from his blog post
+ * at <http://blogs.sun.com/alanbur/date/20050909>.
+ */
+
+provider perl {
+ probe sub__entry(char *, char *, int);
+ probe sub__return(char *, char *, int);
+};
diff --git a/plan9/config_sh.sample b/plan9/config_sh.sample
index 9d116652cc..9ce1038812 100644
--- a/plan9/config_sh.sample
+++ b/plan9/config_sh.sample
@@ -529,6 +529,7 @@ dlsrc='dl_none.xs'
doublesize='8'
drand01='(rand() / (double) ((unsigned long)1 << 15))'
drand48_r_proto='0'
+dtrace=''
dynamic_ext=''
eagain='EAGAIN'
ebcdic='undef'
@@ -956,6 +957,7 @@ use64bitall='undef'
use64bitint='undef'
usecrosscompile='undef'
usedl='undef'
+usedtrace='undef'
usefaststdio='undef'
useithreads='undef'
uselargefiles='define'
diff --git a/symbian/config.sh b/symbian/config.sh
index c31d4bea54..e53ed934e7 100644
--- a/symbian/config.sh
+++ b/symbian/config.sh
@@ -476,6 +476,7 @@ dlsrc='dl_symbian.xs'
doublesize='8'
drand01="((rand() & 0x7FFF) / (double) ((unsigned long)1 << 15))"
drand48_r_proto='0'
+dtrace=''
eagain='EAGAIN'
ebcdic='undef'
endgrent_r_proto='0'
@@ -771,6 +772,7 @@ use64bitall='undef'
use64bitint='undef'
usecrosscompile='undef'
usedl='undef'
+usedtrace='undef'
usefaststdio='undef'
useithreads='undef'
uselargefiles='undef'
diff --git a/uconfig.h b/uconfig.h
index 78bef6f4fe..18b6f57de4 100644
--- a/uconfig.h
+++ b/uconfig.h
@@ -4358,6 +4358,12 @@
/*#define OLD_PTHREADS_API / **/
/*#define USE_REENTRANT_API / **/
+/* USE_DTRACE
+ * This symbol, if defined, indicates that Perl should
+ * be built with support for DTrace.
+ */
+/*#define USE_DTRACE / **/
+
/* PERL_VENDORARCH:
* If defined, this symbol contains the name of a private library.
* The library is private in the sense that it needn't be in anyone's
diff --git a/uconfig.sh b/uconfig.sh
index 2503c1b3c6..7f513af57f 100755
--- a/uconfig.sh
+++ b/uconfig.sh
@@ -465,6 +465,7 @@ direntrytype='struct dirent'
doublesize='8'
drand01="((rand() & 0x7FFF) / (double) ((unsigned long)1 << 15))"
drand48_r_proto='0'
+dtrace=''
eagain='EAGAIN'
ebcdic='undef'
endgrent_r_proto='0'
@@ -737,6 +738,7 @@ use64bitall='undef'
use64bitint='undef'
usecrosscompile='undef'
usedl='undef'
+usedtrace='undef'
usefaststdio='undef'
useithreads='undef'
uselargefiles='undef'
diff --git a/win32/config.bc b/win32/config.bc
index 7f7cc38729..ec883a98d7 100644
--- a/win32/config.bc
+++ b/win32/config.bc
@@ -518,6 +518,7 @@ dlsrc='dl_win32.xs'
doublesize='8'
drand01='(rand()/(double)((unsigned)1<<RANDBITS))'
drand48_r_proto='0'
+dtrace=''
dynamic_ext='Socket IO Fcntl Opcode SDBM_File attrs'
eagain='EAGAIN'
ebcdic='undef'
@@ -979,6 +980,7 @@ use64bitall='undef'
use64bitint='undef'
usecrosscompile='undef'
usedl='define'
+usedtrace='undef'
usefaststdio='undef'
useithreads='undef'
uselargefiles='undef'
diff --git a/win32/config.ce b/win32/config.ce
index 2be951961c..00dabcfe0b 100644
--- a/win32/config.ce
+++ b/win32/config.ce
@@ -520,6 +520,7 @@ dlsrc='dl_win32.xs'
doublesize='8'
drand01='(rand()/(double)((unsigned)1<<RANDBITS))'
drand48_r_proto='0'
+dtrace=''
dynamic_ext='Socket IO Fcntl Opcode SDBM_File attrs'
eagain='EAGAIN'
ebcdic='undef'
@@ -941,6 +942,7 @@ use64bitall='undef'
use64bitint='undef'
usecrosscompile='define'
usedl='define'
+usedtrace='undef'
usefaststdio='undef'
useithreads='~USE_ITHREADS~'
uselargefiles='undef'
diff --git a/win32/config.gc b/win32/config.gc
index e1e1bc37c1..5e6267886f 100644
--- a/win32/config.gc
+++ b/win32/config.gc
@@ -518,6 +518,7 @@ dlsrc='dl_win32.xs'
doublesize='8'
drand01='(rand()/(double)((unsigned)1<<RANDBITS))'
drand48_r_proto='0'
+dtrace=''
dynamic_ext='Socket IO Fcntl Opcode SDBM_File attrs'
eagain='EAGAIN'
ebcdic='undef'
@@ -979,6 +980,7 @@ use64bitall='undef'
use64bitint='undef'
usecrosscompile='undef'
usedl='define'
+usedtrace='undef'
usefaststdio='undef'
useithreads='undef'
uselargefiles='undef'
diff --git a/win32/config.vc b/win32/config.vc
index 6e167269af..3c58cdcf34 100644
--- a/win32/config.vc
+++ b/win32/config.vc
@@ -518,6 +518,7 @@ dlsrc='dl_win32.xs'
doublesize='8'
drand01='(rand()/(double)((unsigned)1<<RANDBITS))'
drand48_r_proto='0'
+dtrace=''
dynamic_ext='Socket IO Fcntl Opcode SDBM_File attrs'
eagain='EAGAIN'
ebcdic='undef'
@@ -979,6 +980,7 @@ use64bitall='undef'
use64bitint='undef'
usecrosscompile='undef'
usedl='define'
+usedtrace='undef'
usefaststdio='undef'
useithreads='undef'
uselargefiles='undef'
diff --git a/win32/config.vc64 b/win32/config.vc64
index b5bea414da..6680911655 100644
--- a/win32/config.vc64
+++ b/win32/config.vc64
@@ -518,6 +518,7 @@ dlsrc='dl_win32.xs'
doublesize='8'
drand01='(rand()/(double)((unsigned)1<<RANDBITS))'
drand48_r_proto='0'
+dtrace=''
dynamic_ext='Socket IO Fcntl Opcode SDBM_File attrs'
eagain='EAGAIN'
ebcdic='undef'
@@ -979,6 +980,7 @@ use64bitall='undef'
use64bitint='define'
usecrosscompile='undef'
usedl='define'
+usedtrace='undef'
usefaststdio='undef'
useithreads='undef'
uselargefiles='undef'
diff --git a/win32/config_H.bc b/win32/config_H.bc
index c07d573869..205083580b 100644
--- a/win32/config_H.bc
+++ b/win32/config_H.bc
@@ -4372,6 +4372,12 @@
/*#define OLD_PTHREADS_API /**/
/*#define USE_REENTRANT_API /**/
+/* USE_DTRACE
+ * This symbol, if defined, indicates that Perl should
+ * be built with support for DTrace.
+ */
+/*#define USE_DTRACE / **/
+
/* PERL_VENDORARCH:
* If defined, this symbol contains the name of a private library.
* The library is private in the sense that it needn't be in anyone's
diff --git a/win32/config_H.ce b/win32/config_H.ce
index 7f9200c421..d563097e18 100644
--- a/win32/config_H.ce
+++ b/win32/config_H.ce
@@ -3664,6 +3664,12 @@
/*#define OLD_PTHREADS_API /**/
/*#define USE_REENTRANT_API /**/
+/* USE_DTRACE
+ * This symbol, if defined, indicates that Perl should
+ * be built with support for DTrace.
+ */
+/*#define USE_DTRACE / **/
+
/* PERL_VENDORARCH:
* If defined, this symbol contains the name of a private library.
* The library is private in the sense that it needn't be in anyone's
diff --git a/win32/config_H.gc b/win32/config_H.gc
index 01fdc3a400..c61c04c03d 100644
--- a/win32/config_H.gc
+++ b/win32/config_H.gc
@@ -4402,6 +4402,12 @@
/*#define OLD_PTHREADS_API /**/
/*#define USE_REENTRANT_API /**/
+/* USE_DTRACE
+ * This symbol, if defined, indicates that Perl should
+ * be built with support for DTrace.
+ */
+/*#define USE_DTRACE / **/
+
/* PERL_VENDORARCH:
* If defined, this symbol contains the name of a private library.
* The library is private in the sense that it needn't be in anyone's
diff --git a/win32/config_H.vc b/win32/config_H.vc
index 0373bf928e..d300a7d77b 100644
--- a/win32/config_H.vc
+++ b/win32/config_H.vc
@@ -4398,6 +4398,12 @@
/*#define OLD_PTHREADS_API /**/
/*#define USE_REENTRANT_API /**/
+/* USE_DTRACE
+ * This symbol, if defined, indicates that Perl should
+ * be built with support for DTrace.
+ */
+/*#define USE_DTRACE / **/
+
/* PERL_VENDORARCH:
* If defined, this symbol contains the name of a private library.
* The library is private in the sense that it needn't be in anyone's
diff --git a/win32/config_H.vc64 b/win32/config_H.vc64
index fbd234292d..02371e13cf 100644
--- a/win32/config_H.vc64
+++ b/win32/config_H.vc64
@@ -4372,6 +4372,12 @@
/*#define OLD_PTHREADS_API /**/
/*#define USE_REENTRANT_API /**/
+/* USE_DTRACE
+ * This symbol, if defined, indicates that Perl should
+ * be built with support for DTrace.
+ */
+/*#define USE_DTRACE / **/
+
/* PERL_VENDORARCH:
* If defined, this symbol contains the name of a private library.
* The library is private in the sense that it needn't be in anyone's