- bsd_name = getprogname();
- if (!bsd_name)
- name[0] = '\0';
- else
- strncpy(name, bsd_name, LTTNG_UST_PROCNAME_LEN - 1);
+/* Fallback on prtctl on Linux */
+#include <sys/prctl.h>
+
+static inline
+int lttng_pthread_setname_np(const char *name)
+{
+ /* Replicate pthread_setname_np's behavior */
+ if (strnlen(name, LTTNG_UST_ABI_PROCNAME_LEN) >= LTTNG_UST_ABI_PROCNAME_LEN) {
+ return ERANGE;
+ }
+ return prctl(PR_SET_NAME, name, 0, 0, 0);