* dwarf.c (decode_location_expression): Fix data adjustment
[deliverable/binutils-gdb.git] / gdb / gdbserver / configure.ac
CommitLineData
d6e9fb05 1dnl Autoconf configure script for GDB server.
abd775ce
JB
2dnl Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
3dnl 2010 Free Software Foundation, Inc.
d6e9fb05
JK
4dnl
5dnl This file is part of GDB.
6dnl
7dnl This program is free software; you can redistribute it and/or modify
8dnl it under the terms of the GNU General Public License as published by
5a0e3bd0 9dnl the Free Software Foundation; either version 3 of the License, or
d6e9fb05
JK
10dnl (at your option) any later version.
11dnl
12dnl This program is distributed in the hope that it will be useful,
13dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
14dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15dnl GNU General Public License for more details.
16dnl
17dnl You should have received a copy of the GNU General Public License
5a0e3bd0 18dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
d6e9fb05
JK
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 25AC_CONFIG_HEADER(config.h:config.in)
e28b3332 26AC_CONFIG_LIBOBJ_DIR(../gnulib)
84563040
DJ
27
28AC_PROG_CC
fd462a61 29AC_GNU_SOURCE
d6e9fb05
JK
30
31AC_CANONICAL_SYSTEM
84563040 32
d6e9fb05 33AC_PROG_INSTALL
c906108c 34
dcdb98d2
DJ
35AC_ARG_PROGRAM
36
ee6e2b82 37AC_HEADER_STDC
84563040 38
a1723c35 39AC_FUNC_ALLOCA
0d62e5e8 40AC_CHECK_HEADERS(sgtty.h termio.h termios.h sys/reg.h string.h dnl
94e10508 41 proc_service.h sys/procfs.h thread_db.h linux/elf.h dnl
b80864fb 42 stdlib.h unistd.h dnl
1b3f6016 43 errno.h fcntl.h signal.h sys/file.h malloc.h dnl
61ff6e04 44 sys/ioctl.h netinet/in.h sys/socket.h netdb.h dnl
b80864fb 45 netinet/tcp.h arpa/inet.h sys/wait.h)
4e799345 46AC_CHECK_FUNCS(pread pwrite pread64)
bb0116a4 47AC_REPLACE_FUNCS(memmem vasprintf vsnprintf)
84563040 48
0fb4aa4b
PA
49# Check for UST
50ustlibs=""
51ustinc=""
52
53AC_ARG_WITH(ust, [ --with-ust=PATH Specify prefix directory for the installed UST package
54 Equivalent to --with-ust-include=PATH/include
55 plus --with-ust-lib=PATH/lib])
56AC_ARG_WITH(ust_include, [ --with-ust-include=PATH Specify directory for installed UST include files])
57AC_ARG_WITH(ust_lib, [ --with-ust-lib=PATH Specify the directory for the installed UST library])
58
59case $with_ust in
60 no)
61 ustlibs=
62 ustinc=
63 ;;
64 "" | yes)
65 ustlibs=" -lust "
66 ustinc=""
67 ;;
68 *)
69 ustlibs="-L$with_ust/lib -lust"
70 ustinc="-I$with_ust/include "
71 ;;
72esac
73if test "x$with_ust_include" != x; then
74 ustinc="-I$with_ust_include "
75fi
76if test "x$with_ust_lib" != x; then
77 ustlibs="-L$with_ust_lib -lust"
78fi
79
80if test "x$with_ust" != "xno"; then
81 saved_CFLAGS="$CFLAGS"
82 CFLAGS="$CFLAGS $ustinc"
83 AC_MSG_CHECKING([for ust])
84 AC_TRY_COMPILE([
85#define CONFIG_UST_GDB_INTEGRATION
86#include <ust/ust.h>
87 ],[],
88 [AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_UST, 1, [Define if UST is available])],
89 [AC_MSG_RESULT([no]); ustlibs= ; ustinc= ])
90 CFLAGS="$saved_CFLAGS"
91fi
92
93# Flags needed for UST
94AC_SUBST(ustlibs)
95AC_SUBST(ustinc)
96
d4596a3d
PA
97AC_ARG_ENABLE(werror,
98 AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]),
99 [case "${enableval}" in
100 yes | y) ERROR_ON_WARNING="yes" ;;
101 no | n) ERROR_ON_WARNING="no" ;;
102 *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
103 esac])
104
105# Enable -Werror by default when using gcc
106if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
107 ERROR_ON_WARNING=yes
108fi
109
110WERROR_CFLAGS=""
111if test "${ERROR_ON_WARNING}" = yes ; then
112 WERROR_CFLAGS="-Werror"
113fi
114
115build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
854d88f0 116-Wformat-nonliteral -Wno-char-subscripts"
d4596a3d
PA
117
118WARN_CFLAGS=""
119if test "x$GCC" = xyes
120then
121 AC_MSG_CHECKING(compiler warning flags)
122 # Separate out the -Werror flag as some files just cannot be
123 # compiled with it enabled.
124 for w in ${build_warnings}; do
125 case $w in
126 -Werr*) WERROR_CFLAGS=-Werror ;;
127 *) # Check that GCC accepts it
128 saved_CFLAGS="$CFLAGS"
129 CFLAGS="$CFLAGS $w"
130 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
131 CFLAGS="$saved_CFLAGS"
132 esac
133 done
134 AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
135fi
136AC_SUBST(WARN_CFLAGS)
137AC_SUBST(WERROR_CFLAGS)
138
10e86dd7
DE
139dnl dladdr is glibc-specific. It is used by thread-db.c but only for
140dnl debugging messages. It lives in -ldl which is handled below so we don't
141dnl use AC_CHECK_LIB (or AC_SEARCH_LIBS) here. Instead we just temporarily
142dnl augment LIBS.
143old_LIBS="$LIBS"
144LIBS="$LIBS -ldl"
145AC_CHECK_FUNCS(dladdr)
146LIBS="$old_LIBS"
147
68070c10
PA
148have_errno=no
149AC_MSG_CHECKING(for errno)
150AC_TRY_LINK([
151#if HAVE_ERRNO_H
152#include <errno.h>
153#endif], [static int x; x = errno;],
154 [AC_MSG_RESULT(yes - in errno.h); AC_DEFINE(HAVE_ERRNO, 1, [Define if errno is available]) have_errno=yes])
155if test $have_errno = no; then
156AC_TRY_LINK([
157#if HAVE_ERRNO_H
158#include <errno.h>
159#endif], [extern int errno; static int x; x = errno;],
160 [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])],
161 [AC_MSG_RESULT(no)])
162fi
163
bb0116a4 164AC_CHECK_DECLS([strerror, perror, memmem, vasprintf, vsnprintf])
43d5792c 165
ccbd4912
MK
166AC_CHECK_TYPES(socklen_t, [], [],
167[#include <sys/types.h>
168#include <sys/socket.h>
169])
fb1e4ffc 170
c16158bc
JM
171ACX_PKGVERSION([GDB])
172ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
173AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
174AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
175
8838b45e
NS
176# Check for various supplementary target information (beyond the
177# triplet) which might affect the choices in configure.srv.
178case "${target}" in
179changequote(,)dnl
180 i[34567]86-*-linux*)
181changequote([,])dnl
182 AC_CACHE_CHECK([if building for x86-64], [gdb_cv_i386_is_x86_64],
183 [save_CPPFLAGS="$CPPFLAGS"
184 CPPFLAGS="$CPPFLAGS $CFLAGS"
185 AC_EGREP_CPP([got it], [
186#if __x86_64__
187got it
188#endif
189 ], [gdb_cv_i386_is_x86_64=yes],
190 [gdb_cv_i386_is_x86_64=no])
191 CPPFLAGS="$save_CPPFLAGS"])
192 ;;
9ac544ce
MK
193 m68k-*-*)
194 AC_CACHE_CHECK([if building for Coldfire], [gdb_cv_m68k_is_coldfire],
195 [save_CPPFLAGS="$CPPFLAGS"
196 CPPFLAGS="$CPPFLAGS $CFLAGS"
197 AC_EGREP_CPP([got it], [
198#ifdef __mcoldfire__
199got it
200#endif
201 ], [gdb_cv_m68k_is_coldfire=yes],
202 [gdb_cv_m68k_is_coldfire=no])
203 CPPFLAGS="$save_CPPFLAGS"])
204 ;;
8838b45e
NS
205esac
206
7ea81414 207. ${srcdir}/configure.srv
c906108c 208
68070c10
PA
209if test "${srv_mingwce}" = "yes"; then
210 LIBS="$LIBS -lws2"
211elif test "${srv_mingw}" = "yes"; then
12ea4b69 212 LIBS="$LIBS -lws2_32"
ac8c974e
AR
213elif test "${srv_qnx}" = "yes"; then
214 LIBS="$LIBS -lsocket"
8ed54b31
JB
215elif test "${srv_lynxos}" = "yes"; then
216 LIBS="$LIBS -lnetinet"
68070c10
PA
217fi
218
219if test "${srv_mingw}" = "yes"; then
b80864fb
DJ
220 AC_DEFINE(USE_WIN32API, 1,
221 [Define if we should use the Windows API, instead of the
222 POSIX API. On Windows, we use the Windows API when
223 building for MinGW, but the POSIX API when building
224 for Cygwin.])
225fi
226
58caa3dc 227if test "${srv_linux_usrregs}" = "yes"; then
f450004a
DJ
228 AC_DEFINE(HAVE_LINUX_USRREGS, 1,
229 [Define if the target supports PTRACE_PEEKUSR for register ]
230 [access.])
58caa3dc
DJ
231fi
232
233if test "${srv_linux_regsets}" = "yes"; then
e9d25b98
DJ
234 AC_DEFINE(HAVE_LINUX_REGSETS, 1,
235 [Define if the target supports register sets.])
236
58caa3dc
DJ
237 AC_MSG_CHECKING(for PTRACE_GETREGS)
238 AC_CACHE_VAL(gdbsrv_cv_have_ptrace_getregs,
239 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
240 [PTRACE_GETREGS;],
241 [gdbsrv_cv_have_ptrace_getregs=yes],
242 [gdbsrv_cv_have_ptrace_getregs=no])])
243 AC_MSG_RESULT($gdbsrv_cv_have_ptrace_getregs)
244 if test "${gdbsrv_cv_have_ptrace_getregs}" = "yes"; then
e9d25b98 245 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
f450004a
DJ
246 [Define if the target supports PTRACE_GETREGS for register ]
247 [access.])
58caa3dc
DJ
248 fi
249
250 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
251 AC_CACHE_VAL(gdbsrv_cv_have_ptrace_getfpxregs,
252 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
253 [PTRACE_GETFPXREGS;],
254 [gdbsrv_cv_have_ptrace_getfpxregs=yes],
255 [gdbsrv_cv_have_ptrace_getfpxregs=no])])
256 AC_MSG_RESULT($gdbsrv_cv_have_ptrace_getfpxregs)
257 if test "${gdbsrv_cv_have_ptrace_getfpxregs}" = "yes"; then
f450004a
DJ
258 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
259 [Define if the target supports PTRACE_GETFPXREGS for extended ]
260 [register access.])
58caa3dc
DJ
261 fi
262fi
263
0d62e5e8
DJ
264if test "$ac_cv_header_sys_procfs_h" = yes; then
265 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
266 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
267 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
0d62e5e8
DJ
268 BFD_HAVE_SYS_PROCFS_TYPE(elf_fpregset_t)
269fi
270
193f13e6
MK
271dnl Check for libdl, but do not add it to LIBS as only gdbserver
272dnl needs it (and gdbreplay doesn't).
273old_LIBS="$LIBS"
274AC_CHECK_LIB(dl, dlopen)
275LIBS="$old_LIBS"
276
0d62e5e8
DJ
277srv_thread_depfiles=
278srv_libs=
279USE_THREAD_DB=
280
281if test "$srv_linux_thread_db" = "yes"; then
193f13e6
MK
282 if test "$ac_cv_lib_dl_dlopen" = "yes"; then
283 srv_libs="-ldl"
f6528abd 284 AC_MSG_CHECKING(for the dynamic export flag)
193f13e6 285 old_LDFLAGS="$LDFLAGS"
f6528abd
JK
286 # Older GNU ld supports --export-dynamic but --dynamic-list may not be
287 # supported there.
288 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
289 LDFLAGS="$LDFLAGS $RDYNAMIC"
290 AC_TRY_LINK([], [],
291 [found="-Wl,--dynamic-list"
292 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'],
293 [RDYNAMIC="-rdynamic"
294 LDFLAGS="$old_LDFLAGS $RDYNAMIC"
295 AC_TRY_LINK([], [],
296 [found="-rdynamic"],
297 [found="no"
298 RDYNAMIC=""])])
193f13e6
MK
299 AC_SUBST(RDYNAMIC)
300 LDFLAGS="$old_LDFLAGS"
f6528abd 301 AC_MSG_RESULT($found)
193f13e6
MK
302 else
303 srv_libs="-lthread_db"
304 fi
0d62e5e8 305
0d62e5e8
DJ
306 srv_thread_depfiles="thread-db.o proc-service.o"
307 USE_THREAD_DB="-DUSE_THREAD_DB"
3db0444b
DJ
308 AC_CACHE_CHECK([for TD_VERSION], gdbsrv_cv_have_td_version,
309 [AC_TRY_COMPILE([#include <thread_db.h>], [TD_VERSION;],
1b3f6016
PA
310 [gdbsrv_cv_have_td_version=yes],
311 [gdbsrv_cv_have_td_version=no])])
3db0444b
DJ
312 if test $gdbsrv_cv_have_td_version = yes; then
313 AC_DEFINE(HAVE_TD_VERSION, 1, [Define if TD_VERSION is available.])
314 fi
0d62e5e8
DJ
315fi
316
96f15937
PP
317AC_ARG_WITH(libthread-db,
318AS_HELP_STRING([--with-libthread-db=PATH], [use given libthread_db directly]),
319[srv_libthread_db_path="${withval}"
96f15937
PP
320 srv_libs="$srv_libthread_db_path"
321])
322
193f13e6
MK
323if test "$srv_libs" != "" -a "$srv_libs" != "-ldl"; then
324 AC_DEFINE(USE_LIBTHREAD_DB_DIRECTLY, 1, [Define if we should use libthread_db directly.])
325fi
326
9b4b61c8 327if test "$srv_xmlfiles" != ""; then
fb1e4ffc
DJ
328 srv_xmlbuiltin="xml-builtin.o"
329 AC_DEFINE(USE_XML, 1, [Define if an XML target description is available.])
330
331 tmp_xmlfiles=$srv_xmlfiles
9b4b61c8 332 srv_xmlfiles=""
fb1e4ffc
DJ
333 for f in $tmp_xmlfiles; do
334 srv_xmlfiles="$srv_xmlfiles \$(XML_DIR)/$f"
335 done
336fi
337
59a016f0 338GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles"
0d62e5e8 339GDBSERVER_LIBS="$srv_libs"
c906108c 340
fa593d66
PA
341dnl Check whether the target supports __sync_*_compare_and_swap.
342AC_CACHE_CHECK([whether the target supports __sync_*_compare_and_swap],
343 gdbsrv_cv_have_sync_builtins, [
344AC_TRY_LINK([], [int foo, bar; bar = __sync_val_compare_and_swap(&foo, 0, 1);],
345 gdbsrv_cv_have_sync_builtins=yes,
346 gdbsrv_cv_have_sync_builtins=no)])
347if test $gdbsrv_cv_have_sync_builtins = yes; then
348 AC_DEFINE(HAVE_SYNC_BUILTINS, 1,
349 [Define to 1 if the target supports __sync_*_compare_and_swap])
350fi
351
352dnl Check for -fvisibility=hidden support in the compiler.
353saved_cflags="$CFLAGS"
354CFLAGS="$CFLAGS -fvisibility=hidden"
355AC_COMPILE_IFELSE(AC_LANG_PROGRAM([]),
356 [gdbsrv_cv_have_visibility_hidden=yes],
357 [gdbsrv_cv_have_visibility_hidden=no])
358CFLAGS="$saved_cflags"
359
360IPA_DEPFILES=""
361
362# Rather than allowing to build a broken IPA, we simply disable it if
363# we don't find a compiler supporting all the features we need.
364if test "$ipa_obj" != "" \
365 -a "$gdbsrv_cv_have_sync_builtins" = yes \
366 -a "$gdbsrv_cv_have_visibility_hidden" = yes; then
367 IPA_DEPFILES="$ipa_obj"
368 extra_libraries="libinproctrace.so"
369fi
370
7ea81414 371AC_SUBST(GDBSERVER_DEPFILES)
0d62e5e8
DJ
372AC_SUBST(GDBSERVER_LIBS)
373AC_SUBST(USE_THREAD_DB)
fb1e4ffc
DJ
374AC_SUBST(srv_xmlbuiltin)
375AC_SUBST(srv_xmlfiles)
fa593d66
PA
376AC_SUBST(IPA_DEPFILES)
377AC_SUBST(extra_libraries)
c906108c 378
c3a3ccc7
DJ
379AC_OUTPUT(Makefile,
380[case x$CONFIG_HEADERS in
381xconfig.h:config.in)
382echo > stamp-h ;;
383esac
384])
This page took 0.740132 seconds and 4 git commands to generate.