]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdbserver/configure.ac
Fix gdbserver build when intl already built
[thirdparty/binutils-gdb.git] / gdbserver / configure.ac
CommitLineData
d6e9fb05 1dnl Autoconf configure script for GDB server.
b811d2c2 2dnl Copyright (C) 2000-2020 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
5a0e3bd0 8dnl the Free Software Foundation; either version 3 of the License, or
d6e9fb05
JK
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
5a0e3bd0 17dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
d6e9fb05
JK
18
19dnl Process this file with autoconf to produce a configure script.
20
feacfcac 21AC_INIT(server.cc)
c5adaa19 22AC_CONFIG_HEADERS(config.h:config.in, [echo > stamp-h])
c9a1864a
YQ
23
24AM_MAINTAINER_MODE
84563040
DJ
25
26AC_PROG_CC
3bc3d82a 27AC_PROG_CXX
fd462a61 28AC_GNU_SOURCE
589bc927 29AC_SYS_LARGEFILE
bdaed379 30AM_PROG_INSTALL_STRIP
d6e9fb05
JK
31
32AC_CANONICAL_SYSTEM
84563040 33
d6e9fb05 34AC_PROG_INSTALL
e1d2394b 35AC_CHECK_TOOL(AR, ar)
c971b7fa 36AC_PROG_RANLIB
c906108c 37
dcdb98d2
DJ
38AC_ARG_PROGRAM
39
0bcda685
PA
40# We require a C++11 compiler. Check if one is available, and if
41# necessary, set CXX_DIALECT to some -std=xxx switch.
42AX_CXX_COMPILE_STDCXX(11, , mandatory)
43
ee6e2b82 44AC_HEADER_STDC
84563040 45
db6878ac 46GDB_AC_COMMON
17ef446e 47
8ecfd7bd 48GDB_AC_SELFTEST([
268a13a5 49 srv_selftest_objs="gdbsupport/selftest.o"
8ecfd7bd 50])
6d580b63 51
bd885420
YQ
52ACX_NONCANONICAL_TARGET
53ACX_NONCANONICAL_HOST
54
61c125b9
TT
55# Dependency checking.
56ZW_CREATE_DEPDIR
60d6cfc9 57
9a665d62
TT
58dnl Set up for gettext.
59ZW_GNU_GETTEXT_SISTER_DIR
60
60d6cfc9 61# Create sub-directories for objects and dependencies.
42cd72aa 62CONFIG_SRC_SUBDIR="arch gdbsupport nat target"
60d6cfc9
YQ
63AC_SUBST(CONFIG_SRC_SUBDIR)
64
65AC_CONFIG_COMMANDS([gdbdepdir],[
66 for subdir in ${CONFIG_SRC_SUBDIR}
67 do
68 $SHELL $ac_aux_dir/mkinstalldirs $subdir/$DEPDIR
69 done],
70 [ac_aux_dir=$ac_aux_dir DEPDIR=$DEPDIR CONFIG_SRC_SUBDIR="$CONFIG_SRC_SUBDIR"])
71
61c125b9
TT
72ZW_PROG_COMPILER_DEPENDENCIES([CC])
73
726e1356 74AC_CHECK_HEADERS(termios.h sys/reg.h string.h dnl
05ea2a05 75 sys/procfs.h linux/elf.h dnl
9c232dda 76 fcntl.h signal.h sys/file.h dnl
80e24d09 77 sys/ioctl.h netinet/in.h sys/socket.h netdb.h dnl
1bd2f0ba 78 netinet/tcp.h arpa/inet.h)
eb0edac8 79AC_FUNC_FORK
05ea2a05 80AC_CHECK_FUNCS(pread pwrite pread64)
84563040 81
eb7aa561
PA
82# Check the return and argument types of ptrace.
83GDB_AC_PTRACE
84
0fb4aa4b
PA
85# Check for UST
86ustlibs=""
87ustinc=""
88
89AC_ARG_WITH(ust, [ --with-ust=PATH Specify prefix directory for the installed UST package
90 Equivalent to --with-ust-include=PATH/include
91 plus --with-ust-lib=PATH/lib])
92AC_ARG_WITH(ust_include, [ --with-ust-include=PATH Specify directory for installed UST include files])
93AC_ARG_WITH(ust_lib, [ --with-ust-lib=PATH Specify the directory for the installed UST library])
94
95case $with_ust in
96 no)
97 ustlibs=
98 ustinc=
99 ;;
100 "" | yes)
101 ustlibs=" -lust "
102 ustinc=""
103 ;;
104 *)
105 ustlibs="-L$with_ust/lib -lust"
106 ustinc="-I$with_ust/include "
107 ;;
108esac
109if test "x$with_ust_include" != x; then
110 ustinc="-I$with_ust_include "
111fi
112if test "x$with_ust_lib" != x; then
113 ustlibs="-L$with_ust_lib -lust"
114fi
115
116if test "x$with_ust" != "xno"; then
117 saved_CFLAGS="$CFLAGS"
118 CFLAGS="$CFLAGS $ustinc"
119 AC_MSG_CHECKING([for ust])
120 AC_TRY_COMPILE([
121#define CONFIG_UST_GDB_INTEGRATION
122#include <ust/ust.h>
123 ],[],
124 [AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_UST, 1, [Define if UST is available])],
125 [AC_MSG_RESULT([no]); ustlibs= ; ustinc= ])
126 CFLAGS="$saved_CFLAGS"
127fi
128
129# Flags needed for UST
130AC_SUBST(ustlibs)
131AC_SUBST(ustinc)
132
8f13a3ce 133AM_GDB_WARNINGS
3bc3d82a 134
10e86dd7
DE
135dnl dladdr is glibc-specific. It is used by thread-db.c but only for
136dnl debugging messages. It lives in -ldl which is handled below so we don't
137dnl use AC_CHECK_LIB (or AC_SEARCH_LIBS) here. Instead we just temporarily
138dnl augment LIBS.
139old_LIBS="$LIBS"
140LIBS="$LIBS -ldl"
141AC_CHECK_FUNCS(dladdr)
142LIBS="$old_LIBS"
143
07697489
PA
144libiberty_INIT
145
ab7d13f0 146AC_CHECK_DECLS([perror, vasprintf, vsnprintf])
43d5792c 147
239b6d10
WT
148# See if <sys/user.h> supports the %fs_base and %gs_bas amd64 segment registers.
149# Older amd64 Linux's don't have the fs_base and gs_base members of
150# `struct user_regs_struct'.
151AC_CHECK_MEMBERS([struct user_regs_struct.fs_base, struct user_regs_struct.gs_base],
f517c180
EA
152 [], [], [#include <sys/types.h>
153#include <sys/user.h>])
239b6d10
WT
154
155
ccbd4912
MK
156AC_CHECK_TYPES(socklen_t, [], [],
157[#include <sys/types.h>
158#include <sys/socket.h>
159])
fb1e4ffc 160
64da5dd5
JB
161case "${target}" in
162 *-android*)
163 # Starting with NDK version 9, <elf.h> actually includes definitions
164 # of Elf32_auxv_t and Elf64_auxv_t. But sadly, <elf.h> includes
165 # <sys/exec_elf.h> which defines some of the ELF types incorrectly,
166 # leading to conflicts with the defintions from <linux/elf.h>.
167 # This makes it impossible for us to include both <elf.h> and
168 # <linux/elf.h>, which means that, in practice, we do not have
169 # access to Elf32_auxv_t and Elf64_auxv_t on this platform.
170 # Therefore, do not try to auto-detect availability, as it would
171 # get it wrong on this platform.
172 ;;
173 *)
174 AC_CHECK_TYPES([Elf32_auxv_t, Elf64_auxv_t], [], [],
175 #include <elf.h>
176 )
177esac
8365dcf5 178
c16158bc
JM
179ACX_PKGVERSION([GDB])
180ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
181AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
182AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
183
8838b45e
NS
184# Check for various supplementary target information (beyond the
185# triplet) which might affect the choices in configure.srv.
186case "${target}" in
187changequote(,)dnl
188 i[34567]86-*-linux*)
189changequote([,])dnl
190 AC_CACHE_CHECK([if building for x86-64], [gdb_cv_i386_is_x86_64],
191 [save_CPPFLAGS="$CPPFLAGS"
192 CPPFLAGS="$CPPFLAGS $CFLAGS"
193 AC_EGREP_CPP([got it], [
194#if __x86_64__
195got it
196#endif
197 ], [gdb_cv_i386_is_x86_64=yes],
198 [gdb_cv_i386_is_x86_64=no])
199 CPPFLAGS="$save_CPPFLAGS"])
200 ;;
201506da
PA
201
202 x86_64-*-linux*)
203 AC_CACHE_CHECK([if building for x32], [gdb_cv_x86_is_x32],
204 [save_CPPFLAGS="$CPPFLAGS"
205 CPPFLAGS="$CPPFLAGS $CFLAGS"
206 AC_EGREP_CPP([got it], [
207#if __x86_64__ && __ILP32__
208got it
209#endif
210 ], [gdb_cv_x86_is_x32=yes],
211 [gdb_cv_x86_is_x32=no])
212 CPPFLAGS="$save_CPPFLAGS"])
213 ;;
214
9ac544ce
MK
215 m68k-*-*)
216 AC_CACHE_CHECK([if building for Coldfire], [gdb_cv_m68k_is_coldfire],
217 [save_CPPFLAGS="$CPPFLAGS"
218 CPPFLAGS="$CPPFLAGS $CFLAGS"
219 AC_EGREP_CPP([got it], [
220#ifdef __mcoldfire__
221got it
222#endif
223 ], [gdb_cv_m68k_is_coldfire=yes],
224 [gdb_cv_m68k_is_coldfire=no])
225 CPPFLAGS="$save_CPPFLAGS"])
226 ;;
8838b45e
NS
227esac
228
7ea81414 229. ${srcdir}/configure.srv
c906108c 230
68070c10
PA
231if test "${srv_mingwce}" = "yes"; then
232 LIBS="$LIBS -lws2"
233elif test "${srv_mingw}" = "yes"; then
b2ceabe8
TT
234 # WIN32APILIBS is set by GDB_AC_COMMON.
235 LIBS="$LIBS $WIN32APILIBS"
ac8c974e
AR
236elif test "${srv_qnx}" = "yes"; then
237 LIBS="$LIBS -lsocket"
8ed54b31
JB
238elif test "${srv_lynxos}" = "yes"; then
239 LIBS="$LIBS -lnetinet"
68070c10
PA
240fi
241
58caa3dc 242if test "${srv_linux_usrregs}" = "yes"; then
f450004a
DJ
243 AC_DEFINE(HAVE_LINUX_USRREGS, 1,
244 [Define if the target supports PTRACE_PEEKUSR for register ]
245 [access.])
58caa3dc
DJ
246fi
247
248if test "${srv_linux_regsets}" = "yes"; then
e9d25b98
DJ
249 AC_DEFINE(HAVE_LINUX_REGSETS, 1,
250 [Define if the target supports register sets.])
251
58caa3dc
DJ
252 AC_MSG_CHECKING(for PTRACE_GETREGS)
253 AC_CACHE_VAL(gdbsrv_cv_have_ptrace_getregs,
254 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
255 [PTRACE_GETREGS;],
256 [gdbsrv_cv_have_ptrace_getregs=yes],
257 [gdbsrv_cv_have_ptrace_getregs=no])])
258 AC_MSG_RESULT($gdbsrv_cv_have_ptrace_getregs)
259 if test "${gdbsrv_cv_have_ptrace_getregs}" = "yes"; then
e9d25b98 260 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
f450004a
DJ
261 [Define if the target supports PTRACE_GETREGS for register ]
262 [access.])
58caa3dc
DJ
263 fi
264
265 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
266 AC_CACHE_VAL(gdbsrv_cv_have_ptrace_getfpxregs,
267 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
268 [PTRACE_GETFPXREGS;],
269 [gdbsrv_cv_have_ptrace_getfpxregs=yes],
270 [gdbsrv_cv_have_ptrace_getfpxregs=no])])
271 AC_MSG_RESULT($gdbsrv_cv_have_ptrace_getfpxregs)
272 if test "${gdbsrv_cv_have_ptrace_getfpxregs}" = "yes"; then
f450004a
DJ
273 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
274 [Define if the target supports PTRACE_GETFPXREGS for extended ]
275 [register access.])
58caa3dc
DJ
276 fi
277fi
278
9accd112
MM
279if test "${srv_linux_btrace}" = "yes"; then
280 AC_DEFINE(HAVE_LINUX_BTRACE, 1,
281 [Define if the target supports branch tracing.])
282fi
283
18f5fd81
TJB
284dnl Some systems (e.g., Android) have lwpid_t defined in libthread_db.h.
285if test "$bfd_cv_have_sys_procfs_type_lwpid_t" != yes; then
286 GDBSERVER_HAVE_THREAD_DB_TYPE(lwpid_t)
287fi
288
289dnl Some systems (e.g., Android) have psaddr_t defined in libthread_db.h.
290if test "$bfd_cv_have_sys_procfs_type_psaddr_t" != yes; then
291 GDBSERVER_HAVE_THREAD_DB_TYPE(psaddr_t)
292fi
293
193f13e6
MK
294dnl Check for libdl, but do not add it to LIBS as only gdbserver
295dnl needs it (and gdbreplay doesn't).
296old_LIBS="$LIBS"
297AC_CHECK_LIB(dl, dlopen)
298LIBS="$old_LIBS"
299
0d62e5e8
DJ
300srv_thread_depfiles=
301srv_libs=
0d62e5e8
DJ
302
303if test "$srv_linux_thread_db" = "yes"; then
193f13e6
MK
304 if test "$ac_cv_lib_dl_dlopen" = "yes"; then
305 srv_libs="-ldl"
f6528abd 306 AC_MSG_CHECKING(for the dynamic export flag)
193f13e6 307 old_LDFLAGS="$LDFLAGS"
f6528abd
JK
308 # Older GNU ld supports --export-dynamic but --dynamic-list may not be
309 # supported there.
310 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
311 LDFLAGS="$LDFLAGS $RDYNAMIC"
312 AC_TRY_LINK([], [],
313 [found="-Wl,--dynamic-list"
314 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'],
315 [RDYNAMIC="-rdynamic"
316 LDFLAGS="$old_LDFLAGS $RDYNAMIC"
317 AC_TRY_LINK([], [],
318 [found="-rdynamic"],
319 [found="no"
320 RDYNAMIC=""])])
193f13e6
MK
321 AC_SUBST(RDYNAMIC)
322 LDFLAGS="$old_LDFLAGS"
f6528abd 323 AC_MSG_RESULT($found)
193f13e6
MK
324 else
325 srv_libs="-lthread_db"
326 fi
0d62e5e8 327
0d62e5e8 328 srv_thread_depfiles="thread-db.o proc-service.o"
7d4e5717 329 AC_DEFINE(USE_THREAD_DB, 1, [Define if we should use libthread_db.])
3db0444b
DJ
330 AC_CACHE_CHECK([for TD_VERSION], gdbsrv_cv_have_td_version,
331 [AC_TRY_COMPILE([#include <thread_db.h>], [TD_VERSION;],
1b3f6016
PA
332 [gdbsrv_cv_have_td_version=yes],
333 [gdbsrv_cv_have_td_version=no])])
0ad6b8ee 334 if test "$gdbsrv_cv_have_td_version" = yes; then
3db0444b
DJ
335 AC_DEFINE(HAVE_TD_VERSION, 1, [Define if TD_VERSION is available.])
336 fi
0d62e5e8
DJ
337fi
338
96f15937
PP
339AC_ARG_WITH(libthread-db,
340AS_HELP_STRING([--with-libthread-db=PATH], [use given libthread_db directly]),
341[srv_libthread_db_path="${withval}"
96f15937
PP
342 srv_libs="$srv_libthread_db_path"
343])
344
193f13e6
MK
345if test "$srv_libs" != "" -a "$srv_libs" != "-ldl"; then
346 AC_DEFINE(USE_LIBTHREAD_DB_DIRECTLY, 1, [Define if we should use libthread_db directly.])
347fi
348
9b4b61c8 349if test "$srv_xmlfiles" != ""; then
fb1e4ffc
DJ
350 srv_xmlbuiltin="xml-builtin.o"
351 AC_DEFINE(USE_XML, 1, [Define if an XML target description is available.])
352
353 tmp_xmlfiles=$srv_xmlfiles
9b4b61c8 354 srv_xmlfiles=""
fb1e4ffc
DJ
355 for f in $tmp_xmlfiles; do
356 srv_xmlfiles="$srv_xmlfiles \$(XML_DIR)/$f"
357 done
358fi
359
cd850b40 360GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles $srv_selftest_objs"
0d62e5e8 361GDBSERVER_LIBS="$srv_libs"
c906108c 362
fa593d66
PA
363dnl Check whether the target supports __sync_*_compare_and_swap.
364AC_CACHE_CHECK([whether the target supports __sync_*_compare_and_swap],
365 gdbsrv_cv_have_sync_builtins, [
366AC_TRY_LINK([], [int foo, bar; bar = __sync_val_compare_and_swap(&foo, 0, 1);],
367 gdbsrv_cv_have_sync_builtins=yes,
368 gdbsrv_cv_have_sync_builtins=no)])
0ad6b8ee 369if test "$gdbsrv_cv_have_sync_builtins" = yes; then
fa593d66
PA
370 AC_DEFINE(HAVE_SYNC_BUILTINS, 1,
371 [Define to 1 if the target supports __sync_*_compare_and_swap])
372fi
373
374dnl Check for -fvisibility=hidden support in the compiler.
375saved_cflags="$CFLAGS"
376CFLAGS="$CFLAGS -fvisibility=hidden"
d0ac1c44 377AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
fa593d66
PA
378 [gdbsrv_cv_have_visibility_hidden=yes],
379 [gdbsrv_cv_have_visibility_hidden=no])
380CFLAGS="$saved_cflags"
381
382IPA_DEPFILES=""
c2a66c29 383extra_libraries=""
fa593d66 384
c2a66c29 385# check whether to enable the inprocess agent
fa593d66
PA
386if test "$ipa_obj" != "" \
387 -a "$gdbsrv_cv_have_sync_builtins" = yes \
388 -a "$gdbsrv_cv_have_visibility_hidden" = yes; then
c2a66c29
NS
389 have_ipa=true
390else
391 have_ipa=false
392fi
393
394AC_ARG_ENABLE(inprocess-agent,
395AS_HELP_STRING([--enable-inprocess-agent], [inprocess agent]),
396[case "$enableval" in
397 yes) want_ipa=true ;;
398 no) want_ipa=false ;;
399 *) AC_MSG_ERROR([bad value $enableval for inprocess-agent]) ;;
400esac],
401[want_ipa=$have_ipa])
402
403if $want_ipa ; then
404 if $have_ipa ; then
405 IPA_DEPFILES="$ipa_obj"
406 extra_libraries="$extra_libraries libinproctrace.so"
407 else
408 AC_MSG_ERROR([inprocess agent not supported for this target])
409 fi
fa593d66
PA
410fi
411
7ea81414 412AC_SUBST(GDBSERVER_DEPFILES)
0d62e5e8 413AC_SUBST(GDBSERVER_LIBS)
fb1e4ffc
DJ
414AC_SUBST(srv_xmlbuiltin)
415AC_SUBST(srv_xmlfiles)
fa593d66
PA
416AC_SUBST(IPA_DEPFILES)
417AC_SUBST(extra_libraries)
c906108c 418
1a627e7e 419GNULIB=../gnulib/import
c9a1864a
YQ
420
421GNULIB_STDINT_H=
422if test x"$STDINT_H" != x; then
c971b7fa 423 GNULIB_STDINT_H=$GNULIB/$STDINT_H
c9a1864a
YQ
424fi
425AC_SUBST(GNULIB_STDINT_H)
426
c5adaa19 427AC_CONFIG_FILES([Makefile])
1e94266c
SM
428
429AC_OUTPUT