diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c --- a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c +++ b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c @@ -1115,6 +1115,14 @@ */ if (err == ENOENT && modfind("dtraceall") < 0) { kldload("dtraceall"); /* ignore the error */ + if (modfind("linux64elf") >= 0) + kldload("systrace_linux"); /* ignore the error */ + if (modfind("linuxelf") >= 0) { + if (sizeof(void *) == 8) + kldload("systrace_linux32"); + else + kldload("systrace_linux"); + } dtfd = open("/dev/dtrace/dtrace", O_RDWR | O_CLOEXEC); err = errno; }