New submission from Steve Wills:

When enabling dtrace support via the --with-dtrace configure flag, build fails 
on FreeBSD with this message:

/usr/sbin/dtrace  -o Include/pydtrace_probes.h -h -s
dtrace: option requires an argument -- s

Looks like line 882 of Makefile.pre.in:

    882         $(DTRACE) $(DFLAGS) -o $@ -h -s $<

changing this to:

    882         $(DTRACE) $(DFLAGS) -o $@ -h -s $(srcdir)/Include/pydtrace.d

avoids that issue. Note that bmake is being used here.

After this however, another issue is encountered during linking:

Python/ceval.o: In function `_PyEval_EvalFrameDefault':
Python/ceval.c:(.text+0xc94): undefined reference to 
`__dtraceenabled_python___function__entry'
Python/ceval.c:(.text+0xcdd): undefined reference to 
`__dtrace_python___function__entry'
Python/ceval.c:(.text+0xff0): undefined reference to 
`__dtraceenabled_python___line'
Python/ceval.c:(.text+0x109f): undefined reference to `__dtrace_python___line'
Python/ceval.c:(.text+0x125e): undefined reference to 
`__dtraceenabled_python___line'
Python/ceval.c:(.text+0x12e5): undefined reference to 
`__dtraceenabled_python___line'
Python/ceval.c:(.text+0x1358): undefined reference to 
`__dtraceenabled_python___line'
Python/ceval.c:(.text+0x13f2): undefined reference to 
`__dtraceenabled_python___line'
Python/ceval.c:(.text+0x146c): undefined reference to 
`__dtraceenabled_python___line'
Python/ceval.o:Python/ceval.c:(.text+0x14de): more undefined references to 
`__dtraceenabled_python___line' follow
Python/ceval.o: In function `_PyEval_EvalFrameDefault':
Python/ceval.c:(.text+0x87f2): undefined reference to 
`__dtraceenabled_python___function__return'
Python/ceval.c:(.text+0x8833): undefined reference to 
`__dtrace_python___function__return'
Modules/gcmodule.o: In function `collect':
Modules/gcmodule.c:(.text+0x380): undefined reference to 
`__dtraceenabled_python___gc__start'
Modules/gcmodule.c:(.text+0x38c): undefined reference to 
`__dtrace_python___gc__start'
Modules/gcmodule.c:(.text+0xe1b): undefined reference to 
`__dtraceenabled_python___gc__done'
Modules/gcmodule.c:(.text+0xe2a): undefined reference to 
`__dtrace_python___gc__done'

which I believe is due to dtrace -G modifying Python/ceval.o and 
Modules/gcmodule.o. 

Finally, note that all calls to dtrace -G or dtrace -h on FreeBSD 11.0 should 
have -xnolibs added to enable use without the DTrace kernel modules loaded. 
Otherwise dtrace processes the /usr/lib/dtrace scripts unnecessarily, and 
errors out when it tries to talk to the DTrace kernel code, causing build 
failure in a jail.

(I can provide patches, but suspect you have preferences about how the build 
system work that I'm not aware of, so wanted to explain before patching in ways 
that aren't satisfactory.)

----------
messages: 284038
nosy: swills
priority: normal
severity: normal
status: open
title: build failure when enabling dtrace on FreeBSD
versions: Python 3.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue29077>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to