* configure.ac: Correct td_thr_tls_get_addr test.
[external/binutils.git] / gdb / gdbserver / configure.ac
1 dnl Autoconf configure script for GDB server.
2 dnl Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006
3 dnl Free Software Foundation, Inc.
4 dnl
5 dnl This file is part of GDB.
6 dnl
7 dnl This program is free software; you can redistribute it and/or modify
8 dnl it under the terms of the GNU General Public License as published by
9 dnl the Free Software Foundation; either version 2 of the License, or
10 dnl (at your option) any later version.
11 dnl
12 dnl This program is distributed in the hope that it will be useful,
13 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
14 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 dnl GNU General Public License for more details.
16 dnl
17 dnl You should have received a copy of the GNU General Public License
18 dnl along with this program; if not, write to the Free Software
19 dnl Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 dnl Boston, MA 02110-1301, USA.
21
22 dnl Process this file with autoconf to produce a configure script.
23
24 AC_PREREQ(2.59)dnl
25
26 AC_INIT(server.c)
27 AC_CONFIG_HEADER(config.h:config.in)
28
29 AC_PROG_CC
30
31 AC_CANONICAL_SYSTEM
32
33 AC_PROG_INSTALL
34
35 AC_ARG_PROGRAM
36
37 AC_HEADER_STDC
38
39 AC_CHECK_HEADERS(sgtty.h termio.h termios.h sys/reg.h string.h dnl
40                  proc_service.h sys/procfs.h thread_db.h linux/elf.h dnl
41                  stdlib.h unistd.h dnl
42                  terminal.h sys/ioctl.h netinet/in.h sys/socket.h netdb.h dnl
43                  netinet/tcp.h arpa/inet.h sys/wait.h)
44
45 AC_CHECK_DECLS(strerror)
46
47 AC_CHECK_TYPES(socklen_t, [], [],
48 [#include <sys/types.h>
49 #include <sys/socket.h>
50 ])
51 . ${srcdir}/configure.srv
52
53 if test "${srv_mingw}" = "yes"; then
54   LIBS="$LIBS -lwsock32"
55   AC_DEFINE(USE_WIN32API, 1,
56             [Define if we should use the Windows API, instead of the
57              POSIX API.  On Windows, we use the Windows API when
58              building for MinGW, but the POSIX API when building
59              for Cygwin.])
60 fi
61
62 if test "${srv_linux_usrregs}" = "yes"; then
63   AC_DEFINE(HAVE_LINUX_USRREGS, 1,
64             [Define if the target supports PTRACE_PEEKUSR for register ]
65             [access.])
66 fi
67
68 if test "${srv_linux_regsets}" = "yes"; then
69   AC_DEFINE(HAVE_LINUX_REGSETS, 1,
70             [Define if the target supports register sets.])
71
72   AC_MSG_CHECKING(for PTRACE_GETREGS)
73   AC_CACHE_VAL(gdbsrv_cv_have_ptrace_getregs,
74   [AC_TRY_COMPILE([#include <sys/ptrace.h>],
75                   [PTRACE_GETREGS;],
76                   [gdbsrv_cv_have_ptrace_getregs=yes],
77                   [gdbsrv_cv_have_ptrace_getregs=no])])
78   AC_MSG_RESULT($gdbsrv_cv_have_ptrace_getregs)
79   if test "${gdbsrv_cv_have_ptrace_getregs}" = "yes"; then
80     AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
81               [Define if the target supports PTRACE_GETREGS for register ]
82               [access.])
83   fi
84
85   AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
86   AC_CACHE_VAL(gdbsrv_cv_have_ptrace_getfpxregs,
87   [AC_TRY_COMPILE([#include <sys/ptrace.h>],
88                   [PTRACE_GETFPXREGS;],
89                   [gdbsrv_cv_have_ptrace_getfpxregs=yes],
90                   [gdbsrv_cv_have_ptrace_getfpxregs=no])])
91   AC_MSG_RESULT($gdbsrv_cv_have_ptrace_getfpxregs)
92   if test "${gdbsrv_cv_have_ptrace_getfpxregs}" = "yes"; then
93     AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
94               [Define if the target supports PTRACE_GETFPXREGS for extended ]
95               [register access.])
96   fi
97 fi
98
99 if test "$ac_cv_header_sys_procfs_h" = yes; then
100   BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
101   BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
102   BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
103   BFD_HAVE_SYS_PROCFS_TYPE(elf_fpregset_t)
104 fi
105
106 srv_thread_depfiles=
107 srv_libs=
108 USE_THREAD_DB=
109
110 if test "$srv_linux_thread_db" = "yes"; then
111   SRV_CHECK_THREAD_DB
112   if test "$srv_cv_thread_db" = no; then
113     AC_WARN([Could not find libthread_db.])
114     AC_WARN([Disabling thread support in gdbserver.])
115     srv_linux_thread_db=no
116   else
117     srv_libs="$srv_cv_thread_db"
118     SRV_CHECK_TLS_GET_ADDR
119   fi
120   old_LDFLAGS="$LDFLAGS"
121   LDFLAGS="$LDFLAGS -rdynamic"
122   AC_TRY_LINK([], [], [RDYNAMIC=-rdynamic], [RDYNAMIC=])
123   AC_SUBST(RDYNAMIC)
124   LDFLAGS="$old_LDFLAGS"
125 fi
126
127 if test "$srv_linux_thread_db" = "yes"; then
128   srv_thread_depfiles="thread-db.o proc-service.o"
129   USE_THREAD_DB="-DUSE_THREAD_DB"
130   AC_CACHE_CHECK([for TD_VERSION], gdbsrv_cv_have_td_version,
131   [AC_TRY_COMPILE([#include <thread_db.h>], [TD_VERSION;],
132                   [gdbsrv_cv_have_td_version=yes],
133                   [gdbsrv_cv_have_td_version=no])])
134   if test $gdbsrv_cv_have_td_version = yes; then
135     AC_DEFINE(HAVE_TD_VERSION, 1, [Define if TD_VERSION is available.])
136   fi
137
138   if test "$srv_cv_tls_get_addr" = yes; then
139     AC_DEFINE(HAVE_TD_THR_TLS_GET_ADDR, 1, [Define if td_thr_tls_get_addr is available.])
140   fi
141 fi
142
143 GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_thread_depfiles"
144 GDBSERVER_LIBS="$srv_libs"
145
146 AC_SUBST(GDBSERVER_DEPFILES)
147 AC_SUBST(GDBSERVER_LIBS)
148 AC_SUBST(USE_THREAD_DB)
149
150 AC_OUTPUT(Makefile,
151 [case x$CONFIG_HEADERS in
152 xconfig.h:config.in)
153 echo > stamp-h ;;
154 esac
155 ])