dnl Autoconf configure script for GDB, the GNU debugger.
dnl Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-dnl 2005, 2006
+dnl 2005, 2006, 2007, 2008
dnl Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
AC_GNU_SOURCE
AC_AIX
AC_ISC_POSIX
+gl_EARLY
AM_PROG_CC_STDC
-AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
+AC_CONFIG_AUX_DIR(..)
AC_CANONICAL_SYSTEM
dnl List of object files and targets accumulated by configure.
CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
fi
+gl_INIT
+
+# For Makefile dependencies.
+GNULIB_STDINT_H=
+if test x"$STDINT_H" != x; then
+ GNULIB_STDINT_H=gnulib/$STDINT_H
+fi
+AC_SUBST(GNULIB_STDINT_H)
+
PACKAGE=gdb
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
AC_SUBST(PACKAGE)
+# GDB does not use automake, but gnulib does. This line lets us
+# generate its Makefile.in.
+AM_INIT_AUTOMAKE(gdb, UNUSED-VERSION, [no-define])
+
debugdir=${libdir}/debug
AC_ARG_WITH(separate-debug-dir,
[Define to BFD's default target vector. ])
fi
-AC_ARG_PROGRAM
-
# The CLI cannot be disabled yet, but may be in the future.
# Enable CLI.
AC_ARG_ENABLE(tui,
[ --enable-tui enable full-screen terminal user interface (TUI)],
[case $enableval in
- yes | no)
+ yes | no | auto)
;;
*)
AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
- esac],enable_tui=yes)
+ esac],enable_tui=auto)
# Enable gdbtk.
AC_ARG_ENABLE(gdbtk,
CFLAGS="$OLD_CFLAGS"
fi
+ACX_PKGVERSION([GDB])
+ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
+AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
+AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
+
# --------------------- #
# Checks for programs. #
# --------------------- #
# Some systems (e.g. Solaris) have `socketpair' in libsocket.
AC_SEARCH_LIBS(socketpair, socket)
+# Link in zlib if we can. This allows us to read compressed debug sections.
+AC_SEARCH_LIBS(zlibVersion, z, [AC_CHECK_HEADERS(zlib.h)])
+
# For the TUI, we need enhanced curses functionality.
#
# FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
AC_CHECK_HEADERS(signal.h)
AC_CHECK_HEADERS(stddef.h)
AC_CHECK_HEADERS(stdlib.h)
-AC_CHECK_HEADERS(stdint.h)
AC_CHECK_HEADERS(string.h memory.h strings.h)
AC_CHECK_HEADERS(sys/fault.h)
AC_CHECK_HEADERS(sys/file.h)
# unconditionally, so what's the point in checking these?
AC_CHECK_HEADERS(ctype.h time.h)
-# Create a header we can use portably to get the standard integer types.
-GCC_HEADER_STDINT(gdb_stdint.h)
-
# ------------------------- #
# Checks for declarations. #
# ------------------------- #
[#include <sys/types.h>
#include <sys/socket.h>
])
-AC_CHECK_TYPES(uintptr_t, [], [], [#include <stdint.h>])
# ------------------------------------- #
# Checks for compiler characteristics. #
AC_CHECK_FUNCS(poll)
AC_CHECK_FUNCS(pread64)
AC_CHECK_FUNCS(sbrk)
-AC_CHECK_FUNCS(setpgid setpgrp)
+AC_CHECK_FUNCS(setpgid setpgrp setsid)
AC_CHECK_FUNCS(sigaction sigprocmask sigsetmask)
AC_CHECK_FUNCS(socketpair)
AC_CHECK_FUNCS(syscall)
: ${gdb_cv_func_ptrace_ret='int'}
: ${gdb_cv_func_ptrace_args='int,int,long,long'}
], $gdb_ptrace_headers)
-# Check return type.
+# Check return type. Varargs (used on GNU/Linux) conflict with the
+# empty argument list, so check for that explicitly.
AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
AC_TRY_COMPILE($gdb_ptrace_headers,
- [extern int ptrace ();],
- gdb_cv_func_ptrace_ret='int',
- gdb_cv_func_ptrace_ret='long'))
+ [extern long ptrace (enum __ptrace_request, ...);],
+ gdb_cv_func_ptrace_ret='long',
+ AC_TRY_COMPILE($gdb_ptrace_headers,
+ [extern int ptrace ();],
+ gdb_cv_func_ptrace_ret='int',
+ gdb_cv_func_ptrace_ret='long')))
AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
[Define as the return type of ptrace.])
# Check argument types.
AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
+ AC_TRY_COMPILE($gdb_ptrace_headers,
+ [extern long ptrace (enum __ptrace_request, ...);],
+ [gdb_cv_func_ptrace_args='int,int,long,long'],[
for gdb_arg1 in 'int' 'long'; do
for gdb_arg2 in 'pid_t' 'int' 'long'; do
for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do
done
# Provide a safe default value.
: ${gdb_cv_func_ptrace_args='int,int,long,long'}
-])
+])])
ac_save_IFS=$IFS; IFS=','
set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
IFS=$ac_save_IFS
AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
fi
+dnl Check if we can disable the virtual address space randomization.
+dnl The functionality of setarch -R.
+AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>])
+define([PERSONALITY_TEST], [AC_LANG_PROGRAM([#include <sys/personality.h>], [
+# if !HAVE_DECL_ADDR_NO_RANDOMIZE
+# define ADDR_NO_RANDOMIZE 0x0040000
+# endif
+ /* Test the flag could be set and stays set. */
+ personality (personality (0xffffffff) | ADDR_NO_RANDOMIZE);
+ if (!(personality (personality (0xffffffff)) & ADDR_NO_RANDOMIZE))
+ return 1])])
+AC_RUN_IFELSE([PERSONALITY_TEST],
+ [have_personality=true],
+ [have_personality=false],
+ [AC_LINK_IFELSE([PERSONALITY_TEST],
+ [have_personality=true],
+ [have_personality=false])])
+if $have_personality
+then
+ AC_DEFINE([HAVE_PERSONALITY], 1,
+ [Define if you support the personality syscall.])
+fi
+
dnl Handle optional features that can be enabled.
AC_ARG_WITH(sysroot,
-Wformat-nonliteral -Wno-pointer-sign \
-Wno-unused -Wno-switch -Wno-char-subscripts"
+# Enable -Wno-format by default when using gcc on mingw since many
+# GCC versions complain about %I64.
+case "${host}" in
+ *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
+esac
+
AC_ARG_ENABLE(build-warnings,
[ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
[case "${enableval}" in
CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd"
LDFLAGS="$LDFLAGS -L../bfd -L../libiberty"
intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
-LIBS="$LIBS -lbfd -liberty $intl"
+LIBS="-lbfd -liberty $intl $LIBS"
AC_CACHE_CHECK([for ELF support in BFD], gdb_cv_var_elf,
[AC_TRY_LINK(
[#include <stdlib.h>
AC_SUBST(WIN32LDAPP)
case "${host}" in
-*-*-cygwin*)
+*-*-cygwin* | *-*-mingw* )
configdir="win"
;;
*)
# Check whether we should enable the TUI, but only do so if we really
# can.
-if test x"$enable_tui" = xyes; then
+if test x"$enable_tui" != xno; then
if test -d $srcdir/tui; then
if test "$ac_cv_search_waddstr" != no; then
CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
- CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_TUI_INITS)"
ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
CONFIG_ALL="${CONFIG_ALL} all-tui"
CONFIG_CLEAN="${CONFIG_CLEAN} clean-tui"
CONFIG_INSTALL="${CONFIG_INSTALL} install-tui"
CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-tui"
else
- AC_MSG_WARN([no enhanced curses library found; disabling TUI])
+ if test x"$enable_tui" = xyes; then
+ AC_MSG_ERROR([no enhanced curses library found; disable TUI])
+ else
+ AC_MSG_WARN([no enhanced curses library found; disabling TUI])
+ fi
fi
fi
fi
AM_ICONV
-AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
+AC_OUTPUT(Makefile .gdbinit:gdbinit.in gnulib/Makefile,
[
dnl Autoconf doesn't provide a mechanism for modifying definitions
dnl provided by makefile fragments.