]>
Commit | Line | Data |
---|---|---|
519f5484 PL |
1 | # PTHREAD_SET_NAME(); |
2 | # Check which variant (if any) of pthread_set_name_np we have. | |
3 | # ----------------------------------------------------------------------------- | |
4 | AC_DEFUN([PTHREAD_SET_NAME], | |
5 | [ | |
6 | stored_LIBS="$LIBS" | |
7 | LIBS="-lpthread" | |
8 | # pthread setname (4 non-portable variants...) | |
9 | AC_CHECK_HEADERS([pthread_np.h], [], [], [#include <pthread.h>]) | |
10 | define(pthread_np_preamble,[ | |
11 | #include <pthread.h> | |
12 | #if HAVE_PTHREAD_NP_H | |
13 | # include <pthread_np.h> | |
14 | #endif | |
15 | ]) | |
16 | # 2-arg setname (e.g. Linux/glibc, QNX, IBM) | |
17 | AC_MSG_CHECKING([for 2-arg pthread_setname_np]) | |
18 | AC_LINK_IFELSE([AC_LANG_PROGRAM(pthread_np_preamble, [ | |
19 | pthread_setname_np(pthread_self(), "foo") | |
20 | ])], [ | |
21 | AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_2, 1, [2-arg pthread_setname_np]) | |
22 | AC_MSG_RESULT([yes]) | |
23 | ], [ | |
24 | AC_MSG_RESULT([no]) | |
25 | ||
26 | # 2-arg set_name (e.g. FreeBSD, OpenBSD) | |
27 | AC_MSG_CHECKING([for 2-arg pthread_set_name_np]) | |
28 | AC_LINK_IFELSE([AC_LANG_PROGRAM(pthread_np_preamble, [ | |
29 | return pthread_set_name_np(pthread_self(), "foo"); | |
30 | ])], [ | |
31 | AC_DEFINE(HAVE_PTHREAD_SET_NAME_NP_2, 1, [2-arg pthread_set_name_np]) | |
32 | AC_MSG_RESULT([yes]) | |
33 | ], [ | |
34 | AC_MSG_RESULT([no]) | |
35 | ||
36 | # 2-arg void set_name (e.g. FreeBSD, OpenBSD) | |
37 | AC_MSG_CHECKING([for 2-arg void pthread_set_name_np]) | |
38 | AC_LINK_IFELSE([AC_LANG_PROGRAM(pthread_np_preamble, [ | |
39 | pthread_set_name_np(pthread_self(), "foo"); | |
40 | ])], [ | |
41 | AC_DEFINE(HAVE_PTHREAD_SET_NAME_NP_2_VOID, 1, [2-arg void pthread_set_name_np]) | |
42 | AC_MSG_RESULT([yes]) | |
43 | ], [ | |
44 | AC_MSG_RESULT([no]) | |
45 | ||
46 | # 1-arg setname (e.g. Darwin) | |
47 | AC_MSG_CHECKING([for 1-arg pthread_setname_np]) | |
48 | AC_LINK_IFELSE([AC_LANG_PROGRAM(pthread_np_preamble, [ | |
49 | return pthread_setname_np("foo"); | |
50 | ])], [ | |
51 | AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_1, 1, [1-arg pthread_setname_np]) | |
52 | AC_MSG_RESULT([yes]) | |
53 | ], [ | |
54 | AC_MSG_RESULT([no]) | |
55 | ||
56 | # 3-arg setname (e.g. NetBSD) | |
57 | AC_MSG_CHECKING([for 3-arg pthread_setname_np]) | |
58 | AC_LINK_IFELSE([AC_LANG_PROGRAM(pthread_np_preamble, [ | |
59 | return pthread_setname_np(pthread_self(), "foo", NULL); | |
60 | ])], [ | |
61 | AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_3, 1, [3-arg pthread_setname_np]) | |
62 | AC_MSG_RESULT([yes]) | |
63 | ], [ | |
64 | AC_MSG_RESULT([no]) | |
65 | ]) | |
66 | ]) | |
67 | ]) | |
68 | ]) | |
69 | ]) | |
70 | LIBS=$stored_LIBS | |
71 | ]) |