X-Git-Url: https://git.lttng.org/?p=lttng-ust.git;a=blobdiff_plain;f=m4%2Fae_pthread_getname_np.m4;fp=m4%2Fae_pthread_getname_np.m4;h=613b52bfa1ea49cea3a94fadd062f381157474b7;hp=0000000000000000000000000000000000000000;hb=e03d7c66c57bf268b87296566a5160039f35ccfb;hpb=79f8dc6f50b20fb6b1d99f9bd97d70aa361bc6ad diff --git a/m4/ae_pthread_getname_np.m4 b/m4/ae_pthread_getname_np.m4 new file mode 100644 index 00000000..613b52bf --- /dev/null +++ b/m4/ae_pthread_getname_np.m4 @@ -0,0 +1,72 @@ +# SPDX-FileCopyrightText: 2020 Michael Jeanson +# +# SPDX-License-Identifier: GPL-2.0-or-later WITH LicenseRef-Autoconf-exception-macro +# +# SYNOPSIS +# +# AE_PTHREAD_GETNAME_NP +# + +#serial 2 + +AC_DEFUN([AE_PTHREAD_GETNAME_NP], [ +AC_REQUIRE([AX_PTHREAD]) +AC_LANG_PUSH([C]) + +ae_pthread_getname_np_save_LDFLAGS="$LDFLAGS" +ae_pthread_getname_np_save_LIBS="$LIBS" +LDFLAGS="$LDFLAGS $PTHREAD_CFLAGS" +LIBS="$LIBS $PTHREAD_LIBS" + +# GLIBC >= 2.12, Solaris >= 11.3, FreeBSD >= 12.2, MacOS X >= 10.6, iOS >= 3.2 +AC_MSG_CHECKING(for pthread_getname_np(pthread_t, char*, size_t)) +AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include + #ifdef __FreeBSD__ + #include + #endif + #define AE_PTHREAD_NAMELEN 16 + char ae_pthread_name[AE_PTHREAD_NAMELEN];]], + [pthread_getname_np(pthread_self(), ae_pthread_name, AE_PTHREAD_NAMELEN)])], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PTHREAD_GETNAME_NP_WITH_TID,1, + [Have function pthread_getname_np(pthread_t, char*, size_t)])], + [AC_MSG_RESULT(no)]) + +AC_MSG_CHECKING(for pthread_getname_np(char*, size_t)) +AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include + #ifdef __FreeBSD__ + #include + #endif + #define AE_PTHREAD_NAMELEN 16 + char ae_pthread_name[AE_PTHREAD_NAMELEN];]], + [pthread_getname_np(ae_pthread_name, AE_PTHREAD_NAMELEN)])], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PTHREAD_GETNAME_NP_WITHOUT_TID,1, + [Have function pthread_getname_np(char*, size_t)])], + [AC_MSG_RESULT(no)]) + +# FreeBSD +AC_MSG_CHECKING(for pthread_get_name_np(pthread_t, char*, size_t)) +AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include + #ifdef __FreeBSD__ + #include + #endif + #define AE_PTHREAD_NAMELEN 16 + char ae_pthread_name[AE_PTHREAD_NAMELEN];]], + [pthread_get_name_np(pthread_self(), ae_pthread_name, AE_PTHREAD_NAMELEN)])], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PTHREAD_GET_NAME_NP_WITH_TID,1, + [Have function pthread_get_name_np(pthread_t, char*, size_t)])], + [AC_MSG_RESULT(no)]) + +LDFLAGS=$ae_pthread_getname_np_save_LDFLAGS +LIBS=$ae_pthread_getname_np_save_LIBS + +AC_LANG_POP +])dnl AE_PTHREAD_GETNAME_NP