Commit | Line | Data |
---|---|---|
e03d7c66 MJ |
1 | # SPDX-FileCopyrightText: 2020 Michael Jeanson <mjeanson@efficios.com> |
2 | # | |
3 | # SPDX-License-Identifier: GPL-2.0-or-later WITH LicenseRef-Autoconf-exception-macro | |
4 | # | |
5 | # SYNOPSIS | |
6 | # | |
7 | # AE_PTHREAD_GETNAME_NP | |
8 | # | |
9 | ||
10 | #serial 2 | |
11 | ||
12 | AC_DEFUN([AE_PTHREAD_GETNAME_NP], [ | |
13 | AC_REQUIRE([AX_PTHREAD]) | |
14 | AC_LANG_PUSH([C]) | |
15 | ||
16 | ae_pthread_getname_np_save_LDFLAGS="$LDFLAGS" | |
17 | ae_pthread_getname_np_save_LIBS="$LIBS" | |
18 | LDFLAGS="$LDFLAGS $PTHREAD_CFLAGS" | |
19 | LIBS="$LIBS $PTHREAD_LIBS" | |
20 | ||
21 | # GLIBC >= 2.12, Solaris >= 11.3, FreeBSD >= 12.2, MacOS X >= 10.6, iOS >= 3.2 | |
22 | AC_MSG_CHECKING(for pthread_getname_np(pthread_t, char*, size_t)) | |
23 | AC_LINK_IFELSE( | |
24 | [AC_LANG_PROGRAM( | |
25 | [[#include <pthread.h> | |
26 | #ifdef __FreeBSD__ | |
27 | #include <pthread_np.h> | |
28 | #endif | |
29 | #define AE_PTHREAD_NAMELEN 16 | |
30 | char ae_pthread_name[AE_PTHREAD_NAMELEN];]], | |
31 | [pthread_getname_np(pthread_self(), ae_pthread_name, AE_PTHREAD_NAMELEN)])], | |
32 | [AC_MSG_RESULT(yes) | |
33 | AC_DEFINE(HAVE_PTHREAD_GETNAME_NP_WITH_TID,1, | |
34 | [Have function pthread_getname_np(pthread_t, char*, size_t)])], | |
35 | [AC_MSG_RESULT(no)]) | |
36 | ||
37 | AC_MSG_CHECKING(for pthread_getname_np(char*, size_t)) | |
38 | AC_LINK_IFELSE( | |
39 | [AC_LANG_PROGRAM( | |
40 | [[#include <pthread.h> | |
41 | #ifdef __FreeBSD__ | |
42 | #include <pthread_np.h> | |
43 | #endif | |
44 | #define AE_PTHREAD_NAMELEN 16 | |
45 | char ae_pthread_name[AE_PTHREAD_NAMELEN];]], | |
46 | [pthread_getname_np(ae_pthread_name, AE_PTHREAD_NAMELEN)])], | |
47 | [AC_MSG_RESULT(yes) | |
48 | AC_DEFINE(HAVE_PTHREAD_GETNAME_NP_WITHOUT_TID,1, | |
49 | [Have function pthread_getname_np(char*, size_t)])], | |
50 | [AC_MSG_RESULT(no)]) | |
51 | ||
52 | # FreeBSD | |
53 | AC_MSG_CHECKING(for pthread_get_name_np(pthread_t, char*, size_t)) | |
54 | AC_LINK_IFELSE( | |
55 | [AC_LANG_PROGRAM( | |
56 | [[#include <pthread.h> | |
57 | #ifdef __FreeBSD__ | |
58 | #include <pthread_np.h> | |
59 | #endif | |
60 | #define AE_PTHREAD_NAMELEN 16 | |
61 | char ae_pthread_name[AE_PTHREAD_NAMELEN];]], | |
62 | [pthread_get_name_np(pthread_self(), ae_pthread_name, AE_PTHREAD_NAMELEN)])], | |
63 | [AC_MSG_RESULT(yes) | |
64 | AC_DEFINE(HAVE_PTHREAD_GET_NAME_NP_WITH_TID,1, | |
65 | [Have function pthread_get_name_np(pthread_t, char*, size_t)])], | |
66 | [AC_MSG_RESULT(no)]) | |
67 | ||
68 | LDFLAGS=$ae_pthread_getname_np_save_LDFLAGS | |
69 | LIBS=$ae_pthread_getname_np_save_LIBS | |
70 | ||
71 | AC_LANG_POP | |
72 | ])dnl AE_PTHREAD_GETNAME_NP |