aboutsummaryrefslogtreecommitdiff
path: root/cddl/contrib/opensolaris/lib/libdtrace/common/dt_strtab.c
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2020-08-20 19:28:19 +0000
committerMark Johnston <markj@FreeBSD.org>2020-08-20 19:28:19 +0000
commitd2d16e566324f3560c53f85c0b1d4362040df90f (patch)
tree13633684904d8d7fda191ee07e3911cc80f71d49 /cddl/contrib/opensolaris/lib/libdtrace/common/dt_strtab.c
parent0e15d9fbeba47c947f62d8252ef673a306f7c2fb (diff)
downloadsrc-d2d16e566324f3560c53f85c0b1d4362040df90f.tar.gz
src-d2d16e566324f3560c53f85c0b1d4362040df90f.zip
Enable creation of static userspace probes in incremental builds.
To define USDT probes, dtrace -G makes use of relocations for undefined symbols: the target address is overwritten with NOPs and the location is recorded in the DOF section of the output object file. To avoid link errors, the original relocation is destroyed. However, this means that the same input object file cannot be processed multiple times, as happens during incremental rebuilds. Instead, only set the relocation type to NONE, so that all information required to reconstruct USDT probes is preserved. Reported by: bdrewery MFC after: 3 weeks Sponsored by: The FreeBSD Foundation
Notes
Notes: svn path=/head/; revision=364438
Diffstat (limited to 'cddl/contrib/opensolaris/lib/libdtrace/common/dt_strtab.c')
-rw-r--r--cddl/contrib/opensolaris/lib/libdtrace/common/dt_strtab.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_strtab.c b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_strtab.c
index a735b6674a1e..6279ffacdaeb 100644
--- a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_strtab.c
+++ b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_strtab.c
@@ -206,6 +206,13 @@ err:
return (-1);
}
+boolean_t
+dt_strtab_empty(dt_strtab_t *sp)
+{
+ /* Always contains "\0". */
+ return (sp->str_nstrs == 1);
+}
+
ssize_t
dt_strtab_index(dt_strtab_t *sp, const char *str)
{