1999-04-16 03:35:26 +02:00
dnl Autoconf configure script for GDB, the GNU debugger.
2013-01-01 07:33:28 +01:00
dnl Copyright (C) 1995-2013 Free Software Foundation, Inc.
1999-04-16 03:35:26 +02:00
dnl
dnl This file is part of GDB.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
2007-08-23 19:58:44 +02:00
dnl the Free Software Foundation; either version 3 of the License, or
1999-04-16 03:35:26 +02:00
dnl (at your option) any later version.
2007-08-23 19:58:44 +02:00
dnl
1999-04-16 03:35:26 +02:00
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
2007-08-23 19:58:44 +02:00
dnl
1999-04-16 03:35:26 +02:00
dnl You should have received a copy of the GNU General Public License
2007-08-23 19:58:44 +02:00
dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
1999-04-16 03:35:26 +02:00
dnl Process this file with autoconf to produce a configure script.
Index: ChangeLog
2005-01-07 Andrew Cagney <cagney@gnu.org>
* configure.ac: Rename configure.in, require autoconf 2.59.
* configure: Re-generate.
Index: doc/ChangeLog
2005-01-07 Andrew Cagney <cagney@gnu.org>
* configure.ac: Rename configure.in, require autoconf 2.59.
* configure: Re-generate.
Index: gdbserver/ChangeLog
2005-01-07 Andrew Cagney <cagney@gnu.org>
* configure.ac: Rename configure.in, require autoconf 2.59.
* configure: Re-generate.
Index: testsuite/ChangeLog
2005-01-07 Andrew Cagney <cagney@gnu.org>
* configure.ac: Rename configure.in, require autoconf 2.59.
* configure: Re-generate.
* gdb.stabs/configure.ac: Rename configure.in, require autoconf 2.59.
* gdb.stabs/configure: Re-generate.
* gdb.hp/configure.ac: Rename configure.in, require autoconf 2.59.
* gdb.hp/configure: Re-generate.
* gdb.hp/gdb.objdbg/configure.ac: Rename configure.in, require
autoconf 2.59.
* gdb.hp/gdb.objdbg/configure: Re-generate.
* gdb.hp/gdb.defects/configure.ac: Rename configure.in, require
autoconf 2.59.
* gdb.hp/gdb.defects/configure: Re-generate.
* gdb.hp/gdb.compat/configure.ac: Rename configure.in, require
autoconf 2.59.
* gdb.hp/gdb.compat/configure: Re-generate.
* gdb.hp/gdb.base-hp/configure.ac: Rename configure.in, require
autoconf 2.59.
* gdb.hp/gdb.base-hp/configure: Re-generate.
* gdb.hp/gdb.aCC/configure.ac: Rename configure.in, require
autoconf 2.59.
* gdb.hp/gdb.aCC/configure: Re-generate.
2005-01-07 22:53:26 +01:00
AC_PREREQ(2.59)dnl
1999-04-16 03:35:26 +02:00
AC_INIT(main.c)
AC_CONFIG_HEADER(config.h:config.in)
2000-04-13 07:33:41 +02:00
AM_MAINTAINER_MODE
1999-04-16 03:35:26 +02:00
2012-06-06 18:57:38 +02:00
# Provide more thorough testing by -lmcheck.
# Set it to 'true' for development snapshots, 'false' for releases or
# pre-releases.
development=true
1999-04-16 03:35:26 +02:00
AC_PROG_CC
2009-08-22 17:59:24 +02:00
AC_USE_SYSTEM_EXTENSIONS
2009-11-11 05:42:42 +01:00
ACX_LARGEFILE
1999-04-16 03:35:26 +02:00
AM_PROG_CC_STDC
* Makefile.in (LIBGNU, INCGNU): Define.
(INTERNAL_CFLAGS_BASE): Add INCGNU.
(INTERNAL_LIBS, CLIBS, CDEPS): Add LIBGNU.
(CLEANDIRS): New.
($(LIBGNU), all-lib): New rules.
(clean, distclean, do-maintainer-clean): Use CLEANDIRS.
* configure.ac: Use gl_EARLY, gl_INIT, and AM_INIT_AUTOMAKE.
Simplify AC_CONFIG_AUX_DIR. Generate gnulib/Makefile.
* gnulib: New directory, from gnulib-tool.
* configure, aclocal.m4: Regenerated.
* Makefile.in (LIBOBJS): New.
(OBS): Use LIBOBJS.
(memmem.o): New rule.
* configure.ac: Use AC_CONFIG_LIBOBJ_DIR and check for memmem.
* configure: Regenerated.
2008-04-14 20:04:00 +02:00
AC_CONFIG_AUX_DIR(..)
1999-04-16 03:35:26 +02:00
AC_CANONICAL_SYSTEM
2012-04-27 20:30:20 +02:00
AC_ARG_PROGRAM
1999-04-16 03:35:26 +02:00
gdb/
* aclocal.m4, configure: Rebuild.
* configure.in: Call ZW_CREATE_DEPDIR,
ZW_PROG_COMPILER_DEPENDENCIES, AC_PROG_MAKE_SET.
(MAKE, GMAKE): New substs.
* acinclude.m4: Include depstand.m4.
* Makefile.in (DEPMODE, DEPDIR, COMPILE.post, COMPILE.pre,
COMPILE, POSTCOMPILE, depcomp): New variables.
Remove all _h variables.
Remove many .o targets.
($(srcdir)/copying.c): avoid backslash-newline after comment
sign (@maintainer_mode_true@).
(HFILES_NO_SRCDIR): Regenerate.
(generated_files): New variable.
(all_gdbtk_cflags): Likewise.
(.c.o): Rewrote.
(init.o, version.o, copying.o): Remove.
(distclean): Remove DEPDIR.
(test-cp-name-parser.o, hpux-thread.o, main.o, monitor.o,
printcmd.o, procfs.o, v850ice.o): Rewrite.
(cli-cmds.o, cli-decode.o, cli-dump.o, cli-interp.o, cli-logging.o,
cli-script.o, cli-setshow.o, cli-utils.o): Likewise.
(gdbtk.o, gdbtk-bp.o, gdbtk-cmds.o, gdbtk-hooks.o, gdbtk-interp.o,
gdbtk-main.o, gdbtk-register.o, gdbtk-stack.o, gdbtk-varobj.o,
gdbtk-wrapper.o): Likewise.
(mi-cmd-break.o, mi-cmd-disas.o, mi-cmd-env.o, mi-cmd-file.o,
mi-cmds.o, mi-cmd-stack.o, mi-cmd-target.o, mi-cmd-var.o,
mi-console.o, mi-getopt.o, mi-interp.o, mi-main.o, mi-out.o,
mi-parse.o, mi-symbol-cmds.o, mi-common.o, signals.o, tui.o,
tui-command.o, tui-data.o, tui-disasm.o, tui-file.o, tui-hooks.o,
tui-interp.o, tui-io.o, tui-layout.o, tui-main.o, tui-out.o,
tui-regs.o, tui-source.o, tui-stack.o, tui-win.o, tui-windata.o,
tui-wingeneral.o, tui-winsource.o): Likewise.
(all_object_files): New variable.
($(all_object_files)): New target.
Include dependency files, when using GNU Make.
gdb/gdbserver/
* Makefile.in (GDBREPLAY_OBS): New variable.
(gdbreplay$(EXEEXT)): Use it to avoid unportable $^.
2008-08-08 00:49:10 +02:00
# Dependency checking.
ZW_CREATE_DEPDIR
ZW_PROG_COMPILER_DEPENDENCIES([CC])
# Check for the 'make' the user wants to use.
AC_CHECK_PROGS(MAKE, make)
MAKE_IS_GNU=
case "`$MAKE --version 2>&1 | sed 1q`" in
*GNU*)
MAKE_IS_GNU=yes
;;
esac
AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes)
AC_PROG_MAKE_SET
2012-04-19 Pedro Alves <palves@redhat.com>
gdb/
* Makefile.in (GNULIB_BUILDDIR): New.
(LIBGNU, INCGNU, GNULIB_H): Adjust.
(SUBDIRS): Add $(GNULIB_BUILDDIR).
(CLEANDIRS). Remove gnulib/import.
(REQUIRED_SUBDIRS): Replace gnulib/import with $(GNULIB_BUILDDIR).
(all-lib): Ditto.
(distclean): Remove the $(GNULIB_BUILDDIR) directory.
(gnulib/import/Makefile): Replace gnulib/import with
$(GNULIB_BUILDDIR). Set CONFIG_FILES to just Makefile.
(ACLOCAL_AMFLAGS): Remove '-I gnulib/import/m4'.
(aclocal_m4_deps): Remove the gnulib dependencies. Add
acx_configure_dir.m4.
* acinclude.m4: Include acx_configure_dir.m4.
* acx_configure_dir.m4: New file.
* aclocal.m4: Regenerate.
* configure.ac: Remove gl_EARLY, gl_INIT and AM_INIT_AUTOMAKE
calls. Configure gnulib using ACX_CONFIGURE_DIR.
(GNULIB): New variable.
(GNULIB_STDINT_H): Adjust.
(AC_OUTPUT): Don't output gnulib/Makefile.
* gdb/defs.h: Include build-gnulib/config.h.
* aclocal.m4: Regenerate.
* config.in: Regenerate.
* configure: Regenerate.
* gnulib/Makefile.in: New file.
* gnulib/configure.ac: New file.
* gnulib/aclocal.m4: New file.
* gnulib/config.in: New file.
* gnulib/configure: New file.
* gnulib/: Re-run gnulib-tool to adjust.
gdb/gdbserver/
* Makefile.in (GNULIB_BUILDDIR): New.
(LIBGNU, INCGNU, GNULIB_H): Adjust.
(SUBDIRS, CLEANDIRS, REQUIRED_SUBDIRS): New.
(all, install-only, uninstall, clean-info, all-lib, clean): No
longer pass GNULIB_FLAGS_TO_PASS. Use subdir_do.
(maintainer-clean realclean distclean): Use subdir_do.
(subdir_do): New.
(gnulib/import/Makefile): Adjust. Replace gnulib/import with
$(GNULIB_BUILDDIR). Don't pass argument to config.status.
* acinclude.m4: Include acx_configure_dir.m4.
* configure.ac: Remove gl_EARLY, gl_INIT, and AM_INIT_AUTOMAKE
calls. Call AC_PROG_RANLIB. Configure gnulib using
ACX_CONFIGURE_DIR.
(GNULIB): New.
(GNULIB_STDINT_H): Adjust.
(AC_OUTPUT): Don't output gnulib/Makefile anymore.
* gdbreplay.c: Include build-gnulib/config.h.
* server.h: Likewise.
* aclocal.m4: Regenerate.
* config.in: Regenerate.
* configure: Regenerate.
2012-04-19 21:34:52 +02:00
# 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"])
2004-07-29 Andrew Cagney <cagney@gnu.org>
Fix PR i18n/761.
* Makefile.in (.SUFFIXES): Add po .gmo, and .pox.
(.PHONY): Add all-po install-po, uninstall-po, clean-po,
$(PACKAGE).pot and update-po.
(all-po, .po.gmo, .po.pox, install-po, $(PACKAGE).pot)
(po/$(PACKAGE).pot, clean-po, uninstall-po, install-po)
(update-po): New rules.
(localedir): Define using autoconf.
(diststuff): Add $(PACKAGE).pot and $(CATALOGS)
(GDB_CFLAGS): Define LOCALEDIR using $(localedir).
(XGETTEXT, GMSGFMT, MSGMERGE, PACKAGE, CATALOGS): Define.
* configure.in: Generate CATALOGS and LINGUAS from contents of
src/gdb/po/ directory. Set @localedir@ in Makefile.in.
* configure: Re-generate.
* po/gdbtext: New file
2004-07-30 16:30:08 +02:00
dnl List of object files and targets accumulated by configure.
CONFIG_OBS=
CONFIG_DEPS=
CONFIG_SRCS=
ENABLE_CFLAGS=
CONFIG_ALL=
CONFIG_CLEAN=
CONFIG_INSTALL=
CONFIG_UNINSTALL=
2006-05-31 17:14:46 +02:00
dnl Set up for gettext.
ZW_GNU_GETTEXT_SISTER_DIR
2004-07-29 Andrew Cagney <cagney@gnu.org>
Fix PR i18n/761.
* Makefile.in (.SUFFIXES): Add po .gmo, and .pox.
(.PHONY): Add all-po install-po, uninstall-po, clean-po,
$(PACKAGE).pot and update-po.
(all-po, .po.gmo, .po.pox, install-po, $(PACKAGE).pot)
(po/$(PACKAGE).pot, clean-po, uninstall-po, install-po)
(update-po): New rules.
(localedir): Define using autoconf.
(diststuff): Add $(PACKAGE).pot and $(CATALOGS)
(GDB_CFLAGS): Define LOCALEDIR using $(localedir).
(XGETTEXT, GMSGFMT, MSGMERGE, PACKAGE, CATALOGS): Define.
* configure.in: Generate CATALOGS and LINGUAS from contents of
src/gdb/po/ directory. Set @localedir@ in Makefile.in.
* configure: Re-generate.
* po/gdbtext: New file
2004-07-30 16:30:08 +02:00
localedir='${datadir}/locale'
AC_SUBST(localedir)
2006-05-31 17:14:46 +02:00
if test x"$USE_NLS" = xyes; then
2004-07-29 Andrew Cagney <cagney@gnu.org>
Fix PR i18n/761.
* Makefile.in (.SUFFIXES): Add po .gmo, and .pox.
(.PHONY): Add all-po install-po, uninstall-po, clean-po,
$(PACKAGE).pot and update-po.
(all-po, .po.gmo, .po.pox, install-po, $(PACKAGE).pot)
(po/$(PACKAGE).pot, clean-po, uninstall-po, install-po)
(update-po): New rules.
(localedir): Define using autoconf.
(diststuff): Add $(PACKAGE).pot and $(CATALOGS)
(GDB_CFLAGS): Define LOCALEDIR using $(localedir).
(XGETTEXT, GMSGFMT, MSGMERGE, PACKAGE, CATALOGS): Define.
* configure.in: Generate CATALOGS and LINGUAS from contents of
src/gdb/po/ directory. Set @localedir@ in Makefile.in.
* configure: Re-generate.
* po/gdbtext: New file
2004-07-30 16:30:08 +02:00
CONFIG_ALL="$CONFIG_ALL all-po"
CONFIG_CLEAN="$CONFIG_CLEAN clean-po"
CONFIG_INSTALL="$CONFIG_INSTALL install-po"
CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
fi
2012-04-19 Pedro Alves <palves@redhat.com>
gdb/
* Makefile.in (GNULIB_BUILDDIR): New.
(LIBGNU, INCGNU, GNULIB_H): Adjust.
(SUBDIRS): Add $(GNULIB_BUILDDIR).
(CLEANDIRS). Remove gnulib/import.
(REQUIRED_SUBDIRS): Replace gnulib/import with $(GNULIB_BUILDDIR).
(all-lib): Ditto.
(distclean): Remove the $(GNULIB_BUILDDIR) directory.
(gnulib/import/Makefile): Replace gnulib/import with
$(GNULIB_BUILDDIR). Set CONFIG_FILES to just Makefile.
(ACLOCAL_AMFLAGS): Remove '-I gnulib/import/m4'.
(aclocal_m4_deps): Remove the gnulib dependencies. Add
acx_configure_dir.m4.
* acinclude.m4: Include acx_configure_dir.m4.
* acx_configure_dir.m4: New file.
* aclocal.m4: Regenerate.
* configure.ac: Remove gl_EARLY, gl_INIT and AM_INIT_AUTOMAKE
calls. Configure gnulib using ACX_CONFIGURE_DIR.
(GNULIB): New variable.
(GNULIB_STDINT_H): Adjust.
(AC_OUTPUT): Don't output gnulib/Makefile.
* gdb/defs.h: Include build-gnulib/config.h.
* aclocal.m4: Regenerate.
* config.in: Regenerate.
* configure: Regenerate.
* gnulib/Makefile.in: New file.
* gnulib/configure.ac: New file.
* gnulib/aclocal.m4: New file.
* gnulib/config.in: New file.
* gnulib/configure: New file.
* gnulib/: Re-run gnulib-tool to adjust.
gdb/gdbserver/
* Makefile.in (GNULIB_BUILDDIR): New.
(LIBGNU, INCGNU, GNULIB_H): Adjust.
(SUBDIRS, CLEANDIRS, REQUIRED_SUBDIRS): New.
(all, install-only, uninstall, clean-info, all-lib, clean): No
longer pass GNULIB_FLAGS_TO_PASS. Use subdir_do.
(maintainer-clean realclean distclean): Use subdir_do.
(subdir_do): New.
(gnulib/import/Makefile): Adjust. Replace gnulib/import with
$(GNULIB_BUILDDIR). Don't pass argument to config.status.
* acinclude.m4: Include acx_configure_dir.m4.
* configure.ac: Remove gl_EARLY, gl_INIT, and AM_INIT_AUTOMAKE
calls. Call AC_PROG_RANLIB. Configure gnulib using
ACX_CONFIGURE_DIR.
(GNULIB): New.
(GNULIB_STDINT_H): Adjust.
(AC_OUTPUT): Don't output gnulib/Makefile anymore.
* gdbreplay.c: Include build-gnulib/config.h.
* server.h: Likewise.
* aclocal.m4: Regenerate.
* config.in: Regenerate.
* configure: Regenerate.
2012-04-19 21:34:52 +02:00
GNULIB=build-gnulib/import
* Makefile.in (LIBGNU, INCGNU): Define.
(INTERNAL_CFLAGS_BASE): Add INCGNU.
(INTERNAL_LIBS, CLIBS, CDEPS): Add LIBGNU.
(CLEANDIRS): New.
($(LIBGNU), all-lib): New rules.
(clean, distclean, do-maintainer-clean): Use CLEANDIRS.
* configure.ac: Use gl_EARLY, gl_INIT, and AM_INIT_AUTOMAKE.
Simplify AC_CONFIG_AUX_DIR. Generate gnulib/Makefile.
* gnulib: New directory, from gnulib-tool.
* configure, aclocal.m4: Regenerated.
* Makefile.in (LIBOBJS): New.
(OBS): Use LIBOBJS.
(memmem.o): New rule.
* configure.ac: Use AC_CONFIG_LIBOBJ_DIR and check for memmem.
* configure: Regenerated.
2008-04-14 20:04:00 +02:00
* Makefile.in (GNULIB_H): Use GNULIB_STDINT_H.
(gdb_stdint_h, gdb_stdint.h, stamp-int): Delete. Remove
all dependencies on $(gdb_stdint_h).
(distclean): Do not delete gdb_stdint.h.
* acinclude.m4: Do not use stdint.m4.
* configure.ac: Set GNULIB_STDINT_H. Remove tests for stdint.h,
uintptr_t, and gdb_stdint.h.
* defs.h: Include <stdint.h>.
* gdb_thread_db.h: Assume stdint.h is already included.
* breakpoint.c, findcmd.c, hppa-tdep.c, inf-ptrace.c, proc-service.c,
rs6000-nat.c, spu-linux-nat.c, target.c, win32-nat.c: Do not
include gdb_stdint.h.
* configure, config.in: Regenerate.
2008-06-26 17:51:28 +02:00
# For Makefile dependencies.
GNULIB_STDINT_H=
if test x"$STDINT_H" != x; then
2012-04-19 Pedro Alves <palves@redhat.com>
gdb/
* Makefile.in (GNULIB_BUILDDIR): New.
(LIBGNU, INCGNU, GNULIB_H): Adjust.
(SUBDIRS): Add $(GNULIB_BUILDDIR).
(CLEANDIRS). Remove gnulib/import.
(REQUIRED_SUBDIRS): Replace gnulib/import with $(GNULIB_BUILDDIR).
(all-lib): Ditto.
(distclean): Remove the $(GNULIB_BUILDDIR) directory.
(gnulib/import/Makefile): Replace gnulib/import with
$(GNULIB_BUILDDIR). Set CONFIG_FILES to just Makefile.
(ACLOCAL_AMFLAGS): Remove '-I gnulib/import/m4'.
(aclocal_m4_deps): Remove the gnulib dependencies. Add
acx_configure_dir.m4.
* acinclude.m4: Include acx_configure_dir.m4.
* acx_configure_dir.m4: New file.
* aclocal.m4: Regenerate.
* configure.ac: Remove gl_EARLY, gl_INIT and AM_INIT_AUTOMAKE
calls. Configure gnulib using ACX_CONFIGURE_DIR.
(GNULIB): New variable.
(GNULIB_STDINT_H): Adjust.
(AC_OUTPUT): Don't output gnulib/Makefile.
* gdb/defs.h: Include build-gnulib/config.h.
* aclocal.m4: Regenerate.
* config.in: Regenerate.
* configure: Regenerate.
* gnulib/Makefile.in: New file.
* gnulib/configure.ac: New file.
* gnulib/aclocal.m4: New file.
* gnulib/config.in: New file.
* gnulib/configure: New file.
* gnulib/: Re-run gnulib-tool to adjust.
gdb/gdbserver/
* Makefile.in (GNULIB_BUILDDIR): New.
(LIBGNU, INCGNU, GNULIB_H): Adjust.
(SUBDIRS, CLEANDIRS, REQUIRED_SUBDIRS): New.
(all, install-only, uninstall, clean-info, all-lib, clean): No
longer pass GNULIB_FLAGS_TO_PASS. Use subdir_do.
(maintainer-clean realclean distclean): Use subdir_do.
(subdir_do): New.
(gnulib/import/Makefile): Adjust. Replace gnulib/import with
$(GNULIB_BUILDDIR). Don't pass argument to config.status.
* acinclude.m4: Include acx_configure_dir.m4.
* configure.ac: Remove gl_EARLY, gl_INIT, and AM_INIT_AUTOMAKE
calls. Call AC_PROG_RANLIB. Configure gnulib using
ACX_CONFIGURE_DIR.
(GNULIB): New.
(GNULIB_STDINT_H): Adjust.
(AC_OUTPUT): Don't output gnulib/Makefile anymore.
* gdbreplay.c: Include build-gnulib/config.h.
* server.h: Likewise.
* aclocal.m4: Regenerate.
* config.in: Regenerate.
* configure: Regenerate.
2012-04-19 21:34:52 +02:00
GNULIB_STDINT_H=$GNULIB/$STDINT_H
* Makefile.in (GNULIB_H): Use GNULIB_STDINT_H.
(gdb_stdint_h, gdb_stdint.h, stamp-int): Delete. Remove
all dependencies on $(gdb_stdint_h).
(distclean): Do not delete gdb_stdint.h.
* acinclude.m4: Do not use stdint.m4.
* configure.ac: Set GNULIB_STDINT_H. Remove tests for stdint.h,
uintptr_t, and gdb_stdint.h.
* defs.h: Include <stdint.h>.
* gdb_thread_db.h: Assume stdint.h is already included.
* breakpoint.c, findcmd.c, hppa-tdep.c, inf-ptrace.c, proc-service.c,
rs6000-nat.c, spu-linux-nat.c, target.c, win32-nat.c: Do not
include gdb_stdint.h.
* configure, config.in: Regenerate.
2008-06-26 17:51:28 +02:00
fi
AC_SUBST(GNULIB_STDINT_H)
2004-07-29 Andrew Cagney <cagney@gnu.org>
Fix PR i18n/761.
* Makefile.in (.SUFFIXES): Add po .gmo, and .pox.
(.PHONY): Add all-po install-po, uninstall-po, clean-po,
$(PACKAGE).pot and update-po.
(all-po, .po.gmo, .po.pox, install-po, $(PACKAGE).pot)
(po/$(PACKAGE).pot, clean-po, uninstall-po, install-po)
(update-po): New rules.
(localedir): Define using autoconf.
(diststuff): Add $(PACKAGE).pot and $(CATALOGS)
(GDB_CFLAGS): Define LOCALEDIR using $(localedir).
(XGETTEXT, GMSGFMT, MSGMERGE, PACKAGE, CATALOGS): Define.
* configure.in: Generate CATALOGS and LINGUAS from contents of
src/gdb/po/ directory. Set @localedir@ in Makefile.in.
* configure: Re-generate.
* po/gdbtext: New file
2004-07-30 16:30:08 +02:00
PACKAGE=gdb
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
AC_SUBST(PACKAGE)
2002-06-22 01:48:41 +02:00
2012-02-21 23:00:32 +01:00
# We never need to detect it in this sub-configure.
# But preserve it for config.status --recheck.
AC_ARG_VAR(MAKEINFO,
[Parent configure detects if it is of sufficient version.])
AC_ARG_VAR(MAKEINFOFLAGS,
[Parameters for MAKEINFO.])
gdb/
Fix compatibility with texinfo versions older than 4.12.
* Makefile.in (MAKEINFO): Set to @MAKEINFO@.
(MAKEINFOFLAGS, MAKEINFO_EXTRA_FLAGS, MAKEINFO_CMD): New.
(MAKEHTMLFLAGS): Use MAKEINFO_CMD.
(FLAGS_TO_PASS): Add MAKEINFOFLAGS and MAKEINFO_EXTRA_FLAGS.
* configure: Regenerate.
* configure.ac (MAKEINFO): Find it, from libiberty/configure.ac.
(MAKEINFOFLAGS): Pre-set it to --split-size=5000000.
(MAKEINFO_EXTRA_FLAGS): New test for -DHAVE_MAKEINFO_CLICK.
gdb/doc/
Fix compatibility with texinfo versions older than 4.12.
* Makefile.in (MAKEINFO): Set to @MAKEINFO@.
(MAKEINFOFLAGS, MAKEINFO_EXTRA_FLAGS, MAKEINFO_CMD): New.
(MAKEHTMLFLAGS): Use MAKEINFO_CMD.
(gdb.info, gdbint.info, stabs.info, annotate.info): Use MAKEINFO_CMD.
* gdb.texinfo (Tail Call Frames): Convert @arrow{} to @click, when possible.
Make the conversion conditional on HAVE_MAKEINFO_CLICK, using variables
CALLSEQ1A, CALLSEQ1B, CALLSEQ2A and CALLSEQ2B.
2011-10-12 17:55:04 +02:00
MAKEINFO_EXTRA_FLAGS=""
AC_CACHE_CHECK([whether $MAKEINFO supports @click], gdb_cv_have_makeinfo_click,
[echo '@clicksequence{a @click{} b}' >conftest.texinfo
if eval "$MAKEINFO conftest.texinfo >&5 2>&5"; then
gdb_cv_have_makeinfo_click=yes
else
gdb_cv_have_makeinfo_click=no
fi])
if test x"$gdb_cv_have_makeinfo_click" = xyes; then
MAKEINFO_EXTRA_FLAGS="$MAKEINFO_EXTRA_FLAGS -DHAVE_MAKEINFO_CLICK"
fi
AC_SUBST(MAKEINFO_EXTRA_FLAGS)
2009-04-23 23:28:20 +02:00
GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir,
[look for global separate debug info in this path @<:@LIBDIR/debug@:>@],
[${libdir}/debug])
2012-01-18 19:35:43 +01:00
# 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.])
2009-04-23 23:28:20 +02:00
# GDB's datadir relocation
GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir,
[look for global separate data files in this path @<:@DATADIR/gdb@:>@],
[${datadir}/gdb])
2007-01-09 22:34:30 +01:00
2009-04-21 12:13:05 +02:00
AC_ARG_WITH(relocated-sources,
2009-04-22 02:17:50 +02:00
AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this path for source files]),
2009-04-21 12:13:05 +02:00
[reloc_srcdir="${withval}"
AC_DEFINE_DIR(RELOC_SRCDIR, reloc_srcdir,
[Relocated directory for source files. ])
])
2012-05-11 20:20:26 +02:00
AC_MSG_CHECKING([for default auto-load directory])
AC_ARG_WITH(auto-load-dir,
AS_HELP_STRING([--with-auto-load-dir=PATH],
2012-05-20 22:35:19 +02:00
[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'`
2012-05-11 20:20:26 +02:00
AC_DEFINE_DIR(AUTO_LOAD_DIR, escape_dir,
[Directories from which to load auto-loaded scripts.])
AC_MSG_RESULT([$with_auto_load_dir])
2012-04-17 17:54:35 +02:00
AC_MSG_CHECKING([for default auto-load safe-path])
AC_ARG_WITH(auto-load-safe-path,
2012-05-11 20:13:26 +02:00
AS_HELP_STRING([--with-auto-load-safe-path=PATH],
2012-05-18 19:47:31 +02:00
[directories safe to hold auto-loaded files @<:@--with-auto-load-dir@:>@])
2012-05-11 20:13:26 +02:00
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],
2012-05-11 20:20:26 +02:00
[with_auto_load_safe_path="$with_auto_load_dir"])
2012-05-20 22:35:19 +02:00
escape_dir=`echo $with_auto_load_safe_path | sed 's/[[$]]\(datadir\|debugdir\)\>/\\\\\\\\\\\\&/g'`
2012-05-11 20:13:26 +02:00
AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escape_dir,
2012-04-17 17:54:35 +02:00
[Directories safe to hold auto-loaded files.])
AC_MSG_RESULT([$with_auto_load_safe_path])
2010-11-23 15:37:26 +01:00
AC_CONFIG_SUBDIRS(testsuite)
1999-08-09 23:36:23 +02:00
2007-11-17 02:02:01 +01:00
# Check whether to support alternative target configurations
AC_ARG_ENABLE(targets,
2009-04-22 02:17:50 +02:00
AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
2007-11-17 02:02:01 +01:00
[case "${enableval}" in
yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
;;
no) enable_targets= ;;
*) enable_targets=$enableval ;;
esac])
2007-11-27 18:06:12 +01:00
# Check whether to enable 64-bit support on 32-bit hosts
AC_ARG_ENABLE(64-bit-bfd,
2009-04-22 02:17:50 +02:00
AS_HELP_STRING([--enable-64-bit-bfd], [64-bit support (on hosts with narrower word sizes)]),
2007-11-27 18:06:12 +01:00
[case "${enableval}" in
yes) want64=true ;;
no) want64=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
esac],[want64=false])dnl
2006-02-10 22:53:51 +01:00
# Provide defaults for some variables set by the per-host and per-target
# configuration.
gdb_host_obs=posix-hdep.o
2006-11-22 14:49:53 +01:00
if test "${target}" = "${host}"; then
gdb_native=yes
else
gdb_native=no
fi
2003-01-02 23:49:31 +01:00
. $srcdir/configure.host
1999-04-16 03:35:26 +02:00
2007-11-17 02:02:01 +01:00
# Accumulate some settings from configure.tgt over all enabled targets
TARGET_OBS=
all_targets=
for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
do
if test "$targ_alias" = "all"; then
all_targets=true
else
# Canonicalize the secondary target names.
result=`$ac_config_sub $targ_alias 2>/dev/null`
if test -n "$result"; then
targ=$result
else
targ=$targ_alias
fi
. ${srcdir}/configure.tgt
2010-03-15 18:03:03 +01:00
AS_IF([test -z "${gdb_target_obs}"],
[AC_MSG_ERROR([configuration ${targ} is unsupported.])])
2007-11-17 02:02:01 +01:00
# Target-specific object files
for i in ${gdb_target_obs}; do
case " $TARGET_OBS " in
*" ${i} "*) ;;
*)
TARGET_OBS="$TARGET_OBS ${i}"
;;
esac
done
2007-11-27 18:06:12 +01:00
# Check whether this target needs 64-bit CORE_ADDR
if test x${want64} = xfalse; then
. ${srcdir}/../bfd/config.bfd
fi
2007-11-17 02:02:01 +01:00
fi
done
if test x${all_targets} = xtrue; then
2007-11-27 18:06:12 +01:00
# We want all 64-bit targets if we either:
# - run on a 64-bit host or
# - already require 64-bit support for some other target or
# - the --enable-64-bit-bfd option was supplied
# Otherwise we only support all 32-bit targets.
#
# NOTE: This test must be in sync with the corresponding
# tests in BFD!
if test x${want64} = xfalse; then
AC_CHECK_SIZEOF(long)
if test "x${ac_cv_sizeof_long}" = "x8"; then
want64=true
fi
fi
if test x${want64} = xtrue; then
TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)'
else
TARGET_OBS='$(ALL_TARGET_OBS)'
fi
2007-11-17 02:02:01 +01:00
fi
AC_SUBST(TARGET_OBS)
# For other settings, only the main target counts.
gdb_sim=
gdb_osabi=
build_gdbserver=
targ=$target; . ${srcdir}/configure.tgt
1999-04-16 03:35:26 +02:00
2003-01-02 23:49:31 +01:00
# Fetch the default architecture and default target vector from BFD.
targ=$target; . $srcdir/../bfd/config.bfd
2000-06-11 03:39:08 +02:00
2003-01-02 23:49:31 +01:00
# We only want the first architecture, so strip off the others if
# there is more than one.
targ_archs=`echo $targ_archs | sed 's/ .*//'`
2000-06-11 03:39:08 +02:00
2003-01-02 23:49:31 +01:00
if test "x$targ_archs" != x; then
AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
[Define to BFD's default architecture. ])
2000-06-08 06:00:56 +02:00
fi
2003-01-02 23:49:31 +01:00
if test "x$targ_defvec" != x; then
AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
[Define to BFD's default target vector. ])
2000-06-08 06:00:56 +02:00
fi
2003-01-02 21:12:29 +01:00
# The CLI cannot be disabled yet, but may be in the future.
# Enable CLI.
AC_ARG_ENABLE(gdbcli,
2009-04-22 02:17:50 +02:00
AS_HELP_STRING([--disable-gdbcli], [disable command-line interface (CLI)]),
2003-01-02 21:12:29 +01:00
[case $enableval in
yes)
;;
no)
AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
*)
AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
esac],
[enable_gdbcli=yes])
if test x"$enable_gdbcli" = xyes; then
if test -d $srcdir/cli; then
CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
fi
fi
# Enable MI.
AC_ARG_ENABLE(gdbmi,
2009-04-22 02:17:50 +02:00
AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]),
2003-01-02 21:12:29 +01:00
[case $enableval in
yes | no)
;;
*)
AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
esac],
[enable_gdbmi=yes])
if test x"$enable_gdbmi" = xyes; then
if test -d $srcdir/mi; then
CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
fi
fi
2003-01-02 17:54:56 +01:00
# Enable TUI.
AC_ARG_ENABLE(tui,
2009-04-22 02:17:50 +02:00
AS_HELP_STRING([--enable-tui], [enable full-screen terminal user interface (TUI)]),
2003-01-02 17:54:56 +01:00
[case $enableval in
2008-06-26 21:20:42 +02:00
yes | no | auto)
2003-01-02 17:54:56 +01:00
;;
*)
AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
2008-06-26 21:20:42 +02:00
esac],enable_tui=auto)
2003-01-02 17:54:56 +01:00
2003-01-04 02:03:41 +01:00
# Enable gdbtk.
AC_ARG_ENABLE(gdbtk,
2009-04-22 02:17:50 +02:00
AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)]),
2003-01-04 02:03:41 +01:00
[case $enableval in
yes | no)
;;
*)
AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
esac],
2008-08-02 23:36:06 +02:00
[if test -d $srcdir/gdbtk; then
2003-01-04 02:03:41 +01:00
enable_gdbtk=yes
else
enable_gdbtk=no
fi])
# We unconditionally disable gdbtk tests on selected platforms.
case $host_os in
go32* | windows*)
AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
enable_gdbtk=no ;;
esac
2012-03-08 20:08:11 +01:00
# 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])
2003-11-14 22:17:51 +01:00
fi
2012-03-08 20:08:11 +01:00
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
2012-02-21 20:39:32 +01:00
AC_CHECK_HEADERS(libunwind-ia64.h)
2012-03-08 20:08:11 +01:00
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"
2003-11-14 22:17:51 +01:00
fi
2009-03-24 02:19:27 +01:00
opt_curses=no
2009-04-22 02:17:50 +02:00
AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
2009-03-24 02:19:27 +01:00
2009-03-24 18:01:34 +01:00
prefer_curses=no
2009-03-24 02:19:27 +01:00
if test "$opt_curses" = "yes"; then
2009-03-24 18:01:34 +01:00
prefer_curses=yes
2009-03-24 02:19:27 +01:00
fi
2003-01-23 00:50:35 +01:00
# Profiling support.
AC_ARG_ENABLE(profiling,
2009-04-22 02:17:50 +02:00
AS_HELP_STRING([--enable-profiling], [enable profiling of GDB]),
2003-01-23 00:50:35 +01:00
[case $enableval in
yes | no)
;;
*)
AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
esac],
[enable_profiling=no])
2003-01-27 15:36:56 +01:00
AC_CHECK_FUNCS(monstartup _mcleanup)
2003-02-14 21:07:00 +01:00
AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
[AC_TRY_LINK(
[#include <stdlib.h>
extern char _etext;
],
[free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
if test $ac_cv_var__etext = yes; then
AC_DEFINE(HAVE__ETEXT, 1,
[Define to 1 if your system has the _etext variable. ])
fi
2007-09-20 00:00:34 +02:00
AC_CACHE_CHECK([for etext], ac_cv_var_etext,
[AC_TRY_LINK(
[#include <stdlib.h>
extern char etext;
],
[free (&etext);], ac_cv_var_etext=yes, ac_cv_var_etext=no)])
if test $ac_cv_var_etext = yes; then
AC_DEFINE(HAVE_ETEXT, 1,
[Define to 1 if your system has the etext variable. ])
fi
2003-01-23 00:50:35 +01:00
if test "$enable_profiling" = yes ; then
2003-01-27 15:36:56 +01:00
if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then
AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
fi
2003-01-23 00:50:35 +01:00
PROFILE_CFLAGS=-pg
OLD_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $PROFILE_CFLAGS"
2003-01-27 15:36:56 +01:00
AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
[AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
ac_cv_cc_supports_pg=no)])
2003-01-23 00:50:35 +01:00
2003-01-27 15:36:56 +01:00
if test $ac_cv_cc_supports_pg = no; then
AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
fi
2003-01-23 00:50:35 +01:00
CFLAGS="$OLD_CFLAGS"
fi
2008-06-06 00:36:57 +02:00
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])
2003-01-02 01:51:28 +01:00
# --------------------- #
# Checks for programs. #
# --------------------- #
1999-04-26 20:34:20 +02:00
AC_PROG_AWK
1999-04-16 03:35:26 +02:00
AC_PROG_INSTALL
2003-01-02 01:51:28 +01:00
AC_PROG_LN_S
AC_PROG_RANLIB
AC_PROG_YACC
1999-04-16 03:35:26 +02:00
AC_CHECK_TOOL(AR, ar)
2000-06-03 05:27:30 +02:00
AC_CHECK_TOOL(DLLTOOL, dlltool)
AC_CHECK_TOOL(WINDRES, windres)
1999-04-16 03:35:26 +02:00
2003-01-02 01:51:28 +01:00
# Needed for GNU/Hurd.
2000-02-26 14:46:56 +01:00
AC_CHECK_TOOL(MIG, mig)
2003-01-02 00:50:46 +01:00
# ---------------------- #
# Checks for libraries. #
# ---------------------- #
# We might need to link with -lm; most simulators need it.
AC_CHECK_LIB(m, main)
# We need to link with -lw to get `wctype' on Solaris before Solaris
# 2.6. Solaris 2.6 and beyond have this function in libc, and have a
# libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
# is known to have this problem). Therefore we avoid libw if we can.
AC_CHECK_FUNC(wctype, [],
[AC_CHECK_LIB(w, wctype)])
2003-08-30 02:06:22 +02:00
# Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
AC_SEARCH_LIBS(gethostbyname, nsl)
2003-01-02 00:50:46 +01:00
# Some systems (e.g. Solaris) have `socketpair' in libsocket.
AC_SEARCH_LIBS(socketpair, socket)
2008-04-19 07:06:54 +02:00
# Link in zlib if we can. This allows us to read compressed debug sections.
2009-11-24 23:59:53 +01:00
AM_ZLIB
2008-04-19 07:06:54 +02:00
2007-10-24 23:14:17 +02:00
# On HP/UX we may need libxpdl for dlgetmodinfo (used by solib-pa64.c).
AC_SEARCH_LIBS(dlgetmodinfo, [dl xpdl])
gdb:
2009-03-19 Tom Tromey <tromey@redhat.com>
Julian Brown <julian@codesourcery.com>
PR i18n/7220, PR i18n/7821, PR exp/8815, PR exp/9103,
PR i18n/9401, PR exp/9613:
* NEWS: Update
* value.h (value_typed_string): Declare.
(val_print_string): Update.
* valprint.h (print_char_chars): Update.
* valprint.c (print_char_chars): Add type argument. Update.
(val_print_string): Likewise.
* valops.c (value_typed_string): New function.
* utils.c (host_char_to_target): New function.
(parse_escape): Use host_char_to_target, host_hex_value. Update.
Remove '^' case.
(no_control_char_error): Remove.
* typeprint.c (print_type_scalar): Update.
* scm-valprint.c (scm_scmval_print): Update.
* scm-lang.h (scm_printchar, scm_printstr): Update.
* scm-lang.c (scm_printchar): Add type argument.
(scm_printstr): Likewise.
* printcmd.c (print_formatted): Update.
(print_scalar_formatted): Update.
(printf_command) <wide_string_arg, wide_char_arg>: New constants.
Handle '%lc' and '%ls'.
* parser-defs.h (struct typed_stoken): New type.
(struct stoken_vector): Likewise.
(write_exp_string_vector): Declare.
* parse.c (write_exp_string_vector): New function.
* p-valprint.c (pascal_val_print): Update.
* p-lang.h (is_pascal_string_type, pascal_printchar,
pascal_printstr): Update.
* p-lang.c (is_pascal_string_type): Remove 'char_size' argument.
Add 'char_type' argument.
(pascal_emit_char): Add type argument.
(pascal_printchar): Likewise.
(pascal_printstr): Likewise.
* objc-lang.c (objc_emit_char): Add type argument.
(objc_printchar): Likewise.
(objc_printstr): Likewise.
* macroexp.c (get_character_constant): Handle unicode characters.
Use c_parse_escape.
(get_string_literal): Handle unicode strings. Use
c_parse_escape.
* m2-valprint.c (print_unpacked_pointer): Update.
(m2_print_array_contents): Update.
(m2_val_print): Update.
* m2-lang.c (m2_emit_char): Add type argument.
(m2_printchar): Likewise.
(m2_printstr): Likewise.
* language.h (struct language_defn) <la_printchar>: Add type
argument.
<la_printstr, la_emitchar>: Likewise.
(LA_PRINT_CHAR): Likewise.
(LA_PRINT_STRING): Likewise.
(LA_EMIT_CHAR): Likewise.
* language.c (unk_lang_emit_char): Add type argument.
(unk_lang_printchar): Likewise.
(unk_lang_printstr): Likewise.
* jv-valprint.c (java_val_print): Update.
* jv-lang.c (java_emit_char): Add type argument.
* f-valprint.c (f_val_print): Update.
* f-lang.c (f_emit_char): Add type argument.
(f_printchar): Likewise.
(f_printstr): Likewise.
* expprint.c (print_subexp_standard): Update.
* charset.h (target_wide_charset): Declare.
(c_target_char_has_backslash_escape, c_parse_backslash,
host_char_print_literally, host_char_to_target,
target_char_to_host, target_char_to_control_char): Remove.
(enum transliterations): New type.
(convert_between_encodings): Declare.
(HOST_ESCAPE_CHAR): New define.
(host_letter_to_control_character, host_hex_value): Declare.
(enum wchar_iterate_result): New enum.
(struct wchar_iterator): Declare.
(make_wchar_iterator, make_cleanup_wchar_iterator, wchar_iterator,
wchar_push_back): Declare.
* charset-list.h: New file.
* c-valprint.c (textual_name): New function.
(textual_element_type): Handle wide character types.
(c_val_print): Pass original type to textual_element_type. Handle
wide character types.
(c_value_print): Use textual_element_type. Pass original type of
value to val_print.
* c-lang.h (enum c_string_type): New type.
(c_printchar, c_printstr): Update.
* c-lang.c (classify_type): New function.
(print_wchar): Likewise.
(c_emit_char): Add type argument. Handle wide characters.
(c_printchar): Likewise.
(c_printstr): Add type argument. Handle wide and multibyte
character sets.
(convert_ucn): New function.
(emit_numeric_character): Likewise.
(convert_octal): Likewise.
(convert_hex): Likewise.
(ADVANCE): New macro.
(convert_escape): New function.
(parse_one_string): Likewise.
(evaluate_subexp_c): Likewise.
(exp_descriptor_c): New global.
(c_language_defn): Use exp_descriptor_c.
(cplus_language_defn): Likewise.
(asm_language_defn): Likewise.
(minimal_language_defn): Likewise.
(charset_for_string_type): New function.
* c-exp.y (%union): Add 'svec' and 'tsval'.
(CHAR): New token.
(exp): Add CHAR production.
(string_exp): Rewrite.
(exp) <string_exp>: Rewrite.
(tempbuf): Now global.
(tempbuf_init): New global.
(parse_string_or_char): New function.
(yylex) <tempbuf>: Now global.
<tokptr, tempbufindex, tempbufsize, token_string, class_prefix>:
Remove.
Handle 'u', 'U', and 'L' prefixes. Call parse_string_or_char.
(c_parse_escape): New function.
* auxv.c (fprint_target_auxv): Update.
* ada-valprint.c (ada_emit_char): Add type argument.
(ada_printchar): Likewise.
(ada_print_scalar): Update.
(printstr): Add type argument. Update calls to ada_emit_char.
(ada_printstr): Add type argument.
(ada_val_print_array): Update.
(ada_val_print_1): Likewise.
* ada-lang.c (emit_char): Add type argument.
* ada-lang.h (ada_emit_char, ada_printchar, ada_printstr): Add
type arguments.
* gdb_locale.h: Include langinfo.h.
* charset.c (_initialize_charset): Set default host charset from
the locale. Don't register charsets. Add target-wide-charset
commands. Call find_charset_names.
(struct charset, struct translation): Remove.
(GDB_DEFAULT_HOST_CHARSET): Remove.
(GDB_DEFAULT_TARGET_WIDE_CHARSET): New define.
(target_wide_charset_name): New global.
(show_host_charset_name): Handle "auto".
(show_target_wide_charset_name): New function.
(host_charset_enum, target_charset_enum): Remove.
(charset_enum): New global.
(all_charsets, register_charset, lookup_charset, all_translations,
register_translation, lookup_translation): Remove.
(simple_charset, ascii_print_literally, ascii_to_control): Remove.
(iso_8859_print_literally, iso_8859_to_control,
iso_8859_family_charset): Remove.
(ebcdic_print_literally, ebcdic_to_control,
ebcdic_family_charset): Remove.
(struct cached_iconv, check_iconv_cache, cached_iconv_convert,
register_iconv_charsets): Remove.
(target_wide_charset_be_name, target_wide_charset_le_name): New
globals.
(identity_either_char_to_other): Remove.
(set_be_le_names, validate): New functions.
(backslashable, backslashed, represented): Remove.
(default_c_target_char_has_backslash_escape): Remove.
(default_c_parse_backslash, iconv_convert): Remove.
(ascii_to_iso_8859_1_table, ascii_to_ebcdic_us_table,
ascii_to_ibm1047_table, iso_8859_1_to_ascii_table,
iso_8859_1_to_ebcdic_us_table, iso_8859_1_to_ibm1047_table,
ebcdic_us_to_ascii_table, ebcdic_us_to_iso_8859_1_table,
ebcdic_us_to_ibm1047_table, ibm1047_to_ascii_table,
ibm1047_to_iso_8859_1_table, ibm1047_to_ebcdic_us_table): Remove.
(table_convert_char, table_translation, simple_table_translation):
Remove.
(current_host_charset, current_target_charset,
c_target_char_has_backslash_escape_func,
c_target_char_has_backslash_escape_baton): Remove.
(c_parse_backslash_func, c_parse_backslash_baton): Remove.
(host_char_to_target_func, host_char_to_target_baton): Remove.
(target_char_to_host_func, target_char_to_host_baton): Remove.
(cached_iconv_host_to_target, cached_iconv_target_to_host):
Remove.
(lookup_charset_or_error, check_valid_host_charset): Remove.
(set_host_and_target_charsets): Remove.
(set_host_charset, set_target_charset): Remove.
(set_host_charset_sfunc, set_target_charset_sfunc): Rewrite.
(set_target_wide_charset_sfunc): New function.
(show_charset): Print target wide character set.
(host_charset, target_charset): Rewrite.
(target_wide_charset): New function.
(c_target_char_has_backslash_escape): Remove.
(c_parse_backslash): Remove.
(host_letter_to_control_character): New function.
(host_char_print_literally): Remove.
(host_hex_value): New function.
(target_char_to_control_char): Remove.
(cleanup_iconv): New function.
(convert_between_encodings): New function.
(target_char_to_host): Remove.
(struct wchar_iterator): Define.
(make_wchar_iterator, make_cleanup_wchar_iterator, wchar_iterator,
wchar_push_back): New functions.
(do_cleanup_iterator): New function.
(char_ptr): New typedef.
(charsets): New global.
(add_one, find_charset_names): New functions.
(default_charset_names): New global.
(auto_host_charset_name): Likewise.
* aclocal.m4, config.in, configure: Rebuild.
* configure.ac: Call AM_LANGINFO_CODESET.
(GDB_DEFAULT_HOST_CHARSET): Default to UTF-8.
(AM_ICONV): Invoke earlier.
* acinclude.m4: Include codeset.m4. Subst LIBICONV_INCLUDE and
LIBICONV_LIBDIR. Check for libiconv in build tree.
* Makefile.in (LIBICONV_LIBDIR, LIBICONV_INCLUDE): New macros.
(INTERNAL_CFLAGS_BASE): Add LIBICONV_INCLUDE.
(INTERNAL_LDFLAGS): Add LIBICONV_LIBDIR.
* gdb_obstack.h (obstack_grow_wstr): New define.
* gdb_wchar.h: New file.
* defs.h: Include it.
gdb/testsuite:
* gdb.base/store.exp: Update for change to escape output.
* gdb.base/callfuncs.exp (fetch_all_registers): Update for change
to escape output.
* gdb.base/pointers.exp: Update for change to escape output.
* gdb.base/long_long.exp (gdb_test_long_long): Update for change
to escape output.
* gdb.base/constvars.exp (do_constvar_tests): Update for change to
escape output.
* gdb.base/call-rt-st.exp (print_struct_call): Update for change
to escape output.
* gdb.cp/ref-types.exp (gdb_start_again): Update for change to
escape output.
* gdb.base/setvar.exp: Update for change to escape output.
* lib/gdb.exp (default_gdb_start): Set LC_CTYPE to C.
* gdb.base/printcmds.exp (test_print_all_chars): Update for change
to escape output.
(test_print_string_constants): Likewise.
* gdb.base/charset.exp (valid_host_charset): Check size of
wchar_t. Handle UCS-2 and UCS-4. Add tests for wide and unicode
cases. Handle "auto"-related output.
* gdb.base/charset.c (char16_t, char32_t): New typedefs.
(uvar, Uvar): New globals.
gdb/doc:
* gdb.texinfo (Character Sets): Remove obsolete text. Document
set target-wide-charset.
(Requirements): Mention iconv.
2009-03-21 00:04:40 +01:00
AM_ICONV
2011-05-09 23:49:57 +02:00
# GDB may fork/exec the iconv program to get the list of supported character
# sets. Allow the user to specify where to find it.
# There are several factors affecting the choice of option name:
# - There is already --with-libiconv-prefix but we can't use it, it specifies
# the build-time location of libiconv files.
# - The program we need to find is iconv, which comes with glibc. The user
# doesn't necessarily have libiconv installed. Therefore naming this
# --with-libiconv-foo feels wrong.
# - We want the path to be relocatable, but GDB_AC_DEFINE_RELOCATABLE is
# defined to work on directories not files (though it really doesn't know
# the difference).
# - Calling this --with-iconv-prefix is perceived to cause too much confusion
# with --with-libiconv-prefix.
# Putting these together is why the option name is --with-iconv-bin.
AC_ARG_WITH(iconv-bin,
AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program]),
[iconv_bin="${withval}"
AC_DEFINE_UNQUOTED([ICONV_BIN], ["${iconv_bin}"],
[Path of directory of iconv program.])
GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin})
])
2008-10-22 22:22:01 +02:00
# On alpha-osf, it appears that libtermcap and libcurses are not compatible.
# There is a very specific comment in /usr/include/curses.h explaining that
# termcap routines built into libcurses must not be used.
#
# The symptoms we observed so far is GDB unexpectedly changing
# the terminal settings when tgetent is called - this is particularly
# visible as the output is missing carriage returns, and so rapidly
# becomes very hard to read.
#
# The readline configure script has already decided that libtermcap
# was enough for its purposes, and so decided to build readline using
# libtermcap. Since the TUI mode requires curses, building GDB with
# TUI enabled results in both libraries to be used at the same time,
# which is not allowed. This basically means that GDB with TUI is
# broken on alpha-osf.
case $host_os in
2010-01-25 14:22:02 +01:00
osf* )
if test x"$enable_tui" = xyes; then
2008-10-22 22:22:01 +02:00
AC_MSG_ERROR([Building GDB with TUI mode is not supported on this host])
fi
2010-01-25 14:22:02 +01:00
if test x"$enable_tui" = xauto; then
2008-10-22 22:22:01 +02:00
enable_tui=no
fi
;;
esac
2009-03-24 02:19:27 +01:00
# For the TUI, we need enhanced curses functionality.
2009-03-24 17:54:35 +01:00
if test x"$enable_tui" != xno; then
2009-03-24 02:19:27 +01:00
prefer_curses=yes
fi
curses_found=no
if test x"$prefer_curses" = xyes; then
# FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
# curses library because the latter might not provide all the
# functionality we need. However, this leads to problems on systems
# where the linker searches /usr/local/lib, but the compiler doesn't
# search /usr/local/include, if ncurses is installed in /usr/local. A
# default installation of ncurses on alpha*-dec-osf* will lead to such
# a situation.
AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
if test "$ac_cv_search_waddstr" != no; then
curses_found=yes
fi
fi
2008-10-22 22:22:01 +02:00
# Check whether we should enable the TUI, but only do so if we really
# can.
if test x"$enable_tui" != xno; then
if test -d $srcdir/tui; then
2009-03-24 02:19:27 +01:00
if test "$curses_found" != no; then
2008-10-22 22:22:01 +02:00
CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
else
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
2004-09-18 20:45:57 +02:00
# Since GDB uses Readline, we need termcap functionality. In many
# cases this will be provided by the curses library, but some systems
# have a seperate termcap library, or no curses library at all.
2003-01-02 17:54:56 +01:00
case $host_os in
cygwin*)
if test -d $srcdir/libtermcap; then
LIBS="../libtermcap/libtermcap.a $LIBS"
ac_cv_search_tgetent="../libtermcap/libtermcap.a"
fi ;;
2003-12-29 08:35:35 +01:00
go32* | *djgpp*)
2003-01-02 17:54:56 +01:00
ac_cv_search_tgetent="none required"
;;
2005-07-25 17:08:41 +02:00
*mingw32*)
ac_cv_search_tgetent="none required"
2009-01-12 02:10:28 +01:00
CONFIG_OBS="$CONFIG_OBS windows-termcap.o"
2005-07-25 17:08:41 +02:00
;;
2003-01-02 17:54:56 +01:00
esac
2004-09-18 20:45:57 +02:00
# These are the libraries checked by Readline.
AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
2003-01-02 17:54:56 +01:00
if test "$ac_cv_search_tgetent" = no; then
AC_MSG_ERROR([no termcap library found])
fi
2007-09-03 21:00:16 +02:00
AC_ARG_WITH([system-readline],
[AS_HELP_STRING([--with-system-readline],
[use installed readline library])])
if test "$with_system_readline" = yes; then
READLINE=-lreadline
READLINE_DEPS=
READLINE_CFLAGS=
2010-11-23 15:39:16 +01:00
READLINE_TEXI_INCFLAG=
2007-09-03 21:00:16 +02:00
else
READLINE='$(READLINE_DIR)/libreadline.a'
READLINE_DEPS='$(READLINE)'
READLINE_CFLAGS='-I$(READLINE_SRC)/..'
2010-11-23 15:39:16 +01:00
READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)'
2007-09-03 21:00:16 +02:00
fi
AC_SUBST(READLINE)
AC_SUBST(READLINE_DEPS)
AC_SUBST(READLINE_CFLAGS)
2010-11-23 15:39:16 +01:00
AC_SUBST(READLINE_TEXI_INCFLAG)
2007-09-03 21:00:16 +02:00
2011-11-20 09:30:59 +01:00
# Generate jit-reader.h
# This is typedeffed to GDB_CORE_ADDR in jit-reader.h
TARGET_PTR=
AC_CHECK_SIZEOF(unsigned long long)
AC_CHECK_SIZEOF(unsigned long)
AC_CHECK_SIZEOF(unsigned __int128)
if test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then
TARGET_PTR="unsigned long"
elif test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then
TARGET_PTR="unsigned long long"
elif test "x${ac_cv_sizeof_unsigned___int128}" = "x16"; then
TARGET_PTR="unsigned __int128"
else
TARGET_PTR="unsigned long"
fi
AC_SUBST(TARGET_PTR)
AC_CONFIG_FILES([jit-reader.h:jit-reader.in])
2011-11-20 09:59:56 +01:00
AC_SEARCH_LIBS(dlopen, dl)
2011-11-20 09:53:25 +01:00
GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir],
[directory to load the JIT readers from],
[${libdir}/gdb])
2007-09-03 22:47:37 +02:00
AC_ARG_WITH(expat,
AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]),
[], [with_expat=auto])
AC_MSG_CHECKING([whether to use expat])
AC_MSG_RESULT([$with_expat])
if test "${with_expat}" = no; then
AC_MSG_WARN([expat support disabled; some features may be unavailable.])
HAVE_LIBEXPAT=no
2007-01-09 15:58:57 +01:00
else
2007-09-03 22:47:37 +02:00
AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
[XML_Parser p = XML_ParserCreate (0);])
if test "$HAVE_LIBEXPAT" != yes; then
if test "$with_expat" = yes; then
AC_MSG_ERROR([expat is missing or unusable])
else
AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.])
fi
else
save_LIBS=$LIBS
LIBS="$LIBS $LIBEXPAT"
AC_CHECK_FUNCS(XML_StopParser)
LIBS=$save_LIBS
fi
2006-08-08 22:26:23 +02:00
fi
2008-08-06 21:41:33 +02:00
dnl Utility to simplify finding libpython.
2010-05-27 03:36:22 +02:00
dnl $1 = pythonX.Y
dnl $2 = the shell variable to assign the result to
dnl If libpython is found we store $version here.
dnl $3 = additional flags to add to CPPFLAGS
dnl $4 = additional flags to add to LIBS
2008-08-06 21:41:33 +02:00
AC_DEFUN([AC_TRY_LIBPYTHON],
[
version=$1
define([have_libpython_var],$2)
2010-05-27 03:36:22 +02:00
new_CPPFLAGS=$3
new_LIBS=$4
2008-08-06 21:41:33 +02:00
AC_MSG_CHECKING([for ${version}])
2010-05-27 03:36:22 +02:00
save_CPPFLAGS=$CPPFLAGS
2008-08-06 21:41:33 +02:00
save_LIBS=$LIBS
2010-05-27 03:36:22 +02:00
CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
LIBS="$LIBS $new_LIBS"
found_usable_python=no
do not use python<version> subdir when including Python .h file
This is preparation work for being able to build GDB with Python
support on MinGW.
So far, the "python<version>" subdirectory needs to be specified
when including a Python header file. In order to do that, we have
some special configury that tweaks the include path returned by
python-config.py such that the use of the subdirectory in the include
is necessary. This was done in order to protect ourselves from
possible filename conflicts, since some of the filenames chosen by
Python were a little generic.
The problem is that this cannot work with a standard Python install
on MinGW systems. On such systems, the .h files are located in
<python_prefix>/include. So, in preparation for allowing us to build
GDB on MinGW with Python support enabled, this patch changes the
requirement to provide the "python<version>" subdirectory in the
include directive.
The positive consequence is that we no longer need to have a set
of #include directives for each version of Python, since the include
directive is now the same for all versions of Python. However, the
downside is that we are losing the level of protection we were trying
to achieve by forcing the subdirectory in the include directive.
In order to reduce a bit the consequences of a possible conflict,
this patch also changes the location where the -I/path/to/python
switch goes, to be last in the list (suggested by Doug Evans).
One last change is the fact that we are now including Python.h
and all other Python include headers using angle brackets rather
than double-quotes. This fixes a problem on case-insensitive
systems where #include "Python.h" causes our gdb/python/python.h
header to be included instead of Python's <Python.h> header.
gdb/ChangeLog:
* configure.ac: Remove fallback behavior for building
against Python. Remove tweaking of Python include path.
Add PYTHON_CPPFLAGS and PYTHON_LIBS substitution.
(AC_TRY_LIBPYTHON): Adjust program used in linking test.
If link is successful, set PYTHON_CPPFLAGS and PYTHON_LIBS.
Always restore CPPFLAGS and LIBS after linking test.
* configure: Regenerated.
* Makefile.in (INTERNAL_CPPFLAGS): Add @PYTHON_CPPFLAGS@.
(INSTALLED_LIBS, CLIBS): Add @PYTHON_LIBS@.
* python/python-internal.h: Adjust includes of Python .h files.
2011-01-31 05:41:27 +01:00
AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]],
2008-08-06 21:41:33 +02:00
[[Py_Initialize ();]]),
2010-05-27 03:36:22 +02:00
[have_libpython_var=${version}
do not use python<version> subdir when including Python .h file
This is preparation work for being able to build GDB with Python
support on MinGW.
So far, the "python<version>" subdirectory needs to be specified
when including a Python header file. In order to do that, we have
some special configury that tweaks the include path returned by
python-config.py such that the use of the subdirectory in the include
is necessary. This was done in order to protect ourselves from
possible filename conflicts, since some of the filenames chosen by
Python were a little generic.
The problem is that this cannot work with a standard Python install
on MinGW systems. On such systems, the .h files are located in
<python_prefix>/include. So, in preparation for allowing us to build
GDB on MinGW with Python support enabled, this patch changes the
requirement to provide the "python<version>" subdirectory in the
include directive.
The positive consequence is that we no longer need to have a set
of #include directives for each version of Python, since the include
directive is now the same for all versions of Python. However, the
downside is that we are losing the level of protection we were trying
to achieve by forcing the subdirectory in the include directive.
In order to reduce a bit the consequences of a possible conflict,
this patch also changes the location where the -I/path/to/python
switch goes, to be last in the list (suggested by Doug Evans).
One last change is the fact that we are now including Python.h
and all other Python include headers using angle brackets rather
than double-quotes. This fixes a problem on case-insensitive
systems where #include "Python.h" causes our gdb/python/python.h
header to be included instead of Python's <Python.h> header.
gdb/ChangeLog:
* configure.ac: Remove fallback behavior for building
against Python. Remove tweaking of Python include path.
Add PYTHON_CPPFLAGS and PYTHON_LIBS substitution.
(AC_TRY_LIBPYTHON): Adjust program used in linking test.
If link is successful, set PYTHON_CPPFLAGS and PYTHON_LIBS.
Always restore CPPFLAGS and LIBS after linking test.
* configure: Regenerated.
* Makefile.in (INTERNAL_CPPFLAGS): Add @PYTHON_CPPFLAGS@.
(INSTALLED_LIBS, CLIBS): Add @PYTHON_LIBS@.
* python/python-internal.h: Adjust includes of Python .h files.
2011-01-31 05:41:27 +01:00
found_usable_python=yes
PYTHON_CPPFLAGS=$new_CPPFLAGS
PYTHON_LIBS=$new_LIBS])
CPPFLAGS=$save_CPPFLAGS
LIBS=$save_LIBS
2010-05-27 03:36:22 +02:00
AC_MSG_RESULT([${found_usable_python}])
2008-08-06 21:41:33 +02:00
])
2010-05-27 05:40:45 +02:00
dnl There are several different values for --with-python:
dnl
dnl no - Don't include python support.
dnl yes - Include python support, error if it's missing.
dnl If we find python in $PATH, use it to fetch configure options,
dnl otherwise assume the compiler can find it with no help from us.
2010-07-30 17:59:41 +02:00
dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
2010-05-27 05:40:45 +02:00
dnl auto - Same as "yes", but if python is missing from the system,
dnl fall back to "no".
dnl /path/to/python/exec-prefix -
dnl Use the python located in this directory.
dnl If /path/to/python/exec-prefix/bin/python exists, use it to find
dnl the compilation parameters. Otherwise use
dnl -I/path/to/python/exec-prefix/include,
dnl -L/path/to/python/exec-prefix/lib.
2010-07-30 17:59:41 +02:00
dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
2010-05-27 05:40:45 +02:00
dnl NOTE: This case is historical. It is what was done for 7.0/7.1
dnl but is deprecated.
dnl /path/to/python/executable -
dnl Run python-config.py with this version of python to fetch the
dnl compilation parameters.
dnl NOTE: This needn't be the real python executable.
dnl In a cross-compilation scenario (build != host), this could be
dnl a shell script that provides what python-config.py provides for
dnl --ldflags, --includes, --exec-prefix.
dnl python-executable -
dnl Find python-executable in $PATH, and then handle the same as
dnl /path/to/python/executable.
dnl
dnl If a python program is specified, it is used to run python-config.py and
dnl is passed --ldflags, --includes, --exec-prefix.
2008-08-06 21:41:33 +02:00
AC_ARG_WITH(python,
2010-05-27 05:40:45 +02:00
AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]),
2008-08-06 21:41:33 +02:00
[], [with_python=auto])
AC_MSG_CHECKING([whether to use python])
AC_MSG_RESULT([$with_python])
if test "${with_python}" = no; then
AC_MSG_WARN([python support disabled; some features may be unavailable.])
have_libpython=no
else
case "${with_python}" in
2012-01-27 19:23:12 +01:00
[[\\/]]* | ?:[[\\/]]*)
2010-05-27 03:36:22 +02:00
if test -d ${with_python}; then
# Assume the python binary is ${with_python}/bin/python.
python_prog="${with_python}/bin/python"
2010-05-27 05:40:45 +02:00
python_prefix=
allow building GDB with Python support on MinGW
This makes several adjustements to the configure python-config.py
scripts to deal with the differences between a Unix install of Python
and a Windows install of Python (as downloaded from the Python website).
Differences:
- The Python executable is directly in the python prefix directory
as opposed to inside the bin/ subdirectory.
- The name of the python library is does not have a dot in the version
number: On Unix, we have libpython2.7, while on Windows, it's
libpython27. So the regexp extracting the python version from
the Python lib filename had to be adjusted slightly.
Also, the tests checking the name of the libpython had to be
adjusted to allow for that.
- There are no link options following the -lpython<version> switch
on Windows, but the regexp extracting the python version was
using it as a delimiter. It had to be removed.
- python-config.py does not work on Windows, mostly because
some sysconfig variables are missing. They are not necessary
so the script was adapted to skip them if not defined.
- The paths returned by python-config.py follow the Windows filename
convention in terms of the directory separator, and this is causing
trouble when the build environment is cygwin (while the compiler
and Python are MinGW). We could have fixed that in the configure
script, but it felt simpler to do so in python-config.py
gdb/ChangeLog:
* configure.ac: Add handling of Python distribution on Windows.
* python-config.py: If the LIBS, SYSLIBS, LIBPL and/or LINKFORSHARED
sysconfig variables are not defined, then do not use them.
On Windows, if LIBPL is not defined, then use prefix + '/libs'
instead. On Windows, return all paths using forward-slashes
rather than backslashes.
2011-01-31 05:42:08 +01:00
# If python does not exit ${with_python}/bin, then try in
# ${with_python}. On Windows/MinGW, this is where the Python
# executable is.
if test ! -x "${python_prog}"; then
python_prog="${with_python}/python"
python_prefix=
fi
2010-06-03 20:58:39 +02:00
if test ! -x "${python_prog}"; then
2010-05-27 03:36:22 +02:00
# Fall back to gdb 7.0/7.1 behaviour.
python_prog=missing
2010-05-27 05:40:45 +02:00
python_prefix=${with_python}
2010-05-27 03:36:22 +02:00
fi
2010-06-03 20:58:39 +02:00
elif test -x "${with_python}"; then
2010-05-27 03:36:22 +02:00
# While we can't run python compiled for $host (unless host == build),
# the user could write a script that provides the needed information,
# so we support that.
python_prog=${with_python}
2010-05-27 05:40:45 +02:00
python_prefix=
2010-05-27 03:36:22 +02:00
else
AC_ERROR(invalid value for --with-python)
fi
2008-08-06 21:41:33 +02:00
;;
2010-05-27 03:36:22 +02:00
*/*)
# Disallow --with-python=foo/bar.
2008-08-06 21:41:33 +02:00
AC_ERROR(invalid value for --with-python)
;;
2010-05-27 03:36:22 +02:00
*)
# The user has either specified auto, yes, or the name of the python
# program assumed to be in $PATH.
python_prefix=
case "${with_python}" in
yes | auto)
if test ${build} = ${host}; then
AC_PATH_PROG(python_prog_path, python, missing)
if test "${python_prog_path}" = missing; then
python_prog=missing
else
python_prog=${python_prog_path}
fi
else
# Not much we can do except assume the cross-compiler will find the
# right files.
python_prog=missing
fi
;;
*)
# While we can't run python compiled for $host (unless host == build),
# the user could write a script that provides the needed information,
# so we support that.
python_prog="${with_python}"
AC_PATH_PROG(python_prog_path, ${python_prog}, missing)
if test "${python_prog_path}" = missing; then
AC_ERROR(unable to find python program ${python_prog})
fi
;;
esac
2008-08-06 21:41:33 +02:00
esac
2010-05-27 03:36:22 +02:00
if test "${python_prog}" != missing; then
2010-06-03 20:58:39 +02:00
# We have a python program to use, but it may be too old.
# Don't flag an error for --with-python=auto (the default).
have_python_config=yes
2010-05-27 03:36:22 +02:00
python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
if test $? != 0; then
2010-06-03 20:58:39 +02:00
have_python_config=failed
if test "${with_python}" != auto; then
AC_ERROR(failure running python-config --includes)
fi
2008-08-06 21:41:33 +02:00
fi
2010-05-27 03:36:22 +02:00
python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
if test $? != 0; then
2010-06-03 20:58:39 +02:00
have_python_config=failed
if test "${with_python}" != auto; then
AC_ERROR(failure running python-config --ldflags)
fi
2010-05-27 03:36:22 +02:00
fi
2010-05-27 05:40:45 +02:00
python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
if test $? != 0; then
2010-06-03 20:58:39 +02:00
have_python_config=failed
if test "${with_python}" != auto; then
AC_ERROR(failure running python-config --exec-prefix)
fi
2010-05-27 05:40:45 +02:00
fi
2010-05-27 03:36:22 +02:00
else
do not use python<version> subdir when including Python .h file
This is preparation work for being able to build GDB with Python
support on MinGW.
So far, the "python<version>" subdirectory needs to be specified
when including a Python header file. In order to do that, we have
some special configury that tweaks the include path returned by
python-config.py such that the use of the subdirectory in the include
is necessary. This was done in order to protect ourselves from
possible filename conflicts, since some of the filenames chosen by
Python were a little generic.
The problem is that this cannot work with a standard Python install
on MinGW systems. On such systems, the .h files are located in
<python_prefix>/include. So, in preparation for allowing us to build
GDB on MinGW with Python support enabled, this patch changes the
requirement to provide the "python<version>" subdirectory in the
include directive.
The positive consequence is that we no longer need to have a set
of #include directives for each version of Python, since the include
directive is now the same for all versions of Python. However, the
downside is that we are losing the level of protection we were trying
to achieve by forcing the subdirectory in the include directive.
In order to reduce a bit the consequences of a possible conflict,
this patch also changes the location where the -I/path/to/python
switch goes, to be last in the list (suggested by Doug Evans).
One last change is the fact that we are now including Python.h
and all other Python include headers using angle brackets rather
than double-quotes. This fixes a problem on case-insensitive
systems where #include "Python.h" causes our gdb/python/python.h
header to be included instead of Python's <Python.h> header.
gdb/ChangeLog:
* configure.ac: Remove fallback behavior for building
against Python. Remove tweaking of Python include path.
Add PYTHON_CPPFLAGS and PYTHON_LIBS substitution.
(AC_TRY_LIBPYTHON): Adjust program used in linking test.
If link is successful, set PYTHON_CPPFLAGS and PYTHON_LIBS.
Always restore CPPFLAGS and LIBS after linking test.
* configure: Regenerated.
* Makefile.in (INTERNAL_CPPFLAGS): Add @PYTHON_CPPFLAGS@.
(INSTALLED_LIBS, CLIBS): Add @PYTHON_LIBS@.
* python/python-internal.h: Adjust includes of Python .h files.
2011-01-31 05:41:27 +01:00
# We do not have a python executable we can use to determine where
# to find the Python headers and libs. We cannot guess the include
# path from the python_prefix either, because that include path
# depends on the Python version. So, there is nothing much we can
# do except assume that the compiler will be able to find those files.
python_includes=
python_libs=
2010-05-27 05:40:45 +02:00
have_python_config=no
2008-08-06 21:41:33 +02:00
fi
2010-05-27 03:36:22 +02:00
# If we have python-config, only try the configuration it provides.
# Otherwise fallback on the old way of trying different versions of
# python in turn.
have_libpython=no
if test "${have_python_config}" = yes; then
2011-02-02 05:36:21 +01:00
# Determine the Python version by extracting "-lpython<version>"
# part of the python_libs. <version> is usually X.Y with X and Y
# being decimal numbers, but can also be XY (seen on Windows).
#
# The extraction is performed using sed with a regular expression.
# Initially, the regexp used was using the '?' quantifier to make
# the dot in the version number optional. Unfortunately, this
# does not work with non-GNU versions of sed because, because of
# what looks like a limitation (the '?' quantifier does not work
# with back-references). We work around this limitation by using
# the '*' quantifier instead. It means that, in theory, we might
# match unexpected version strings such as "-lpython2..7", but
# this seems unlikely in practice. And even if that happens,
# an error will be triggered later on, when checking that version
# number.
2010-05-27 03:36:22 +02:00
python_version=`echo " ${python_libs} " \
2011-02-02 05:36:21 +01:00
| sed -e 's,^.* -l\(python[[0-9]]*[[.]]*[[0-9]]*\).*$,\1,'`
2010-05-27 05:40:45 +02:00
case "${python_version}" in
python*)
2010-05-27 03:36:22 +02:00
AC_TRY_LIBPYTHON(${python_version}, have_libpython,
${python_includes}, ${python_libs})
2010-05-27 05:40:45 +02:00
;;
*)
2010-05-27 03:36:22 +02:00
AC_MSG_ERROR([unable to determine python version from ${python_libs}])
2010-05-27 05:40:45 +02:00
;;
esac
2010-06-03 20:58:39 +02:00
elif test "${have_python_config}" != failed; then
2010-07-30 17:59:41 +02:00
if test "${have_libpython}" = no; then
AC_TRY_LIBPYTHON(python2.7, have_libpython,
${python_includes}, "${python_libs} -lpython2.7")
fi
2010-05-27 03:36:22 +02:00
if test "${have_libpython}" = no; then
AC_TRY_LIBPYTHON(python2.6, have_libpython,
${python_includes}, "${python_libs} -lpython2.6")
fi
if test ${have_libpython} = no; then
AC_TRY_LIBPYTHON(python2.5, have_libpython,
${python_includes}, "${python_libs} -lpython2.5")
fi
if test ${have_libpython} = no; then
AC_TRY_LIBPYTHON(python2.4, have_libpython,
${python_includes}, "${python_libs} -lpython2.4")
2008-08-06 21:41:33 +02:00
fi
fi
allow building GDB with Python support on MinGW
This makes several adjustements to the configure python-config.py
scripts to deal with the differences between a Unix install of Python
and a Windows install of Python (as downloaded from the Python website).
Differences:
- The Python executable is directly in the python prefix directory
as opposed to inside the bin/ subdirectory.
- The name of the python library is does not have a dot in the version
number: On Unix, we have libpython2.7, while on Windows, it's
libpython27. So the regexp extracting the python version from
the Python lib filename had to be adjusted slightly.
Also, the tests checking the name of the libpython had to be
adjusted to allow for that.
- There are no link options following the -lpython<version> switch
on Windows, but the regexp extracting the python version was
using it as a delimiter. It had to be removed.
- python-config.py does not work on Windows, mostly because
some sysconfig variables are missing. They are not necessary
so the script was adapted to skip them if not defined.
- The paths returned by python-config.py follow the Windows filename
convention in terms of the directory separator, and this is causing
trouble when the build environment is cygwin (while the compiler
and Python are MinGW). We could have fixed that in the configure
script, but it felt simpler to do so in python-config.py
gdb/ChangeLog:
* configure.ac: Add handling of Python distribution on Windows.
* python-config.py: If the LIBS, SYSLIBS, LIBPL and/or LINKFORSHARED
sysconfig variables are not defined, then do not use them.
On Windows, if LIBPL is not defined, then use prefix + '/libs'
instead. On Windows, return all paths using forward-slashes
rather than backslashes.
2011-01-31 05:42:08 +01:00
if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then
2010-07-06 21:03:12 +02:00
AC_DEFINE(HAVE_LIBPYTHON2_7, 1, [Define if Python 2.7 is being used.])
allow building GDB with Python support on MinGW
This makes several adjustements to the configure python-config.py
scripts to deal with the differences between a Unix install of Python
and a Windows install of Python (as downloaded from the Python website).
Differences:
- The Python executable is directly in the python prefix directory
as opposed to inside the bin/ subdirectory.
- The name of the python library is does not have a dot in the version
number: On Unix, we have libpython2.7, while on Windows, it's
libpython27. So the regexp extracting the python version from
the Python lib filename had to be adjusted slightly.
Also, the tests checking the name of the libpython had to be
adjusted to allow for that.
- There are no link options following the -lpython<version> switch
on Windows, but the regexp extracting the python version was
using it as a delimiter. It had to be removed.
- python-config.py does not work on Windows, mostly because
some sysconfig variables are missing. They are not necessary
so the script was adapted to skip them if not defined.
- The paths returned by python-config.py follow the Windows filename
convention in terms of the directory separator, and this is causing
trouble when the build environment is cygwin (while the compiler
and Python are MinGW). We could have fixed that in the configure
script, but it felt simpler to do so in python-config.py
gdb/ChangeLog:
* configure.ac: Add handling of Python distribution on Windows.
* python-config.py: If the LIBS, SYSLIBS, LIBPL and/or LINKFORSHARED
sysconfig variables are not defined, then do not use them.
On Windows, if LIBPL is not defined, then use prefix + '/libs'
instead. On Windows, return all paths using forward-slashes
rather than backslashes.
2011-01-31 05:42:08 +01:00
elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then
2010-05-27 03:36:22 +02:00
AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.])
allow building GDB with Python support on MinGW
This makes several adjustements to the configure python-config.py
scripts to deal with the differences between a Unix install of Python
and a Windows install of Python (as downloaded from the Python website).
Differences:
- The Python executable is directly in the python prefix directory
as opposed to inside the bin/ subdirectory.
- The name of the python library is does not have a dot in the version
number: On Unix, we have libpython2.7, while on Windows, it's
libpython27. So the regexp extracting the python version from
the Python lib filename had to be adjusted slightly.
Also, the tests checking the name of the libpython had to be
adjusted to allow for that.
- There are no link options following the -lpython<version> switch
on Windows, but the regexp extracting the python version was
using it as a delimiter. It had to be removed.
- python-config.py does not work on Windows, mostly because
some sysconfig variables are missing. They are not necessary
so the script was adapted to skip them if not defined.
- The paths returned by python-config.py follow the Windows filename
convention in terms of the directory separator, and this is causing
trouble when the build environment is cygwin (while the compiler
and Python are MinGW). We could have fixed that in the configure
script, but it felt simpler to do so in python-config.py
gdb/ChangeLog:
* configure.ac: Add handling of Python distribution on Windows.
* python-config.py: If the LIBS, SYSLIBS, LIBPL and/or LINKFORSHARED
sysconfig variables are not defined, then do not use them.
On Windows, if LIBPL is not defined, then use prefix + '/libs'
instead. On Windows, return all paths using forward-slashes
rather than backslashes.
2011-01-31 05:42:08 +01:00
elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then
2010-05-27 03:36:22 +02:00
AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.])
allow building GDB with Python support on MinGW
This makes several adjustements to the configure python-config.py
scripts to deal with the differences between a Unix install of Python
and a Windows install of Python (as downloaded from the Python website).
Differences:
- The Python executable is directly in the python prefix directory
as opposed to inside the bin/ subdirectory.
- The name of the python library is does not have a dot in the version
number: On Unix, we have libpython2.7, while on Windows, it's
libpython27. So the regexp extracting the python version from
the Python lib filename had to be adjusted slightly.
Also, the tests checking the name of the libpython had to be
adjusted to allow for that.
- There are no link options following the -lpython<version> switch
on Windows, but the regexp extracting the python version was
using it as a delimiter. It had to be removed.
- python-config.py does not work on Windows, mostly because
some sysconfig variables are missing. They are not necessary
so the script was adapted to skip them if not defined.
- The paths returned by python-config.py follow the Windows filename
convention in terms of the directory separator, and this is causing
trouble when the build environment is cygwin (while the compiler
and Python are MinGW). We could have fixed that in the configure
script, but it felt simpler to do so in python-config.py
gdb/ChangeLog:
* configure.ac: Add handling of Python distribution on Windows.
* python-config.py: If the LIBS, SYSLIBS, LIBPL and/or LINKFORSHARED
sysconfig variables are not defined, then do not use them.
On Windows, if LIBPL is not defined, then use prefix + '/libs'
instead. On Windows, return all paths using forward-slashes
rather than backslashes.
2011-01-31 05:42:08 +01:00
elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then
2010-05-27 03:36:22 +02:00
AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.])
fi
if test "${have_libpython}" = no; then
2008-08-06 21:41:33 +02:00
case "${with_python}" in
yes)
AC_MSG_ERROR([python is missing or unusable])
;;
auto)
AC_MSG_WARN([python is missing or unusable; some features may be unavailable.])
;;
*)
AC_MSG_ERROR([no usable python found at ${with_python}])
;;
esac
2010-05-27 05:40:45 +02:00
else
if test -n "${python_prefix}"; then
AC_DEFINE_UNQUOTED(WITH_PYTHON_PATH, "${python_prefix}",
[Define if --with-python provides a path, either directly or via python-config.py --exec-prefix.])
GDB_AC_DEFINE_RELOCATABLE(PYTHON_PATH, python, ${python_prefix})
fi
2008-08-06 21:41:33 +02:00
fi
fi
2010-05-27 03:36:22 +02:00
if test "${have_libpython}" != no; then
2008-08-06 21:41:33 +02:00
AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.])
CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
2010-08-19 00:57:46 +02:00
CONFIG_INSTALL="$CONFIG_INSTALL install-python"
2008-08-06 21:41:33 +02:00
ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
# Flags needed to compile Python code (taken from python-config --cflags).
# We cannot call python-config directly because it will output whatever was
# used when compiling the Python interpreter itself, including flags which
# would make the python-related objects be compiled differently from the
# rest of GDB (e.g., -O2 and -fPIC).
if test "${GCC}" = yes; then
tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv"
fi
if test "x${tentative_python_cflags}" != x; then
AC_MSG_CHECKING(compiler flags for python code)
for flag in ${tentative_python_cflags}; do
# Check that the compiler accepts it
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $flag"
AC_TRY_COMPILE([],[],PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag",)
CFLAGS="$saved_CFLAGS"
done
AC_MSG_RESULT(${PYTHON_CFLAGS})
fi
build failure on IRIX when building with Python support.
This is a nasty interaction between Python and GDB. Basically,
Python causes some macros to be unilaterally defined in order
to turns some features on:
/* Define to activate features from IEEE Stds 1003.1-2001 */
#define _POSIX_C_SOURCE 200112L
/* Define to the level of X/Open that your system supports */
#define _XOPEN_SOURCE 600
But the problem is that they turn off defines provided by some
system headers on which we depend. Namely:
* sys/siginfo.h:
#if _SGIAPI
#define siginfo __siginfo
#endif
* sys/ucontext.h:
#if _SGIAPI && !defined(__SGI_NOUCONTEXT_COMPAT)
[...]
#define fp_r __fp_r
[...]
#define fp_csr __fp_csr
[...]
#endif
The important macro here is _SGIAPI, defined as follow in standards.h:
#define _SGIAPI ((defined(_SGI_SOURCE) && \
_NO_POSIX && _NO_XOPEN4 && _NO_XOPEN5) || \
(_ANSIMODE && _NO_POSIX && _NO_XOPEN4 && _NO_XOPEN5))
If one builds GDB without Python, then _SGIAPI is true, and all is fine.
But building with Python causes both _POSIX_C_SOURCE and _XOPEN_SOURCE
to trip all the _NO_[...] tests (_NO_POSIX, _NO_XOPEN4, _NO_XOPEN5).
And so we get build failures because we try to use undefined types, or
non-existent component names inside the regset structure.
The latter problem is observed only within irix5-nat.c, which means
that it is specific to IRIX. So it's easy to write the code in a way
that it does not require the macros (just use the real component names,
rather than relying on the macros to do the translation).
The former, on the other hand, is a little trickier, because the problem
occurs inside a generic unit (procfs.c). The solution I chose was to
adjust the configure script to add -Dsiginfo=__siginfo to the CPPFLAGS
if building with python using GCC on IRIX.
We hadn't seen this sort of issue up to now because the affect units
have not been dependent on the python includes up to now. Recent changes
have made them indirectly dependent on Python, thus triggering the issues.
gdb/ChangeLog:
* irix5-nat.c: Replace fp_r, fp_regs and fp_scr by __fp_r, __fp_regs
and __fp_scr respectively throughout.
* configure.ac: Compile with -Dsiginfo=__siginfo if building with
Python using GCC on IRIX.
* configure: Regenerate.
2010-12-14 08:17:15 +01:00
# On IRIX, type siginfo is not defined. Instead, sys/siginfo.h provides:
# #if _SGIAPI
# #define siginfo __siginfo
# #endif
# The problem is that including Python causes some XOPEN macros to be
# unilaterally defined, and that in turn causes _SGIAPI to evaluate
# to false. So, we work around this issue by defining siginfo ourself
# though the command-line.
2012-10-15 19:17:54 +02:00
#
# On x64 Windows, Python's include headers, and pyconfig.h in
# particular, rely on MS_WIN64 macro to detect that it's a 64bit
# version of Windows. Unfortunately, MS_WIN64 is only defined if
# _MSC_VER, a Microsoft-specific macro, is defined. So, when
# building on x64 Windows with GCC, we define MS_WIN64 ourselves.
# The issue was reported to the Python community, but still isn't
# solved as of 2012-10-02 (http://bugs.python.org/issue4709).
build failure on IRIX when building with Python support.
This is a nasty interaction between Python and GDB. Basically,
Python causes some macros to be unilaterally defined in order
to turns some features on:
/* Define to activate features from IEEE Stds 1003.1-2001 */
#define _POSIX_C_SOURCE 200112L
/* Define to the level of X/Open that your system supports */
#define _XOPEN_SOURCE 600
But the problem is that they turn off defines provided by some
system headers on which we depend. Namely:
* sys/siginfo.h:
#if _SGIAPI
#define siginfo __siginfo
#endif
* sys/ucontext.h:
#if _SGIAPI && !defined(__SGI_NOUCONTEXT_COMPAT)
[...]
#define fp_r __fp_r
[...]
#define fp_csr __fp_csr
[...]
#endif
The important macro here is _SGIAPI, defined as follow in standards.h:
#define _SGIAPI ((defined(_SGI_SOURCE) && \
_NO_POSIX && _NO_XOPEN4 && _NO_XOPEN5) || \
(_ANSIMODE && _NO_POSIX && _NO_XOPEN4 && _NO_XOPEN5))
If one builds GDB without Python, then _SGIAPI is true, and all is fine.
But building with Python causes both _POSIX_C_SOURCE and _XOPEN_SOURCE
to trip all the _NO_[...] tests (_NO_POSIX, _NO_XOPEN4, _NO_XOPEN5).
And so we get build failures because we try to use undefined types, or
non-existent component names inside the regset structure.
The latter problem is observed only within irix5-nat.c, which means
that it is specific to IRIX. So it's easy to write the code in a way
that it does not require the macros (just use the real component names,
rather than relying on the macros to do the translation).
The former, on the other hand, is a little trickier, because the problem
occurs inside a generic unit (procfs.c). The solution I chose was to
adjust the configure script to add -Dsiginfo=__siginfo to the CPPFLAGS
if building with python using GCC on IRIX.
We hadn't seen this sort of issue up to now because the affect units
have not been dependent on the python includes up to now. Recent changes
have made them indirectly dependent on Python, thus triggering the issues.
gdb/ChangeLog:
* irix5-nat.c: Replace fp_r, fp_regs and fp_scr by __fp_r, __fp_regs
and __fp_scr respectively throughout.
* configure.ac: Compile with -Dsiginfo=__siginfo if building with
Python using GCC on IRIX.
* configure: Regenerate.
2010-12-14 08:17:15 +01:00
case "$gdb_host" in
irix*) if test "${GCC}" = yes; then
CPPFLAGS="$CPPFLAGS -Dsiginfo=__siginfo"
fi
;;
2012-10-15 19:17:54 +02:00
mingw64)
if test "${GCC}" = yes; then
CPPFLAGS="$CPPFLAGS -DMS_WIN64"
fi
;;
build failure on IRIX when building with Python support.
This is a nasty interaction between Python and GDB. Basically,
Python causes some macros to be unilaterally defined in order
to turns some features on:
/* Define to activate features from IEEE Stds 1003.1-2001 */
#define _POSIX_C_SOURCE 200112L
/* Define to the level of X/Open that your system supports */
#define _XOPEN_SOURCE 600
But the problem is that they turn off defines provided by some
system headers on which we depend. Namely:
* sys/siginfo.h:
#if _SGIAPI
#define siginfo __siginfo
#endif
* sys/ucontext.h:
#if _SGIAPI && !defined(__SGI_NOUCONTEXT_COMPAT)
[...]
#define fp_r __fp_r
[...]
#define fp_csr __fp_csr
[...]
#endif
The important macro here is _SGIAPI, defined as follow in standards.h:
#define _SGIAPI ((defined(_SGI_SOURCE) && \
_NO_POSIX && _NO_XOPEN4 && _NO_XOPEN5) || \
(_ANSIMODE && _NO_POSIX && _NO_XOPEN4 && _NO_XOPEN5))
If one builds GDB without Python, then _SGIAPI is true, and all is fine.
But building with Python causes both _POSIX_C_SOURCE and _XOPEN_SOURCE
to trip all the _NO_[...] tests (_NO_POSIX, _NO_XOPEN4, _NO_XOPEN5).
And so we get build failures because we try to use undefined types, or
non-existent component names inside the regset structure.
The latter problem is observed only within irix5-nat.c, which means
that it is specific to IRIX. So it's easy to write the code in a way
that it does not require the macros (just use the real component names,
rather than relying on the macros to do the translation).
The former, on the other hand, is a little trickier, because the problem
occurs inside a generic unit (procfs.c). The solution I chose was to
adjust the configure script to add -Dsiginfo=__siginfo to the CPPFLAGS
if building with python using GCC on IRIX.
We hadn't seen this sort of issue up to now because the affect units
have not been dependent on the python includes up to now. Recent changes
have made them indirectly dependent on Python, thus triggering the issues.
gdb/ChangeLog:
* irix5-nat.c: Replace fp_r, fp_regs and fp_scr by __fp_r, __fp_regs
and __fp_scr respectively throughout.
* configure.ac: Compile with -Dsiginfo=__siginfo if building with
Python using GCC on IRIX.
* configure: Regenerate.
2010-12-14 08:17:15 +01:00
esac
2012-09-03 00:57:43 +02:00
# Note that "python -m threading" cannot be used to check for
# threading support due to a bug in Python 2.7.3
# (http://bugs.python.org/issue15567).
AC_MSG_CHECKING(whether python supports threads)
saved_CPPFLAGS="${CPPFLAGS}"
CPPFLAGS="${PYTHON_CPPFLAGS}"
# Note that the test is reversed so that python_has_threads=yes on
# unexpected failures.
AC_PREPROC_IFELSE(AC_LANG_SOURCE([[
#include <Python.h>
#ifdef WITH_THREAD
# error
#endif
]]), [python_has_threads=no], [python_has_threads=yes])
AC_MSG_RESULT(${python_has_threads})
CPPFLAGS="${saved_CPPFLAGS}"
2008-08-06 21:41:33 +02:00
else
2008-10-16 05:54:00 +02:00
# Even if Python support is not compiled in, we need to have these files
2010-04-23 20:09:16 +02:00
# included.
CONFIG_OBS="$CONFIG_OBS python.o py-value.o py-prettyprint.o py-auto-load.o"
CONFIG_SRCS="$CONFIG_SRCS python/python.c python/py-value.c \
python/py-prettyprint.c python/py-auto-load.c"
2008-08-06 21:41:33 +02:00
fi
AC_SUBST(PYTHON_CFLAGS)
do not use python<version> subdir when including Python .h file
This is preparation work for being able to build GDB with Python
support on MinGW.
So far, the "python<version>" subdirectory needs to be specified
when including a Python header file. In order to do that, we have
some special configury that tweaks the include path returned by
python-config.py such that the use of the subdirectory in the include
is necessary. This was done in order to protect ourselves from
possible filename conflicts, since some of the filenames chosen by
Python were a little generic.
The problem is that this cannot work with a standard Python install
on MinGW systems. On such systems, the .h files are located in
<python_prefix>/include. So, in preparation for allowing us to build
GDB on MinGW with Python support enabled, this patch changes the
requirement to provide the "python<version>" subdirectory in the
include directive.
The positive consequence is that we no longer need to have a set
of #include directives for each version of Python, since the include
directive is now the same for all versions of Python. However, the
downside is that we are losing the level of protection we were trying
to achieve by forcing the subdirectory in the include directive.
In order to reduce a bit the consequences of a possible conflict,
this patch also changes the location where the -I/path/to/python
switch goes, to be last in the list (suggested by Doug Evans).
One last change is the fact that we are now including Python.h
and all other Python include headers using angle brackets rather
than double-quotes. This fixes a problem on case-insensitive
systems where #include "Python.h" causes our gdb/python/python.h
header to be included instead of Python's <Python.h> header.
gdb/ChangeLog:
* configure.ac: Remove fallback behavior for building
against Python. Remove tweaking of Python include path.
Add PYTHON_CPPFLAGS and PYTHON_LIBS substitution.
(AC_TRY_LIBPYTHON): Adjust program used in linking test.
If link is successful, set PYTHON_CPPFLAGS and PYTHON_LIBS.
Always restore CPPFLAGS and LIBS after linking test.
* configure: Regenerated.
* Makefile.in (INTERNAL_CPPFLAGS): Add @PYTHON_CPPFLAGS@.
(INSTALLED_LIBS, CLIBS): Add @PYTHON_LIBS@.
* python/python-internal.h: Adjust includes of Python .h files.
2011-01-31 05:41:27 +01:00
AC_SUBST(PYTHON_CPPFLAGS)
AC_SUBST(PYTHON_LIBS)
2008-08-06 21:41:33 +02:00
2012-09-03 00:57:43 +02:00
# Provide a --enable-libmcheck/--disable-libmcheck set of options
# allowing a user to enable this option even when building releases,
# or to disable it when building a snapshot.
AC_ARG_ENABLE(libmcheck,
AS_HELP_STRING([--enable-libmcheck],
[Try building GDB with -lmcheck if available]),
[case "${enableval}" in
yes | y) ENABLE_LIBMCHECK="yes" ;;
no | n) ENABLE_LIBMCHECK="no" ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-libmcheck) ;;
esac])
# Enable -lmcheck by default (it provides cheap-enough memory mangling),
# but turn it off if Python is enabled with threads, since -lmcheck is
# not thread safe (http://sourceware.org/bugzilla/show_bug.cgi?id=9939),
# and for releases.
if test -z "${ENABLE_LIBMCHECK}" \
-a \( "${have_libpython}" = "no" \
-o "${python_has_threads}" = "no" \) \
&& $development; then
ENABLE_LIBMCHECK=yes
fi
if test "$ENABLE_LIBMCHECK" = "yes" ; then
if test "${have_libpython}" != "no" -a "${python_has_threads}" = "yes" ; then
AC_MSG_WARN(--enable-libmcheck may lead to spurious crashes if threads are used in python)
fi
AC_CHECK_LIB(mcheck, main)
fi
2003-01-02 12:14:33 +01:00
# ------------------------- #
# Checks for header files. #
# ------------------------- #
1999-04-16 03:35:26 +02:00
2002-12-31 13:41:00 +01:00
AC_HEADER_DIRENT
1999-04-16 03:35:26 +02:00
AC_HEADER_STDC
2008-11-21 23:35:58 +01:00
# elf_hp.h is for HP/UX 64-bit shared library support.
AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
2012-07-02 22:31:09 +02:00
thread_db.h signal.h stddef.h \
2008-11-21 23:35:58 +01:00
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 \
2012-11-14 20:16:04 +01:00
sgtty.h unistd.h elf_hp.h locale.h \
2012-11-28 17:21:58 +01:00
dlfcn.h sys/socket.h sys/un.h linux/perf_event.h])
2005-01-09 19:02:50 +01:00
AC_CHECK_HEADERS(link.h, [], [],
[#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_NLIST_H
# include <nlist.h>
#endif
])
AC_CHECK_HEADERS(sys/proc.h, [], [],
[#if HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
])
AC_CHECK_HEADERS(sys/user.h, [], [],
[#if HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
])
2003-01-02 12:14:33 +01:00
2004-07-17 13:24:26 +02:00
# On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
2003-01-02 12:14:33 +01:00
# between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
# think that we don't have <curses.h> if we're using GCC.
case $host_os in
2004-07-17 13:24:26 +02:00
solaris2.[[789]])
2003-01-02 12:14:33 +01:00
if test "$GCC" = yes; then
AC_DEFINE(_MSE_INT_H, 1,
2005-05-20 20:17:47 +02:00
[Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
Solaris 2.[789] when using GCC. ])
2003-01-02 12:14:33 +01:00
fi ;;
esac
2008-11-21 23:35:58 +01:00
AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h)
2005-01-16 23:51:49 +01:00
AC_CHECK_HEADERS(term.h, [], [],
[#if HAVE_CURSES_H
# include <curses.h>
#endif
])
2003-01-02 12:14:33 +01:00
2003-06-08 Andrew Cagney <cagney@redhat.com>
* acinclude.m4 (gcc_AC_CHECK_DECL, (gcc_AC_CHECK_DECL): Stolen
from GCC's acinclude.m4.
* configure.in: Check for getopt's delcaration.
* aclocal.m4, config.in, configure: Re-generate.
* main.c (error_init): Delete declaration.
* defs.h (error_init): Declare.
* rs6000-tdep.c (rs6000_fetch_pointer_argument): Make static.
(rs6000_convert_from_func_ptr_addr): Make static.
(_initialize_rs6000_tdep): Add declaration.
* cli/cli-cmds.c (dont_repeat): Delete declaration.
(show_commands, set_verbose, show_history): Delete declaration.
* top.h (set_verbose): Add declaration.
(show_history, set_history, show_commands): Add declaration.
(do_restore_instream_cleanup): Add declaration.
* objc-lang.c (specialcmp): Make static.
(print_object_command): Make static.
(find_objc_msgsend): Make static.
(find_objc_msgcall_submethod_helper): Make static.
(find_objc_msgcall_submethod): Make static.
(_initialize_objc_language): Add declaration.
(find_implementation_from_class): Make static.
(find_implementation): Make static.
* objc-exp.y (yylex): Delete lookup_struct_typedef declaration.
* objc-lang.h (lookup_struct_typedef): Add declaration.
* cli/cli-interp.c (_initialize_cli_interp): Add declaration.
* cli/cli-script.c (clear_hook_in_cleanup): Make static.
(do_restore_user_call_depth): Make static.
(do_restore_instream_cleanup): Delete declaration.
(dont_repeat): Delete declaration.
* cli/cli-decode.c (add_abbrev_cmd): Delete function.
* cli/cli-dump.c (_initialize_cli_dump): Add declaration.
* reggroups.c (_initialize_reggroup): Add declaration.
* cp-support.c (_initialize_cp_support): Add declaration.
* cp-abi.c (_initialize_cp_abi): Add declaration.
* hpacc-abi.c (_initialize_hpacc_abi): Add declaration.
* gnu-v3-abi.c (gnuv3_baseclass_offset): Make static.
(_initialize_gnu_v3_abi): Add declaration.
* gnu-v2-abi.c (gnuv2_value_rtti_type): Make static.
(_initialize_gnu_v2_abi): Add declaration.
* frame-base.c (_initialize_frame_base): Add declaration.
* doublest.c (floatformat_from_length): Make static.
* frame-unwind.c (_initialize_frame_unwind): Add declaration.
* frame.c (create_sentinel_frame): Make static.
(_initialize_frame): Add declaration.
* top.c (do_catch_errors): Make static.
(gdb_rl_operate_and_get_next_completion): Make static.
* typeprint.c: Include "typeprint.h".
* sentinel-frame.c (sentinel_frame_prev_register): Make static.
(sentinel_frame_this_id): Make static.
* p-valprint.c (_initialize_pascal_valprint): Add declaration.
* ui-out.c (make_cleanup_ui_out_begin_end): Delete function.
* dwarf2-frame.c (dwarf2_frame_cache): Make static.
* p-exp.y (push_current_type, pop_current_type): ISO C declaration.
* dwarf2expr.h (dwarf_expr_context): ISO C declaration.
* maint.c (maintenance_print_architecture): Make static.
* signals/signals.c (_initialize_signals): Add declaration.
* std-regs.c (_initialize_frame_reg): Add declaration.
* jv-exp.y (push_variable): ISO C definition.
(push_qualified_expression_name): Ditto.
* memattr.c (_initialize_mem): Add declaration.
* remote.c (remote_check_watch_resources): Make static.
(remote_stopped_by_watchpoint): Make static.
(remote_stopped_data_address): Make static.
* d10v-tdep.c (nr_dmap_regs): Make static.
(a0_regnum): Make static.
(d10v_frame_unwind_cache): Make static.
(d10v_frame_p): Make static.
* osabi.c (show_osabi): Make static.
(_initialize_gdb_osabi): Add extern declaration.
* gdbtypes.c (make_qualified_type): Make static.
(safe_parse_type): Make static.
* macrocmd.c (_initialize_macrocmd): Add extern declaration.
* macrotab.c (macro_bcache_free): Make static.
* interps.c (interp_set_quiet): Make static.
(interpreter_exec_cmd): Make static.
* stack.h (select_frame_command): New file.
* stack.c: Include "stack.h".
(select_frame_command_wrapper): Delete function.
(select_frame_command): Make global.
* infcall.c: Include "infcall.h".
* linespec.c: Include "linespec.h".
* symfile.c (sections_overlap): Make static.
* cp-support.h (cp_initialize_namespace): ISO C declaration.
* charset.c (_initialize_charset): Add missing prototype.
* regcache.c (init_legacy_regcache_descr): Make static.
(do_regcache_xfree): Make static.
(regcache_xfer_part): Make static.
(_initialize_regcache): Add missing prototype.
* breakpoint.c (parse_breakpoint_sals): Make static.
(breakpoint_sals_to_pc): Make static.
* interps.h (clear_interpreter_hooks): ISO C declaration.
* Makefile.in (stack_h): Define.
(stack.o, typeprint.o, mi-main.o): Update dependencies.
(mi-cmd-stack.o, infcall.o, linespec.o): Update dependencies.
Index: mi/ChangeLog
2003-06-08 Andrew Cagney <cagney@redhat.com>
* mi-parse.c (_initialize_mi_parse): Delete function.
* mi-main.c: Include "mi-main.h".
* mi-interp.c (_initialize_mi_interp): Add declaration.
* mi-cmd-stack.c: Include "stack.h".
(select_frame_command_wrapper): Delete extern declaration.
(mi_cmd_stack_select_frame): Replace select_frame_command_wrapper
with select_frame_command.
2003-06-08 20:27:14 +02:00
# ------------------------- #
# Checks for declarations. #
# ------------------------- #
2008-11-21 23:35:58 +01:00
AC_CHECK_DECLS([free, malloc, realloc, strerror, strstr, getopt,
snprintf, vsnprintf])
2008-12-09 18:18:30 +01:00
AM_LC_MESSAGES
2003-06-08 Andrew Cagney <cagney@redhat.com>
* acinclude.m4 (gcc_AC_CHECK_DECL, (gcc_AC_CHECK_DECL): Stolen
from GCC's acinclude.m4.
* configure.in: Check for getopt's delcaration.
* aclocal.m4, config.in, configure: Re-generate.
* main.c (error_init): Delete declaration.
* defs.h (error_init): Declare.
* rs6000-tdep.c (rs6000_fetch_pointer_argument): Make static.
(rs6000_convert_from_func_ptr_addr): Make static.
(_initialize_rs6000_tdep): Add declaration.
* cli/cli-cmds.c (dont_repeat): Delete declaration.
(show_commands, set_verbose, show_history): Delete declaration.
* top.h (set_verbose): Add declaration.
(show_history, set_history, show_commands): Add declaration.
(do_restore_instream_cleanup): Add declaration.
* objc-lang.c (specialcmp): Make static.
(print_object_command): Make static.
(find_objc_msgsend): Make static.
(find_objc_msgcall_submethod_helper): Make static.
(find_objc_msgcall_submethod): Make static.
(_initialize_objc_language): Add declaration.
(find_implementation_from_class): Make static.
(find_implementation): Make static.
* objc-exp.y (yylex): Delete lookup_struct_typedef declaration.
* objc-lang.h (lookup_struct_typedef): Add declaration.
* cli/cli-interp.c (_initialize_cli_interp): Add declaration.
* cli/cli-script.c (clear_hook_in_cleanup): Make static.
(do_restore_user_call_depth): Make static.
(do_restore_instream_cleanup): Delete declaration.
(dont_repeat): Delete declaration.
* cli/cli-decode.c (add_abbrev_cmd): Delete function.
* cli/cli-dump.c (_initialize_cli_dump): Add declaration.
* reggroups.c (_initialize_reggroup): Add declaration.
* cp-support.c (_initialize_cp_support): Add declaration.
* cp-abi.c (_initialize_cp_abi): Add declaration.
* hpacc-abi.c (_initialize_hpacc_abi): Add declaration.
* gnu-v3-abi.c (gnuv3_baseclass_offset): Make static.
(_initialize_gnu_v3_abi): Add declaration.
* gnu-v2-abi.c (gnuv2_value_rtti_type): Make static.
(_initialize_gnu_v2_abi): Add declaration.
* frame-base.c (_initialize_frame_base): Add declaration.
* doublest.c (floatformat_from_length): Make static.
* frame-unwind.c (_initialize_frame_unwind): Add declaration.
* frame.c (create_sentinel_frame): Make static.
(_initialize_frame): Add declaration.
* top.c (do_catch_errors): Make static.
(gdb_rl_operate_and_get_next_completion): Make static.
* typeprint.c: Include "typeprint.h".
* sentinel-frame.c (sentinel_frame_prev_register): Make static.
(sentinel_frame_this_id): Make static.
* p-valprint.c (_initialize_pascal_valprint): Add declaration.
* ui-out.c (make_cleanup_ui_out_begin_end): Delete function.
* dwarf2-frame.c (dwarf2_frame_cache): Make static.
* p-exp.y (push_current_type, pop_current_type): ISO C declaration.
* dwarf2expr.h (dwarf_expr_context): ISO C declaration.
* maint.c (maintenance_print_architecture): Make static.
* signals/signals.c (_initialize_signals): Add declaration.
* std-regs.c (_initialize_frame_reg): Add declaration.
* jv-exp.y (push_variable): ISO C definition.
(push_qualified_expression_name): Ditto.
* memattr.c (_initialize_mem): Add declaration.
* remote.c (remote_check_watch_resources): Make static.
(remote_stopped_by_watchpoint): Make static.
(remote_stopped_data_address): Make static.
* d10v-tdep.c (nr_dmap_regs): Make static.
(a0_regnum): Make static.
(d10v_frame_unwind_cache): Make static.
(d10v_frame_p): Make static.
* osabi.c (show_osabi): Make static.
(_initialize_gdb_osabi): Add extern declaration.
* gdbtypes.c (make_qualified_type): Make static.
(safe_parse_type): Make static.
* macrocmd.c (_initialize_macrocmd): Add extern declaration.
* macrotab.c (macro_bcache_free): Make static.
* interps.c (interp_set_quiet): Make static.
(interpreter_exec_cmd): Make static.
* stack.h (select_frame_command): New file.
* stack.c: Include "stack.h".
(select_frame_command_wrapper): Delete function.
(select_frame_command): Make global.
* infcall.c: Include "infcall.h".
* linespec.c: Include "linespec.h".
* symfile.c (sections_overlap): Make static.
* cp-support.h (cp_initialize_namespace): ISO C declaration.
* charset.c (_initialize_charset): Add missing prototype.
* regcache.c (init_legacy_regcache_descr): Make static.
(do_regcache_xfree): Make static.
(regcache_xfer_part): Make static.
(_initialize_regcache): Add missing prototype.
* breakpoint.c (parse_breakpoint_sals): Make static.
(breakpoint_sals_to_pc): Make static.
* interps.h (clear_interpreter_hooks): ISO C declaration.
* Makefile.in (stack_h): Define.
(stack.o, typeprint.o, mi-main.o): Update dependencies.
(mi-cmd-stack.o, infcall.o, linespec.o): Update dependencies.
Index: mi/ChangeLog
2003-06-08 Andrew Cagney <cagney@redhat.com>
* mi-parse.c (_initialize_mi_parse): Delete function.
* mi-main.c: Include "mi-main.h".
* mi-interp.c (_initialize_mi_interp): Add declaration.
* mi-cmd-stack.c: Include "stack.h".
(select_frame_command_wrapper): Delete extern declaration.
(mi_cmd_stack_select_frame): Replace select_frame_command_wrapper
with select_frame_command.
2003-06-08 20:27:14 +02:00
2005-01-21 12:53:23 +01:00
# ----------------------- #
# Checks for structures. #
# ----------------------- #
2008-11-21 23:35:58 +01:00
AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize])
2005-01-21 12:53:23 +01:00
2003-01-02 12:14:33 +01:00
# ------------------ #
# Checks for types. #
# ------------------ #
1999-04-16 03:35:26 +02:00
2003-01-02 12:14:33 +01:00
AC_TYPE_SIGNAL
2005-06-13 23:32:01 +02:00
AC_CHECK_TYPES(socklen_t, [], [],
[#include <sys/types.h>
#include <sys/socket.h>
])
2003-01-02 12:14:33 +01:00
# ------------------------------------- #
# Checks for compiler characteristics. #
# ------------------------------------- #
1999-04-16 03:35:26 +02:00
AC_C_CONST
2002-04-04 02:12:41 +02:00
AC_C_INLINE
2007-10-25 19:52:32 +02:00
AC_C_BIGENDIAN
1999-04-16 03:35:26 +02:00
2003-01-02 12:14:33 +01:00
# ------------------------------ #
# Checks for library functions. #
# ------------------------------ #
1999-04-16 03:35:26 +02:00
AC_FUNC_ALLOCA
2003-01-02 12:45:34 +01:00
AC_FUNC_MMAP
2001-08-28 00:39:56 +02:00
AC_FUNC_VFORK
2012-01-20 Pedro Alves <palves@redhat.com>
Ulrich Weigand <ulrich.weigand@linaro.org>
* configure.ac [AC_CHECK_FUNCS]: Check for pread and pwrite.
* config.in, configure: Regenerate.
* target.h (struct target_ops): Add to_fileio_open, to_fileio_pwrite,
to_fileio_pread, to_fileio_close, to_fileio_unlink.
(target_fileio_open): Add prototype.
(target_fileio_pwrite): Likewise.
(target_fileio_pread): Likewise.
(target_fileio_close): Likewise.
(target_fileio_unlink): Likewise.
(target_fileio_read_alloc): Likewise.
(target_fileio_read_stralloc): Likewise.
* target.c: Include "gdb/fileio.h".
(target_read_stralloc): Accept trailing, but not embedded NUL bytes.
(default_fileio_target): New function.
(target_fileio_open): Likewise.
(target_fileio_pwrite): Likewise.
(target_fileio_pread): Likewise.
(target_fileio_close): Likewise.
(target_fileio_unlink): Likewise.
(target_fileio_close_cleanup): Likewise.
(target_fileio_read_alloc_1): Likewise.
(target_fileio_read_alloc): Likewise.
(target_fileio_read_stralloc): Likewise.
* inf-child.c: Include "gdb/fileio.h", <sys/types.h>, <sys/stat.h>,
<fcntl.h>, and <unistd.h>.
(inf_child_fileio_open_flags_to_host): New function.
(inf_child_errno_to_fileio_error): Likewise.
(inf_child_fileio_open): Likewise.
(inf_child_fileio_pwrite): Likewise.
(inf_child_fileio_pread): Likewise.
(inf_child_fileio_close): Likewise.
(inf_child_fileio_unlink): Likewise.
(inf_child_target): Install to_fileio routines.
* remote.c (init_remote_ops): Install to_fileio routines.
2012-01-20 10:45:51 +01:00
AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid getgid \
2012-01-20 10:47:32 +01:00
pipe poll pread pread64 pwrite readlink resize_term \
2012-01-20 Pedro Alves <palves@redhat.com>
Ulrich Weigand <ulrich.weigand@linaro.org>
* configure.ac [AC_CHECK_FUNCS]: Check for pread and pwrite.
* config.in, configure: Regenerate.
* target.h (struct target_ops): Add to_fileio_open, to_fileio_pwrite,
to_fileio_pread, to_fileio_close, to_fileio_unlink.
(target_fileio_open): Add prototype.
(target_fileio_pwrite): Likewise.
(target_fileio_pread): Likewise.
(target_fileio_close): Likewise.
(target_fileio_unlink): Likewise.
(target_fileio_read_alloc): Likewise.
(target_fileio_read_stralloc): Likewise.
* target.c: Include "gdb/fileio.h".
(target_read_stralloc): Accept trailing, but not embedded NUL bytes.
(default_fileio_target): New function.
(target_fileio_open): Likewise.
(target_fileio_pwrite): Likewise.
(target_fileio_pread): Likewise.
(target_fileio_close): Likewise.
(target_fileio_unlink): Likewise.
(target_fileio_close_cleanup): Likewise.
(target_fileio_read_alloc_1): Likewise.
(target_fileio_read_alloc): Likewise.
(target_fileio_read_stralloc): Likewise.
* inf-child.c: Include "gdb/fileio.h", <sys/types.h>, <sys/stat.h>,
<fcntl.h>, and <unistd.h>.
(inf_child_fileio_open_flags_to_host): New function.
(inf_child_errno_to_fileio_error): Likewise.
(inf_child_fileio_open): Likewise.
(inf_child_fileio_pwrite): Likewise.
(inf_child_fileio_pread): Likewise.
(inf_child_fileio_close): Likewise.
(inf_child_fileio_unlink): Likewise.
(inf_child_target): Install to_fileio routines.
* remote.c (init_remote_ops): Install to_fileio routines.
2012-01-20 10:45:51 +01:00
sbrk setpgid setpgrp setsid \
2008-11-21 23:35:58 +01:00
sigaction sigprocmask sigsetmask socketpair syscall \
2010-07-29 01:24:57 +02:00
ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
2012-01-18 19:58:43 +01:00
setrlimit getrlimit posix_madvise waitpid lstat])
gdb:
2009-03-19 Tom Tromey <tromey@redhat.com>
Julian Brown <julian@codesourcery.com>
PR i18n/7220, PR i18n/7821, PR exp/8815, PR exp/9103,
PR i18n/9401, PR exp/9613:
* NEWS: Update
* value.h (value_typed_string): Declare.
(val_print_string): Update.
* valprint.h (print_char_chars): Update.
* valprint.c (print_char_chars): Add type argument. Update.
(val_print_string): Likewise.
* valops.c (value_typed_string): New function.
* utils.c (host_char_to_target): New function.
(parse_escape): Use host_char_to_target, host_hex_value. Update.
Remove '^' case.
(no_control_char_error): Remove.
* typeprint.c (print_type_scalar): Update.
* scm-valprint.c (scm_scmval_print): Update.
* scm-lang.h (scm_printchar, scm_printstr): Update.
* scm-lang.c (scm_printchar): Add type argument.
(scm_printstr): Likewise.
* printcmd.c (print_formatted): Update.
(print_scalar_formatted): Update.
(printf_command) <wide_string_arg, wide_char_arg>: New constants.
Handle '%lc' and '%ls'.
* parser-defs.h (struct typed_stoken): New type.
(struct stoken_vector): Likewise.
(write_exp_string_vector): Declare.
* parse.c (write_exp_string_vector): New function.
* p-valprint.c (pascal_val_print): Update.
* p-lang.h (is_pascal_string_type, pascal_printchar,
pascal_printstr): Update.
* p-lang.c (is_pascal_string_type): Remove 'char_size' argument.
Add 'char_type' argument.
(pascal_emit_char): Add type argument.
(pascal_printchar): Likewise.
(pascal_printstr): Likewise.
* objc-lang.c (objc_emit_char): Add type argument.
(objc_printchar): Likewise.
(objc_printstr): Likewise.
* macroexp.c (get_character_constant): Handle unicode characters.
Use c_parse_escape.
(get_string_literal): Handle unicode strings. Use
c_parse_escape.
* m2-valprint.c (print_unpacked_pointer): Update.
(m2_print_array_contents): Update.
(m2_val_print): Update.
* m2-lang.c (m2_emit_char): Add type argument.
(m2_printchar): Likewise.
(m2_printstr): Likewise.
* language.h (struct language_defn) <la_printchar>: Add type
argument.
<la_printstr, la_emitchar>: Likewise.
(LA_PRINT_CHAR): Likewise.
(LA_PRINT_STRING): Likewise.
(LA_EMIT_CHAR): Likewise.
* language.c (unk_lang_emit_char): Add type argument.
(unk_lang_printchar): Likewise.
(unk_lang_printstr): Likewise.
* jv-valprint.c (java_val_print): Update.
* jv-lang.c (java_emit_char): Add type argument.
* f-valprint.c (f_val_print): Update.
* f-lang.c (f_emit_char): Add type argument.
(f_printchar): Likewise.
(f_printstr): Likewise.
* expprint.c (print_subexp_standard): Update.
* charset.h (target_wide_charset): Declare.
(c_target_char_has_backslash_escape, c_parse_backslash,
host_char_print_literally, host_char_to_target,
target_char_to_host, target_char_to_control_char): Remove.
(enum transliterations): New type.
(convert_between_encodings): Declare.
(HOST_ESCAPE_CHAR): New define.
(host_letter_to_control_character, host_hex_value): Declare.
(enum wchar_iterate_result): New enum.
(struct wchar_iterator): Declare.
(make_wchar_iterator, make_cleanup_wchar_iterator, wchar_iterator,
wchar_push_back): Declare.
* charset-list.h: New file.
* c-valprint.c (textual_name): New function.
(textual_element_type): Handle wide character types.
(c_val_print): Pass original type to textual_element_type. Handle
wide character types.
(c_value_print): Use textual_element_type. Pass original type of
value to val_print.
* c-lang.h (enum c_string_type): New type.
(c_printchar, c_printstr): Update.
* c-lang.c (classify_type): New function.
(print_wchar): Likewise.
(c_emit_char): Add type argument. Handle wide characters.
(c_printchar): Likewise.
(c_printstr): Add type argument. Handle wide and multibyte
character sets.
(convert_ucn): New function.
(emit_numeric_character): Likewise.
(convert_octal): Likewise.
(convert_hex): Likewise.
(ADVANCE): New macro.
(convert_escape): New function.
(parse_one_string): Likewise.
(evaluate_subexp_c): Likewise.
(exp_descriptor_c): New global.
(c_language_defn): Use exp_descriptor_c.
(cplus_language_defn): Likewise.
(asm_language_defn): Likewise.
(minimal_language_defn): Likewise.
(charset_for_string_type): New function.
* c-exp.y (%union): Add 'svec' and 'tsval'.
(CHAR): New token.
(exp): Add CHAR production.
(string_exp): Rewrite.
(exp) <string_exp>: Rewrite.
(tempbuf): Now global.
(tempbuf_init): New global.
(parse_string_or_char): New function.
(yylex) <tempbuf>: Now global.
<tokptr, tempbufindex, tempbufsize, token_string, class_prefix>:
Remove.
Handle 'u', 'U', and 'L' prefixes. Call parse_string_or_char.
(c_parse_escape): New function.
* auxv.c (fprint_target_auxv): Update.
* ada-valprint.c (ada_emit_char): Add type argument.
(ada_printchar): Likewise.
(ada_print_scalar): Update.
(printstr): Add type argument. Update calls to ada_emit_char.
(ada_printstr): Add type argument.
(ada_val_print_array): Update.
(ada_val_print_1): Likewise.
* ada-lang.c (emit_char): Add type argument.
* ada-lang.h (ada_emit_char, ada_printchar, ada_printstr): Add
type arguments.
* gdb_locale.h: Include langinfo.h.
* charset.c (_initialize_charset): Set default host charset from
the locale. Don't register charsets. Add target-wide-charset
commands. Call find_charset_names.
(struct charset, struct translation): Remove.
(GDB_DEFAULT_HOST_CHARSET): Remove.
(GDB_DEFAULT_TARGET_WIDE_CHARSET): New define.
(target_wide_charset_name): New global.
(show_host_charset_name): Handle "auto".
(show_target_wide_charset_name): New function.
(host_charset_enum, target_charset_enum): Remove.
(charset_enum): New global.
(all_charsets, register_charset, lookup_charset, all_translations,
register_translation, lookup_translation): Remove.
(simple_charset, ascii_print_literally, ascii_to_control): Remove.
(iso_8859_print_literally, iso_8859_to_control,
iso_8859_family_charset): Remove.
(ebcdic_print_literally, ebcdic_to_control,
ebcdic_family_charset): Remove.
(struct cached_iconv, check_iconv_cache, cached_iconv_convert,
register_iconv_charsets): Remove.
(target_wide_charset_be_name, target_wide_charset_le_name): New
globals.
(identity_either_char_to_other): Remove.
(set_be_le_names, validate): New functions.
(backslashable, backslashed, represented): Remove.
(default_c_target_char_has_backslash_escape): Remove.
(default_c_parse_backslash, iconv_convert): Remove.
(ascii_to_iso_8859_1_table, ascii_to_ebcdic_us_table,
ascii_to_ibm1047_table, iso_8859_1_to_ascii_table,
iso_8859_1_to_ebcdic_us_table, iso_8859_1_to_ibm1047_table,
ebcdic_us_to_ascii_table, ebcdic_us_to_iso_8859_1_table,
ebcdic_us_to_ibm1047_table, ibm1047_to_ascii_table,
ibm1047_to_iso_8859_1_table, ibm1047_to_ebcdic_us_table): Remove.
(table_convert_char, table_translation, simple_table_translation):
Remove.
(current_host_charset, current_target_charset,
c_target_char_has_backslash_escape_func,
c_target_char_has_backslash_escape_baton): Remove.
(c_parse_backslash_func, c_parse_backslash_baton): Remove.
(host_char_to_target_func, host_char_to_target_baton): Remove.
(target_char_to_host_func, target_char_to_host_baton): Remove.
(cached_iconv_host_to_target, cached_iconv_target_to_host):
Remove.
(lookup_charset_or_error, check_valid_host_charset): Remove.
(set_host_and_target_charsets): Remove.
(set_host_charset, set_target_charset): Remove.
(set_host_charset_sfunc, set_target_charset_sfunc): Rewrite.
(set_target_wide_charset_sfunc): New function.
(show_charset): Print target wide character set.
(host_charset, target_charset): Rewrite.
(target_wide_charset): New function.
(c_target_char_has_backslash_escape): Remove.
(c_parse_backslash): Remove.
(host_letter_to_control_character): New function.
(host_char_print_literally): Remove.
(host_hex_value): New function.
(target_char_to_control_char): Remove.
(cleanup_iconv): New function.
(convert_between_encodings): New function.
(target_char_to_host): Remove.
(struct wchar_iterator): Define.
(make_wchar_iterator, make_cleanup_wchar_iterator, wchar_iterator,
wchar_push_back): New functions.
(do_cleanup_iterator): New function.
(char_ptr): New typedef.
(charsets): New global.
(add_one, find_charset_names): New functions.
(default_charset_names): New global.
(auto_host_charset_name): Likewise.
* aclocal.m4, config.in, configure: Rebuild.
* configure.ac: Call AM_LANGINFO_CODESET.
(GDB_DEFAULT_HOST_CHARSET): Default to UTF-8.
(AM_ICONV): Invoke earlier.
* acinclude.m4: Include codeset.m4. Subst LIBICONV_INCLUDE and
LIBICONV_LIBDIR. Check for libiconv in build tree.
* Makefile.in (LIBICONV_LIBDIR, LIBICONV_INCLUDE): New macros.
(INTERNAL_CFLAGS_BASE): Add LIBICONV_INCLUDE.
(INTERNAL_LDFLAGS): Add LIBICONV_LIBDIR.
* gdb_obstack.h (obstack_grow_wstr): New define.
* gdb_wchar.h: New file.
* defs.h: Include it.
gdb/testsuite:
* gdb.base/store.exp: Update for change to escape output.
* gdb.base/callfuncs.exp (fetch_all_registers): Update for change
to escape output.
* gdb.base/pointers.exp: Update for change to escape output.
* gdb.base/long_long.exp (gdb_test_long_long): Update for change
to escape output.
* gdb.base/constvars.exp (do_constvar_tests): Update for change to
escape output.
* gdb.base/call-rt-st.exp (print_struct_call): Update for change
to escape output.
* gdb.cp/ref-types.exp (gdb_start_again): Update for change to
escape output.
* gdb.base/setvar.exp: Update for change to escape output.
* lib/gdb.exp (default_gdb_start): Set LC_CTYPE to C.
* gdb.base/printcmds.exp (test_print_all_chars): Update for change
to escape output.
(test_print_string_constants): Likewise.
* gdb.base/charset.exp (valid_host_charset): Check size of
wchar_t. Handle UCS-2 and UCS-4. Add tests for wide and unicode
cases. Handle "auto"-related output.
* gdb.base/charset.c (char16_t, char32_t): New typedefs.
(uvar, Uvar): New globals.
gdb/doc:
* gdb.texinfo (Character Sets): Remove obsolete text. Document
set target-wide-charset.
(Requirements): Mention iconv.
2009-03-21 00:04:40 +01:00
AM_LANGINFO_CODESET
2003-01-02 12:45:34 +01:00
2004-08-09 21:20:13 +02:00
# Check the return and argument types of ptrace. No canned test for
# this, so roll our own.
gdb_ptrace_headers='
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_SYS_PTRACE_H
# include <sys/ptrace.h>
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
'
# There is no point in checking if we don't have a prototype.
2005-01-21 14:14:02 +01:00
AC_CHECK_DECLS(ptrace, [], [
2004-08-09 21:20:13 +02:00
: ${gdb_cv_func_ptrace_ret='int'}
: ${gdb_cv_func_ptrace_args='int,int,long,long'}
], $gdb_ptrace_headers)
2008-07-27 23:18:50 +02:00
# Check return type. Varargs (used on GNU/Linux) conflict with the
# empty argument list, so check for that explicitly.
2004-08-09 21:20:13 +02:00
AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
AC_TRY_COMPILE($gdb_ptrace_headers,
2008-07-27 23:18:50 +02:00
[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')))
2004-08-09 21:20:13 +02:00
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, [
2008-07-27 23:18:50 +02:00
AC_TRY_COMPILE($gdb_ptrace_headers,
[extern long ptrace (enum __ptrace_request, ...);],
[gdb_cv_func_ptrace_args='int,int,long,long'],[
2004-08-09 21:20:13 +02:00
for gdb_arg1 in 'int' 'long'; do
for gdb_arg2 in 'pid_t' 'int' 'long'; do
2008-01-13 13:23:05 +01:00
for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do
2004-08-09 21:20:13 +02:00
for gdb_arg4 in 'int' 'long'; do
AC_TRY_COMPILE($gdb_ptrace_headers, [
extern $gdb_cv_func_ptrace_ret
ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
break 4;])
for gdb_arg5 in 'int *' 'int' 'long'; do
AC_TRY_COMPILE($gdb_ptrace_headers, [
extern $gdb_cv_func_ptrace_ret
ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
], [
gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
break 5;])
done
done
done
done
done
# Provide a safe default value.
: ${gdb_cv_func_ptrace_args='int,int,long,long'}
2008-07-27 23:18:50 +02:00
])])
2004-08-09 21:20:13 +02:00
ac_save_IFS=$IFS; IFS=','
set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
IFS=$ac_save_IFS
shift
2004-08-13 22:16:46 +02:00
AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
2004-08-09 21:20:13 +02:00
[Define to the type of arg 3 for ptrace.])
if test -n "$[5]"; then
2004-08-13 22:16:46 +02:00
AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
2004-08-09 21:20:13 +02:00
[Define to the type of arg 5 for ptrace.])
fi
2001-07-31 00:08:41 +02:00
dnl AC_FUNC_SETPGRP does not work when cross compiling
dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
if test "$cross_compiling" = no; then
AC_FUNC_SETPGRP
else
AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
[AC_TRY_COMPILE([
#include <unistd.h>
], [
if (setpgrp(1,1) == -1)
exit (0);
else
exit (1);
], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
if test $ac_cv_func_setpgrp_void = yes; then
AC_DEFINE(SETPGRP_VOID, 1)
fi
fi
1999-04-16 03:35:26 +02:00
2001-07-12 15:48:46 +02:00
# Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
# since sigsetjmp might only be defined as a macro.
AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
[AC_TRY_COMPILE([
#include <setjmp.h>
], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
if test $gdb_cv_func_sigsetjmp = yes; then
AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
fi
2003-01-02 20:35:31 +01:00
# Assume we'll default to using the included libiberty regex.
gdb_use_included_regex=yes
# However, if the system regex is GNU regex, then default to *not*
# using the included regex.
AC_CACHE_CHECK(
[for GNU regex],
[gdb_cv_have_gnu_regex],
[AC_TRY_COMPILE(
[#include <gnu-versions.h>],
[#define REGEX_INTERFACE_VERSION 1
#if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
# error "Version mismatch"
#endif],
gdb_cv_have_gnu_regex=yes,
gdb_cv_have_gnu_regex=no)])
if test $gdb_cv_have_gnu_regex = yes; then
gdb_use_included_regex=no
fi
AC_ARG_WITH(included-regex,
2009-04-22 02:17:50 +02:00
AS_HELP_STRING([--without-included-regex], [don't use included regex; this is the default on systems with version 2 of the GNU C library (use with caution on other system)]),
2003-01-02 20:35:31 +01:00
gdb_with_regex=$withval,
gdb_with_regex=$gdb_use_included_regex)
if test "$gdb_with_regex" = yes; then
AC_DEFINE(USE_INCLUDED_REGEX, 1,
[Define to 1 if the regex included in libiberty should be used.])
fi
2005-01-21 14:49:22 +01:00
# Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
[#include <sys/param.h>
#include <sys/proc.h>
])
2004-05-23 11:23:18 +02:00
2004-08-07 23:52:15 +02:00
# See if <sys/lwp.h> defines `struct lwp`.
AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
[AC_TRY_COMPILE([#include <sys/param.h>
#include <sys/lwp.h>], [struct lwp l;],
gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
if test $gdb_cv_struct_lwp = yes; then
AC_DEFINE(HAVE_STRUCT_LWP, 1,
[Define to 1 if your system has struct lwp.])
fi
2004-01-02 13:40:09 +01:00
# See if <machine/reg.h> degines `struct reg'.
AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
[AC_TRY_COMPILE([#include <sys/types.h>
#include <machine/reg.h>], [struct reg r;],
gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
if test $gdb_cv_struct_reg = yes; then
AC_DEFINE(HAVE_STRUCT_REG, 1,
[Define to 1 if your system has struct reg in <machine/reg.h>.])
fi
* i386bsd-nat.c: Include "gdb_assert.h".
[HAVE_PT_GETDBREGS] (DBREG_DRX): Define if not
already defined.
[HAVE_PT_GETDBREGS] (i386bsd_dr_set, i386bsd_dr_set_control,
i386bsd_dr_set_addr, i386bsd_dr_reset_addr,
i386bsd_dr_get_status): New functions.
* config/i386/nm-fbsd.h [HAVE_PT_GETDBREGS]
(I386_USE_GENERIC_WATCHPOINTS): Define.
Include "i386/nm-i386.h".
(I386_DR_LOW_SET_CONTROL, I386_DR_LOW_SET_ADDR,
I386_DR_LOW_RESET_ADDR, I386_DR_LOW_GET_STATUS): New macros.
(i386bsd_dr_set_control, i386bsd_dr_set_addr,
i386bsd_dr_reset_addr, i386bsd_dr_get_status): New prototypes.
* acconfig.h (HAVE_PT_GETDBREGS): New configure macro.
* configure.in: Cleanup a few comments. Check for PT_GETDBREGS
ptrace request.
* config.in, configure: Regenerate.
2001-03-31 20:09:03 +02:00
# See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
2000-05-25 19:18:01 +02:00
# Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
2005-01-21 14:49:22 +01:00
AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
[#include <machine/reg.h>])
2000-05-25 19:18:01 +02:00
2012-06-26 16:43:01 +02:00
# 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>])
* i386bsd-nat.c: Include "gdb_assert.h".
[HAVE_PT_GETDBREGS] (DBREG_DRX): Define if not
already defined.
[HAVE_PT_GETDBREGS] (i386bsd_dr_set, i386bsd_dr_set_control,
i386bsd_dr_set_addr, i386bsd_dr_reset_addr,
i386bsd_dr_get_status): New functions.
* config/i386/nm-fbsd.h [HAVE_PT_GETDBREGS]
(I386_USE_GENERIC_WATCHPOINTS): Define.
Include "i386/nm-i386.h".
(I386_DR_LOW_SET_CONTROL, I386_DR_LOW_SET_ADDR,
I386_DR_LOW_RESET_ADDR, I386_DR_LOW_GET_STATUS): New macros.
(i386bsd_dr_set_control, i386bsd_dr_set_addr,
i386bsd_dr_reset_addr, i386bsd_dr_get_status): New prototypes.
* acconfig.h (HAVE_PT_GETDBREGS): New configure macro.
* configure.in: Cleanup a few comments. Check for PT_GETDBREGS
ptrace request.
* config.in, configure: Regenerate.
2001-03-31 20:09:03 +02:00
# See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
2000-03-05 Mark Kettenis <kettenis@gnu.org>
Allow GDB to run on Linux 2.0 again.
* config.in: Add HAVE_PTRACE_GETREGS.
* configure.in: Check if <sys/ptrace.h> defines PTRACE_GETREGS.
* configure: Regenerated.
* config/i386/nm-linux.h (CANNOT_FETCH_REGISTER,
CANNOT_STORE_REGISTER): New defines.
* i386-linux-nat.c (have_ptrace_getregs): New variable.
(PTRACE_XFER_TYPE, CANNOT_FETCH_REGISTER, fetch_register,
old_fetch_inferior_registers, CANNOT_STORE_REGISTER,
store_register, old_store_inferior_registers): Copied over from
`inptrace.c' as a temporary measure.
(fetch_regs, store_regs, fetch_fpregs, store_fpregs):
Conditionalize on HAVE_PTRACE_GETREGS. Define stubs if
HAVE_PTRACE_GETREGS isn't defined.
(fetch_regs): Reset `have_ptrace_getregs' if ptrace call fails
with EIO.
(fetch_inferior_registers, store_inferior_registers): Fall back on
the method use in `infptrace.c' (by calling
old_fetch_inferior_registers and old_store_inferior_registers) if
`have_ptrace_getregs' isn't set.
2000-03-05 23:57:06 +01:00
AC_MSG_CHECKING(for PTRACE_GETREGS)
AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
[AC_TRY_COMPILE([#include <sys/ptrace.h>],
[PTRACE_GETREGS;],
[gdb_cv_have_ptrace_getregs=yes],
[gdb_cv_have_ptrace_getregs=no])])
AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
if test $gdb_cv_have_ptrace_getregs = yes; then
2005-07-03 18:05:11 +02:00
AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
[Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
2000-03-05 Mark Kettenis <kettenis@gnu.org>
Allow GDB to run on Linux 2.0 again.
* config.in: Add HAVE_PTRACE_GETREGS.
* configure.in: Check if <sys/ptrace.h> defines PTRACE_GETREGS.
* configure: Regenerated.
* config/i386/nm-linux.h (CANNOT_FETCH_REGISTER,
CANNOT_STORE_REGISTER): New defines.
* i386-linux-nat.c (have_ptrace_getregs): New variable.
(PTRACE_XFER_TYPE, CANNOT_FETCH_REGISTER, fetch_register,
old_fetch_inferior_registers, CANNOT_STORE_REGISTER,
store_register, old_store_inferior_registers): Copied over from
`inptrace.c' as a temporary measure.
(fetch_regs, store_regs, fetch_fpregs, store_fpregs):
Conditionalize on HAVE_PTRACE_GETREGS. Define stubs if
HAVE_PTRACE_GETREGS isn't defined.
(fetch_regs): Reset `have_ptrace_getregs' if ptrace call fails
with EIO.
(fetch_inferior_registers, store_inferior_registers): Fall back on
the method use in `infptrace.c' (by calling
old_fetch_inferior_registers and old_store_inferior_registers) if
`have_ptrace_getregs' isn't set.
2000-03-05 23:57:06 +01:00
fi
* i386bsd-nat.c: Include "gdb_assert.h".
[HAVE_PT_GETDBREGS] (DBREG_DRX): Define if not
already defined.
[HAVE_PT_GETDBREGS] (i386bsd_dr_set, i386bsd_dr_set_control,
i386bsd_dr_set_addr, i386bsd_dr_reset_addr,
i386bsd_dr_get_status): New functions.
* config/i386/nm-fbsd.h [HAVE_PT_GETDBREGS]
(I386_USE_GENERIC_WATCHPOINTS): Define.
Include "i386/nm-i386.h".
(I386_DR_LOW_SET_CONTROL, I386_DR_LOW_SET_ADDR,
I386_DR_LOW_RESET_ADDR, I386_DR_LOW_GET_STATUS): New macros.
(i386bsd_dr_set_control, i386bsd_dr_set_addr,
i386bsd_dr_reset_addr, i386bsd_dr_get_status): New prototypes.
* acconfig.h (HAVE_PT_GETDBREGS): New configure macro.
* configure.in: Cleanup a few comments. Check for PT_GETDBREGS
ptrace request.
* config.in, configure: Regenerate.
2001-03-31 20:09:03 +02:00
# See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
2000-08-10 19:04:33 +02:00
AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
1999-11-02 05:44:47 +01:00
[AC_TRY_COMPILE([#include <sys/ptrace.h>],
2000-08-10 19:04:33 +02:00
[PTRACE_GETFPXREGS;],
[gdb_cv_have_ptrace_getfpxregs=yes],
[gdb_cv_have_ptrace_getfpxregs=no])])
AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
if test $gdb_cv_have_ptrace_getfpxregs = yes; then
2005-07-03 18:05:11 +02:00
AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
[Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
1999-11-02 05:44:47 +01:00
fi
* i386bsd-nat.c: Include "gdb_assert.h".
[HAVE_PT_GETDBREGS] (DBREG_DRX): Define if not
already defined.
[HAVE_PT_GETDBREGS] (i386bsd_dr_set, i386bsd_dr_set_control,
i386bsd_dr_set_addr, i386bsd_dr_reset_addr,
i386bsd_dr_get_status): New functions.
* config/i386/nm-fbsd.h [HAVE_PT_GETDBREGS]
(I386_USE_GENERIC_WATCHPOINTS): Define.
Include "i386/nm-i386.h".
(I386_DR_LOW_SET_CONTROL, I386_DR_LOW_SET_ADDR,
I386_DR_LOW_RESET_ADDR, I386_DR_LOW_GET_STATUS): New macros.
(i386bsd_dr_set_control, i386bsd_dr_set_addr,
i386bsd_dr_reset_addr, i386bsd_dr_get_status): New prototypes.
* acconfig.h (HAVE_PT_GETDBREGS): New configure macro.
* configure.in: Cleanup a few comments. Check for PT_GETDBREGS
ptrace request.
* config.in, configure: Regenerate.
2001-03-31 20:09:03 +02:00
# See if <sys/ptrace.h> provides the PT_GETDBREGS request.
AC_MSG_CHECKING(for PT_GETDBREGS)
AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
[AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/ptrace.h>],
[PT_GETDBREGS;],
[gdb_cv_have_pt_getdbregs=yes],
[gdb_cv_have_pt_getdbregs=no])])
AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
if test $gdb_cv_have_pt_getdbregs = yes; then
2005-07-03 18:05:11 +02:00
AC_DEFINE(HAVE_PT_GETDBREGS, 1,
[Define if sys/ptrace.h defines the PT_GETDBREGS request.])
* i386bsd-nat.c: Include "gdb_assert.h".
[HAVE_PT_GETDBREGS] (DBREG_DRX): Define if not
already defined.
[HAVE_PT_GETDBREGS] (i386bsd_dr_set, i386bsd_dr_set_control,
i386bsd_dr_set_addr, i386bsd_dr_reset_addr,
i386bsd_dr_get_status): New functions.
* config/i386/nm-fbsd.h [HAVE_PT_GETDBREGS]
(I386_USE_GENERIC_WATCHPOINTS): Define.
Include "i386/nm-i386.h".
(I386_DR_LOW_SET_CONTROL, I386_DR_LOW_SET_ADDR,
I386_DR_LOW_RESET_ADDR, I386_DR_LOW_GET_STATUS): New macros.
(i386bsd_dr_set_control, i386bsd_dr_set_addr,
i386bsd_dr_reset_addr, i386bsd_dr_get_status): New prototypes.
* acconfig.h (HAVE_PT_GETDBREGS): New configure macro.
* configure.in: Cleanup a few comments. Check for PT_GETDBREGS
ptrace request.
* config.in, configure: Regenerate.
2001-03-31 20:09:03 +02:00
fi
2002-01-05 19:36:32 +01:00
# See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
AC_MSG_CHECKING(for PT_GETXMMREGS)
AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
[AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/ptrace.h>],
[PT_GETXMMREGS;],
[gdb_cv_have_pt_getxmmregs=yes],
[gdb_cv_have_pt_getxmmregs=no])])
AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
if test $gdb_cv_have_pt_getxmmregs = yes; then
2005-07-03 18:05:11 +02:00
AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
[Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
2002-01-05 19:36:32 +01:00
fi
2012-12-11 12:32:39 +01:00
# Detect which type of /proc is in use, such as for Solaris.
1999-04-16 03:35:26 +02:00
if test "${target}" = "${host}"; then
case "${host}" in
2012-12-11 12:32:39 +01:00
*-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
2005-07-03 18:05:11 +02:00
AC_DEFINE(NEW_PROC_API, 1,
[Define if you want to use new multi-fd /proc interface
(replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
2000-01-06 04:07:20 +01:00
;;
2007-12-16 23:19:21 +01:00
*-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*)
2005-07-03 18:05:11 +02:00
AC_DEFINE(NEW_PROC_API, 1,
[Define if you want to use new multi-fd /proc interface
(replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
2000-01-06 04:07:20 +01:00
;;
2004-04-29 16:29:14 +02:00
mips-sgi-irix5*)
# Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
2005-07-03 18:05:11 +02:00
AC_DEFINE([_KMEMUSER], 1,
[Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works
around a <sys/proc.h> problem on IRIX 5.])
2004-04-29 16:29:14 +02:00
;;
1999-04-16 03:35:26 +02:00
esac
fi
if test "$ac_cv_header_sys_procfs_h" = yes; then
BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
2000-02-16 14:45:24 +01:00
BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
2000-08-30 02:58:58 +02:00
BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
2000-02-16 14:45:24 +01:00
BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
2001-03-06 01:52:31 +01:00
BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
1999-04-16 03:35:26 +02:00
2000-08-30 02:58:58 +02:00
2000-04-14 12:13:50 +02:00
dnl Check for broken prfpregset_t type
dnl For Linux/i386, glibc 2.1.3 was released with a bogus
dnl prfpregset_t type (it's a typedef for the pointer to a struct
dnl instead of the struct itself). We detect this here, and work
2002-02-24 05:31:13 +01:00
dnl around it in gdb_proc_service.h.
2000-04-14 12:13:50 +02:00
if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
AC_MSG_CHECKING(whether prfpregset_t type is broken)
AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
[AC_TRY_RUN([#include <sys/procfs.h>
int main ()
{
if (sizeof (prfpregset_t) == sizeof (void *))
return 1;
return 0;
}],
gdb_cv_prfpregset_t_broken=no,
gdb_cv_prfpregset_t_broken=yes,
gdb_cv_prfpregset_t_broken=yes)])
AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
if test $gdb_cv_prfpregset_t_broken = yes; then
2005-07-03 18:05:11 +02:00
AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
[Define if the prfpregset_t type is broken.])
2000-04-14 12:13:50 +02:00
fi
fi
1999-04-16 03:35:26 +02:00
dnl Check for PIOCSET ioctl entry
AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
[AC_TRY_COMPILE([#include <unistd.h>
#include <sys/types.h>
#include <sys/procfs.h>
], [
int dummy;;
dummy = ioctl(0, PIOCSET, &dummy);
],
gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
if test $gdb_cv_have_procfs_piocset = yes; then
2005-07-03 18:05:11 +02:00
AC_DEFINE(HAVE_PROCFS_PIOCSET, 1,
[Define if ioctl argument PIOCSET is available.])
1999-04-16 03:35:26 +02:00
fi
fi
2001-03-19 06:46:27 +01:00
dnl For native ports (host == target), check to see what kind of
dnl legacy link.h support is needed. (See solib-legacy.c.)
if test ${host} = ${target} ; then
dnl Check for struct link_map with l_ members which are indicative
dnl of SVR4-like shared libraries
AC_MSG_CHECKING(for member l_addr in struct link_map)
AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
[AC_TRY_COMPILE([#include <link.h>],
[struct link_map lm; (void) lm.l_addr;],
gdb_cv_have_struct_link_map_with_l_members=yes,
gdb_cv_have_struct_link_map_with_l_members=no)])
AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
2005-07-03 18:05:11 +02:00
AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS,1,
[Define if <link.h> exists and defines struct link_map which has
members with an ``l_'' prefix. (For Solaris, SVR4, and
SVR4-like systems.)])
2001-03-19 06:46:27 +01:00
fi
dnl Check for struct link_map with lm_ members which are indicative
dnl of SunOS-like shared libraries
AC_MSG_CHECKING(for member lm_addr in struct link_map)
AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
[AC_TRY_COMPILE([#include <sys/types.h>
#include <link.h>],
[struct link_map lm; (void) lm.lm_addr;],
gdb_cv_have_struct_link_map_with_lm_members=yes,
gdb_cv_have_struct_link_map_with_lm_members=no)])
AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
2005-07-03 18:05:11 +02:00
AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS, 1,
[Define if <link.h> exists and defines struct link_map which has
members with an ``lm_'' prefix. (For SunOS.)])
2001-03-19 06:46:27 +01:00
fi
dnl Check for struct so_map with som_ members which are found on
dnl some *BSD systems.
AC_MSG_CHECKING(for member som_addr in struct so_map)
AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
[AC_TRY_COMPILE([#include <sys/types.h>
2001-06-22 18:01:31 +02:00
#ifdef HAVE_NLIST_H
#include <nlist.h>
#endif
2001-03-19 06:46:27 +01:00
#include <link.h>],
[struct so_map lm; (void) lm.som_addr;],
gdb_cv_have_struct_so_map_with_som_members=yes,
gdb_cv_have_struct_so_map_with_som_members=no)])
AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
2005-07-03 18:05:11 +02:00
AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS, 1,
[Define if <link.h> exists and defines a struct so_map which has
members with an ``som_'' prefix. (Found on older *BSD systems.)])
2001-03-19 06:46:27 +01:00
fi
dnl Check for struct link_map32 type, which allows a 64-bit Solaris
dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
[AC_TRY_COMPILE([#define _SYSCALL32
#include <sys/link.h>], [struct link_map32 l;],
gdb_cv_have_struct_link_map32=yes,
gdb_cv_have_struct_link_map32=no)])
AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
if test $gdb_cv_have_struct_link_map32 = yes; then
2005-07-03 18:05:11 +02:00
AC_DEFINE(HAVE_STRUCT_LINK_MAP32, 1,
[Define if <sys/link.h> has struct link_map32])
AC_DEFINE(_SYSCALL32, 1,
[Define if <sys/link.h> has link_map32 (solaris sparc-64 target)])
2001-03-19 06:46:27 +01:00
fi
fi
2005-01-21 00:57:27 +01:00
# Check if the compiler supports the `long long' type.
AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[[extern long long foo;]],
[[switch (foo & 2) { case 0: return 1; }]])],
gdb_cv_c_long_long=yes,
gdb_cv_c_long_long=no)])
2012-12-09 19:39:59 +01:00
if test $gdb_cv_c_long_long != yes; then
# libdecnumber requires long long.
AC_MSG_ERROR([Compiler must support long long for GDB.])
1999-04-16 03:35:26 +02:00
fi
2005-01-21 00:57:27 +01:00
# Check if the compiler and runtime support printing long longs.
1999-04-16 03:35:26 +02:00
2005-01-21 00:57:27 +01:00
AC_CACHE_CHECK([for long long support in printf],
gdb_cv_printf_has_long_long,
[AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
[[char buf[32];
1999-04-16 03:35:26 +02:00
long long l = 0;
l = (l << 16) + 0x0123;
l = (l << 16) + 0x4567;
l = (l << 16) + 0x89ab;
l = (l << 16) + 0xcdef;
sprintf (buf, "0x%016llx", l);
2005-01-21 00:57:27 +01:00
return (strcmp ("0x0123456789abcdef", buf));]])],
gdb_cv_printf_has_long_long=yes,
gdb_cv_printf_has_long_long=no,
gdb_cv_printf_has_long_long=no)])
1999-04-16 03:35:26 +02:00
if test $gdb_cv_printf_has_long_long = yes; then
2005-01-21 00:57:27 +01:00
AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
[Define to 1 if the "%ll" format works to print long longs.])
1999-04-16 03:35:26 +02:00
fi
2007-11-05 12:32:31 +01:00
# Check if the compiler and runtime support printing decfloats.
AC_CACHE_CHECK([for decfloat support in printf],
gdb_cv_printf_has_decfloat,
[AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
[[char buf[64];
_Decimal32 d32 = 1.2345df;
_Decimal64 d64 = 1.2345dd;
_Decimal128 d128 = 1.2345dl;
sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128);
return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])],
gdb_cv_printf_has_decfloat=yes,
gdb_cv_printf_has_decfloat=no,
gdb_cv_printf_has_decfloat=no)])
if test $gdb_cv_printf_has_decfloat = yes; then
AC_DEFINE(PRINTF_HAS_DECFLOAT, 1,
[Define to 1 if the "%H, %D and %DD" formats work to print decfloats.])
fi
2005-01-21 00:57:27 +01:00
# Check if the compiler supports the `long double' type. We can't use
# AC_C_LONG_DOUBLE because that one does additional checks on the
# constants defined in <float.h> that fail on some systems,
# e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
1999-04-16 03:35:26 +02:00
2005-01-21 00:57:27 +01:00
AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
gdb_cv_c_long_double=yes,
gdb_cv_c_long_double=no)])
if test $gdb_cv_c_long_double = yes; then
AC_DEFINE(HAVE_LONG_DOUBLE, 1,
[Define to 1 if the compiler supports long double.])
1999-04-16 03:35:26 +02:00
fi
2005-01-21 00:57:27 +01:00
# Check if the compiler and runtime support printing long doubles.
1999-04-16 03:35:26 +02:00
2005-01-21 00:57:27 +01:00
AC_CACHE_CHECK([for long double support in printf],
gdb_cv_printf_has_long_double,
[AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
[[char buf[16];
1999-04-16 03:35:26 +02:00
long double f = 3.141592653;
sprintf (buf, "%Lg", f);
2005-01-21 00:57:27 +01:00
return (strncmp ("3.14159", buf, 7));]])],
gdb_cv_printf_has_long_double=yes,
gdb_cv_printf_has_long_double=no,
gdb_cv_printf_has_long_double=no)])
1999-04-16 03:35:26 +02:00
if test $gdb_cv_printf_has_long_double = yes; then
2005-01-21 00:57:27 +01:00
AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
[Define to 1 if the "%Lg" format works to print long doubles.])
1999-04-16 03:35:26 +02:00
fi
2005-01-21 00:57:27 +01:00
# Check if the compiler and runtime support scanning long doubles.
1999-04-16 03:35:26 +02:00
2005-01-21 00:57:27 +01:00
AC_CACHE_CHECK([for long double support in scanf],
gdb_cv_scanf_has_long_double,
[AC_RUN_IFELSE([AC_LANG_PROGRAM(
[[#include <stdio.h>]],
[[char *buf = "3.141592653";
1999-04-16 03:35:26 +02:00
long double f = 0;
sscanf (buf, "%Lg", &f);
2005-01-21 00:57:27 +01:00
return !(f > 3.14159 && f < 3.14160);]])],
gdb_cv_scanf_has_long_double=yes,
gdb_cv_scanf_has_long_double=no,
gdb_cv_scanf_has_long_double=no)])
1999-04-16 03:35:26 +02:00
if test $gdb_cv_scanf_has_long_double = yes; then
2005-01-21 00:57:27 +01:00
AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
[Define to 1 if the "%Lg" format works to scan long doubles.])
1999-04-16 03:35:26 +02:00
fi
2002-03-06 22:16:00 +01:00
case ${host_os} in
aix*)
AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
SAVE_LDFLAGS=$LDFLAGS
case $GCC in
yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
*) gdb_cv_bigtoc=-bbigtoc ;;
esac
LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
2004-05-13 01:14:49 +02:00
LDFLAGS="${SAVE_LDFLAGS}"
2002-03-06 22:16:00 +01:00
])
CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
;;
esac
2010-06-23 12:12:14 +02:00
AC_MSG_CHECKING(for the dynamic export flag)
dynamic_list=false
2010-06-15 20:37:18 +02:00
if test "${gdb_native}" = yes; then
2010-06-23 12:12:14 +02:00
# The dynamically loaded libthread_db needs access to symbols in the gdb
# executable. Older GNU ld supports --export-dynamic but --dynamic-list
# may not be supported there.
old_LDFLAGS="$LDFLAGS"
# Older GNU ld supports --export-dynamic but --dynamic-list it does not.
RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
LDFLAGS="$LDFLAGS $RDYNAMIC"
if test "${have_libpython}" = no; then
AC_TRY_LINK([], [], [dynamic_list=true])
else
# Workaround http://bugs.python.org/issue4434 where static
# libpythonX.Y.a would get its symbols required for
# pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list.
# Problem does not happen for the recommended libpythonX.Y.so linkage.
old_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $PYTHON_CFLAGS"
AC_RUN_IFELSE(
AC_LANG_PROGRAM(
[#include "]${have_libpython}[/Python.h"],
[int err;
Py_Initialize ();
err = PyRun_SimpleString ("import itertools\n");
Py_Finalize ();
return err == 0 ? 0 : 1;]),
[dynamic_list=true], [], [true])
CFLAGS="$old_CFLAGS"
2010-05-28 20:50:35 +02:00
fi
2010-06-23 12:12:14 +02:00
LDFLAGS="$old_LDFLAGS"
fi
if $dynamic_list; then
found="-Wl,--dynamic-list"
RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'
else
found="-rdynamic"
RDYNAMIC="-rdynamic"
2010-06-15 20:37:18 +02:00
fi
2010-06-23 12:12:14 +02:00
AC_SUBST(RDYNAMIC)
AC_MSG_RESULT($found)
2010-06-15 20:37:18 +02:00
dnl For certain native configurations, we need to check whether thread
dnl support can be built in or not.
dnl
dnl Note that we only want this if we are both native (host == target),
dnl and not doing a canadian cross build (build == host).
2010-05-28 20:50:35 +02:00
2010-06-15 20:37:18 +02:00
if test ${build} = ${host} -a ${host} = ${target} ; then
1999-04-16 03:35:26 +02:00
case ${host_os} in
solaris*)
2002-11-29 01:30:06 +01:00
# See if thread_db library is around for Solaris thread debugging.
# Note that we must explicitly test for version 1 of the library
# because version 0 (present on Solaris 2.4 or earlier) doesn't have
# the same API.
1999-04-16 03:35:26 +02:00
AC_MSG_CHECKING(for Solaris thread debugging library)
if test -f /usr/lib/libthread_db.so.1 ; then
AC_MSG_RESULT(yes)
2005-07-03 18:05:11 +02:00
AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
[Define if using Solaris thread debugging.])
2004-02-08 18:53:08 +01:00
CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
1999-04-16 03:35:26 +02:00
CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
2012-09-27 14:53:44 +02:00
# On SPARC CPUs, we also need to build sparc-sol-thread.
case ${host_cpu} in
sparc*)
CONFIG_OBS="${CONFIG_OBS} sparc-sol-thread.o"
CONFIG_SRCS="${CONFIG_SRCS} sparc-sol-thread.c"
;;
esac
1999-04-16 03:35:26 +02:00
AC_CHECK_LIB(dl, dlopen)
2010-05-28 20:50:35 +02:00
CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC"
1999-04-16 03:35:26 +02:00
# Sun randomly tweaked the prototypes in <proc_service.h>
# at one point.
AC_MSG_CHECKING(if <proc_service.h> is old)
AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
AC_TRY_COMPILE([
#include <proc_service.h>
ps_err_e ps_pdwrite
(struct ps_prochandle*, psaddr_t, const void*, size_t);
],, gdb_cv_proc_service_is_old=no,
gdb_cv_proc_service_is_old=yes)
])
AC_MSG_RESULT($gdb_cv_proc_service_is_old)
if test $gdb_cv_proc_service_is_old = yes; then
2005-07-03 18:05:11 +02:00
AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
[Define if <proc_service.h> on solaris uses int instead of
size_t, and assorted other type changes.])
1999-04-16 03:35:26 +02:00
fi
else
AC_MSG_RESULT(no)
fi
;;
2002-11-29 01:30:06 +01:00
aix*)
AC_MSG_CHECKING(for AiX thread debugging library)
AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
[AC_TRY_COMPILE([#include <sys/pthdebug.h>],
[#ifndef PTHDB_VERSION_3
#error
#endif],
gdb_cv_have_aix_thread_debug=yes,
gdb_cv_have_aix_thread_debug=no)])
AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
if test $gdb_cv_have_aix_thread_debug = yes; then
CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
2004-02-08 18:53:08 +01:00
CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
2012-04-18 17:11:59 +02:00
LIBS="$LIBS -lpthdebug"
2011-03-17 14:19:10 +01:00
# Older versions of AIX do not provide the declaration for
# the getthrds function (it appears that it was introduced
# with AIX 6.x).
AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]])
2002-11-29 01:30:06 +01:00
fi
;;
1999-04-16 03:35:26 +02:00
esac
AC_SUBST(CONFIG_LDFLAGS)
fi
2006-12-31 21:20:13 +01:00
dnl See if we have a thread_db header file that has TD_NOTALLOC and
dnl other error codes.
2002-11-12 03:39:41 +01:00
if test "x$ac_cv_header_thread_db_h" = "xyes"; then
AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
gdb_cv_thread_db_h_has_td_notalloc,
AC_TRY_COMPILE(
[#include <thread_db.h>],
[int i = TD_NOTALLOC;],
gdb_cv_thread_db_h_has_td_notalloc=yes,
gdb_cv_thread_db_h_has_td_notalloc=no
)
)
2006-12-31 21:20:13 +01:00
AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION],
gdb_cv_thread_db_h_has_td_version,
AC_TRY_COMPILE(
[#include <thread_db.h>],
[int i = TD_VERSION;],
gdb_cv_thread_db_h_has_td_version=yes,
gdb_cv_thread_db_h_has_td_version=no
)
)
AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS],
gdb_cv_thread_db_h_has_td_notls,
AC_TRY_COMPILE(
[#include <thread_db.h>],
[int i = TD_NOTLS;],
gdb_cv_thread_db_h_has_td_notls=yes,
gdb_cv_thread_db_h_has_td_notls=no
)
)
2002-11-12 03:39:41 +01:00
fi
if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
[Define if <thread_db.h> has the TD_NOTALLOC error code.])
fi
2006-12-31 21:20:13 +01:00
if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
[Define if <thread_db.h> has the TD_VERSION error code.])
fi
if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
[Define if <thread_db.h> has the TD_NOTLS error code.])
fi
2002-11-12 03:39:41 +01:00
2003-06-04 22:51:29 +02:00
dnl See if we have a sys/syscall header file that has __NR_tkill.
if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
gdb_cv_sys_syscall_h_has_tkill,
AC_TRY_COMPILE(
[#include <sys/syscall.h>],
[int i = __NR_tkill;],
gdb_cv_sys_syscall_h_has_tkill=yes,
gdb_cv_sys_syscall_h_has_tkill=no
)
)
fi
dnl See if we can issue tkill syscall.
if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
2005-07-03 18:05:11 +02:00
AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
2003-06-04 22:51:29 +02:00
fi
2008-07-10 11:31:00 +02:00
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
1999-04-16 03:35:26 +02:00
dnl Handle optional features that can be enabled.
2000-02-23 01:25:43 +01:00
2012-01-18 19:35:43 +01:00
# 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
2003-01-13 19:00:16 +01:00
AC_ARG_WITH(sysroot,
2012-01-18 19:35:43 +01:00
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])
2003-01-13 19:00:16 +01:00
AC_SUBST(TARGET_SYSTEM_ROOT)
2012-01-18 19:35:43 +01:00
GDB_AC_DEFINE_RELOCATABLE(TARGET_SYSTEM_ROOT, sysroot, ${ac_define_dir})
2003-01-13 19:00:16 +01:00
2009-04-23 23:28:20 +02:00
GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit,
[automatically load a system-wide gdbinit file],
[])
2009-01-28 16:01:00 +01:00
2006-02-21 22:02:25 +01:00
AC_ARG_ENABLE(werror,
2009-04-22 02:17:50 +02:00
AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]),
2006-02-21 22:02:25 +01:00
[case "${enableval}" in
yes | y) ERROR_ON_WARNING="yes" ;;
no | n) ERROR_ON_WARNING="no" ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
esac])
2012-06-01 20:20:18 +02:00
# Enable -Werror by default when using gcc. Turn it off for releases.
if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" && $development; then
2006-02-21 22:02:25 +01:00
ERROR_ON_WARNING=yes
fi
WERROR_CFLAGS=""
if test "${ERROR_ON_WARNING}" = yes ; then
WERROR_CFLAGS="-Werror"
fi
2007-01-04 20:42:10 +01:00
# The entries after -Wno-pointer-sign are disabled warnings which may
# be enabled in the future, which can not currently be used to build
# GDB.
# NOTE: If you change this list, remember to update
2000-11-24 12:02:59 +01:00
# gdb/doc/gdbint.texinfo.
2007-01-04 20:42:10 +01:00
build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
-Wformat-nonliteral -Wno-pointer-sign \
2010-01-19 10:52:33 +01:00
-Wno-unused -Wunused-value -Wunused-function \
2012-06-22 20:59:04 +02:00
-Wno-switch -Wno-char-subscripts -Wmissing-prototypes \
2012-11-02 19:53:54 +01:00
-Wdeclaration-after-statement -Wempty-body"
2005-03-11 22:02:02 +01:00
2008-06-09 17:03:59 +02:00
# 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
1999-04-16 03:35:26 +02:00
AC_ARG_ENABLE(build-warnings,
2009-04-22 02:17:50 +02:00
AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]),
2000-04-07 10:57:39 +02:00
[case "${enableval}" in
1999-04-16 03:35:26 +02:00
yes) ;;
no) build_warnings="-w";;
,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
build_warnings="${build_warnings} ${t}";;
*,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
build_warnings="${t} ${build_warnings}";;
*) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1999-09-09 02:02:17 +02:00
esac
if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
2000-05-12 06:37:00 +02:00
echo "Setting compiler warning flags = $build_warnings" 6>&1
2000-04-07 10:57:39 +02:00
fi])dnl
2000-11-24 12:02:59 +01:00
AC_ARG_ENABLE(gdb-build-warnings,
2009-04-22 02:17:50 +02:00
AS_HELP_STRING([--enable-gdb-build-warnings], [enable GDB specific build-time compiler warnings if gcc is used]),
2000-11-24 12:02:59 +01:00
[case "${enableval}" in
yes) ;;
no) build_warnings="-w";;
,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
build_warnings="${build_warnings} ${t}";;
*,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
build_warnings="${t} ${build_warnings}";;
*) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
esac
if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
fi])dnl
1999-08-31 03:14:27 +02:00
WARN_CFLAGS=""
1999-04-16 03:35:26 +02:00
if test "x${build_warnings}" != x -a "x$GCC" = xyes
then
2000-05-12 06:37:00 +02:00
AC_MSG_CHECKING(compiler warning flags)
# Separate out the -Werror flag as some files just cannot be
# compiled with it enabled.
for w in ${build_warnings}; do
case $w in
-Werr*) WERROR_CFLAGS=-Werror ;;
*) # Check that GCC accepts it
2001-10-31 02:57:04 +01:00
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $w"
AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
CFLAGS="$saved_CFLAGS"
2000-05-12 06:37:00 +02:00
esac
done
2007-01-04 20:42:10 +01:00
AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
2000-04-07 10:57:39 +02:00
fi
1999-04-16 03:35:26 +02:00
AC_SUBST(WARN_CFLAGS)
1999-08-31 03:14:27 +02:00
AC_SUBST(WERROR_CFLAGS)
1999-04-16 03:35:26 +02:00
1999-04-26 20:34:20 +02:00
# In the Cygwin environment, we need some additional flags.
AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
[AC_EGREP_CPP(lose, [
#if defined (__CYGWIN__) || defined (__CYGWIN32__)
lose
#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
2000-06-12 08:09:06 +02:00
dnl Figure out which of the many generic ser-*.c files the _host_ supports.
2005-03-25 20:47:23 +01:00
SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
2000-06-12 08:09:06 +02:00
case ${host} in
2000-07-05 12:55:17 +02:00
*go32* ) SER_HARDWIRE=ser-go32.o ;;
*djgpp* ) SER_HARDWIRE=ser-go32.o ;;
* NEWS: Mention native Windows support.
* Makefile.in (gdb_select_h, ser_tcp_h): New.
(ALLDEPFILES): Add ser-mingw.c.
(event-loop.o, inflow.o, mingw-hdep.o, posix-hdep.o, ser-base.o)
(ser-tcp.o, ser-unix.o): Update.
(ser-mingw.o): New rule.
* configure: Regenerated.
* configure.ac: Add ser-mingw.o for mingw32.
* ser-mingw.c: New file.
* event-loop.c: Include "gdb_select.h".
(gdb_select): Remove, moved to mingw-hdep.c and posix-hdep.c.
* ser-base.c: Include "gdb_select.h".
(ser_base_wait_for): Use gdb_select.
* serial.c (serial_for_fd): New function.
(serial_fdopen): Try "terminal" before "hardwire". Initialize
the allocated struct serial.
(serial_wait_handle): New function.
* serial.h (serial_for_fd, serial_wait_handle): New prototypes.
(struct serial_ops) [USE_WIN32API]: Add wait_handle.
* gdb_select.h: New file.
* ser-tcp.c: Include "ser-tcp.h". Remove unused "ser-unix.h" include.
(net_close, net_read_prim, net_write_prim): Make global.
(net_open): Likewise. Pass an exception set to select. Whitespace fix.
Document why we can not use gdb_select.
(_initialize_ser_tcp) [USE_WIN32API]: Do not register TCP support here.
* ser-tcp.h: New file.
* inflow.c (gdb_has_a_terminal): Don't initialize stdin_serial here.
(handle_sigio): Use gdb_select.
(initialize_stdin_serial): New function.
* terminal.h (initialize_stdin_serial): New prototype.
* top.c (gdb_init): Call initialize_stdin_serial.
* mingw-hdep.c (gdb_select): New function, moved from gdb_select in
event-loop.c. Add exception condition support. Use serial_for_fd
and serial_wait_handle. Fix timeout handling.
* posix-hdep.c: Include "gdb_select.h".
(gdb_select): New function.
* remote-st.c (connect_command): Use gdb_select.
* ser-unix.c: Include "gdb_select.h".
(hardwire_send_break, wait_for): Use gdb_select.
2006-02-10 23:01:43 +01:00
*mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
2000-06-12 08:09:06 +02:00
esac
AC_SUBST(SER_HARDWIRE)
1999-05-11 15:35:55 +02:00
# libreadline needs libuser32.a in a cygwin environment
WIN32LIBS=
if test x$gdb_cv_os_cygwin = xyes; then
2000-01-18 01:55:13 +01:00
WIN32LIBS="-luser32"
case "${target}" in
*cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
;;
esac
1999-05-11 15:35:55 +02:00
fi
2005-04-21 07:34:33 +02:00
# The ser-tcp.c module requires sockets.
case ${host} in
*mingw32*)
AC_DEFINE(USE_WIN32API, 1,
[Define if we should use the Windows API, instead of the
POSIX API. On Windows, we use the Windows API when
building for MinGW, but the POSIX API when building
for Cygwin.])
WIN32LIBS="$WIN32LIBS -lws2_32"
;;
esac
1999-05-11 15:35:55 +02:00
AC_SUBST(WIN32LIBS)
1999-04-26 20:34:20 +02:00
2007-06-18 17:46:38 +02:00
# Add ELF support to GDB, but only if BFD includes ELF support.
2013-01-02 15:54:17 +01:00
GDB_AC_CHECK_BFD([for ELF support in BFD], gdb_cv_var_elf,
[bfd_get_elf_phdr_upper_bound (NULL)], elf-bfd.h)
2007-06-18 17:46:38 +02:00
if test $gdb_cv_var_elf = yes; then
2012-04-27 22:47:57 +02:00
CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o"
2007-06-18 17:46:38 +02:00
AC_DEFINE(HAVE_ELF, 1,
[Define if ELF support should be included.])
2010-11-05 02:50:18 +01:00
# -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
if test "$plugins" = "yes"; then
2013-01-02 15:54:17 +01:00
LIBS="-ldl $LIBS"
2010-11-05 02:50:18 +01:00
fi
2007-06-18 17:46:38 +02:00
fi
2013-01-02 15:58:15 +01:00
# Add macho support to GDB, but only if BFD includes it.
GDB_AC_CHECK_BFD([for Mach-O support in BFD], gdb_cv_var_macho,
[bfd_mach_o_lookup_command (NULL, 0, NULL)], mach-o.h)
if test $gdb_cv_var_macho = yes; then
CONFIG_OBS="$CONFIG_OBS machoread.o"
fi
2006-02-10 22:53:51 +01:00
# Add any host-specific objects to GDB.
CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
2012-11-26 20:23:56 +01:00
# If building on ELF, look for lzma support for embedded compressed debug info.
if test $gdb_cv_var_elf = yes; then
AC_ARG_WITH(lzma,
AS_HELP_STRING([--with-lzma], [support lzma compression (auto/yes/no)]),
[], [with_lzma=auto])
AC_MSG_CHECKING([whether to use lzma])
AC_MSG_RESULT([$with_lzma])
if test "${with_lzma}" != no; then
AC_LIB_HAVE_LINKFLAGS([lzma], [], [#include "lzma.h"],
[lzma_index_iter iter;
lzma_index_iter_init (&iter, 0);
lzma_mf_is_supported (LZMA_MF_HC3);])
if test "$HAVE_LIBLZMA" != yes; then
if test "$with_lzma" = yes; then
AC_MSG_ERROR([missing liblzma for --with-lzma])
fi
fi
fi
fi
2000-02-07 01:19:45 +01:00
LIBGUI="../libgui/src/libgui.a"
GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
AC_SUBST(LIBGUI)
AC_SUBST(GUI_CFLAGS_X)
1999-04-26 20:34:20 +02:00
2000-02-07 01:19:45 +01:00
WIN32LDAPP=
AC_SUBST(WIN32LIBS)
AC_SUBST(WIN32LDAPP)
2004-06-08 18:29:30 +02:00
case "${host}" in
2008-03-04 00:24:22 +01:00
*-*-cygwin* | *-*-mingw* )
2004-06-08 18:29:30 +02:00
configdir="win"
;;
*)
configdir="unix"
;;
esac
2000-02-07 01:19:45 +01:00
GDBTKLIBS=
if test "${enable_gdbtk}" = "yes"; then
2001-08-17 00:47:00 +02:00
# Gdbtk must have an absolute path to srcdir in order to run
# properly when not installed.
here=`pwd`
cd ${srcdir}
GDBTK_SRC_DIR=`pwd`
cd $here
2008-08-02 23:36:06 +02:00
SC_PATH_TCLCONFIG
2009-02-03 00:18:05 +01:00
# If $no_tk is nonempty, then we can't do Tk, and there is no
# point to doing Tcl.
SC_PATH_TKCONFIG
if test -z "${no_tcl}" -a -z "${no_tk}"; then
2008-08-02 23:36:06 +02:00
SC_LOAD_TCLCONFIG
# Check for in-tree tcl
here=`pwd`
cd ${srcdir}/..
topdir=`pwd`
cd ${here}
intree="no"
if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then
intree="yes"
fi
# Find Tcl private headers
if test x"${intree}" = xno; then
CY_AC_TCL_PRIVATE_HEADERS
TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}"
TCL_LIBRARY="${TCL_LIB_SPEC}"
TCL_DEPS=""
else
# If building tcl in the same src tree, private headers
# are not needed, but we need to be sure to use the right
# headers library
TCL_INCLUDE="-I${TCL_SRC_DIR}/generic"
TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}"
TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}"
fi
AC_SUBST(TCL_INCLUDE)
AC_SUBST(TCL_LIBRARY)
AC_SUBST(TCL_DEPS)
2001-07-27 18:35:27 +02:00
2009-02-03 00:18:05 +01:00
SC_LOAD_TKCONFIG
# Check for in-tree Tk
intree="no"
if test "${TK_SRC_DIR}" = "${topdir}/tk"; then
intree="yes"
fi
# Find Tk private headers
if test x"${intree}" = xno; then
CY_AC_TK_PRIVATE_HEADERS
TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}"
TK_LIBRARY=${TK_LIB_SPEC}
TK_DEPS=""
else
TK_INCLUDE="-I${TK_SRC_DIR}/generic"
TK_LIBRARY="${TK_BUILD_LIB_SPEC}"
TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}"
fi
AC_SUBST(TK_INCLUDE)
AC_SUBST(TK_LIBRARY)
AC_SUBST(TK_DEPS)
AC_SUBST(TK_XINCLUDES)
ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
# Include some libraries that Tcl and Tk want.
TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
# Yes, the ordering seems wrong here. But it isn't.
# TK_LIBS is the list of libraries that need to be linked
# after Tcl/Tk. Note that this isn't put into LIBS. If it
# were in LIBS then any link tests after this point would
# try to include things like `$(LIBGUI)', which wouldn't work.
GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
if test x$gdb_cv_os_cygwin = xyes; then
WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
WIN32LDAPP="-Wl,--subsystem,console"
CONFIG_OBS="${CONFIG_OBS} gdbres.o"
2000-02-07 01:19:45 +01:00
fi
2002-08-14 19:43:16 +02:00
2009-02-03 00:18:05 +01:00
AC_CONFIG_SUBDIRS(gdbtk)
fi
2000-02-07 01:19:45 +01:00
fi
AC_SUBST(X_CFLAGS)
AC_SUBST(X_LDFLAGS)
AC_SUBST(X_LIBS)
AC_SUBST(GDBTKLIBS)
AC_SUBST(GDBTK_CFLAGS)
2001-08-17 00:47:00 +02:00
AC_SUBST(GDBTK_SRC_DIR)
2000-02-03 05:14:45 +01:00
1999-04-16 03:35:26 +02:00
AC_PATH_X
1999-04-26 20:34:20 +02:00
# Unlike the sim directory, whether a simulator is linked is controlled by
* config/arm/embed.mt (SIM_OBS, SIM): Remove.
* config/avr/avr.mt (SIM_OBS, SIM): Remove.
* config/frv/frv.mt (SIM_OBS, SIM): Remove.
* config/h8300/h8300.mt (SIM_OBS, SIM): Remove.
* config/iq2000/iq2000.mt (SIM_OBS, SIM): Remove.
* config/m32c/m32c.mt (SIM_OBS, SIM): Remove.
* config/m32r/linux.mt (SIM_OBS, SIM): Remove.
* config/m32r/m32r.mt (SIM_OBS, SIM): Remove.
* config/m68hc11/m68hc11.mt (SIM_OBS, SIM): Remove.
* config/mips/embed.mt (SIM_OBS, SIM): Remove.
* config/mips/linux.mt (SIM_OBS, SIM): Remove.
* config/mips/nbsd.mt (SIM_OBS, SIM): Remove.
* config/mn10300/mn10300.mt (SIM_OBS, SIM): Remove.
* config/powerpc/linux.mt (SIM_OBS, SIM): Remove.
* config/powerpc/nbsd.mt (SIM_OBS, SIM): Remove.
* config/powerpc/ppc-sim.mt: Remove file.
* config/sh/embed.mt (SIM_OBS, SIM): Remove.
* config/sh/linux.mt (SIM_OBS, SIM): Remove.
* config/sh/nbsd.mt (SIM_OBS, SIM): Remove.
* config/sh/sh64.mt (SIM_OBS, SIM): Remove.
* config/sparc/embed.mt (SIM_OBS, SIM): Remove.
* config/v850/v850.mt (SIM_OBS, SIM): Remove.
* config/xstormy16/xstormy16.mt (SIM_OBS, SIM): Remove.
* configure.tgt (gdb_sim): Document variable.
(arm*-*-* | thumb*-*-* | strongarm*-*-* | xscale-*-*): Set it.
(avr-*-*): Likewise.
(frv-*-*): Likewise.
(h8300-*-*): Likewise.
(iq2000-*-*): Likewise.
(m32c-*-*): Likewise.
(m32r*-*-linux*): Likewise.
(m32r*-*-*): Likewise.
(m68hc11*-*-*|m6811*-*-*): Likewise.
(mips*-*-*): Likewise.
(mips*-*-linux*): Likewise.
(mips*-*-netbsd* | mips*-*-knetbsd*-gnu): Likewise.
(mn10300-*-*): Likewise.
(powerpc-*-linux* | powerpc64-*-linux*): Likewise.
(powerpc-*-netbsd* | powerpc-*-knetbsd*-gnu): Likewise.
(powerpc*-*-*): Use ppc-eabi target. Conditionally set gdb_sim.
(sh*): Set gdb_sim.
(sh-*-linux*): Likewise.
(sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu): Likewise.
(sh64-*-elf*): Likewise.
(sparc-*-rtems*): Likewise.
(v850*-*-elf): Likewise.
(xstormy16-*-*): Likewise.
* configure.ac (IGNORE_SIM, IGNORE_SIM_OBS): Do not set.
(SIM, SIM_OBS): Set depending on ${ignore_sim} and ${gdb_sim}.
* configure: Regenerate.
* Makefile.in (SIM, SIM_OBS): Substitute from configure.
(@IGNORE_SIM@, @IGNORE_SIM_OBS@): Remove.
2007-11-17 01:44:38 +01:00
# presence of a gdb_sim definition in the target configure.tgt entry.
1999-04-26 20:34:20 +02:00
# This code just checks for a few cases where we'd like to ignore those
# definitions, even when they're present in the '.mt' file. These cases
# are when --disable-sim is specified, or if the simulator directory is
2001-03-23 17:05:29 +01:00
# not part of the source tree.
1999-04-26 20:34:20 +02:00
#
AC_ARG_ENABLE(sim,
2009-04-22 02:17:50 +02:00
AS_HELP_STRING([--enable-sim], [link gdb with simulator]),
1999-04-26 20:34:20 +02:00
[echo "enable_sim = $enable_sim";
echo "enableval = ${enableval}";
case "${enableval}" in
yes) ignore_sim=false ;;
no) ignore_sim=true ;;
*) ignore_sim=false ;;
esac],
[ignore_sim=false])
if test ! -d "${srcdir}/../sim"; then
ignore_sim=true
fi
* config/arm/embed.mt (SIM_OBS, SIM): Remove.
* config/avr/avr.mt (SIM_OBS, SIM): Remove.
* config/frv/frv.mt (SIM_OBS, SIM): Remove.
* config/h8300/h8300.mt (SIM_OBS, SIM): Remove.
* config/iq2000/iq2000.mt (SIM_OBS, SIM): Remove.
* config/m32c/m32c.mt (SIM_OBS, SIM): Remove.
* config/m32r/linux.mt (SIM_OBS, SIM): Remove.
* config/m32r/m32r.mt (SIM_OBS, SIM): Remove.
* config/m68hc11/m68hc11.mt (SIM_OBS, SIM): Remove.
* config/mips/embed.mt (SIM_OBS, SIM): Remove.
* config/mips/linux.mt (SIM_OBS, SIM): Remove.
* config/mips/nbsd.mt (SIM_OBS, SIM): Remove.
* config/mn10300/mn10300.mt (SIM_OBS, SIM): Remove.
* config/powerpc/linux.mt (SIM_OBS, SIM): Remove.
* config/powerpc/nbsd.mt (SIM_OBS, SIM): Remove.
* config/powerpc/ppc-sim.mt: Remove file.
* config/sh/embed.mt (SIM_OBS, SIM): Remove.
* config/sh/linux.mt (SIM_OBS, SIM): Remove.
* config/sh/nbsd.mt (SIM_OBS, SIM): Remove.
* config/sh/sh64.mt (SIM_OBS, SIM): Remove.
* config/sparc/embed.mt (SIM_OBS, SIM): Remove.
* config/v850/v850.mt (SIM_OBS, SIM): Remove.
* config/xstormy16/xstormy16.mt (SIM_OBS, SIM): Remove.
* configure.tgt (gdb_sim): Document variable.
(arm*-*-* | thumb*-*-* | strongarm*-*-* | xscale-*-*): Set it.
(avr-*-*): Likewise.
(frv-*-*): Likewise.
(h8300-*-*): Likewise.
(iq2000-*-*): Likewise.
(m32c-*-*): Likewise.
(m32r*-*-linux*): Likewise.
(m32r*-*-*): Likewise.
(m68hc11*-*-*|m6811*-*-*): Likewise.
(mips*-*-*): Likewise.
(mips*-*-linux*): Likewise.
(mips*-*-netbsd* | mips*-*-knetbsd*-gnu): Likewise.
(mn10300-*-*): Likewise.
(powerpc-*-linux* | powerpc64-*-linux*): Likewise.
(powerpc-*-netbsd* | powerpc-*-knetbsd*-gnu): Likewise.
(powerpc*-*-*): Use ppc-eabi target. Conditionally set gdb_sim.
(sh*): Set gdb_sim.
(sh-*-linux*): Likewise.
(sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu): Likewise.
(sh64-*-elf*): Likewise.
(sparc-*-rtems*): Likewise.
(v850*-*-elf): Likewise.
(xstormy16-*-*): Likewise.
* configure.ac (IGNORE_SIM, IGNORE_SIM_OBS): Do not set.
(SIM, SIM_OBS): Set depending on ${ignore_sim} and ${gdb_sim}.
* configure: Regenerate.
* Makefile.in (SIM, SIM_OBS): Substitute from configure.
(@IGNORE_SIM@, @IGNORE_SIM_OBS@): Remove.
2007-11-17 01:44:38 +01:00
SIM=
SIM_OBS=
if test "${ignore_sim}" = "false"; then
if test x"${gdb_sim}" != x ; then
SIM="${gdb_sim}"
SIM_OBS="remote-sim.o"
2005-07-03 18:05:11 +02:00
AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
* config/arm/embed.mt (SIM_OBS, SIM): Remove.
* config/avr/avr.mt (SIM_OBS, SIM): Remove.
* config/frv/frv.mt (SIM_OBS, SIM): Remove.
* config/h8300/h8300.mt (SIM_OBS, SIM): Remove.
* config/iq2000/iq2000.mt (SIM_OBS, SIM): Remove.
* config/m32c/m32c.mt (SIM_OBS, SIM): Remove.
* config/m32r/linux.mt (SIM_OBS, SIM): Remove.
* config/m32r/m32r.mt (SIM_OBS, SIM): Remove.
* config/m68hc11/m68hc11.mt (SIM_OBS, SIM): Remove.
* config/mips/embed.mt (SIM_OBS, SIM): Remove.
* config/mips/linux.mt (SIM_OBS, SIM): Remove.
* config/mips/nbsd.mt (SIM_OBS, SIM): Remove.
* config/mn10300/mn10300.mt (SIM_OBS, SIM): Remove.
* config/powerpc/linux.mt (SIM_OBS, SIM): Remove.
* config/powerpc/nbsd.mt (SIM_OBS, SIM): Remove.
* config/powerpc/ppc-sim.mt: Remove file.
* config/sh/embed.mt (SIM_OBS, SIM): Remove.
* config/sh/linux.mt (SIM_OBS, SIM): Remove.
* config/sh/nbsd.mt (SIM_OBS, SIM): Remove.
* config/sh/sh64.mt (SIM_OBS, SIM): Remove.
* config/sparc/embed.mt (SIM_OBS, SIM): Remove.
* config/v850/v850.mt (SIM_OBS, SIM): Remove.
* config/xstormy16/xstormy16.mt (SIM_OBS, SIM): Remove.
* configure.tgt (gdb_sim): Document variable.
(arm*-*-* | thumb*-*-* | strongarm*-*-* | xscale-*-*): Set it.
(avr-*-*): Likewise.
(frv-*-*): Likewise.
(h8300-*-*): Likewise.
(iq2000-*-*): Likewise.
(m32c-*-*): Likewise.
(m32r*-*-linux*): Likewise.
(m32r*-*-*): Likewise.
(m68hc11*-*-*|m6811*-*-*): Likewise.
(mips*-*-*): Likewise.
(mips*-*-linux*): Likewise.
(mips*-*-netbsd* | mips*-*-knetbsd*-gnu): Likewise.
(mn10300-*-*): Likewise.
(powerpc-*-linux* | powerpc64-*-linux*): Likewise.
(powerpc-*-netbsd* | powerpc-*-knetbsd*-gnu): Likewise.
(powerpc*-*-*): Use ppc-eabi target. Conditionally set gdb_sim.
(sh*): Set gdb_sim.
(sh-*-linux*): Likewise.
(sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu): Likewise.
(sh64-*-elf*): Likewise.
(sparc-*-rtems*): Likewise.
(v850*-*-elf): Likewise.
(xstormy16-*-*): Likewise.
* configure.ac (IGNORE_SIM, IGNORE_SIM_OBS): Do not set.
(SIM, SIM_OBS): Set depending on ${ignore_sim} and ${gdb_sim}.
* configure: Regenerate.
* Makefile.in (SIM, SIM_OBS): Substitute from configure.
(@IGNORE_SIM@, @IGNORE_SIM_OBS@): Remove.
2007-11-17 01:44:38 +01:00
fi
1999-04-26 20:34:20 +02:00
fi
* config/arm/embed.mt (SIM_OBS, SIM): Remove.
* config/avr/avr.mt (SIM_OBS, SIM): Remove.
* config/frv/frv.mt (SIM_OBS, SIM): Remove.
* config/h8300/h8300.mt (SIM_OBS, SIM): Remove.
* config/iq2000/iq2000.mt (SIM_OBS, SIM): Remove.
* config/m32c/m32c.mt (SIM_OBS, SIM): Remove.
* config/m32r/linux.mt (SIM_OBS, SIM): Remove.
* config/m32r/m32r.mt (SIM_OBS, SIM): Remove.
* config/m68hc11/m68hc11.mt (SIM_OBS, SIM): Remove.
* config/mips/embed.mt (SIM_OBS, SIM): Remove.
* config/mips/linux.mt (SIM_OBS, SIM): Remove.
* config/mips/nbsd.mt (SIM_OBS, SIM): Remove.
* config/mn10300/mn10300.mt (SIM_OBS, SIM): Remove.
* config/powerpc/linux.mt (SIM_OBS, SIM): Remove.
* config/powerpc/nbsd.mt (SIM_OBS, SIM): Remove.
* config/powerpc/ppc-sim.mt: Remove file.
* config/sh/embed.mt (SIM_OBS, SIM): Remove.
* config/sh/linux.mt (SIM_OBS, SIM): Remove.
* config/sh/nbsd.mt (SIM_OBS, SIM): Remove.
* config/sh/sh64.mt (SIM_OBS, SIM): Remove.
* config/sparc/embed.mt (SIM_OBS, SIM): Remove.
* config/v850/v850.mt (SIM_OBS, SIM): Remove.
* config/xstormy16/xstormy16.mt (SIM_OBS, SIM): Remove.
* configure.tgt (gdb_sim): Document variable.
(arm*-*-* | thumb*-*-* | strongarm*-*-* | xscale-*-*): Set it.
(avr-*-*): Likewise.
(frv-*-*): Likewise.
(h8300-*-*): Likewise.
(iq2000-*-*): Likewise.
(m32c-*-*): Likewise.
(m32r*-*-linux*): Likewise.
(m32r*-*-*): Likewise.
(m68hc11*-*-*|m6811*-*-*): Likewise.
(mips*-*-*): Likewise.
(mips*-*-linux*): Likewise.
(mips*-*-netbsd* | mips*-*-knetbsd*-gnu): Likewise.
(mn10300-*-*): Likewise.
(powerpc-*-linux* | powerpc64-*-linux*): Likewise.
(powerpc-*-netbsd* | powerpc-*-knetbsd*-gnu): Likewise.
(powerpc*-*-*): Use ppc-eabi target. Conditionally set gdb_sim.
(sh*): Set gdb_sim.
(sh-*-linux*): Likewise.
(sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu): Likewise.
(sh64-*-elf*): Likewise.
(sparc-*-rtems*): Likewise.
(v850*-*-elf): Likewise.
(xstormy16-*-*): Likewise.
* configure.ac (IGNORE_SIM, IGNORE_SIM_OBS): Do not set.
(SIM, SIM_OBS): Set depending on ${ignore_sim} and ${gdb_sim}.
* configure: Regenerate.
* Makefile.in (SIM, SIM_OBS): Substitute from configure.
(@IGNORE_SIM@, @IGNORE_SIM_OBS@): Remove.
2007-11-17 01:44:38 +01:00
AC_SUBST(SIM)
AC_SUBST(SIM_OBS)
1999-04-26 20:34:20 +02:00
1999-04-16 03:35:26 +02:00
AC_SUBST(ENABLE_CFLAGS)
2003-01-23 00:50:35 +01:00
AC_SUBST(PROFILE_CFLAGS)
1999-04-16 03:35:26 +02:00
AC_SUBST(CONFIG_OBS)
AC_SUBST(CONFIG_DEPS)
AC_SUBST(CONFIG_SRCS)
2000-03-03 06:44:39 +01:00
AC_SUBST(CONFIG_ALL)
AC_SUBST(CONFIG_CLEAN)
2000-02-24 09:16:26 +01:00
AC_SUBST(CONFIG_INSTALL)
AC_SUBST(CONFIG_UNINSTALL)
1999-04-16 03:35:26 +02:00
2004-07-29 21:33:22 +02:00
# List of host floatformats.
AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
1999-04-16 03:35:26 +02:00
# target_subdir is used by the testsuite to find the target libraries.
target_subdir=
if test "${host}" != "${target}"; then
target_subdir="${target_alias}/"
fi
AC_SUBST(target_subdir)
frags=
2006-11-22 14:49:53 +01:00
if test "${gdb_native}" = "yes"; then
2004-09-28 22:17:32 +02:00
host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
if test ! -f ${host_makefile_frag}; then
AC_MSG_ERROR("*** Gdb does not support native target ${host}")
fi
frags="$frags $host_makefile_frag"
else
host_makefile_frag=/dev/null
1999-04-16 03:35:26 +02:00
fi
AC_SUBST_FILE(host_makefile_frag)
AC_SUBST(frags)
changequote(,)dnl
2006-11-22 14:49:53 +01:00
if test "${gdb_native}" = "yes"; then
2002-02-14 06:31:46 +01:00
# We pick this up from the host configuration file (.mh) because we
# do not have a native configuration Makefile fragment.
1999-04-16 03:35:26 +02:00
nativefile=`sed -n '
s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
' ${host_makefile_frag}`
fi
changequote([,])
2003-01-05 00:47:13 +01:00
if test x"${gdb_osabi}" != x ; then
AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
[Define to the default OS ABI for this configuration.])
fi
2003-01-04 00:19:28 +01:00
# Enable multi-ice-gdb-server.
AC_ARG_ENABLE(multi-ice,
2009-04-22 02:17:50 +02:00
AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]),
2003-01-04 00:19:28 +01:00
[case $enableval in
yes | no)
;;
*) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
esac])
if test "x$enable_multi_ice" = xyes; then
2005-01-07 16:17:01 +01:00
AC_CONFIG_SUBDIRS(multi-ice)
1999-08-09 23:36:23 +02:00
fi
2010-09-22 18:15:01 +02:00
AC_ARG_ENABLE(gdbserver,
AS_HELP_STRING([--enable-gdbserver],
[automatically build gdbserver (yes/no/auto, default is auto)]),
[case "${enableval}" in
yes| no|auto) ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-gdbserver option) ;;
esac],[enable_gdbserver=auto])
# We only build gdbserver automatically in a native configuration, and
# only if the user did not explicitly disable its build.
if test "$gdb_native" = "yes" -a "$enable_gdbserver" != "no"; then
2003-01-04 00:19:28 +01:00
AC_MSG_CHECKING(whether gdbserver is supported on this host)
if test "x$build_gdbserver" = xyes; then
AC_MSG_RESULT(yes)
2005-01-07 16:17:01 +01:00
AC_CONFIG_SUBDIRS(gdbserver)
2010-09-22 18:15:01 +02:00
gdbserver_build_enabled=yes
2003-01-04 00:19:28 +01:00
else
AC_MSG_RESULT(no)
fi
2002-02-14 06:31:46 +01:00
fi
2010-09-22 18:15:01 +02:00
# If the user explicitly request the gdbserver to be built, verify that
# we were in fact able to enable it.
if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then
AC_MSG_ERROR(Automatic gdbserver build is not supported for this configuration)
fi
2007-11-17 01:41:17 +01:00
# If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
2004-09-13 22:55:42 +02:00
# to an empty version.
1999-04-16 03:35:26 +02:00
files=
links=
Thu Jul 27 17:38:35 2000 Andrew Cagney <cagney@b1.cygnus.com>
* configure.in (targetfile): Ignore TM_FILE, don't just issue
warning.
(tm_h, xm_h, nm_h, GDB_TM_FILE, GDB_XM_FILE, GDB_NM_FILE): Define.
* acconfig.h (GDB_XM_FILE, GDB_TM_FILE, GDB_NM_FILE): Add.
* config/nm-empty.h: Delete.
* defs.h (xm.h, nm.h, tm.h): Only include when GDB_XM_FILE,
GDB_NM_FILE or GDB_TM_FILE defined.
* Makefile.in (defs_h): Replace tm.h, xm.h and nm.h with tm_h,
xm_h and nm_h macro that are defined by configure.
(tm_h, xm_h, tm_h): New.
* configure, config.in: Regenerate
* TODO: Update.
2000-08-02 13:11:47 +02:00
1999-04-16 03:35:26 +02:00
rm -f nm.h
if test "${nativefile}" != ""; then
2004-09-03 00:14:33 +02:00
case "${nativefile}" in
nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
* ) GDB_NM_FILE="${nativefile}"
esac
Thu Jul 27 17:38:35 2000 Andrew Cagney <cagney@b1.cygnus.com>
* configure.in (targetfile): Ignore TM_FILE, don't just issue
warning.
(tm_h, xm_h, nm_h, GDB_TM_FILE, GDB_XM_FILE, GDB_NM_FILE): Define.
* acconfig.h (GDB_XM_FILE, GDB_TM_FILE, GDB_NM_FILE): Add.
* config/nm-empty.h: Delete.
* defs.h (xm.h, nm.h, tm.h): Only include when GDB_XM_FILE,
GDB_NM_FILE or GDB_TM_FILE defined.
* Makefile.in (defs_h): Replace tm.h, xm.h and nm.h with tm_h,
xm_h and nm_h macro that are defined by configure.
(tm_h, xm_h, tm_h): New.
* configure, config.in: Regenerate
* TODO: Update.
2000-08-02 13:11:47 +02:00
files="${files} ${GDB_NM_FILE}"
links="${links} nm.h"
2005-07-03 18:05:11 +02:00
AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
1999-04-16 03:35:26 +02:00
fi
2009-04-21 22:19:13 +02:00
AC_SUBST(GDB_NM_FILE)
Thu Jul 27 17:38:35 2000 Andrew Cagney <cagney@b1.cygnus.com>
* configure.in (targetfile): Ignore TM_FILE, don't just issue
warning.
(tm_h, xm_h, nm_h, GDB_TM_FILE, GDB_XM_FILE, GDB_NM_FILE): Define.
* acconfig.h (GDB_XM_FILE, GDB_TM_FILE, GDB_NM_FILE): Add.
* config/nm-empty.h: Delete.
* defs.h (xm.h, nm.h, tm.h): Only include when GDB_XM_FILE,
GDB_NM_FILE or GDB_TM_FILE defined.
* Makefile.in (defs_h): Replace tm.h, xm.h and nm.h with tm_h,
xm_h and nm_h macro that are defined by configure.
(tm_h, xm_h, tm_h): New.
* configure, config.in: Regenerate
* TODO: Update.
2000-08-02 13:11:47 +02:00
1999-04-16 03:35:26 +02:00
AC_LINK_FILES($files, $links)
dnl Check for exe extension set on certain hosts (e.g. Win32)
AC_EXEEXT
2002-09-20 02:24:01 +02:00
dnl Detect the character set used by this host.
gdb:
2009-03-19 Tom Tromey <tromey@redhat.com>
Julian Brown <julian@codesourcery.com>
PR i18n/7220, PR i18n/7821, PR exp/8815, PR exp/9103,
PR i18n/9401, PR exp/9613:
* NEWS: Update
* value.h (value_typed_string): Declare.
(val_print_string): Update.
* valprint.h (print_char_chars): Update.
* valprint.c (print_char_chars): Add type argument. Update.
(val_print_string): Likewise.
* valops.c (value_typed_string): New function.
* utils.c (host_char_to_target): New function.
(parse_escape): Use host_char_to_target, host_hex_value. Update.
Remove '^' case.
(no_control_char_error): Remove.
* typeprint.c (print_type_scalar): Update.
* scm-valprint.c (scm_scmval_print): Update.
* scm-lang.h (scm_printchar, scm_printstr): Update.
* scm-lang.c (scm_printchar): Add type argument.
(scm_printstr): Likewise.
* printcmd.c (print_formatted): Update.
(print_scalar_formatted): Update.
(printf_command) <wide_string_arg, wide_char_arg>: New constants.
Handle '%lc' and '%ls'.
* parser-defs.h (struct typed_stoken): New type.
(struct stoken_vector): Likewise.
(write_exp_string_vector): Declare.
* parse.c (write_exp_string_vector): New function.
* p-valprint.c (pascal_val_print): Update.
* p-lang.h (is_pascal_string_type, pascal_printchar,
pascal_printstr): Update.
* p-lang.c (is_pascal_string_type): Remove 'char_size' argument.
Add 'char_type' argument.
(pascal_emit_char): Add type argument.
(pascal_printchar): Likewise.
(pascal_printstr): Likewise.
* objc-lang.c (objc_emit_char): Add type argument.
(objc_printchar): Likewise.
(objc_printstr): Likewise.
* macroexp.c (get_character_constant): Handle unicode characters.
Use c_parse_escape.
(get_string_literal): Handle unicode strings. Use
c_parse_escape.
* m2-valprint.c (print_unpacked_pointer): Update.
(m2_print_array_contents): Update.
(m2_val_print): Update.
* m2-lang.c (m2_emit_char): Add type argument.
(m2_printchar): Likewise.
(m2_printstr): Likewise.
* language.h (struct language_defn) <la_printchar>: Add type
argument.
<la_printstr, la_emitchar>: Likewise.
(LA_PRINT_CHAR): Likewise.
(LA_PRINT_STRING): Likewise.
(LA_EMIT_CHAR): Likewise.
* language.c (unk_lang_emit_char): Add type argument.
(unk_lang_printchar): Likewise.
(unk_lang_printstr): Likewise.
* jv-valprint.c (java_val_print): Update.
* jv-lang.c (java_emit_char): Add type argument.
* f-valprint.c (f_val_print): Update.
* f-lang.c (f_emit_char): Add type argument.
(f_printchar): Likewise.
(f_printstr): Likewise.
* expprint.c (print_subexp_standard): Update.
* charset.h (target_wide_charset): Declare.
(c_target_char_has_backslash_escape, c_parse_backslash,
host_char_print_literally, host_char_to_target,
target_char_to_host, target_char_to_control_char): Remove.
(enum transliterations): New type.
(convert_between_encodings): Declare.
(HOST_ESCAPE_CHAR): New define.
(host_letter_to_control_character, host_hex_value): Declare.
(enum wchar_iterate_result): New enum.
(struct wchar_iterator): Declare.
(make_wchar_iterator, make_cleanup_wchar_iterator, wchar_iterator,
wchar_push_back): Declare.
* charset-list.h: New file.
* c-valprint.c (textual_name): New function.
(textual_element_type): Handle wide character types.
(c_val_print): Pass original type to textual_element_type. Handle
wide character types.
(c_value_print): Use textual_element_type. Pass original type of
value to val_print.
* c-lang.h (enum c_string_type): New type.
(c_printchar, c_printstr): Update.
* c-lang.c (classify_type): New function.
(print_wchar): Likewise.
(c_emit_char): Add type argument. Handle wide characters.
(c_printchar): Likewise.
(c_printstr): Add type argument. Handle wide and multibyte
character sets.
(convert_ucn): New function.
(emit_numeric_character): Likewise.
(convert_octal): Likewise.
(convert_hex): Likewise.
(ADVANCE): New macro.
(convert_escape): New function.
(parse_one_string): Likewise.
(evaluate_subexp_c): Likewise.
(exp_descriptor_c): New global.
(c_language_defn): Use exp_descriptor_c.
(cplus_language_defn): Likewise.
(asm_language_defn): Likewise.
(minimal_language_defn): Likewise.
(charset_for_string_type): New function.
* c-exp.y (%union): Add 'svec' and 'tsval'.
(CHAR): New token.
(exp): Add CHAR production.
(string_exp): Rewrite.
(exp) <string_exp>: Rewrite.
(tempbuf): Now global.
(tempbuf_init): New global.
(parse_string_or_char): New function.
(yylex) <tempbuf>: Now global.
<tokptr, tempbufindex, tempbufsize, token_string, class_prefix>:
Remove.
Handle 'u', 'U', and 'L' prefixes. Call parse_string_or_char.
(c_parse_escape): New function.
* auxv.c (fprint_target_auxv): Update.
* ada-valprint.c (ada_emit_char): Add type argument.
(ada_printchar): Likewise.
(ada_print_scalar): Update.
(printstr): Add type argument. Update calls to ada_emit_char.
(ada_printstr): Add type argument.
(ada_val_print_array): Update.
(ada_val_print_1): Likewise.
* ada-lang.c (emit_char): Add type argument.
* ada-lang.h (ada_emit_char, ada_printchar, ada_printstr): Add
type arguments.
* gdb_locale.h: Include langinfo.h.
* charset.c (_initialize_charset): Set default host charset from
the locale. Don't register charsets. Add target-wide-charset
commands. Call find_charset_names.
(struct charset, struct translation): Remove.
(GDB_DEFAULT_HOST_CHARSET): Remove.
(GDB_DEFAULT_TARGET_WIDE_CHARSET): New define.
(target_wide_charset_name): New global.
(show_host_charset_name): Handle "auto".
(show_target_wide_charset_name): New function.
(host_charset_enum, target_charset_enum): Remove.
(charset_enum): New global.
(all_charsets, register_charset, lookup_charset, all_translations,
register_translation, lookup_translation): Remove.
(simple_charset, ascii_print_literally, ascii_to_control): Remove.
(iso_8859_print_literally, iso_8859_to_control,
iso_8859_family_charset): Remove.
(ebcdic_print_literally, ebcdic_to_control,
ebcdic_family_charset): Remove.
(struct cached_iconv, check_iconv_cache, cached_iconv_convert,
register_iconv_charsets): Remove.
(target_wide_charset_be_name, target_wide_charset_le_name): New
globals.
(identity_either_char_to_other): Remove.
(set_be_le_names, validate): New functions.
(backslashable, backslashed, represented): Remove.
(default_c_target_char_has_backslash_escape): Remove.
(default_c_parse_backslash, iconv_convert): Remove.
(ascii_to_iso_8859_1_table, ascii_to_ebcdic_us_table,
ascii_to_ibm1047_table, iso_8859_1_to_ascii_table,
iso_8859_1_to_ebcdic_us_table, iso_8859_1_to_ibm1047_table,
ebcdic_us_to_ascii_table, ebcdic_us_to_iso_8859_1_table,
ebcdic_us_to_ibm1047_table, ibm1047_to_ascii_table,
ibm1047_to_iso_8859_1_table, ibm1047_to_ebcdic_us_table): Remove.
(table_convert_char, table_translation, simple_table_translation):
Remove.
(current_host_charset, current_target_charset,
c_target_char_has_backslash_escape_func,
c_target_char_has_backslash_escape_baton): Remove.
(c_parse_backslash_func, c_parse_backslash_baton): Remove.
(host_char_to_target_func, host_char_to_target_baton): Remove.
(target_char_to_host_func, target_char_to_host_baton): Remove.
(cached_iconv_host_to_target, cached_iconv_target_to_host):
Remove.
(lookup_charset_or_error, check_valid_host_charset): Remove.
(set_host_and_target_charsets): Remove.
(set_host_charset, set_target_charset): Remove.
(set_host_charset_sfunc, set_target_charset_sfunc): Rewrite.
(set_target_wide_charset_sfunc): New function.
(show_charset): Print target wide character set.
(host_charset, target_charset): Rewrite.
(target_wide_charset): New function.
(c_target_char_has_backslash_escape): Remove.
(c_parse_backslash): Remove.
(host_letter_to_control_character): New function.
(host_char_print_literally): Remove.
(host_hex_value): New function.
(target_char_to_control_char): Remove.
(cleanup_iconv): New function.
(convert_between_encodings): New function.
(target_char_to_host): Remove.
(struct wchar_iterator): Define.
(make_wchar_iterator, make_cleanup_wchar_iterator, wchar_iterator,
wchar_push_back): New functions.
(do_cleanup_iterator): New function.
(char_ptr): New typedef.
(charsets): New global.
(add_one, find_charset_names): New functions.
(default_charset_names): New global.
(auto_host_charset_name): Likewise.
* aclocal.m4, config.in, configure: Rebuild.
* configure.ac: Call AM_LANGINFO_CODESET.
(GDB_DEFAULT_HOST_CHARSET): Default to UTF-8.
(AM_ICONV): Invoke earlier.
* acinclude.m4: Include codeset.m4. Subst LIBICONV_INCLUDE and
LIBICONV_LIBDIR. Check for libiconv in build tree.
* Makefile.in (LIBICONV_LIBDIR, LIBICONV_INCLUDE): New macros.
(INTERNAL_CFLAGS_BASE): Add LIBICONV_INCLUDE.
(INTERNAL_LDFLAGS): Add LIBICONV_LIBDIR.
* gdb_obstack.h (obstack_grow_wstr): New define.
* gdb_wchar.h: New file.
* defs.h: Include it.
gdb/testsuite:
* gdb.base/store.exp: Update for change to escape output.
* gdb.base/callfuncs.exp (fetch_all_registers): Update for change
to escape output.
* gdb.base/pointers.exp: Update for change to escape output.
* gdb.base/long_long.exp (gdb_test_long_long): Update for change
to escape output.
* gdb.base/constvars.exp (do_constvar_tests): Update for change to
escape output.
* gdb.base/call-rt-st.exp (print_struct_call): Update for change
to escape output.
* gdb.cp/ref-types.exp (gdb_start_again): Update for change to
escape output.
* gdb.base/setvar.exp: Update for change to escape output.
* lib/gdb.exp (default_gdb_start): Set LC_CTYPE to C.
* gdb.base/printcmds.exp (test_print_all_chars): Update for change
to escape output.
(test_print_string_constants): Likewise.
* gdb.base/charset.exp (valid_host_charset): Check size of
wchar_t. Handle UCS-2 and UCS-4. Add tests for wide and unicode
cases. Handle "auto"-related output.
* gdb.base/charset.c (char16_t, char32_t): New typedefs.
(uvar, Uvar): New globals.
gdb/doc:
* gdb.texinfo (Character Sets): Remove obsolete text. Document
set target-wide-charset.
(Requirements): Mention iconv.
2009-03-21 00:04:40 +01:00
dnl At the moment, we just assume it's UTF-8.
AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
2002-09-20 02:24:01 +02:00
[Define to be a string naming the default host character set.])
2012-04-19 Pedro Alves <palves@redhat.com>
gdb/
* Makefile.in (GNULIB_BUILDDIR): New.
(LIBGNU, INCGNU, GNULIB_H): Adjust.
(SUBDIRS): Add $(GNULIB_BUILDDIR).
(CLEANDIRS). Remove gnulib/import.
(REQUIRED_SUBDIRS): Replace gnulib/import with $(GNULIB_BUILDDIR).
(all-lib): Ditto.
(distclean): Remove the $(GNULIB_BUILDDIR) directory.
(gnulib/import/Makefile): Replace gnulib/import with
$(GNULIB_BUILDDIR). Set CONFIG_FILES to just Makefile.
(ACLOCAL_AMFLAGS): Remove '-I gnulib/import/m4'.
(aclocal_m4_deps): Remove the gnulib dependencies. Add
acx_configure_dir.m4.
* acinclude.m4: Include acx_configure_dir.m4.
* acx_configure_dir.m4: New file.
* aclocal.m4: Regenerate.
* configure.ac: Remove gl_EARLY, gl_INIT and AM_INIT_AUTOMAKE
calls. Configure gnulib using ACX_CONFIGURE_DIR.
(GNULIB): New variable.
(GNULIB_STDINT_H): Adjust.
(AC_OUTPUT): Don't output gnulib/Makefile.
* gdb/defs.h: Include build-gnulib/config.h.
* aclocal.m4: Regenerate.
* config.in: Regenerate.
* configure: Regenerate.
* gnulib/Makefile.in: New file.
* gnulib/configure.ac: New file.
* gnulib/aclocal.m4: New file.
* gnulib/config.in: New file.
* gnulib/configure: New file.
* gnulib/: Re-run gnulib-tool to adjust.
gdb/gdbserver/
* Makefile.in (GNULIB_BUILDDIR): New.
(LIBGNU, INCGNU, GNULIB_H): Adjust.
(SUBDIRS, CLEANDIRS, REQUIRED_SUBDIRS): New.
(all, install-only, uninstall, clean-info, all-lib, clean): No
longer pass GNULIB_FLAGS_TO_PASS. Use subdir_do.
(maintainer-clean realclean distclean): Use subdir_do.
(subdir_do): New.
(gnulib/import/Makefile): Adjust. Replace gnulib/import with
$(GNULIB_BUILDDIR). Don't pass argument to config.status.
* acinclude.m4: Include acx_configure_dir.m4.
* configure.ac: Remove gl_EARLY, gl_INIT, and AM_INIT_AUTOMAKE
calls. Call AC_PROG_RANLIB. Configure gnulib using
ACX_CONFIGURE_DIR.
(GNULIB): New.
(GNULIB_STDINT_H): Adjust.
(AC_OUTPUT): Don't output gnulib/Makefile anymore.
* gdbreplay.c: Include build-gnulib/config.h.
* server.h: Likewise.
* aclocal.m4: Regenerate.
* config.in: Regenerate.
* configure: Regenerate.
2012-04-19 21:34:52 +02:00
AC_OUTPUT(Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile,
1999-04-16 03:35:26 +02:00
[
case x$CONFIG_HEADERS in
xconfig.h:config.in)
echo > stamp-h ;;
esac
])
exit 0