diff options
author | markj <markj@FreeBSD.org> | 2015-05-17 23:08:01 +0000 |
---|---|---|
committer | markj <markj@FreeBSD.org> | 2015-05-17 23:08:01 +0000 |
commit | 78dbee31006a8fcbf453c24a21d6bb767e0ac43c (patch) | |
tree | 26da3c46ef83bbcbf573551658c42a61549656bb /cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c | |
parent | 164d3b3865b79a769a09ae8cea4137a49f662609 (diff) | |
download | FreeBSD-src-78dbee31006a8fcbf453c24a21d6bb767e0ac43c.zip FreeBSD-src-78dbee31006a8fcbf453c24a21d6bb767e0ac43c.tar.gz |
Respect the libdir option when linking drti.o, rather than hardcoding the
default path of /usr/lib(32)/dtrace.
MFC after: 3 weeks
Diffstat (limited to 'cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c')
-rw-r--r-- | cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c index c952243..80e4be9 100644 --- a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c +++ b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c @@ -792,6 +792,7 @@ const char *_dtrace_libdir = "/usr/lib/dtrace"; /* default library directory */ #ifdef illumos const char *_dtrace_provdir = "/dev/dtrace/provider"; /* provider directory */ #else +const char *_dtrace_libdir32 = "/usr/lib32/dtrace"; const char *_dtrace_provdir = "/dev/dtrace"; /* provider directory */ #endif @@ -1581,8 +1582,19 @@ alloc: * compile, and to provide better error reporting (because the full * reporting of compiler errors requires dtrace_open() to succeed). */ +#ifdef __FreeBSD__ +#ifdef __LP64__ + if ((dtp->dt_oflags & DTRACE_O_ILP32) != 0) { + if (dtrace_setopt(dtp, "libdir", _dtrace_libdir32) != 0) + return (set_open_errno(dtp, errp, dtp->dt_errno)); + } +#endif if (dtrace_setopt(dtp, "libdir", _dtrace_libdir) != 0) return (set_open_errno(dtp, errp, dtp->dt_errno)); +#else + if (dtrace_setopt(dtp, "libdir", _dtrace_libdir) != 0) + return (set_open_errno(dtp, errp, dtp->dt_errno)); +#endif return (dtp); } |