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 2 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, write to the Free Software
19 dnl Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 dnl Boston, MA 02110-1301, USA.
22 dnl Process this file with autoconf to produce a configure script.
27 AC_CONFIG_HEADER(config.h:config.in)
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
42 errno.h fcntl.h signal.h sys/file.h malloc.h dnl
43 sys/ioctl.h netinet/in.h sys/socket.h netdb.h dnl
44 netinet/tcp.h arpa/inet.h sys/wait.h)
47 AC_MSG_CHECKING(for errno)
51 #endif], [static int x; x = errno;],
52 [AC_MSG_RESULT(yes - in errno.h); AC_DEFINE(HAVE_ERRNO, 1, [Define if errno is available]) have_errno=yes])
53 if test $have_errno = no; then
57 #endif], [extern int errno; static int x; x = errno;],
58 [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])],
62 AC_CHECK_DECLS([strerror, perror])
64 AC_CHECK_TYPES(socklen_t, [], [],
65 [#include <sys/types.h>
66 #include <sys/socket.h>
69 # Check for various supplementary target information (beyond the
70 # triplet) which might affect the choices in configure.srv.
73 AC_CACHE_CHECK([if iWMMXt is selected], [gdb_cv_arm_iwmmxt],
74 [save_CPPFLAGS="$CPPFLAGS"
75 CPPFLAGS="$CPPFLAGS $CFLAGS"
76 AC_EGREP_CPP([got it], [
80 ], [gdb_cv_arm_iwmmxt=yes],
81 [gdb_cv_arm_iwmmxt=no])
82 CPPFLAGS="$save_CPPFLAGS"])
86 . ${srcdir}/configure.srv
88 if test "${srv_mingwce}" = "yes"; then
90 elif test "${srv_mingw}" = "yes"; then
91 LIBS="$LIBS -lwsock32"
94 if test "${srv_mingw}" = "yes"; then
95 AC_DEFINE(USE_WIN32API, 1,
96 [Define if we should use the Windows API, instead of the
97 POSIX API. On Windows, we use the Windows API when
98 building for MinGW, but the POSIX API when building
102 if test "${srv_linux_usrregs}" = "yes"; then
103 AC_DEFINE(HAVE_LINUX_USRREGS, 1,
104 [Define if the target supports PTRACE_PEEKUSR for register ]
108 if test "${srv_linux_regsets}" = "yes"; then
109 AC_DEFINE(HAVE_LINUX_REGSETS, 1,
110 [Define if the target supports register sets.])
112 AC_MSG_CHECKING(for PTRACE_GETREGS)
113 AC_CACHE_VAL(gdbsrv_cv_have_ptrace_getregs,
114 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
116 [gdbsrv_cv_have_ptrace_getregs=yes],
117 [gdbsrv_cv_have_ptrace_getregs=no])])
118 AC_MSG_RESULT($gdbsrv_cv_have_ptrace_getregs)
119 if test "${gdbsrv_cv_have_ptrace_getregs}" = "yes"; then
120 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
121 [Define if the target supports PTRACE_GETREGS for register ]
125 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
126 AC_CACHE_VAL(gdbsrv_cv_have_ptrace_getfpxregs,
127 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
128 [PTRACE_GETFPXREGS;],
129 [gdbsrv_cv_have_ptrace_getfpxregs=yes],
130 [gdbsrv_cv_have_ptrace_getfpxregs=no])])
131 AC_MSG_RESULT($gdbsrv_cv_have_ptrace_getfpxregs)
132 if test "${gdbsrv_cv_have_ptrace_getfpxregs}" = "yes"; then
133 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
134 [Define if the target supports PTRACE_GETFPXREGS for extended ]
139 if test "$ac_cv_header_sys_procfs_h" = yes; then
140 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
141 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
142 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
143 BFD_HAVE_SYS_PROCFS_TYPE(elf_fpregset_t)
150 if test "$srv_linux_thread_db" = "yes"; then
152 if test "$srv_cv_thread_db" = no; then
153 AC_WARN([Could not find libthread_db.])
154 AC_WARN([Disabling thread support in gdbserver.])
155 srv_linux_thread_db=no
157 srv_libs="$srv_cv_thread_db"
158 SRV_CHECK_TLS_GET_ADDR
160 old_LDFLAGS="$LDFLAGS"
161 LDFLAGS="$LDFLAGS -rdynamic"
162 AC_TRY_LINK([], [], [RDYNAMIC=-rdynamic], [RDYNAMIC=])
164 LDFLAGS="$old_LDFLAGS"
167 if test "$srv_linux_thread_db" = "yes"; then
168 srv_thread_depfiles="thread-db.o proc-service.o"
169 USE_THREAD_DB="-DUSE_THREAD_DB"
170 AC_CACHE_CHECK([for TD_VERSION], gdbsrv_cv_have_td_version,
171 [AC_TRY_COMPILE([#include <thread_db.h>], [TD_VERSION;],
172 [gdbsrv_cv_have_td_version=yes],
173 [gdbsrv_cv_have_td_version=no])])
174 if test $gdbsrv_cv_have_td_version = yes; then
175 AC_DEFINE(HAVE_TD_VERSION, 1, [Define if TD_VERSION is available.])
178 if test "$srv_cv_tls_get_addr" = yes; then
179 AC_DEFINE(HAVE_TD_THR_TLS_GET_ADDR, 1, [Define if td_thr_tls_get_addr is available.])
183 if test "$srv_xmltarget" != ""; then
184 srv_xmltarget="\$(XML_DIR)/$srv_xmltarget"
185 srv_xmlbuiltin="xml-builtin.o"
186 AC_DEFINE(USE_XML, 1, [Define if an XML target description is available.])
188 tmp_xmlfiles=$srv_xmlfiles
189 srv_xmlfiles="target.xml"
190 for f in $tmp_xmlfiles; do
191 srv_xmlfiles="$srv_xmlfiles \$(XML_DIR)/$f"
195 GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_thread_depfiles"
196 GDBSERVER_LIBS="$srv_libs"
198 AC_SUBST(GDBSERVER_DEPFILES)
199 AC_SUBST(GDBSERVER_LIBS)
200 AC_SUBST(USE_THREAD_DB)
201 AC_SUBST(srv_xmlbuiltin)
202 AC_SUBST(srv_xmlfiles)
203 AC_SUBST(srv_xmltarget)
206 [case x$CONFIG_HEADERS in