#define _GNU_SOURCE
#include <stdio.h>
+#include <endian.h>
#include <urcu/list.h>
#include <urcu/hlist.h>
#include <pthread.h>
#include <stddef.h>
#include <inttypes.h>
#include <time.h>
-#include <lttng/ust-endian.h>
+#include <sys/prctl.h>
#include "clock.h"
#include <urcu-bp.h>
#include <usterr-signal-safe.h>
#include <helper.h>
#include "error.h"
-#include "compat.h"
#include "tracepoint-internal.h"
#include "ltt-tracer.h"
#include "../libringbuffer/shm.h"
#include "jhash.h"
+#define PROCNAME_LEN 17
+
/*
* The sessions mutex is the centralized mutex across UST tracing
* control and probe registration. All operations within this file are
struct ltt_channel *chan;
struct ltt_event *event;
int ret = 0;
- char procname[LTTNG_UST_PROCNAME_LEN] = "";
+ char procname[PROCNAME_LEN] = "";
if (!CMM_ACCESS_ONCE(session->active))
return 0;
goto end;
/* ignore error, just use empty string if error. */
- lttng_ust_getprocname(procname);
- procname[LTTNG_UST_PROCNAME_LEN - 1] = '\0';
+ (void) prctl(PR_GET_NAME, (unsigned long) procname, 0, 0, 0);
+ procname[PROCNAME_LEN - 1] = '\0';
ret = lttng_metadata_printf(session,
"env {\n"
" vpid = %d;\n"
wildcard->enabled = 0;
return 0;
}
+
+/*
+ * Take the TLS "fault" in libuuid if dlopen'd, which can take the
+ * dynamic linker mutex, outside of the UST lock, since the UST lock is
+ * taken in constructors, which are called with dynamic linker mutex
+ * held.
+ */
+void lttng_fixup_event_tls(void)
+{
+ unsigned char uuid[37];
+
+ (void) uuid_generate(uuid);
+}