summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xConfigure29
-rwxr-xr-xMakefile.SH11
-rw-r--r--Porting/Glossary3
3 files changed, 39 insertions, 4 deletions
diff --git a/Configure b/Configure
index 7226ac9e6e..2546582f3c 100755
--- a/Configure
+++ b/Configure
@@ -1317,6 +1317,7 @@ use64bitall=''
use64bitint=''
usecbacktrace=''
dtrace=''
+dtraceobject=''
usedtrace=''
usefaststdio=''
usekernprocpathname=''
@@ -8171,6 +8172,33 @@ EOM
esac
done
+case "$usedtrace" in
+$define)
+ case "$dtraceobject" in
+ $define|true|[yY]*)
+ dtraceobject=$define
+ ;;
+ ' '|'')
+ $dtrace -h -s ../perldtrace.d -o perldtrace.h
+ $cat >try.c <<EOM
+#include "perldtrace.h"
+int main(void) {
+ PERL_LOADED_FILE("dummy");
+ return 0;
+}
+EOM
+ dtraceobject=$undef
+ if $cc -c -o try.o $optimize $ccflags try.c \
+ && $dtrace -G -s ../perldtrace.d try.o ; then
+ dtraceobject=$define
+ echo "Your dtrace builds an object file"
+ fi
+ $rm -f try.c try.o perldtrace.o
+ ;;
+ *) dtraceobject=$undef ;;
+ esac
+esac
+
: See if we want extra modules installed
echo " "
case "$extras" in
@@ -24720,6 +24748,7 @@ doublesize='$doublesize'
drand01='$drand01'
drand48_r_proto='$drand48_r_proto'
dtrace='$dtrace'
+dtraceobject='$dtraceobject'
dynamic_ext='$dynamic_ext'
eagain='$eagain'
ebcdic='$ebcdic'
diff --git a/Makefile.SH b/Makefile.SH
index a9ece4f126..43701addb0 100755
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -234,10 +234,13 @@ dtrace_o=''
minidtrace_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)' \
- && minidtrace_o='miniperldtrace$(OBJ_EXT)'
+ dtrace_h='perldtrace.h'
+ case "$dtraceobject" in
+ define)
+ dtrace_o='perldtrace$(OBJ_EXT)'
+ minidtrace_o='miniperldtrace$(OBJ_EXT)'
+ ;;
+ esac
;;
esac
diff --git a/Porting/Glossary b/Porting/Glossary
index bc879f7383..40e9b406f5 100644
--- a/Porting/Glossary
+++ b/Porting/Glossary
@@ -2850,6 +2850,9 @@ drand48_r_proto (d_drand48_r.U):
dtrace (usedtrace.U):
This variable holds the location of the dtrace executable.
+dtraceobject (usedtrace.U):
+ Whether we need to build an object file with the dtrace tool.
+
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.