Commit | Line | Data |
---|---|---|
3266f10b | 1 | dnl Autoconf configure snippets for common. |
42a4f53d | 2 | dnl Copyright (C) 1995-2019 Free Software Foundation, Inc. |
3266f10b TT |
3 | dnl |
4 | dnl This file is part of GDB. | |
5 | dnl | |
6 | dnl This program is free software; you can redistribute it and/or modify | |
7 | dnl it under the terms of the GNU General Public License as published by | |
8 | dnl the Free Software Foundation; either version 3 of the License, or | |
9 | dnl (at your option) any later version. | |
10 | dnl | |
11 | dnl This program is distributed in the hope that it will be useful, | |
12 | dnl but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | dnl GNU General Public License for more details. | |
15 | dnl | |
16 | dnl You should have received a copy of the GNU General Public License | |
17 | dnl along with this program. If not, see <http://www.gnu.org/licenses/>. | |
18 | ||
19 | dnl Invoke configury needed by the files in 'common'. | |
20 | AC_DEFUN([GDB_AC_COMMON], [ | |
21 | AC_HEADER_STDC | |
3266f10b TT |
22 | AC_FUNC_ALLOCA |
23 | ||
24 | dnl Note that this requires codeset.m4, which is included | |
25 | dnl by the users of common.m4. | |
26 | AM_LANGINFO_CODESET | |
27 | ||
28 | AC_CHECK_HEADERS(linux/perf_event.h locale.h memory.h signal.h dnl | |
44122162 | 29 | sys/resource.h sys/socket.h dnl |
3266f10b | 30 | sys/un.h sys/wait.h dnl |
be628ab8 | 31 | thread_db.h wait.h dnl |
2d41fa11 SDJ |
32 | termios.h dnl |
33 | dlfcn.h) | |
3266f10b | 34 | |
c12d372d | 35 | AC_CHECK_FUNCS([fdwalk getrlimit pipe pipe2 socketpair sigaction \ |
5abebf3c | 36 | sigprocmask]) |
3266f10b | 37 | |
ab7d13f0 | 38 | AC_CHECK_DECLS([strstr]) |
e9bcb658 | 39 | |
5e030278 TT |
40 | # Check for std::thread. This does not work on some platforms, like |
41 | # mingw and DJGPP. | |
42 | AC_LANG_PUSH([C++]) | |
43 | AX_PTHREAD([threads=yes], [threads=no]) | |
44 | if test "$threads" = "yes"; then | |
45 | save_LIBS="$LIBS" | |
46 | LIBS="$PTHREAD_LIBS $LIBS" | |
47 | save_CXXFLAGS="$CXXFLAGS" | |
48 | CXXFLAGS="$PTHREAD_CFLAGS $save_CXXFLAGS" | |
49 | AC_CACHE_CHECK([for std::thread], | |
50 | gdb_cv_cxx_std_thread, | |
51 | [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( | |
52 | [[#include <thread> | |
53 | void callback() { }]], | |
54 | [[std::thread t(callback);]])], | |
55 | gdb_cv_cxx_std_thread=yes, | |
56 | gdb_cv_cxx_std_thread=no)]) | |
21987b9c TT |
57 | |
58 | # This check must be here, while LIBS includes any necessary | |
59 | # threading library. | |
4da8c3a8 | 60 | AC_CHECK_FUNCS([pthread_sigmask pthread_setname_np]) |
21987b9c | 61 | |
5e030278 TT |
62 | LIBS="$save_LIBS" |
63 | CXXFLAGS="$save_CXXFLAGS" | |
64 | fi | |
65 | if test $gdb_cv_cxx_std_thread = yes; then | |
66 | AC_DEFINE(CXX_STD_THREAD, 1, | |
67 | [Define to 1 if std::thread works.]) | |
68 | fi | |
69 | AC_LANG_POP | |
70 | ||
e9bcb658 GB |
71 | dnl Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't |
72 | dnl do since sigsetjmp might only be defined as a macro. | |
73 | AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp, | |
74 | [AC_TRY_COMPILE([ | |
75 | #include <setjmp.h> | |
76 | ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);], | |
77 | gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)]) | |
78 | if test $gdb_cv_func_sigsetjmp = yes; then | |
79 | AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ]) | |
80 | fi | |
3266f10b | 81 | ]) |