Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 07 Feb 2021 16:58:36 +0100
From:      Stefan Ehmann <shoesoft@gmx.net>
To:        freebsd-ports@freebsd.org
Subject:   dtrace support: vim exits with SIGILL
Message-ID:  <3030019.0P3pStmDMi@walrus.pepperland>

next in thread | raw e-mail | index | archive | help
I'm not sure if this is a bug or if I'm using an unsupported setup.
In case anyone runs into a similar problem, here's why my vim stopped work=
ing.

Package builder:
poudriere jail 12.2-RELEASE amd64

Package consumer running vim:
Ancient PC running 12.2-RELEASE amd64

The root cause of the problem is that the poudriere jail was built with
CPUTYPE=3Dznver1 instead of stock FreeBSD.


Initial symptoms: vim crashes with illegal instruction.

It turns out the crash is actually in libperl.so.5.32. Throwing gdb at per=
l:

Program received signal SIGILL, Illegal instruction.
0x00000008005ce435 in dtrace_dof_init ()
    at /usr/src/cddl/contrib/opensolaris/lib/libdtrace/common/drti.c:138
138             if (dof->dofh_ident[DOF_ID_MAG0] !=3D DOF_MAG_MAG0 ||


Current instruction is:
=3D> 0x00000008005ce435 <+165>:   vmovq  (%rax),%xmm0

Turning off option DTRACE fixes perl. vim still crashes because ruby also =
uses
dtrace (port offers no option to disable dtrace).

Disabling RUBY in vim finally fixes the problem.

It seems /usr/lib/dtrace/drti.o from the poudriere jail is included in per=
l/
ruby. I'm not familiar with dtrace probes. So I'm not sure if there is a f=
ix
short of disabling dtrace or not mixing CPUTYPE.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3030019.0P3pStmDMi>