2005-09-27 Bob Rossi <bob@brasko.net>
[deliverable/binutils-gdb.git] / gdb / gdbserver / configure.ac
CommitLineData
d6e9fb05 1dnl Autoconf configure script for GDB server.
dcdb98d2 2dnl Copyright 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
d6e9fb05
JK
3dnl
4dnl This file is part of GDB.
5dnl
6dnl This program is free software; you can redistribute it and/or modify
7dnl it under the terms of the GNU General Public License as published by
8dnl the Free Software Foundation; either version 2 of the License, or
9dnl (at your option) any later version.
10dnl
11dnl This program is distributed in the hope that it will be useful,
12dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14dnl GNU General Public License for more details.
15dnl
16dnl You should have received a copy of the GNU General Public License
17dnl along with this program; if not, write to the Free Software
18dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19
20dnl Process this file with autoconf to produce a configure script.
21
bec39cab
AC
22AC_PREREQ(2.59)dnl
23
d6e9fb05 24AC_INIT(server.c)
84563040
DJ
25AC_CONFIG_HEADER(config.h:config.in)
26
27AC_PROG_CC
d6e9fb05
JK
28
29AC_CANONICAL_SYSTEM
84563040 30
d6e9fb05 31AC_PROG_INSTALL
c906108c 32
dcdb98d2
DJ
33AC_ARG_PROGRAM
34
ee6e2b82 35AC_HEADER_STDC
84563040 36
0d62e5e8 37AC_CHECK_HEADERS(sgtty.h termio.h termios.h sys/reg.h string.h dnl
94e10508
DJ
38 proc_service.h sys/procfs.h thread_db.h linux/elf.h dnl
39 stdlib.h unistd.h)
84563040 40
e122f1f5 41AC_CHECK_DECLS(strerror)
43d5792c 42
ccbd4912
MK
43AC_CHECK_TYPES(socklen_t, [], [],
44[#include <sys/types.h>
45#include <sys/socket.h>
46])
7ea81414 47. ${srcdir}/configure.srv
c906108c 48
58caa3dc 49if test "${srv_linux_usrregs}" = "yes"; then
f450004a
DJ
50 AC_DEFINE(HAVE_LINUX_USRREGS, 1,
51 [Define if the target supports PTRACE_PEEKUSR for register ]
52 [access.])
58caa3dc
DJ
53fi
54
55if test "${srv_linux_regsets}" = "yes"; then
e9d25b98
DJ
56 AC_DEFINE(HAVE_LINUX_REGSETS, 1,
57 [Define if the target supports register sets.])
58
58caa3dc
DJ
59 AC_MSG_CHECKING(for PTRACE_GETREGS)
60 AC_CACHE_VAL(gdbsrv_cv_have_ptrace_getregs,
61 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
62 [PTRACE_GETREGS;],
63 [gdbsrv_cv_have_ptrace_getregs=yes],
64 [gdbsrv_cv_have_ptrace_getregs=no])])
65 AC_MSG_RESULT($gdbsrv_cv_have_ptrace_getregs)
66 if test "${gdbsrv_cv_have_ptrace_getregs}" = "yes"; then
e9d25b98 67 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
f450004a
DJ
68 [Define if the target supports PTRACE_GETREGS for register ]
69 [access.])
58caa3dc
DJ
70 fi
71
72 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
73 AC_CACHE_VAL(gdbsrv_cv_have_ptrace_getfpxregs,
74 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
75 [PTRACE_GETFPXREGS;],
76 [gdbsrv_cv_have_ptrace_getfpxregs=yes],
77 [gdbsrv_cv_have_ptrace_getfpxregs=no])])
78 AC_MSG_RESULT($gdbsrv_cv_have_ptrace_getfpxregs)
79 if test "${gdbsrv_cv_have_ptrace_getfpxregs}" = "yes"; then
f450004a
DJ
80 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
81 [Define if the target supports PTRACE_GETFPXREGS for extended ]
82 [register access.])
58caa3dc
DJ
83 fi
84fi
85
0d62e5e8
DJ
86if test "$ac_cv_header_sys_procfs_h" = yes; then
87 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
88 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
89 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
90 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
91
92 dnl Check for broken prfpregset_t type
93
94 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
95 dnl prfpregset_t type (it's a typedef for the pointer to a struct
96 dnl instead of the struct itself). We detect this here, and work
97 dnl around it in gdb_proc_service.h.
98
99 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
100 AC_MSG_CHECKING(whether prfpregset_t type is broken)
101 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
102 [AC_TRY_RUN([#include <sys/procfs.h>
103 int main ()
104 {
105 if (sizeof (prfpregset_t) == sizeof (void *))
106 return 1;
107 return 0;
108 }],
109 gdb_cv_prfpregset_t_broken=no,
110 gdb_cv_prfpregset_t_broken=yes,
111 gdb_cv_prfpregset_t_broken=yes)])
112 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
113 if test $gdb_cv_prfpregset_t_broken = yes; then
f450004a
DJ
114 AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
115 [Define if the prfpregset_t type is broken.])
0d62e5e8
DJ
116 fi
117 fi
118
119 BFD_HAVE_SYS_PROCFS_TYPE(elf_fpregset_t)
120fi
121
122srv_thread_depfiles=
123srv_libs=
124USE_THREAD_DB=
125
126if test "$srv_linux_thread_db" = "yes"; then
127 SRV_CHECK_THREAD_DB
128 if test "$srv_cv_thread_db" = no; then
129 AC_WARN([Could not find libthread_db.])
130 AC_WARN([Disabling thread support in gdbserver.])
131 srv_linux_thread_db=no
132 else
133 srv_libs="$srv_cv_thread_db"
134 fi
f6de3c42
DJ
135 old_LDFLAGS="$LDFLAGS"
136 LDFLAGS="$LDFLAGS -rdynamic"
137 AC_TRY_LINK([], [], [RDYNAMIC=-rdynamic], [RDYNAMIC=])
138 AC_SUBST(RDYNAMIC)
139 LDFLAGS="$old_LDFLAGS"
0d62e5e8
DJ
140fi
141
142if test "$srv_linux_thread_db" = "yes"; then
143 srv_thread_depfiles="thread-db.o proc-service.o"
144 USE_THREAD_DB="-DUSE_THREAD_DB"
3db0444b
DJ
145 AC_CACHE_CHECK([for TD_VERSION], gdbsrv_cv_have_td_version,
146 [AC_TRY_COMPILE([#include <thread_db.h>], [TD_VERSION;],
147 [gdbsrv_cv_have_td_version=yes],
148 [gdbsrv_cv_have_td_version=no])])
149 if test $gdbsrv_cv_have_td_version = yes; then
150 AC_DEFINE(HAVE_TD_VERSION, 1, [Define if TD_VERSION is available.])
151 fi
0d62e5e8
DJ
152fi
153
154GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_thread_depfiles"
155GDBSERVER_LIBS="$srv_libs"
c906108c 156
7ea81414 157AC_SUBST(GDBSERVER_DEPFILES)
0d62e5e8
DJ
158AC_SUBST(GDBSERVER_LIBS)
159AC_SUBST(USE_THREAD_DB)
c906108c 160
c3a3ccc7
DJ
161AC_OUTPUT(Makefile,
162[case x$CONFIG_HEADERS in
163xconfig.h:config.in)
164echo > stamp-h ;;
165esac
166])
This page took 0.407126 seconds and 4 git commands to generate.