Index: gdb/configure.ac |
diff --git a/gdb/configure.ac b/gdb/configure.ac |
index 2fc39ff954d138bc50c92fd5bca2f5674aa8c393..15c4f163cbf7e2e46c46dd3b500e361f4e1d5dab 100644 |
--- a/gdb/configure.ac |
+++ b/gdb/configure.ac |
@@ -23,14 +23,19 @@ AC_INIT(main.c) |
AC_CONFIG_HEADER(config.h:config.in) |
AM_MAINTAINER_MODE |
+# Provide more thorough testing by -lmcheck. |
+# Set it to 'true' for development snapshots, 'false' for releases or |
+# pre-releases. |
+development=false |
+ |
AC_PROG_CC |
AC_USE_SYSTEM_EXTENSIONS |
-gl_EARLY |
ACX_LARGEFILE |
AM_PROG_CC_STDC |
AC_CONFIG_AUX_DIR(..) |
AC_CANONICAL_SYSTEM |
+AC_ARG_PROGRAM |
# Dependency checking. |
ZW_CREATE_DEPDIR |
@@ -47,6 +52,12 @@ esac |
AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes) |
AC_PROG_MAKE_SET |
+# Configure gnulib. We need to build gnulib under some other |
+# directory not "gnulib", to avoid the problem of both GDB and |
+# GDBserver wanting to build it in the same directory, when building |
+# in the source dir. |
+ACX_CONFIGURE_DIR(["gnulib"], ["build-gnulib"]) |
+ |
dnl List of object files and targets accumulated by configure. |
CONFIG_OBS= |
@@ -72,12 +83,12 @@ if test x"$USE_NLS" = xyes; then |
CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po" |
fi |
-gl_INIT |
+GNULIB=build-gnulib/import |
# For Makefile dependencies. |
GNULIB_STDINT_H= |
if test x"$STDINT_H" != x; then |
- GNULIB_STDINT_H=gnulib/$STDINT_H |
+ GNULIB_STDINT_H=$GNULIB/$STDINT_H |
fi |
AC_SUBST(GNULIB_STDINT_H) |
@@ -105,14 +116,18 @@ if test x"$gdb_cv_have_makeinfo_click" = xyes; then |
fi |
AC_SUBST(MAKEINFO_EXTRA_FLAGS) |
-# GDB does not use automake, but gnulib does. This line lets us |
-# generate its Makefile.in. |
-AM_INIT_AUTOMAKE(gdb, UNUSED-VERSION, [no-define]) |
- |
GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir, |
[look for global separate debug info in this path @<:@LIBDIR/debug@:>@], |
[${libdir}/debug]) |
+# We can't pass paths as command line arguments. |
+# Mingw32 tries to be clever and will convert the paths for us. |
+# For example -DBINDIR="/usr/local/bin" passed on the command line may get |
+# converted to -DBINDIR="E:/msys/mingw32/msys/1.0/local/bin". |
+# This breaks GDB's relocatable path conversions since paths passed in |
+# config.h would not get so translated, the path prefixes no longer match. |
+AC_DEFINE_DIR(BINDIR, bindir, [Directory of programs.]) |
+ |
# GDB's datadir relocation |
GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir, |
@@ -126,6 +141,31 @@ AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this pat |
[Relocated directory for source files. ]) |
]) |
+AC_MSG_CHECKING([for default auto-load directory]) |
+AC_ARG_WITH(auto-load-dir, |
+AS_HELP_STRING([--with-auto-load-dir=PATH], |
+ [directories from which to load auto-loaded scripts @<:@$debugdir:$datadir/auto-load@:>@]),, |
+ [with_auto_load_dir='$debugdir:$datadir/auto-load']) |
+escape_dir=`echo $with_auto_load_dir | sed 's/[[$]]\(datadir\|debugdir\)\>/\\\\\\\\\\\\&/g'` |
+AC_DEFINE_DIR(AUTO_LOAD_DIR, escape_dir, |
+ [Directories from which to load auto-loaded scripts.]) |
+AC_MSG_RESULT([$with_auto_load_dir]) |
+ |
+AC_MSG_CHECKING([for default auto-load safe-path]) |
+AC_ARG_WITH(auto-load-safe-path, |
+AS_HELP_STRING([--with-auto-load-safe-path=PATH], |
+ [directories safe to hold auto-loaded files @<:@--with-auto-load-dir@:>@]) |
+AS_HELP_STRING([--without-auto-load-safe-path], |
+ [do not restrict auto-loaded files locations]), |
+ [if test "$with_auto_load_safe_path" = "no"; then |
+ with_auto_load_safe_path="/" |
+ fi], |
+[with_auto_load_safe_path="$with_auto_load_dir"]) |
+escape_dir=`echo $with_auto_load_safe_path | sed 's/[[$]]\(datadir\|debugdir\)\>/\\\\\\\\\\\\&/g'` |
+AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escape_dir, |
+ [Directories safe to hold auto-loaded files.]) |
+AC_MSG_RESULT([$with_auto_load_safe_path]) |
+ |
AC_CONFIG_SUBDIRS(testsuite) |
# Check whether to support alternative target configurations |
@@ -320,26 +360,44 @@ case $host_os in |
enable_gdbtk=no ;; |
esac |
-# Libunwind support. |
-AC_ARG_WITH(libunwind, |
-AS_HELP_STRING([--with-libunwind], [use libunwind frame unwinding support]), |
-[case "${withval}" in |
- yes) enable_libunwind=yes ;; |
- no) enable_libunwind=no ;; |
- *) AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;; |
-esac],[ |
- AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h) |
- if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then |
- enable_libunwind=yes; |
+# Libunwind support for ia64. |
+ |
+AC_ARG_WITH(libunwind-ia64, |
+AS_HELP_STRING([--with-libunwind-ia64], |
+ [use libunwind frame unwinding for ia64 targets]),, |
+ [with_libunwind_ia64=auto]) |
+ |
+# Backward compatibility option. |
+if test "${with_libunwind+set}" = set; then |
+ if test x"$with_libunwind_ia64" != xauto; then |
+ AC_MSG_ERROR( |
+ [option --with-libunwind is deprecated, use --with-libunwind-ia64]) |
fi |
-]) |
- |
-if test x"$enable_libunwind" = xyes; then |
- AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h) |
- AC_DEFINE(HAVE_LIBUNWIND, 1, [Define if libunwind library is being used.]) |
- CONFIG_OBS="$CONFIG_OBS libunwind-frame.o" |
- CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o" |
- CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c" |
+ AC_MSG_WARN([option --with-libunwind is deprecated, use --with-libunwind-ia64]) |
+ with_libunwind_ia64="$with_libunwind" |
+fi |
+ |
+case "$with_libunwind_ia64" in |
+ yes | no) |
+ ;; |
+ auto) |
+ AC_CHECK_HEADERS(libunwind-ia64.h) |
+ with_libunwind_ia64=$ac_cv_header_libunwind_ia64_h |
+ ;; |
+ *) |
+ AC_MSG_ERROR( |
+ [bad value $with_libunwind_ia64 for GDB --with-libunwind-ia64 option]) |
+ ;; |
+esac |
+ |
+if test x"$with_libunwind_ia64" = xyes; then |
+ AC_CHECK_HEADERS(libunwind-ia64.h) |
+ if test x"$ac_cv_header_libunwind_ia64_h" != xyes; then |
+ AC_MSG_ERROR([GDB option --with-libunwind-ia64 requires libunwind-ia64.h]) |
+ fi |
+ CONFIG_OBS="$CONFIG_OBS ia64-libunwind-tdep.o" |
+ CONFIG_DEPS="$CONFIG_DEPS ia64-libunwind-tdep.o" |
+ CONFIG_SRCS="$CONFIG_SRCS ia64-libunwind-tdep.c" |
fi |
opt_curses=no |
@@ -531,10 +589,6 @@ if test x"$enable_tui" != xno; then |
CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)" |
CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)" |
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 |
if test x"$enable_tui" = xyes; then |
AC_MSG_ERROR([no enhanced curses library found; disable TUI]) |
@@ -591,6 +645,11 @@ AC_SUBST(READLINE_DEPS) |
AC_SUBST(READLINE_CFLAGS) |
AC_SUBST(READLINE_TEXI_INCFLAG) |
+dnl -lmcheck provides cheap enough memory mangling for debugging purposes. |
+if $development; then |
+ AC_CHECK_LIB(mcheck, main) |
+fi |
+ |
# Generate jit-reader.h |
# This is typedeffed to GDB_CORE_ADDR in jit-reader.h |
@@ -718,7 +777,7 @@ if test "${with_python}" = no; then |
have_libpython=no |
else |
case "${with_python}" in |
- /*) |
+ [[\\/]]* | ?:[[\\/]]*) |
if test -d ${with_python}; then |
# Assume the python binary is ${with_python}/bin/python. |
python_prog="${with_python}/bin/python" |
@@ -963,14 +1022,14 @@ AC_HEADER_STDC |
# FIXME: kettenis/20030102: In most cases we include these (ctype.h, time.h) |
# unconditionally, so what's the point in checking these? |
AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \ |
- thread_db.h gnu/libc-version.h signal.h stddef.h \ |
+ thread_db.h signal.h stddef.h \ |
stdlib.h string.h memory.h strings.h sys/fault.h \ |
sys/file.h sys/filio.h sys/ioctl.h sys/param.h \ |
sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \ |
sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \ |
sys/types.h sys/wait.h wait.h termios.h termio.h \ |
sgtty.h unistd.h elf_hp.h ctype.h time.h locale.h \ |
- dlfcn.h]) |
+ dlfcn.h sys/socket.h sys/un.h]) |
AC_CHECK_HEADERS(link.h, [], [], |
[#if HAVE_SYS_TYPES_H |
# include <sys/types.h> |
@@ -1047,11 +1106,12 @@ AC_C_BIGENDIAN |
AC_FUNC_ALLOCA |
AC_FUNC_MMAP |
AC_FUNC_VFORK |
-AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid \ |
- getgid pipe poll pread64 resize_term sbrk setpgid setpgrp setsid \ |
+AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid getgid \ |
+ pipe poll pread pread64 pwrite readlink resize_term \ |
+ sbrk setpgid setpgrp setsid \ |
sigaction sigprocmask sigsetmask socketpair syscall \ |
ttrace wborder wresize setlocale iconvlist libiconvlist btowc \ |
- setrlimit getrlimit posix_madvise waitpid]) |
+ setrlimit getrlimit posix_madvise waitpid lstat]) |
AM_LANGINFO_CODESET |
# Check the return and argument types of ptrace. No canned test for |
@@ -1214,6 +1274,12 @@ fi |
AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [], |
[#include <machine/reg.h>]) |
+# See if <sys/user.h> supports the %fs_base and %gs_bas amd64 segment registers. |
+# Older amd64 Linux's don't have the fs_base and gs_base members of |
+# `struct user_regs_struct'. |
+AC_CHECK_MEMBERS([struct user_regs_struct.fs_base, struct user_regs_struct.gs_base], |
+ [], [], [#include <sys/user.h>]) |
+ |
# See if <sys/ptrace.h> provides the PTRACE_GETREGS request. |
AC_MSG_CHECKING(for PTRACE_GETREGS) |
AC_CACHE_VAL(gdb_cv_have_ptrace_getregs, |
@@ -1647,7 +1713,7 @@ if test ${build} = ${host} -a ${host} = ${target} ; then |
if test $gdb_cv_have_aix_thread_debug = yes; then |
CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c" |
CONFIG_OBS="${CONFIG_OBS} aix-thread.o" |
- CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug" |
+ LIBS="$LIBS -lpthdebug" |
# Older versions of AIX do not provide the declaration for |
# the getthrds function (it appears that it was introduced |
@@ -1745,42 +1811,20 @@ fi |
dnl Handle optional features that can be enabled. |
-target_sysroot_reloc=0 |
+# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR, |
+# except that the argument to --with-sysroot is optional. |
+# --with-sysroot (or --with-sysroot=yes) sets the default sysroot path. |
+if test "x$with_sysroot" = xyes; then |
+ with_sysroot="${exec_prefix}/${target_alias}/sys-root" |
+fi |
AC_ARG_WITH(sysroot, |
-AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [search for usr/lib et al within DIR]), |
-[ |
- case ${with_sysroot} in |
- yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;; |
- *) TARGET_SYSTEM_ROOT=$with_sysroot ;; |
- esac |
- |
- TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"' |
- |
- if test "x$prefix" = xNONE; then |
- test_prefix=/usr/local |
- else |
- test_prefix=$prefix |
- fi |
- if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then |
- test_exec_prefix=$test_prefix |
- else |
- test_exec_prefix=$exec_prefix |
- fi |
- case ${TARGET_SYSTEM_ROOT} in |
- "${test_prefix}"|"${test_prefix}/"*|\ |
- "${test_exec_prefix}"|"${test_exec_prefix}/"*|\ |
- '${prefix}'|'${prefix}/'*|\ |
- '${exec_prefix}'|'${exec_prefix}/'*) |
- target_sysroot_reloc=1 |
- ;; |
- esac |
-], [ |
- TARGET_SYSTEM_ROOT= |
- TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"' |
-]) |
-TARGET_SYSTEM_ROOT_DEFINE="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE=$target_sysroot_reloc" |
+ AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], |
+ [search for usr/lib et al within DIR]), |
+ [TARGET_SYSTEM_ROOT=$withval], [TARGET_SYSTEM_ROOT=]) |
+AC_DEFINE_DIR(TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT, |
+ [search for usr/lib et al within DIR]) |
AC_SUBST(TARGET_SYSTEM_ROOT) |
-AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) |
+GDB_AC_DEFINE_RELOCATABLE(TARGET_SYSTEM_ROOT, sysroot, ${ac_define_dir}) |
GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit, |
[automatically load a system-wide gdbinit file], |
@@ -1794,6 +1838,11 @@ AC_ARG_ENABLE(werror, |
*) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;; |
esac]) |
+# Enable -Werror by default when using gcc. Turn it off for releases. |
+if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" && $development; then |
+ ERROR_ON_WARNING=yes |
+fi |
+ |
WERROR_CFLAGS="" |
if test "${ERROR_ON_WARNING}" = yes ; then |
WERROR_CFLAGS="-Werror" |
@@ -1807,7 +1856,8 @@ fi |
build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \ |
-Wformat-nonliteral -Wno-pointer-sign \ |
-Wno-unused -Wunused-value -Wunused-function \ |
--Wno-switch -Wno-char-subscripts" |
+-Wno-switch -Wno-char-subscripts -Wmissing-prototypes \ |
+-Wdeclaration-after-statement" |
# Enable -Wno-format by default when using gcc on mingw since many |
# GCC versions complain about %I64. |
@@ -1908,8 +1958,11 @@ AC_SUBST(WIN32LIBS) |
OLD_CFLAGS=$CFLAGS |
OLD_LDFLAGS=$LDFLAGS |
OLD_LIBS=$LIBS |
-CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd" |
-LDFLAGS="$LDFLAGS -L../bfd -L../libiberty" |
+# Put the old CFLAGS/LDFLAGS last, in case the user's (C|LD)FLAGS |
+# points somewhere with bfd, with -I/foo/lib and -L/foo/lib. We |
+# always want our bfd. |
+CFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CFLAGS" |
+LDFLAGS="-L../bfd -L../libiberty $LDFLAGS" |
intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'` |
# -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>. |
if test "$plugins" = "yes"; then |
@@ -1925,7 +1978,7 @@ AC_CACHE_CHECK([for ELF support in BFD], gdb_cv_var_elf, |
[bfd *abfd = NULL; bfd_get_elf_phdr_upper_bound (abfd); ], |
gdb_cv_var_elf=yes, gdb_cv_var_elf=no)]) |
if test $gdb_cv_var_elf = yes; then |
- CONFIG_OBS="$CONFIG_OBS elfread.o" |
+ CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o" |
AC_DEFINE(HAVE_ELF, 1, |
[Define if ELF support should be included.]) |
# -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>. |
@@ -2221,7 +2274,7 @@ dnl At the moment, we just assume it's UTF-8. |
AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8", |
[Define to be a string naming the default host character set.]) |
-AC_OUTPUT(Makefile .gdbinit:gdbinit.in doc/Makefile gnulib/Makefile data-directory/Makefile, |
+AC_OUTPUT(Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile, |
[ |
case x$CONFIG_HEADERS in |
xconfig.h:config.in) |