Message284038
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.) |
|
Date |
User |
Action |
Args |
2016-12-26 19:19:02 | swills | set | recipients:
+ swills |
2016-12-26 19:19:02 | swills | set | messageid: <1482779942.39.0.346100216113.issue29077@psf.upfronthosting.co.za> |
2016-12-26 19:19:02 | swills | link | issue29077 messages |
2016-12-26 19:19:01 | swills | create | |
|