Note that this works for perl5.2.4, this is failing for perl5.26: ... Support DTrace if available? [y] Where is the dtrace executable? (~name ok) [/usr/sbin/dtrace] *** Configure: Fatal Error: /usr/sbin/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. ===> Script "Configure" failed unexpectedly. Also note that files/patch-dtrace exists for perl5.24 but does not for perl5.26
I cannot reproduce, the issue. On all 11.1, dtrace has a -h. Does not your dtrace has a -h option ? The patch-dtrace file was removed in January of 2017 because the dtrace support was fixed between Perl 5.25.8 and Perl 5.25.9, so it has always worked out of the box in Perl 5.26.
Indeed my dtrace does have the -h option. Digging into the test that fails during the perl5.26 build, (which is at line 8208 of ./work/perl-5.26.1/Configure on my machine) then trying it manually, I see a different error: # dtrace -h -s ./work/perl-5.26.1/perldtrace.d -o perldtrace.tmp dtrace: failed to compile script ./work/perl-5.26.1/perldtrace.d: "/usr/lib/dtrace/mbuf.d", line 114: syntax error near "caddr_t" Googling that, this appears to be related to bug #224857, the last comment there pointing to a suggestion to enable makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols in the kernel conf file, which I have had commented out for many years now. I'll rebuild and see if that fixes this, though that still seems like a bug to me.
Ok, rebuilding a new kernel with debug symbols has fixed it. That seems like an undesirable situation where dtrace usage depends on kernel debug symbols being in place. It wasn't the case before, as I've had that option commented out for a long while now. Is that worth another PR? At least this is a workaround for now. Thanks for your help.
No bug. All you need is to have several kernel files in /boot/kernel. To see what's needed, just try a truss dtrace -h to see what .ko files dtrace wants to access. # truss dtrace -h 2>&1 | grep kernel openat(AT_FDCWD,"/boot/kernel/kernel",O_RDONLY,00) = 3 (0x3) openat(AT_FDCWD,"/boot/kernel/accf_data.ko",O_RDONLY,00) = 3 (0x3) openat(AT_FDCWD,"/boot/kernel/accf_http.ko",O_RDONLY,00) = 3 (0x3) openat(AT_FDCWD,"/boot/kernel/mac_portacl.ko",O_RDONLY,00) = 3 (0x3) openat(AT_FDCWD,"/boot/kernel/cc_htcp.ko",O_RDONLY,00) = 3 (0x3) openat(AT_FDCWD,"/boot/kernel/ulpt.ko",O_RDONLY,00) = 3 (0x3) openat(AT_FDCWD,"/boot/kernel/nullfs.ko",O_RDONLY,00) = 3 (0x3) openat(AT_FDCWD,"/boot/kernel/tmpfs.ko",O_RDONLY,00) = 3 (0x3) openat(AT_FDCWD,"/boot/kernel/fdescfs.ko",O_RDONLY,00) = 3 (0x3)
Hello. I have such a mistake. Deleted completely with dependences pearl 5.24 pkg_deinstall -rR perl5 I try to install from ports pearl5.26. root@FIL_ELI:/usr/ports/lang/perl5.26 # make install clean Until this bug is not fixed? https://forums.freebsd.org/threads/install-perl5-26.68030/#post-404782 Support DTrace if available? [y] Where is the dtrace executable? (~name ok) [/usr/sbin/dtrace] *** Configure: Fatal Error: /usr/sbin/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. ===> Script "Configure" failed unexpectedly. Please report the problem to mat@FreeBSD.org [maintainer] and attach the "/usr/ports/lang/perl5.26/work/perl-5.26.2/config.log" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (e.g. a /usr/local/sbin/pkg-static info -g -Ea). *** Error code 1 Stop. make[1]: stopped in /usr/ports/lang/perl5.26 *** Error code 1 Stop. make: stopped in /usr/ports/lang/perl5.26
Confirm at CURRENT amd64 (rv 340151) the same bug with dtrace # dtrace -h dtrace: failed to establish error handler: "/usr/lib/dtrace/ip.d", line 112: failed to copy typedef in6_addr_t source type: Type information is in parent and unavailable leading to failure at perl5.26.2 compilation with dtrace option "on"
bug #232995
I also encountered the same error when building with poudriere jail. FreeBSD: 10.4-STABLE amd64 (r341607) portstree: Revision: 488252 Perl: lang/perl5.28 This is just information because I am using an unsupported version of FreeBSD.
Continuation of comment #8. I entered the powder keg in interactive mode and tried next. tar -x -f /distfiles/perl/perl-5.28.1.tar.xz -C /tmp/ cd /tmp/ dtrace -h -s perl-5.28.1/perldtrace.d -o perldtrace.tmp I got the following error message. dtrace: failed to compile script perl-5.28.1/perldtrace.d: "/usr/lib/dtrace/psinfo.d", line 37: syntax error near "uid_t" However, FreeBSD version is old.
The root cause of this appears to be bug 232675, affecting any kernel/version where CTF info ever contains > 2^15 entries
Running stable/13 e284a6234ffb I get the same error in poudriere - host and poudriere jail have same git revision Did not have this issue running stable/12 before upgrading host and poudriere jail Support DTrace if available? [y] Where is the dtrace executable? (~name ok) [/usr/sbin/dtrace] *** Configure: Fatal Error: /usr/sbin/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. ===> Script "Configure" failed unexpectedly. I only get this error when building perl in poudriere, perl5.32 builds fine on the host. All current perl versions fail with dtrace enabled - 5.28.3_1/5.30.3_1/5.32.1_1/5.34.0.r1 All current perl versions build with dtrace disabled I have just installed stable/13 e284a6234ffb, previously I had stable/12. I have manually built compat12, nvidia-driver, pkg, poudriere and perl5.32.1_1 - all other installed ports have not been updated yet. Same result with poudriere-3.3.6 and poudriere-devel-3.3.99.20210303_2
As it was previously stated, the problem is bug 232675, I do not think it has much to do with Perl.
Dup'ing per comment 12. The underlying limit on type IDs is fixed in the main branch now. In the meantime there have also been several kernel changes which fix inconsistencies leading to duplicate type IDs. The most recent example is https://cgit.freebsd.org/src/commit/?id=b4f60fab5d3fdd2ea51c1151fa79b2c541c6b81a *** This bug has been marked as a duplicate of bug 232675 ***