1 dnl Autoconf configure script for GDB server.
2 dnl Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006
3 dnl Free Software Foundation, Inc.
5 dnl This file is part of GDB.
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 3 of the License, or
10 dnl (at your option) any later version.
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.
17 dnl You should have received a copy of the GNU General Public License
18 dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
20 dnl Process this file with autoconf to produce a configure script.
25 AC_CONFIG_HEADER(config.h:config.in)
37 AC_CHECK_HEADERS(sgtty.h termio.h termios.h sys/reg.h string.h dnl
38 proc_service.h sys/procfs.h thread_db.h linux/elf.h dnl
40 errno.h fcntl.h signal.h sys/file.h malloc.h dnl
41 sys/ioctl.h netinet/in.h sys/socket.h netdb.h dnl
42 netinet/tcp.h arpa/inet.h sys/wait.h)
45 AC_MSG_CHECKING(for errno)
49 #endif], [static int x; x = errno;],
50 [AC_MSG_RESULT(yes - in errno.h); AC_DEFINE(HAVE_ERRNO, 1, [Define if errno is available]) have_errno=yes])
51 if test $have_errno = no; then
55 #endif], [extern int errno; static int x; x = errno;],
56 [AC_MSG_RESULT(yes - must define); AC_DEFINE(HAVE_ERRNO, 1, [Define if errno is available]) AC_DEFINE(MUST_DEFINE_ERRNO, 1, [Checking if errno must be defined])],
60 AC_CHECK_DECLS([strerror, perror])
62 AC_CHECK_TYPES(socklen_t, [], [],
63 [#include <sys/types.h>
64 #include <sys/socket.h>
67 # Check for various supplementary target information (beyond the
68 # triplet) which might affect the choices in configure.srv.
71 AC_CACHE_CHECK([if iWMMXt is selected], [gdb_cv_arm_iwmmxt],
72 [save_CPPFLAGS="$CPPFLAGS"
73 CPPFLAGS="$CPPFLAGS $CFLAGS"
74 AC_EGREP_CPP([got it], [
78 ], [gdb_cv_arm_iwmmxt=yes],
79 [gdb_cv_arm_iwmmxt=no])
80 CPPFLAGS="$save_CPPFLAGS"])
84 . ${srcdir}/configure.srv
86 if test "${srv_mingwce}" = "yes"; then
88 elif test "${srv_mingw}" = "yes"; then
89 LIBS="$LIBS -lwsock32"
92 if test "${srv_mingw}" = "yes"; then
93 AC_DEFINE(USE_WIN32API, 1,
94 [Define if we should use the Windows API, instead of the
95 POSIX API. On Windows, we use the Windows API when
96 building for MinGW, but the POSIX API when building
100 if test "${srv_linux_usrregs}" = "yes"; then
101 AC_DEFINE(HAVE_LINUX_USRREGS, 1,
102 [Define if the target supports PTRACE_PEEKUSR for register ]
106 if test "${srv_linux_regsets}" = "yes"; then
107 AC_DEFINE(HAVE_LINUX_REGSETS, 1,
108 [Define if the target supports register sets.])
110 AC_MSG_CHECKING(for PTRACE_GETREGS)
111 AC_CACHE_VAL(gdbsrv_cv_have_ptrace_getregs,
112 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
114 [gdbsrv_cv_have_ptrace_getregs=yes],
115 [gdbsrv_cv_have_ptrace_getregs=no])])
116 AC_MSG_RESULT($gdbsrv_cv_have_ptrace_getregs)
117 if test "${gdbsrv_cv_have_ptrace_getregs}" = "yes"; then
118 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
119 [Define if the target supports PTRACE_GETREGS for register ]
123 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
124 AC_CACHE_VAL(gdbsrv_cv_have_ptrace_getfpxregs,
125 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
126 [PTRACE_GETFPXREGS;],
127 [gdbsrv_cv_have_ptrace_getfpxregs=yes],
128 [gdbsrv_cv_have_ptrace_getfpxregs=no])])
129 AC_MSG_RESULT($gdbsrv_cv_have_ptrace_getfpxregs)
130 if test "${gdbsrv_cv_have_ptrace_getfpxregs}" = "yes"; then
131 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
132 [Define if the target supports PTRACE_GETFPXREGS for extended ]
137 if test "$ac_cv_header_sys_procfs_h" = yes; then
138 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
139 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
140 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
141 BFD_HAVE_SYS_PROCFS_TYPE(elf_fpregset_t)
148 if test "$srv_linux_thread_db" = "yes"; then
150 if test "$srv_cv_thread_db" = no; then
151 AC_WARN([Could not find libthread_db.])
152 AC_WARN([Disabling thread support in gdbserver.])
153 srv_linux_thread_db=no
155 srv_libs="$srv_cv_thread_db"
156 SRV_CHECK_TLS_GET_ADDR
158 old_LDFLAGS="$LDFLAGS"
159 LDFLAGS="$LDFLAGS -rdynamic"
160 AC_TRY_LINK([], [], [RDYNAMIC=-rdynamic], [RDYNAMIC=])
162 LDFLAGS="$old_LDFLAGS"
165 if test "$srv_linux_thread_db" = "yes"; then
166 srv_thread_depfiles="thread-db.o proc-service.o"
167 USE_THREAD_DB="-DUSE_THREAD_DB"
168 AC_CACHE_CHECK([for TD_VERSION], gdbsrv_cv_have_td_version,
169 [AC_TRY_COMPILE([#include <thread_db.h>], [TD_VERSION;],
170 [gdbsrv_cv_have_td_version=yes],
171 [gdbsrv_cv_have_td_version=no])])
172 if test $gdbsrv_cv_have_td_version = yes; then
173 AC_DEFINE(HAVE_TD_VERSION, 1, [Define if TD_VERSION is available.])
176 if test "$srv_cv_tls_get_addr" = yes; then
177 AC_DEFINE(HAVE_TD_THR_TLS_GET_ADDR, 1, [Define if td_thr_tls_get_addr is available.])
181 if test "$srv_xmltarget" != ""; then
182 srv_xmltarget="\$(XML_DIR)/$srv_xmltarget"
183 srv_xmlbuiltin="xml-builtin.o"
184 AC_DEFINE(USE_XML, 1, [Define if an XML target description is available.])
186 tmp_xmlfiles=$srv_xmlfiles
187 srv_xmlfiles="target.xml"
188 for f in $tmp_xmlfiles; do
189 srv_xmlfiles="$srv_xmlfiles \$(XML_DIR)/$f"
193 GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_thread_depfiles"
194 GDBSERVER_LIBS="$srv_libs"
196 AC_SUBST(GDBSERVER_DEPFILES)
197 AC_SUBST(GDBSERVER_LIBS)
198 AC_SUBST(USE_THREAD_DB)
199 AC_SUBST(srv_xmlbuiltin)
200 AC_SUBST(srv_xmlfiles)
201 AC_SUBST(srv_xmltarget)
204 [case x$CONFIG_HEADERS in