1dnl Autoconf configure script for GDB, the GNU debugger. 2dnl Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 3dnl Free Software Foundation, Inc. 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 9dnl the Free Software Foundation; either version 2 of the License, or 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 18dnl along with this program; if not, write to the Free Software 19dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 21dnl Process this file with autoconf to produce a configure script. 22 23AC_PREREQ(2.13)dnl 24AC_INIT(main.c) 25AC_CONFIG_HEADER(config.h:config.in) 26AM_MAINTAINER_MODE 27 28AC_PROG_CC 29AC_GNU_SOURCE 30AC_AIX 31AC_ISC_POSIX 32AM_PROG_CC_STDC 33 34AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..) 35AC_CANONICAL_SYSTEM 36 37# FIXME: kettenis/20030102: The AC_PROG_RANLIB from Autoconf 2.13 38# doesn't support cross-compilation, but the one from Autoconf 2.5x 39# does. Override RANLIB here (i.e. before running AC_PROG_RANLIB) to 40# deal with the lossage. Note that CY_GNU_GETTEXT currently calls 41# AC_PROG_RANLIB. This can be removed when we switch to Autoconf 42# 2.5x. 43AC_CHECK_TOOL(RANLIB, ranlib, :) 44 45dnl Set up for gettext. PACKAGE is used when we call bindtextdomain. 46ALL_LINGUAS= 47CY_GNU_GETTEXT 48AC_DEFINE(PACKAGE, "gdb", [Name of this package. ]) 49 50debugdir=${libdir}/debug 51 52AC_ARG_WITH(separate-debug-dir, 53[ --with-separate-debug-dir=path Look for global separate debug info in this path [LIBDIR/debug]], 54[debugdir="${withval}"]) 55 56AC_DEFINE_DIR(DEBUGDIR, debugdir, 57 [Global directory for separate debug files. ]) 58#AC_DEFINE_UNQUOTED(DEBUGDIR, "$debugdir"), 59 60dnl List of object files added by configure. 61 62CONFIG_OBS= 63CONFIG_DEPS= 64CONFIG_SRCS= 65ENABLE_CFLAGS= 66CONFIG_ALL= 67CONFIG_CLEAN= 68CONFIG_INSTALL= 69CONFIG_UNINSTALL= 70 71AC_CONFIG_SUBDIRS(doc testsuite) 72configdirs= 73 74. $srcdir/configure.host 75 76. $srcdir/configure.tgt 77 78# Fetch the default architecture and default target vector from BFD. 79targ=$target; . $srcdir/../bfd/config.bfd 80 81# We only want the first architecture, so strip off the others if 82# there is more than one. 83targ_archs=`echo $targ_archs | sed 's/ .*//'` 84 85if test "x$targ_archs" != x; then 86 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs, 87 [Define to BFD's default architecture. ]) 88fi 89if test "x$targ_defvec" != x; then 90 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec, 91 [Define to BFD's default target vector. ]) 92fi 93 94AC_ARG_PROGRAM 95 96# The CLI cannot be disabled yet, but may be in the future. 97 98# Enable CLI. 99AC_ARG_ENABLE(gdbcli, 100[ --disable-gdbcli disable command-line interface (CLI)], 101 [case $enableval in 102 yes) 103 ;; 104 no) 105 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;; 106 *) 107 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;; 108 esac], 109 [enable_gdbcli=yes]) 110if test x"$enable_gdbcli" = xyes; then 111 if test -d $srcdir/cli; then 112 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)" 113 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)" 114 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)" 115 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)" 116 fi 117fi 118 119# Enable MI. 120AC_ARG_ENABLE(gdbmi, 121[ --disable-gdbmi disable machine-interface (MI)], 122 [case $enableval in 123 yes | no) 124 ;; 125 *) 126 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;; 127 esac], 128 [enable_gdbmi=yes]) 129if test x"$enable_gdbmi" = xyes; then 130 if test -d $srcdir/mi; then 131 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)" 132 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)" 133 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)" 134 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)" 135 fi 136fi 137 138# Enable TUI. 139AC_ARG_ENABLE(tui, 140[ --enable-tui enable full-screen terminal user interface (TUI)], 141 [case $enableval in 142 yes | no) 143 ;; 144 *) 145 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;; 146 esac],enable_tui=yes) 147if test x"$enable_tui" = xyes; then 148 if test -d $srcdir/tui; then 149 if test "$ac_cv_search_initscr" != no -a "$ac_cv_search_wborder" != no; then 150 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)" 151 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)" 152 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)" 153 CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_TUI_INITS)" 154 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)" 155 CONFIG_ALL="${CONFIG_ALL} all-tui" 156 CONFIG_CLEAN="${CONFIG_CLEAN} clean-tui" 157 CONFIG_INSTALL="${CONFIG_INSTALL} install-tui" 158 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-tui" 159 fi 160 fi 161fi 162 163# Enable gdbtk. 164AC_ARG_ENABLE(gdbtk, 165[ --enable-gdbtk enable gdbtk graphical user interface (GUI)], 166 [case $enableval in 167 yes | no) 168 ;; 169 *) 170 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;; 171 esac], 172 [if test -d $srcdir/gdbtk; then 173 enable_gdbtk=yes 174 else 175 enable_gdbtk=no 176 fi]) 177# We unconditionally disable gdbtk tests on selected platforms. 178case $host_os in 179 go32* | windows*) 180 AC_MSG_WARN([gdbtk isn't supported on $host; disabling]) 181 enable_gdbtk=no ;; 182esac 183 184# Libunwind support. 185AC_ARG_WITH(libunwind, 186[ --with-libunwind Use libunwind frame unwinding support], 187[case "${withval}" in 188 yes) enable_libunwind=yes ;; 189 no) enable_libunwind=no ;; 190 *) AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;; 191esac],[ 192 AC_CHECK_HEADERS(libunwind.h) 193 AC_CHECK_HEADERS(libunwind-ia64.h) 194 if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then 195 enable_libunwind=yes; 196 fi 197]) 198 199if test x"$enable_libunwind" = xyes; then 200 AC_CHECK_HEADERS(libunwind.h) 201 AC_CHECK_HEADERS(libunwind-ia64.h) 202 AC_DEFINE(HAVE_LIBUNWIND, 1) 203 CONFIG_OBS="$CONFIG_OBS libunwind-frame.o" 204 CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o" 205 CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c" 206fi 207 208# Profiling support. 209AC_ARG_ENABLE(profiling, 210[ --enable-profiling enable profiling of GDB], 211 [case $enableval in 212 yes | no) 213 ;; 214 *) 215 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;; 216 esac], 217 [enable_profiling=no]) 218 219AC_CHECK_FUNCS(monstartup _mcleanup) 220AC_CACHE_CHECK([for _etext], ac_cv_var__etext, 221[AC_TRY_LINK( 222[#include <stdlib.h> 223extern char _etext; 224], 225[free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)]) 226if test $ac_cv_var__etext = yes; then 227 AC_DEFINE(HAVE__ETEXT, 1, 228 [Define to 1 if your system has the _etext variable. ]) 229fi 230if test "$enable_profiling" = yes ; then 231 if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then 232 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup) 233 fi 234 PROFILE_CFLAGS=-pg 235 OLD_CFLAGS="$CFLAGS" 236 CFLAGS="$CFLAGS $PROFILE_CFLAGS" 237 238 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg, 239 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes, 240 ac_cv_cc_supports_pg=no)]) 241 242 if test $ac_cv_cc_supports_pg = no; then 243 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg) 244 fi 245 246 CFLAGS="$OLD_CFLAGS" 247fi 248 249# --------------------- # 250# Checks for programs. # 251# --------------------- # 252 253AC_PROG_AWK 254AC_PROG_INSTALL 255AC_PROG_LN_S 256AC_PROG_RANLIB 257AC_PROG_YACC 258 259AC_CHECK_TOOL(AR, ar) 260AC_CHECK_TOOL(DLLTOOL, dlltool) 261AC_CHECK_TOOL(WINDRES, windres) 262 263# Needed for GNU/Hurd. 264AC_CHECK_TOOL(MIG, mig) 265 266# ---------------------- # 267# Checks for libraries. # 268# ---------------------- # 269 270# We might need to link with -lm; most simulators need it. 271AC_CHECK_LIB(m, main) 272 273# We need to link with -lw to get `wctype' on Solaris before Solaris 274# 2.6. Solaris 2.6 and beyond have this function in libc, and have a 275# libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1 276# is known to have this problem). Therefore we avoid libw if we can. 277AC_CHECK_FUNC(wctype, [], 278 [AC_CHECK_LIB(w, wctype)]) 279 280# Some systems (e.g. Solaris) have `gethostbyname' in libnsl. 281AC_SEARCH_LIBS(gethostbyname, nsl) 282 283# Some systems (e.g. Solaris) have `socketpair' in libsocket. 284AC_SEARCH_LIBS(socketpair, socket) 285 286# Since GDB uses Readline, we need termcap functionality, so we need 287# to find a library that provides that. When GDB is configured with 288# the TUI, we need full curses functionality. 289 290case $host_os in 291 cygwin*) 292 if test -d $srcdir/libtermcap; then 293 LIBS="../libtermcap/libtermcap.a $LIBS" 294 ac_cv_search_tgetent="../libtermcap/libtermcap.a" 295 fi ;; 296 go32* | *djgpp*) 297 ac_cv_search_tgetent="none required" 298 ;; 299 aix*) 300 # Readline prefers curses over termcap on AIX. 301 # ??? Why? 302 AC_SEARCH_LIBS(tgetent, [tinfo ncurses curses termcap]) 303 ;; 304esac 305 306# Note: We used to check for libtermlib and libterminfo too, but 307# Readline doesn't, so I think we're safe with leaving them out. 308AC_SEARCH_LIBS(tgetent, [termcap tinfo ncurses Hcurses curses]) 309 310if test "$ac_cv_search_tgetent" = no; then 311 AC_MSG_ERROR([no termcap library found]) 312fi 313 314# FIXME: kettenis/20030102: We seem to prefer HP curses (Hcurses) over 315# Xcurses on HP-UX; see the `-D__HP_CURSES' in the relevant host 316# Makefile fragments. That's why we need to have `Hcurses' before 317# `curses'. I don't see why we should use HP curses if a more 318# standard curses is available, except that according to HP's 319# documentation one needs to compile `-D_XOPEN_SOURCE_EXTENDED' on 320# HP-UX 10.10 and 10.20. 321 322# FIXME: ncurses does not work on native alphaev68-dec-osf5.1, 323# and probably other platforms. AC_SEARCH_LIBS finds the library 324# in a place such as /usr/local/lib/libncurses.a, but does not 325# do anything to look for the matching include files. 326# -- chastain 2004-05-01 327 328AC_SEARCH_LIBS(initscr, [ncurses Hcurses curses pdcurses], [], 329 [AC_MSG_WARN([no curses library found])]) 330 331# Check whether the wborder function is provided by the curses 332# library detected above. In certain implementations such as 333# the HP/UX Hcurses for instance, this function is provided by an 334# additional library. So if we did not find this function inside 335# the curses library, try some alternate libraries we know might 336# provide it. 337AC_SEARCH_LIBS(wborder, [cur_colr], [], 338 [AC_MSG_WARN([wborder function not found, tui will be disabled])]) 339 340# ------------------------- # 341# Checks for header files. # 342# ------------------------- # 343 344AC_HEADER_DIRENT 345AC_HEADER_STAT 346AC_HEADER_STDC 347AC_CHECK_HEADERS(link.h) 348AC_CHECK_HEADERS(machine/reg.h) 349AC_CHECK_HEADERS(nlist.h) 350AC_CHECK_HEADERS(poll.h sys/poll.h) 351AC_CHECK_HEADERS(proc_service.h thread_db.h gnu/libc-version.h) 352AC_CHECK_HEADERS(stddef.h) 353AC_CHECK_HEADERS(stdlib.h) 354AC_CHECK_HEADERS(stdint.h) 355AC_CHECK_HEADERS(string.h memory.h strings.h) 356AC_CHECK_HEADERS(sys/fault.h) 357AC_CHECK_HEADERS(sys/file.h) 358AC_CHECK_HEADERS(sys/filio.h) 359AC_CHECK_HEADERS(sys/ioctl.h) 360AC_CHECK_HEADERS(sys/param.h) 361AC_CHECK_HEADERS(sys/proc.h) 362AC_CHECK_HEADERS(sys/procfs.h) 363AC_CHECK_HEADERS(sys/ptrace.h ptrace.h) 364AC_CHECK_HEADERS(sys/reg.h sys/debugreg.h) 365AC_CHECK_HEADERS(sys/select.h) 366AC_CHECK_HEADERS(sys/syscall.h) 367AC_CHECK_HEADERS(sys/user.h) 368AC_CHECK_HEADERS(sys/wait.h wait.h) 369AC_CHECK_HEADERS(termios.h termio.h sgtty.h) 370AC_CHECK_HEADERS(unistd.h) 371 372# On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash 373# between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to 374# think that we don't have <curses.h> if we're using GCC. 375case $host_os in 376 solaris2.[[789]]) 377 if test "$GCC" = yes; then 378 AC_DEFINE(_MSE_INT_H, 1, 379 [[Define to 1 to avoid a clash between <widec.h> and <wchar.h> on 380 Solaris 2.[789] when using GCC. ]]) 381 fi ;; 382esac 383AC_CHECK_HEADERS(curses.h ncurses.h term.h) 384 385# FIXME: kettenis/20030102: In most cases we include these 386# unconditionally, so what's the point in checking these? 387AC_CHECK_HEADERS(ctype.h time.h) 388 389dnl Check for struct stat with an st_blocks member 390AC_MSG_CHECKING(for member st_blocks in struct stat) 391AC_CACHE_VAL(gdb_cv_have_struct_stat_with_st_blocks_member, 392 [AC_TRY_COMPILE([#include <sys/types.h> 393#include <sys/stat.h>], 394 [struct stat st; (void) st.st_blocks;], 395 gdb_cv_have_struct_stat_with_st_blocks_member=yes, 396 gdb_cv_have_struct_stat_with_st_blocks_member=no)]) 397AC_MSG_RESULT($gdb_cv_have_struct_stat_with_st_blocks_member) 398if test $gdb_cv_have_struct_stat_with_st_blocks_member = yes; then 399 AC_DEFINE(HAVE_STRUCT_STAT_ST_BLOCKS) 400fi 401# ------------------------- # 402# Checks for declarations. # 403# ------------------------- # 404 405gcc_AC_CHECK_DECLS(getopt) 406 407# ------------------ # 408# Checks for types. # 409# ------------------ # 410 411AC_TYPE_SIGNAL 412 413# ------------------------------------- # 414# Checks for compiler characteristics. # 415# ------------------------------------- # 416 417AC_C_CONST 418AC_C_INLINE 419 420# ------------------------------ # 421# Checks for library functions. # 422# ------------------------------ # 423 424AC_FUNC_ALLOCA 425AC_FUNC_MMAP 426AC_FUNC_VFORK 427AC_CHECK_FUNCS(canonicalize_file_name realpath) 428AC_CHECK_FUNCS(poll) 429AC_CHECK_FUNCS(pread64) 430AC_CHECK_FUNCS(sbrk) 431AC_CHECK_FUNCS(setpgid setpgrp) 432AC_CHECK_FUNCS(sigaction sigprocmask sigsetmask) 433AC_CHECK_FUNCS(socketpair) 434AC_CHECK_FUNCS(syscall) 435 436dnl AC_FUNC_SETPGRP does not work when cross compiling 437dnl Instead, assume we will have a prototype for setpgrp if cross compiling. 438if test "$cross_compiling" = no; then 439 AC_FUNC_SETPGRP 440else 441 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void, 442 [AC_TRY_COMPILE([ 443#include <unistd.h> 444], [ 445 if (setpgrp(1,1) == -1) 446 exit (0); 447 else 448 exit (1); 449], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)]) 450if test $ac_cv_func_setpgrp_void = yes; then 451 AC_DEFINE(SETPGRP_VOID, 1) 452fi 453fi 454 455# Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do 456# since sigsetjmp might only be defined as a macro. 457AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp, 458[AC_TRY_COMPILE([ 459#include <setjmp.h> 460], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);], 461gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)]) 462if test $gdb_cv_func_sigsetjmp = yes; then 463 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ]) 464fi 465 466# Assume we'll default to using the included libiberty regex. 467gdb_use_included_regex=yes 468 469# However, if the system regex is GNU regex, then default to *not* 470# using the included regex. 471AC_CACHE_CHECK( 472 [for GNU regex], 473 [gdb_cv_have_gnu_regex], 474 [AC_TRY_COMPILE( 475 [#include <gnu-versions.h>], 476 [#define REGEX_INTERFACE_VERSION 1 477#if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION 478# error "Version mismatch" 479#endif], 480 gdb_cv_have_gnu_regex=yes, 481 gdb_cv_have_gnu_regex=no)]) 482if test $gdb_cv_have_gnu_regex = yes; then 483 gdb_use_included_regex=no 484fi 485 486AC_ARG_WITH(included-regex, 487 [ --without-included-regex don't use included regex; this is the default 488 on systems with version 2 of the GNU C library 489 (use with caution on other system)], 490 gdb_with_regex=$withval, 491 gdb_with_regex=$gdb_use_included_regex) 492if test "$gdb_with_regex" = yes; then 493 AC_DEFINE(USE_INCLUDED_REGEX, 1, 494 [Define to 1 if the regex included in libiberty should be used.]) 495fi 496 497# See if <sys/proc.h> defines `struct thread' with a td_pcb member. 498AC_CACHE_CHECK([for td_pcb in struct thread], gdb_cv_struct_thread_td_pcb, 499[AC_TRY_COMPILE([#include <sys/param.h> 500#include <sys/proc.h>], [struct thread td; td.td_pcb;], 501gdb_cv_struct_thread_td_pcb=yes, gdb_cv_struct_thread_td_pcb=no)]) 502if test $gdb_cv_struct_thread_td_pcb = yes; then 503 AC_DEFINE(HAVE_STRUCT_THREAD_TD_PCB, 1, 504 [Define to 1 if your system has td_pcb in struct thread.]) 505fi 506 507# See if <machine/reg.h> degines `struct reg'. 508AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg, 509[AC_TRY_COMPILE([#include <sys/types.h> 510#include <machine/reg.h>], [struct reg r;], 511gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)]) 512if test $gdb_cv_struct_reg = yes; then 513 AC_DEFINE(HAVE_STRUCT_REG, 1, 514 [Define to 1 if your system has struct reg in <machine/reg.h>.]) 515fi 516 517# See if <machine/reg.h> supports the %fs and %gs i386 segment registers. 518# Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'. 519AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs, 520[AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;], 521gdb_cv_struct_reg_r_fs=yes, gdb_cv_struct_reg_r_fs=no)]) 522if test $gdb_cv_struct_reg_r_fs = yes; then 523 AC_DEFINE(HAVE_STRUCT_REG_R_FS) 524fi 525AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_reg_r_gs, 526[AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;], 527gdb_cv_struct_reg_r_gs=yes, gdb_cv_struct_reg_r_gs=no)]) 528if test $gdb_cv_struct_reg_r_gs = yes; then 529 AC_DEFINE(HAVE_STRUCT_REG_R_GS) 530fi 531 532# See if <sys/ptrace.h> provides the PTRACE_GETREGS request. 533AC_MSG_CHECKING(for PTRACE_GETREGS) 534AC_CACHE_VAL(gdb_cv_have_ptrace_getregs, 535[AC_TRY_COMPILE([#include <sys/ptrace.h>], 536 [PTRACE_GETREGS;], 537 [gdb_cv_have_ptrace_getregs=yes], 538 [gdb_cv_have_ptrace_getregs=no])]) 539AC_MSG_RESULT($gdb_cv_have_ptrace_getregs) 540if test $gdb_cv_have_ptrace_getregs = yes; then 541 AC_DEFINE(HAVE_PTRACE_GETREGS) 542fi 543 544# See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request. 545AC_MSG_CHECKING(for PTRACE_GETFPXREGS) 546AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs, 547[AC_TRY_COMPILE([#include <sys/ptrace.h>], 548 [PTRACE_GETFPXREGS;], 549 [gdb_cv_have_ptrace_getfpxregs=yes], 550 [gdb_cv_have_ptrace_getfpxregs=no])]) 551AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs) 552if test $gdb_cv_have_ptrace_getfpxregs = yes; then 553 AC_DEFINE(HAVE_PTRACE_GETFPXREGS) 554fi 555 556# See if <sys/ptrace.h> provides the PT_GETDBREGS request. 557AC_MSG_CHECKING(for PT_GETDBREGS) 558AC_CACHE_VAL(gdb_cv_have_pt_getdbregs, 559[AC_TRY_COMPILE([#include <sys/types.h> 560#include <sys/ptrace.h>], 561 [PT_GETDBREGS;], 562 [gdb_cv_have_pt_getdbregs=yes], 563 [gdb_cv_have_pt_getdbregs=no])]) 564AC_MSG_RESULT($gdb_cv_have_pt_getdbregs) 565if test $gdb_cv_have_pt_getdbregs = yes; then 566 AC_DEFINE(HAVE_PT_GETDBREGS) 567fi 568 569# See if <sys/ptrace.h> provides the PT_GETXMMREGS request. 570AC_MSG_CHECKING(for PT_GETXMMREGS) 571AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs, 572[AC_TRY_COMPILE([#include <sys/types.h> 573#include <sys/ptrace.h>], 574 [PT_GETXMMREGS;], 575 [gdb_cv_have_pt_getxmmregs=yes], 576 [gdb_cv_have_pt_getxmmregs=no])]) 577AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs) 578if test $gdb_cv_have_pt_getxmmregs = yes; then 579 AC_DEFINE(HAVE_PT_GETXMMREGS) 580fi 581 582# See if stdint.h provides the uintptr_t type. 583# Autoconf 2.5X has an improved AC_CHECK_TYPE which will simplify this. 584AC_CACHE_CHECK([for uintptr_t in stdint.h], gdb_cv_have_uintptr_t, 585 [AC_TRY_COMPILE( 586 [#include <stdint.h>], 587 [uintptr_t foo = 0;], 588 gdb_cv_have_uintptr_t=yes, 589 gdb_cv_have_uintptr_t=no)]) 590if test $gdb_cv_have_uintptr_t = yes; then 591 AC_DEFINE(HAVE_UINTPTR_T, 1, [Define if <stdint.h> provides the uintptr_t type.]) 592fi 593 594BFD_NEED_DECLARATION(malloc) 595BFD_NEED_DECLARATION(realloc) 596BFD_NEED_DECLARATION(free) 597BFD_NEED_DECLARATION(strerror) 598BFD_NEED_DECLARATION(strdup) 599BFD_NEED_DECLARATION(strstr) 600BFD_NEED_DECLARATION(canonicalize_file_name) 601 602# The following save_state_t checkery is only necessary for HPUX 603# versions earlier than 10.20. When those fade from memory, this 604# could be expunged. --jsm 1999-03-22 605 606AC_MSG_CHECKING(for HPUX save_state structure) 607AC_EGREP_HEADER(save_state_t, machine/save_state.h, 608 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no) 609AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes, 610 gdb_cv_hpux_sswide=no) 611if test $gdb_cv_hpux_savestate = yes 612then 613 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1) 614fi 615if test $gdb_cv_hpux_sswide = yes 616then 617 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1) 618fi 619AC_MSG_RESULT($gdb_cv_hpux_sswide) 620 621 622# If we are configured native on GNU/Linux, work around problems with 623# sys/procfs.h 624# Also detect which type of /proc is in use, such as for Unixware or Solaris. 625 626if test "${target}" = "${host}"; then 627 case "${host}" in 628 i[[3456]]86-*-linux*) 629 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2) 630 AC_DEFINE(sys_quotactl) 631 ;; 632 ia64-*-aix*) 633 AC_DEFINE(NEW_PROC_API) 634 ;; 635 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* ) 636 AC_DEFINE(NEW_PROC_API) 637 ;; 638 *-*-solaris2.[[6789]]) 639 AC_DEFINE(NEW_PROC_API) 640 ;; 641 mips-sgi-irix5*) 642 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5. 643 AC_DEFINE([_KMEMUSER], 1) 644 ;; 645 esac 646fi 647 648if test "$ac_cv_header_sys_procfs_h" = yes; then 649 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t) 650 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t) 651 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t) 652 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t) 653 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t) 654 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t) 655 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t) 656 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t) 657 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t) 658 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t) 659 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t) 660 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t) 661 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t) 662 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t) 663 664 665 dnl Check for broken prfpregset_t type 666 667 dnl For Linux/i386, glibc 2.1.3 was released with a bogus 668 dnl prfpregset_t type (it's a typedef for the pointer to a struct 669 dnl instead of the struct itself). We detect this here, and work 670 dnl around it in gdb_proc_service.h. 671 672 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then 673 AC_MSG_CHECKING(whether prfpregset_t type is broken) 674 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken, 675 [AC_TRY_RUN([#include <sys/procfs.h> 676 int main () 677 { 678 if (sizeof (prfpregset_t) == sizeof (void *)) 679 return 1; 680 return 0; 681 }], 682 gdb_cv_prfpregset_t_broken=no, 683 gdb_cv_prfpregset_t_broken=yes, 684 gdb_cv_prfpregset_t_broken=yes)]) 685 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken) 686 if test $gdb_cv_prfpregset_t_broken = yes; then 687 AC_DEFINE(PRFPREGSET_T_BROKEN) 688 fi 689 fi 690 691 dnl Check for PIOCSET ioctl entry 692 693 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h) 694 AC_CACHE_VAL(gdb_cv_have_procfs_piocset, 695 [AC_TRY_COMPILE([#include <unistd.h> 696#include <sys/types.h> 697#include <sys/procfs.h> 698], [ 699 int dummy;; 700 dummy = ioctl(0, PIOCSET, &dummy); 701 ], 702 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)]) 703 AC_MSG_RESULT($gdb_cv_have_procfs_piocset) 704 if test $gdb_cv_have_procfs_piocset = yes; then 705 AC_DEFINE(HAVE_PROCFS_PIOCSET) 706 fi 707fi 708 709dnl For native ports (host == target), check to see what kind of 710dnl legacy link.h support is needed. (See solib-legacy.c.) 711if test ${host} = ${target} ; then 712 dnl Check for struct link_map with l_ members which are indicative 713 dnl of SVR4-like shared libraries 714 715 AC_MSG_CHECKING(for member l_addr in struct link_map) 716 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members, 717 [AC_TRY_COMPILE([#include <link.h>], 718 [struct link_map lm; (void) lm.l_addr;], 719 gdb_cv_have_struct_link_map_with_l_members=yes, 720 gdb_cv_have_struct_link_map_with_l_members=no)]) 721 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members) 722 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then 723 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS) 724 fi 725 726 dnl Check for struct link_map with lm_ members which are indicative 727 dnl of SunOS-like shared libraries 728 729 AC_MSG_CHECKING(for member lm_addr in struct link_map) 730 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members, 731 [AC_TRY_COMPILE([#include <sys/types.h> 732#include <link.h>], 733 [struct link_map lm; (void) lm.lm_addr;], 734 gdb_cv_have_struct_link_map_with_lm_members=yes, 735 gdb_cv_have_struct_link_map_with_lm_members=no)]) 736 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members) 737 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then 738 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS) 739 fi 740 741 dnl Check for struct so_map with som_ members which are found on 742 dnl some *BSD systems. 743 744 AC_MSG_CHECKING(for member som_addr in struct so_map) 745 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members, 746 [AC_TRY_COMPILE([#include <sys/types.h> 747#ifdef HAVE_NLIST_H 748#include <nlist.h> 749#endif 750#include <link.h>], 751 [struct so_map lm; (void) lm.som_addr;], 752 gdb_cv_have_struct_so_map_with_som_members=yes, 753 gdb_cv_have_struct_so_map_with_som_members=no)]) 754 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members) 755 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then 756 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS) 757 fi 758 759 dnl Check for struct link_map32 type, which allows a 64-bit Solaris 760 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries. 761 762 AC_MSG_CHECKING(for struct link_map32 in sys/link.h) 763 AC_CACHE_VAL(gdb_cv_have_struct_link_map32, 764 [AC_TRY_COMPILE([#define _SYSCALL32 765#include <sys/link.h>], [struct link_map32 l;], 766 gdb_cv_have_struct_link_map32=yes, 767 gdb_cv_have_struct_link_map32=no)]) 768 AC_MSG_RESULT($gdb_cv_have_struct_link_map32) 769 if test $gdb_cv_have_struct_link_map32 = yes; then 770 AC_DEFINE(HAVE_STRUCT_LINK_MAP32) 771 AC_DEFINE(_SYSCALL32) 772 fi 773fi 774 775dnl See if compiler supports "long long" type. 776 777AC_MSG_CHECKING(for long long support in compiler) 778AC_CACHE_VAL(gdb_cv_c_long_long, 779[AC_TRY_COMPILE(, [ 780 extern long long foo; 781 switch (foo & 2) { case 0: return 1; } 782], 783gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)]) 784AC_MSG_RESULT($gdb_cv_c_long_long) 785if test $gdb_cv_c_long_long = yes; then 786 AC_DEFINE(CC_HAS_LONG_LONG) 787fi 788 789dnl See if the compiler and runtime support printing long long 790 791AC_MSG_CHECKING(for long long support in printf) 792AC_CACHE_VAL(gdb_cv_printf_has_long_long, 793[AC_TRY_RUN([ 794int main () { 795 char buf[32]; 796 long long l = 0; 797 l = (l << 16) + 0x0123; 798 l = (l << 16) + 0x4567; 799 l = (l << 16) + 0x89ab; 800 l = (l << 16) + 0xcdef; 801 sprintf (buf, "0x%016llx", l); 802 return (strcmp ("0x0123456789abcdef", buf)); 803}], 804gdb_cv_printf_has_long_long=yes, 805gdb_cv_printf_has_long_long=no, 806gdb_cv_printf_has_long_long=no)]) 807if test $gdb_cv_printf_has_long_long = yes; then 808 AC_DEFINE(PRINTF_HAS_LONG_LONG) 809fi 810AC_MSG_RESULT($gdb_cv_printf_has_long_long) 811 812dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE 813dnl because autoconf complains about cross-compilation issues. However, this 814dnl code uses the same variables as the macro for compatibility. 815 816AC_MSG_CHECKING(for long double support in compiler) 817AC_CACHE_VAL(ac_cv_c_long_double, 818[AC_TRY_COMPILE(, [long double foo;], 819ac_cv_c_long_double=yes, ac_cv_c_long_double=no)]) 820AC_MSG_RESULT($ac_cv_c_long_double) 821if test $ac_cv_c_long_double = yes; then 822 AC_DEFINE(HAVE_LONG_DOUBLE) 823fi 824 825dnl See if the compiler and runtime support printing long doubles 826 827AC_MSG_CHECKING(for long double support in printf) 828AC_CACHE_VAL(gdb_cv_printf_has_long_double, 829[AC_TRY_RUN([ 830int main () { 831 char buf[16]; 832 long double f = 3.141592653; 833 sprintf (buf, "%Lg", f); 834 return (strncmp ("3.14159", buf, 7)); 835}], 836gdb_cv_printf_has_long_double=yes, 837gdb_cv_printf_has_long_double=no, 838gdb_cv_printf_has_long_double=no)]) 839if test $gdb_cv_printf_has_long_double = yes; then 840 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE) 841fi 842AC_MSG_RESULT($gdb_cv_printf_has_long_double) 843 844dnl See if the compiler and runtime support scanning long doubles 845 846AC_MSG_CHECKING(for long double support in scanf) 847AC_CACHE_VAL(gdb_cv_scanf_has_long_double, 848[AC_TRY_RUN([ 849int main () { 850 char *buf = "3.141592653"; 851 long double f = 0; 852 sscanf (buf, "%Lg", &f); 853 return !(f > 3.14159 && f < 3.14160); 854}], 855gdb_cv_scanf_has_long_double=yes, 856gdb_cv_scanf_has_long_double=no, 857gdb_cv_scanf_has_long_double=no)]) 858if test $gdb_cv_scanf_has_long_double = yes; then 859 AC_DEFINE(SCANF_HAS_LONG_DOUBLE) 860fi 861AC_MSG_RESULT($gdb_cv_scanf_has_long_double) 862 863case ${host_os} in 864aix*) 865 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [ 866 SAVE_LDFLAGS=$LDFLAGS 867 868 case $GCC in 869 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;; 870 *) gdb_cv_bigtoc=-bbigtoc ;; 871 esac 872 873 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc 874 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=]) 875 LDFLAGS="${SAVE_LDFLAGS}" 876 ]) 877 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}" 878 ;; 879esac 880 881 882dnl For certain native configurations, we need to check whether thread 883dnl support can be built in or not. 884dnl 885dnl Note that we only want this if we are both native (host == target), 886dnl and not doing a canadian cross build (build == host). 887 888if test ${build} = ${host} -a ${host} = ${target} ; then 889 case ${host_os} in 890 hpux*) 891 AC_MSG_CHECKING(for HPUX/OSF thread support) 892 if test -f /usr/include/dce/cma_config.h ; then 893 if test "$GCC" = "yes" ; then 894 AC_MSG_RESULT(yes) 895 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT) 896 CONFIG_OBS="${CONFIG_OBS} hpux-thread.o" 897 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c" 898 else 899 AC_MSG_RESULT(no (suppressed because you are not using GCC)) 900 fi 901 else 902 AC_MSG_RESULT(no) 903 fi 904 ;; 905 solaris*) 906 # See if thread_db library is around for Solaris thread debugging. 907 # Note that we must explicitly test for version 1 of the library 908 # because version 0 (present on Solaris 2.4 or earlier) doesn't have 909 # the same API. 910 AC_MSG_CHECKING(for Solaris thread debugging library) 911 if test -f /usr/lib/libthread_db.so.1 ; then 912 AC_MSG_RESULT(yes) 913 AC_DEFINE(HAVE_THREAD_DB_LIB) 914 CONFIG_OBS="${CONFIG_OBS} sol-thread.o" 915 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c" 916 AC_CHECK_LIB(dl, dlopen) 917 if test "$GCC" = "yes" ; then 918 # The GNU linker requires the -export-dynamic option to make 919 # all symbols visible in the dynamic symbol table. 920 hold_ldflags=$LDFLAGS 921 AC_MSG_CHECKING(for the ld -export-dynamic flag) 922 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic" 923 AC_TRY_LINK(, [int i;], found=yes, found=no) 924 LDFLAGS=$hold_ldflags 925 AC_MSG_RESULT($found) 926 if test $found = yes; then 927 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic" 928 fi 929 fi 930 # Sun randomly tweaked the prototypes in <proc_service.h> 931 # at one point. 932 AC_MSG_CHECKING(if <proc_service.h> is old) 933 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[ 934 AC_TRY_COMPILE([ 935 #include <proc_service.h> 936 ps_err_e ps_pdwrite 937 (struct ps_prochandle*, psaddr_t, const void*, size_t); 938 ],, gdb_cv_proc_service_is_old=no, 939 gdb_cv_proc_service_is_old=yes) 940 ]) 941 AC_MSG_RESULT($gdb_cv_proc_service_is_old) 942 if test $gdb_cv_proc_service_is_old = yes; then 943 AC_DEFINE(PROC_SERVICE_IS_OLD) 944 fi 945 else 946 AC_MSG_RESULT(no) 947 fi 948 ;; 949 aix*) 950 AC_MSG_CHECKING(for AiX thread debugging library) 951 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug, 952 [AC_TRY_COMPILE([#include <sys/pthdebug.h>], 953 [#ifndef PTHDB_VERSION_3 954 #error 955 #endif], 956 gdb_cv_have_aix_thread_debug=yes, 957 gdb_cv_have_aix_thread_debug=no)]) 958 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug) 959 if test $gdb_cv_have_aix_thread_debug = yes; then 960 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c" 961 CONFIG_OBS="${CONFIG_OBS} aix-thread.o" 962 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug" 963 fi 964 ;; 965 esac 966 AC_SUBST(CONFIG_LDFLAGS) 967fi 968 969dnl See if we have a thread_db header file that has TD_NOTALLOC. 970if test "x$ac_cv_header_thread_db_h" = "xyes"; then 971 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC], 972 gdb_cv_thread_db_h_has_td_notalloc, 973 AC_TRY_COMPILE( 974 [#include <thread_db.h>], 975 [int i = TD_NOTALLOC;], 976 gdb_cv_thread_db_h_has_td_notalloc=yes, 977 gdb_cv_thread_db_h_has_td_notalloc=no 978 ) 979 ) 980fi 981if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then 982 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1, 983 [Define if <thread_db.h> has the TD_NOTALLOC error code.]) 984fi 985 986dnl See if we have a sys/syscall header file that has __NR_tkill. 987if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then 988 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill], 989 gdb_cv_sys_syscall_h_has_tkill, 990 AC_TRY_COMPILE( 991 [#include <sys/syscall.h>], 992 [int i = __NR_tkill;], 993 gdb_cv_sys_syscall_h_has_tkill=yes, 994 gdb_cv_sys_syscall_h_has_tkill=no 995 ) 996 ) 997fi 998dnl See if we can issue tkill syscall. 999if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then 1000 AC_DEFINE(HAVE_TKILL_SYSCALL, 1, 1001 [Define if we can use the tkill syscall.]) 1002fi 1003 1004dnl Handle optional features that can be enabled. 1005 1006AC_ARG_WITH(sysroot, 1007[ --with-sysroot[=DIR] Search for usr/lib et al within DIR.], 1008[ 1009 case ${with_sysroot} in 1010 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;; 1011 *) TARGET_SYSTEM_ROOT=$with_sysroot ;; 1012 esac 1013 1014 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"' 1015 1016 if test "x$exec_prefix" = xNONE; then 1017 if test "x$prefix" = xNONE; then 1018 test_prefix=/usr/local 1019 else 1020 test_prefix=$prefix 1021 fi 1022 else 1023 test_prefix=$exec_prefix 1024 fi 1025 case ${TARGET_SYSTEM_ROOT} in 1026 "${test_prefix}"|"${test_prefix}/"*|\ 1027 '${exec_prefix}'|'${exec_prefix}/'*) 1028 t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE" 1029 TARGET_SYSTEM_ROOT_DEFINE="$t" 1030 ;; 1031 esac 1032], [ 1033 TARGET_SYSTEM_ROOT= 1034 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"' 1035]) 1036AC_SUBST(TARGET_SYSTEM_ROOT) 1037AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) 1038 1039# NOTE: Don't add -Wall or -Wunused, they both include 1040# -Wunused-parameter which reports bogus warnings. 1041# NOTE: If you add to this list, remember to update 1042# gdb/doc/gdbint.texinfo. 1043build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \ 1044-Wformat -Wparentheses -Wpointer-arith -Wuninitialized -Wformat-nonliteral \ 1045-Wunused-label -Wunused-function" 1046# Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs 1047# -Wunused-function -Wunused-variable -Wunused-value 1048# -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual 1049# -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes 1050# -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls 1051# -Woverloaded-virtual -Winline -Werror" 1052AC_ARG_ENABLE(build-warnings, 1053[ --enable-build-warnings Enable build-time compiler warnings if gcc is used], 1054[case "${enableval}" in 1055 yes) ;; 1056 no) build_warnings="-w";; 1057 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"` 1058 build_warnings="${build_warnings} ${t}";; 1059 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"` 1060 build_warnings="${t} ${build_warnings}";; 1061 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;; 1062esac 1063if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then 1064 echo "Setting compiler warning flags = $build_warnings" 6>&1 1065fi])dnl 1066AC_ARG_ENABLE(gdb-build-warnings, 1067[ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used], 1068[case "${enableval}" in 1069 yes) ;; 1070 no) build_warnings="-w";; 1071 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"` 1072 build_warnings="${build_warnings} ${t}";; 1073 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"` 1074 build_warnings="${t} ${build_warnings}";; 1075 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;; 1076esac 1077if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then 1078 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1 1079fi])dnl 1080WARN_CFLAGS="" 1081WERROR_CFLAGS="" 1082if test "x${build_warnings}" != x -a "x$GCC" = xyes 1083then 1084 AC_MSG_CHECKING(compiler warning flags) 1085 # Separate out the -Werror flag as some files just cannot be 1086 # compiled with it enabled. 1087 for w in ${build_warnings}; do 1088 case $w in 1089 -Werr*) WERROR_CFLAGS=-Werror ;; 1090 *) # Check that GCC accepts it 1091 saved_CFLAGS="$CFLAGS" 1092 CFLAGS="$CFLAGS $w" 1093 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",) 1094 CFLAGS="$saved_CFLAGS" 1095 esac 1096 done 1097 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS}) 1098fi 1099AC_SUBST(WARN_CFLAGS) 1100AC_SUBST(WERROR_CFLAGS) 1101 1102# In the Cygwin environment, we need some additional flags. 1103AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin, 1104[AC_EGREP_CPP(lose, [ 1105#if defined (__CYGWIN__) || defined (__CYGWIN32__) 1106lose 1107#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])]) 1108 1109 1110dnl Figure out which of the many generic ser-*.c files the _host_ supports. 1111SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o" 1112case ${host} in 1113 *go32* ) SER_HARDWIRE=ser-go32.o ;; 1114 *djgpp* ) SER_HARDWIRE=ser-go32.o ;; 1115esac 1116AC_SUBST(SER_HARDWIRE) 1117 1118# libreadline needs libuser32.a in a cygwin environment 1119WIN32LIBS= 1120if test x$gdb_cv_os_cygwin = xyes; then 1121 WIN32LIBS="-luser32" 1122 case "${target}" in 1123 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp" 1124 ;; 1125 esac 1126fi 1127AC_SUBST(WIN32LIBS) 1128 1129LIBGUI="../libgui/src/libgui.a" 1130GUI_CFLAGS_X="-I${srcdir}/../libgui/src" 1131AC_SUBST(LIBGUI) 1132AC_SUBST(GUI_CFLAGS_X) 1133 1134WIN32LDAPP= 1135AC_SUBST(WIN32LIBS) 1136AC_SUBST(WIN32LDAPP) 1137 1138case "${host}" in 1139*-*-cygwin*) 1140 configdir="win" 1141 ;; 1142*) 1143 configdir="unix" 1144 ;; 1145esac 1146 1147GDBTKLIBS= 1148if test "${enable_gdbtk}" = "yes"; then 1149 1150 # Gdbtk must have an absolute path to srcdir in order to run 1151 # properly when not installed. 1152 here=`pwd` 1153 cd ${srcdir} 1154 GDBTK_SRC_DIR=`pwd` 1155 cd $here 1156 1157 CY_AC_PATH_TCLCONFIG 1158 if test -z "${no_tcl}"; then 1159 CY_AC_LOAD_TCLCONFIG 1160 CY_AC_PATH_TKCONFIG 1161 1162 # now look for Tcl library stuff 1163 1164 tcldir="../tcl/${configdir}/" 1165 1166 TCL_DEPS="${tcldir}${TCL_LIB_FILE}" 1167 1168 # If $no_tk is nonempty, then we can't do Tk, and there is no 1169 # point to doing Tcl. 1170 if test -z "${no_tk}"; then 1171 CY_AC_LOAD_TKCONFIG 1172 CY_AC_PATH_TCLH 1173 CY_AC_PATH_TKH 1174 CY_AC_PATH_ITCLH 1175 CY_AC_PATH_ITKH 1176 1177 1178 # now look for Tk library stuff 1179 1180 tkdir="../tk/${configdir}/" 1181 1182 TK_DEPS="${tkdir}${TK_LIB_FILE}" 1183 1184 # now look for Itcl library stuff 1185 1186 CY_AC_PATH_ITCLCONFIG 1187 if test -z "${no_itcl}"; then 1188 CY_AC_LOAD_ITCLCONFIG 1189 1190 ITCLLIB="${ITCL_BUILD_LIB_SPEC}" 1191 ITCL_DEPS="${ITCL_LIB_FULL_PATH}" 1192 fi 1193 1194 1195 # now look for Itk library stuff 1196 CY_AC_PATH_ITKCONFIG 1197 if test -z "${no_itcl}"; then 1198 CY_AC_LOAD_ITKCONFIG 1199 1200 ITKLIB="${ITK_BUILD_LIB_SPEC}" 1201 ITK_DEPS="${ITK_LIB_FULL_PATH}" 1202 fi 1203 1204 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)" 1205 # Tcl/Tk 8.1 require -fwritable strings. I don't 1206 # know whether 8.2 will or not, but I bet it will. 1207 # I don't have to worry about 7.x since we don't support it. 1208 GDBTK_CFLAGS="" 1209 if test "$GCC" = "yes"; then 1210 if test "$TCL_VERSION" != "8.0" ; then 1211 GDBTK_CFLAGS="-fwritable-strings" 1212 fi 1213 fi 1214 1215 # Include some libraries that Tcl and Tk want. 1216 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)' 1217 # Yes, the ordering seems wrong here. But it isn't. 1218 # TK_LIBS is the list of libraries that need to be linked 1219 # after Tcl/Tk. Note that this isn't put into LIBS. If it 1220 # were in LIBS then any link tests after this point would 1221 # try to include things like `$(LIBGUI)', which wouldn't work. 1222 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}" 1223 1224 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)" 1225 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)" 1226 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)" 1227 CONFIG_ALL="${CONFIG_ALL} all-gdbtk" 1228 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk" 1229 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk" 1230 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk" 1231 1232 if test x$gdb_cv_os_cygwin = xyes; then 1233 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32" 1234 WIN32LDAPP="-Wl,--subsystem,console" 1235 CONFIG_OBS="${CONFIG_OBS} gdbres.o" 1236 fi 1237 fi 1238 fi 1239 1240 configdirs="${configdirs} gdbtk" 1241fi 1242 1243AC_SUBST(X_CFLAGS) 1244AC_SUBST(X_LDFLAGS) 1245AC_SUBST(X_LIBS) 1246AC_SUBST(TCL_DEPS) 1247AC_SUBST(TK_DEPS) 1248AC_SUBST(ITCLLIB) 1249AC_SUBST(ITCL_DEPS) 1250AC_SUBST(ITKLIB) 1251AC_SUBST(ITK_DEPS) 1252AC_SUBST(GDBTKLIBS) 1253AC_SUBST(GDBTK_CFLAGS) 1254AC_SUBST(GDBTK_SRC_DIR) 1255 1256AC_PATH_X 1257 1258 1259# Unlike the sim directory, whether a simulator is linked is controlled by 1260# presence of a SIM= and a SIM_OBS= definition in the target '.mt' file. 1261# This code just checks for a few cases where we'd like to ignore those 1262# definitions, even when they're present in the '.mt' file. These cases 1263# are when --disable-sim is specified, or if the simulator directory is 1264# not part of the source tree. 1265# 1266AC_ARG_ENABLE(sim, 1267[ --enable-sim Link gdb with simulator], 1268[echo "enable_sim = $enable_sim"; 1269 echo "enableval = ${enableval}"; 1270 case "${enableval}" in 1271 yes) ignore_sim=false ;; 1272 no) ignore_sim=true ;; 1273 *) ignore_sim=false ;; 1274 esac], 1275[ignore_sim=false]) 1276 1277if test ! -d "${srcdir}/../sim"; then 1278 ignore_sim=true 1279fi 1280 1281if test "${ignore_sim}" = "true"; then 1282 IGNORE_SIM="SIM=" 1283 IGNORE_SIM_OBS="SIM_OBS=" 1284else 1285 IGNORE_SIM="" 1286 IGNORE_SIM_OBS="" 1287 AC_DEFINE(WITH_SIM) 1288fi 1289AC_SUBST(IGNORE_SIM) 1290AC_SUBST(IGNORE_SIM_OBS) 1291 1292AC_SUBST(ENABLE_CFLAGS) 1293AC_SUBST(PROFILE_CFLAGS) 1294 1295AC_SUBST(CONFIG_OBS) 1296AC_SUBST(CONFIG_DEPS) 1297AC_SUBST(CONFIG_SRCS) 1298AC_SUBST(CONFIG_ALL) 1299AC_SUBST(CONFIG_CLEAN) 1300AC_SUBST(CONFIG_INSTALL) 1301AC_SUBST(CONFIG_UNINSTALL) 1302 1303# target_subdir is used by the testsuite to find the target libraries. 1304target_subdir= 1305if test "${host}" != "${target}"; then 1306 target_subdir="${target_alias}/" 1307fi 1308AC_SUBST(target_subdir) 1309 1310frags= 1311host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh 1312if test ! -f ${host_makefile_frag}; then 1313 # When building a native debuger the .mh file containing things 1314 # like NATDEPFILES is needed. Cross debuggers don't need .mh 1315 # since it no longer contains anything useful. 1316 if test "${target}" = "${host}"; then 1317 AC_MSG_ERROR("*** Gdb does not support native target ${host}") 1318 else 1319 host_makefile_frag=/dev/null 1320 fi 1321fi 1322frags="$frags $host_makefile_frag" 1323 1324target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt 1325if test ! -f ${target_makefile_frag}; then 1326AC_MSG_ERROR("*** Gdb does not support target ${target}") 1327fi 1328frags="$frags $target_makefile_frag" 1329 1330AC_SUBST_FILE(host_makefile_frag) 1331AC_SUBST_FILE(target_makefile_frag) 1332AC_SUBST(frags) 1333 1334changequote(,)dnl 1335hostfile=`sed -n ' 1336s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p 1337' ${host_makefile_frag}` 1338 1339targetfile=`sed -n ' 1340s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p 1341' ${target_makefile_frag}` 1342 1343if test "${target}" = "${host}"; then 1344# We pick this up from the host configuration file (.mh) because we 1345# do not have a native configuration Makefile fragment. 1346nativefile=`sed -n ' 1347s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p 1348' ${host_makefile_frag}` 1349fi 1350changequote([,]) 1351 1352if test x"${gdb_osabi}" != x ; then 1353 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi, 1354 [Define to the default OS ABI for this configuration.]) 1355fi 1356 1357# Enable multi-ice-gdb-server. 1358AC_ARG_ENABLE(multi-ice, 1359[ --enable-multi-ice build the multi-ice-gdb-server], 1360 [case $enableval in 1361 yes | no) 1362 ;; 1363 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;; 1364 esac]) 1365if test "x$enable_multi_ice" = xyes; then 1366 configdirs="$configdirs multi-ice" 1367fi 1368 1369# We only build gdbserver automatically if host and target are the same. 1370if test "x$target" = "x$host"; then 1371 AC_MSG_CHECKING(whether gdbserver is supported on this host) 1372 if test "x$build_gdbserver" = xyes; then 1373 configdirs="$configdirs gdbserver" 1374 AC_MSG_RESULT(yes) 1375 else 1376 AC_MSG_RESULT(no) 1377 fi 1378fi 1379 1380AC_CONFIG_SUBDIRS($configdirs) 1381 1382# If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile 1383# (NAT_FILE) is not set in config/*/*.m[ht] files, we link to an empty 1384# version. 1385 1386files= 1387links= 1388 1389rm -f xm.h 1390xm_h="" 1391if test "${hostfile}" != ""; then 1392 xm_h=xm.h 1393 GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}" 1394 files="${files} ${GDB_XM_FILE}" 1395 links="${links} xm.h" 1396 AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE}) 1397fi 1398AC_SUBST(xm_h) 1399 1400rm -f tm.h 1401tm_h="" 1402if test "${targetfile}" != ""; then 1403 tm_h=tm.h 1404 GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}" 1405 files="${files} ${GDB_TM_FILE}" 1406 links="${links} tm.h" 1407 AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE}) 1408fi 1409AC_SUBST(tm_h) 1410 1411rm -f nm.h 1412nm_h="" 1413if test "${nativefile}" != ""; then 1414 nm_h=nm.h 1415 GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" 1416 files="${files} ${GDB_NM_FILE}" 1417 links="${links} nm.h" 1418 AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE}) 1419fi 1420AC_SUBST(nm_h) 1421 1422AC_LINK_FILES($files, $links) 1423 1424dnl Check for exe extension set on certain hosts (e.g. Win32) 1425AC_EXEEXT 1426 1427dnl Detect the character set used by this host. 1428 1429dnl At the moment, we just assume it's ISO-8859-1 (which is a 1430dnl superset of ASCII containing the characters needed for French, 1431dnl German, Spanish, Italian, and possibly others), but if were 1432dnl *were* to support any host character sets other than ISO-8859-1, 1433dnl here's where we'd detect it. 1434AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1", 1435 [Define to be a string naming the default host character set.]) 1436 1437AM_ICONV 1438 1439AC_OUTPUT(Makefile .gdbinit:gdbinit.in, 1440[ 1441dnl Autoconf doesn't provide a mechanism for modifying definitions 1442dnl provided by makefile fragments. 1443dnl 1444if test "${nativefile}" = ""; then 1445 < Makefile \ 1446 sed -e '/^NATDEPFILES[[ ]]*=.*\\$/,/[[^\\]]$/s/^/# /' \ 1447 -e '/^NATDEPFILES[[ ]]*=/s/^/# /' \ 1448 | sed -e '/^\(NATDEPFILES[[ ]]*[[+]]=[[ ]]*\)/s//# \1/' \ 1449 > Makefile.tem 1450mv -f Makefile.tem Makefile 1451fi 1452 1453changequote(,)dnl 1454sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/, 1455/^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/, 1456/^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp 1457mv -f Makefile.tmp Makefile 1458changequote([,])dnl 1459 1460 1461case x$CONFIG_HEADERS in 1462xconfig.h:config.in) 1463echo > stamp-h ;; 1464esac 1465], 1466[ 1467gdb_host_cpu=$gdb_host_cpu 1468gdb_target_cpu=$gdb_target_cpu 1469nativefile=$nativefile 1470]) 1471 1472exit 0 1473