1999-04-16 09:35:26 +08:00
|
|
|
dnl Autoconf configure script for GDB, the GNU debugger.
|
2015-01-01 17:32:14 +08:00
|
|
|
dnl Copyright (C) 1995-2015 Free Software Foundation, Inc.
|
1999-04-16 09:35:26 +08:00
|
|
|
dnl
|
|
|
|
dnl This file is part of GDB.
|
2014-01-22 03:01:04 +08:00
|
|
|
dnl
|
1999-04-16 09:35:26 +08:00
|
|
|
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-24 01:58:44 +08:00
|
|
|
dnl the Free Software Foundation; either version 3 of the License, or
|
1999-04-16 09:35:26 +08:00
|
|
|
dnl (at your option) any later version.
|
2007-08-24 01:58:44 +08:00
|
|
|
dnl
|
1999-04-16 09:35:26 +08: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-24 01:58:44 +08:00
|
|
|
dnl
|
1999-04-16 09:35:26 +08:00
|
|
|
dnl You should have received a copy of the GNU General Public License
|
2007-08-24 01:58:44 +08:00
|
|
|
dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
|
1999-04-16 09:35:26 +08: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-08 05:53:26 +08:00
|
|
|
AC_PREREQ(2.59)dnl
|
1999-04-16 09:35:26 +08:00
|
|
|
AC_INIT(main.c)
|
|
|
|
AC_CONFIG_HEADER(config.h:config.in)
|
2000-04-13 13:33:41 +08:00
|
|
|
AM_MAINTAINER_MODE
|
1999-04-16 09:35:26 +08:00
|
|
|
|
On mainline/development, also link GDBserver with -lmcheck.
This factors --enable-libmcheck related bits from GDB's configure.ac
and makes GDBserver use them too. Specifically, the 'development'
global is moved to a separate script to it can be sourced by both GDB
and GDBserver, and the --enable-libmcheck/--disable-libmcheck bits
proper are moved to a new m4 file.
I started out by defining 'development' in the m4 file, but in the end
decided against it, as a separate script has the advantage that
changing it in release branches does not require regenerating
configure, unlike today.
I had also started out by making the new GDB_AC_LIBMCHECK itself
handle the yes/no default fallback depending on release/developement,
but since I had split out 'development' to a separate script, and, GDB
needs the python checks anyway (hence we'd need to do the python
checks in gdb's configure.ac, and pass in a 'default lmcheck yes/no'
parameter to GDB_AC_LIBMCHECK anyway), I ended up keeping
GDB_AC_LIBMCHECK isolated from the 'development' global. IOW, it's
the caller's business to handle it.
Tested on x86_64 Fedora 17. Built GDB and GDBserver with and without
--enable-libmcheck, and observed --enable-libmcheck overrides the
disablement of -lmcheck caused by python supporting threads, and that
GDBserver links with -lmcheck when expected. Also observed that
changing the 'development' global, and issuing "make" triggers a
relink, and '-lmcheck' is included or not from the link accordingly.
gdb/
2013-07-03 Pedro Alves <palves@redhat.com>
* Makefile.in (config.status): Depend on development.sh.
(aclocal_m4_deps): Add libmcheck.m4.
* acinclude.m4: Include libmcheck.m4.
* configure.ac: Source development.sh instead of setting
'development' here. --enable-libmcheck/--disable-libmcheck code
factored out to GDB_AC_LIBMCHECK. Run it.
* development.sh: New file.
* libmcheck.m4: New file.
* configure: Regenerate.
gdb/gdbserver/
2013-07-03 Pedro Alves <palves@redhat.com>
* Makefile.in (config.status): Depend on development.sh.
* acinclude.m4: Include libmcheck.m4.
* configure: Regenerate.
2013-07-03 21:25:46 +08:00
|
|
|
# Set the 'development' global.
|
Make it easy to make --disable-werror the default for both binutils and gdb
The goal of this patch is to provide an easy way to make
--disable-werror the default when building binutils, or the parts
of binutils that need to get built when building GDB. In development
mode, we want to continue making -Werror the default with GCC.
But, when making releases, I think we want to make it as easy as
possible for regular users to successfully build from sources.
GDB already has this kind of feature to turn -Werror as well as
the use of the libmcheck library. As GDB Release Manager, I take
advantage of it to turn those off after having cut the branch.
I'd like to be able to do the same for the binutils bits. And
perhaps Tristan will want to do the same for his releases too
(not sure, binutils builders might be a little savvier than GDB
builders).
This patch introduces a new file, called development.sh, which
just sets a variable called $development. In our development branches
(Eg. "master"), it's set to true. But setting it to false would allow
us to change the default behavior of various development-related
features to be turned off; in this case, it turns off the use of
-Werror by default (use --enable-werror to turn it back on).
bfd/ChangeLog:
* development.sh: New file.
* warning.m4 (AM_BINUTILS_WARNINGS): Source bfd/development.sh.
Make -Werror the default with GCC only if DEVELOPMENT is true.
* Makefile.am (CONFIG_STATUS_DEPENDENCIES): Add
$(srcdir)/development.sh.
* Makefile.in, configure: Regenerate.
binutils/ChangeLog:
* Makefile.am (CONFIG_STATUS_DEPENDENCIES): Add dependency on
bfd's development.sh.
* Makefile.in, configure: Regenerate.
gas/ChangeLog:
* Makefile.am (CONFIG_STATUS_DEPENDENCIES): Add dependency on
bfd's development.sh.
* Makefile.in, configure: Regenerate.
gold/ChangeLog:
* Makefile.am (CONFIG_STATUS_DEPENDENCIES): New.
* Makefile.in, configure: Regenerate.
gprof/ChangeLog:
* Makefile.am (CONFIG_STATUS_DEPENDENCIES): Add dependency on
bfd's development.sh.
* Makefile.in, configure: Regenerate.
ld/ChangeLog:
* Makefile.am (CONFIG_STATUS_DEPENDENCIES): Add dependency on
bfd's development.sh.
* Makefile.in, configure: Regenerate.
opcodes/ChangeLog:
* Makefile.am (CONFIG_STATUS_DEPENDENCIES): Add dependency on
bfd's development.sh.
* Makefile.in, configure: Regenerate.
gdb/ChangeLog:
* development.sh: Delete.
* Makefile.in (config.status): Adjust dependency on development.sh.
* configure.ac: Adjust development.sh source call.
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
* configure.ac: Adjust development.sh source call.
* Makefile.in (config.status): Adjust dependency on development.sh.
* configure: Regenerate.
Tested on x86_64-linux by building two ways: One with DEVELOPMENT
set to true, and one with DEVELOPMENT set to false. In the first
case, I could see the use of -Werror, while it disappeared in
the second case.
2014-05-20 05:46:01 +08:00
|
|
|
. $srcdir/../bfd/development.sh
|
2012-06-07 00:57:38 +08:00
|
|
|
|
1999-04-16 09:35:26 +08:00
|
|
|
AC_PROG_CC
|
Add --enable-build-with-cxx configure switch
This new option, disabled by default for now, allows specifying
whether to build GDB, GDBserver, and friends with a C++ (98/03)
compiler.
The name of the switch should be familiar to those who followed GCC's
own C++ conversion process.
. Adding -fpermissive to COMPILER in C++ mode (see the new
build-with-cxx.m4 file) makes errors like these be warnings instead:
gdb/infrun.c:6597:1: error: initializing argument 1 of ‘void sig_print_info(gdb_signal)’ [-fpermissive]
sig_print_info (enum gdb_signal oursig)
^
gdb/infrun.c: In function ‘void do_restore_infcall_suspend_state_cleanup(void*)’:
gdb/infrun.c:7164:39: error: invalid conversion from ‘void*’ to ‘infcall_suspend_state*’ [-fpermissive]
restore_infcall_suspend_state (state);
^
so that the compiler carries on compiling the file. -Werror still
catches the warnings, so nothing is lost, only our lifes are made
easier by concentrating on getting other more important things out of
the way first.
There's no way to quiet those warnings. Until they're all fixed, when
building in C++ mode, -Werror is disabled by default.
. Adding -Wno-narrowing suppresses thousands of instances of this warning:
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1l’ from ‘LONGEST {aka long int}’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:450:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
We can defer handling those until we target C++11.
. Adding -Wno-sign-compare suppresses thousands of instances of this warning:
gdb/linux-record.c:1763:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (tmpulongest == tdep->fcntl_F_GETLK64)
^
. Adding -Wno-write-strings suppresses thousands of instances of this warning:
gdb/mi/mi-cmd-var.c: In function ‘void mi_cmd_var_show_attributes(char*, char**, int)’:
gdb/mi/mi-cmd-var.c:514:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "editable";
^
gdb/mi/mi-cmd-var.c:516:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "noneditable";
^
For now, it's best to hide these warnings from view until we're
'-fpermissive'-clean, and can thus start building with -Werror.
The C compiler has always managed to build working GDBs with these
issues in the code, so a C++ compiler should too.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(COMPILE.pre, CC_LD): Use COMPILER.
(CXX): Get from autoconf instead.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* build-with-cxx.m4: New file.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Only enable -Wpointer-sign in C mode.
Run supported-warning-flags tests with the C++ compiler.
Save/restore CXXFLAGS too.
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(CXX): Get from autoconf instead.
(COMPILE.pre): Use COMPILER.
(CC-LD): Rename to ...
(CC_LD): ... this. Use COMPILER.
(gdbserver$(EXEEXT), gdbreplay$(EXEEXT), $(IPA_LIB)): Adjust.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Run supported-warning-flags tests with
the C++ compiler. Save/restore CXXFLAGS too.
* configure: Regenerate.
2015-02-27 21:11:25 +08:00
|
|
|
AC_PROG_CXX
|
|
|
|
|
2009-08-22 23:59:24 +08:00
|
|
|
AC_USE_SYSTEM_EXTENSIONS
|
2009-11-11 12:42:42 +08:00
|
|
|
ACX_LARGEFILE
|
1999-04-16 09:35:26 +08:00
|
|
|
AM_PROG_CC_STDC
|
2014-01-22 03:01:04 +08:00
|
|
|
AM_PROG_INSTALL_STRIP
|
1999-04-16 09:35:26 +08:00
|
|
|
|
* 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-15 02:04:00 +08:00
|
|
|
AC_CONFIG_AUX_DIR(..)
|
1999-04-16 09:35:26 +08:00
|
|
|
AC_CANONICAL_SYSTEM
|
2012-04-28 02:30:20 +08:00
|
|
|
AC_ARG_PROGRAM
|
1999-04-16 09:35:26 +08:00
|
|
|
|
Add --enable-build-with-cxx configure switch
This new option, disabled by default for now, allows specifying
whether to build GDB, GDBserver, and friends with a C++ (98/03)
compiler.
The name of the switch should be familiar to those who followed GCC's
own C++ conversion process.
. Adding -fpermissive to COMPILER in C++ mode (see the new
build-with-cxx.m4 file) makes errors like these be warnings instead:
gdb/infrun.c:6597:1: error: initializing argument 1 of ‘void sig_print_info(gdb_signal)’ [-fpermissive]
sig_print_info (enum gdb_signal oursig)
^
gdb/infrun.c: In function ‘void do_restore_infcall_suspend_state_cleanup(void*)’:
gdb/infrun.c:7164:39: error: invalid conversion from ‘void*’ to ‘infcall_suspend_state*’ [-fpermissive]
restore_infcall_suspend_state (state);
^
so that the compiler carries on compiling the file. -Werror still
catches the warnings, so nothing is lost, only our lifes are made
easier by concentrating on getting other more important things out of
the way first.
There's no way to quiet those warnings. Until they're all fixed, when
building in C++ mode, -Werror is disabled by default.
. Adding -Wno-narrowing suppresses thousands of instances of this warning:
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1l’ from ‘LONGEST {aka long int}’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:450:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
We can defer handling those until we target C++11.
. Adding -Wno-sign-compare suppresses thousands of instances of this warning:
gdb/linux-record.c:1763:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (tmpulongest == tdep->fcntl_F_GETLK64)
^
. Adding -Wno-write-strings suppresses thousands of instances of this warning:
gdb/mi/mi-cmd-var.c: In function ‘void mi_cmd_var_show_attributes(char*, char**, int)’:
gdb/mi/mi-cmd-var.c:514:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "editable";
^
gdb/mi/mi-cmd-var.c:516:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "noneditable";
^
For now, it's best to hide these warnings from view until we're
'-fpermissive'-clean, and can thus start building with -Werror.
The C compiler has always managed to build working GDBs with these
issues in the code, so a C++ compiler should too.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(COMPILE.pre, CC_LD): Use COMPILER.
(CXX): Get from autoconf instead.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* build-with-cxx.m4: New file.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Only enable -Wpointer-sign in C mode.
Run supported-warning-flags tests with the C++ compiler.
Save/restore CXXFLAGS too.
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(CXX): Get from autoconf instead.
(COMPILE.pre): Use COMPILER.
(CC-LD): Rename to ...
(CC_LD): ... this. Use COMPILER.
(gdbserver$(EXEEXT), gdbreplay$(EXEEXT), $(IPA_LIB)): Adjust.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Run supported-warning-flags tests with
the C++ compiler. Save/restore CXXFLAGS too.
* configure: Regenerate.
2015-02-27 21:11:25 +08:00
|
|
|
# See if we are building with C++, and substitute COMPILER.
|
|
|
|
GDB_AC_BUILD_WITH_CXX
|
|
|
|
|
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 06:49:10 +08: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
|
|
|
|
|
configure gdb/gnulib with --disable-largefile if largefile support disabled.
This patch mostly aims at fixing a GDB build failure on 32bit Solaris
systems (Sparc and x86), due to a recent gnulib update adding the
readlink module. But it might also fix related issues when configuring
with --disable-largefile.
A side-effect of the gnulib readlink module addition is that it caused
largefile support to be added as well, and in particular
gnulib/import/m4/largefile.m4 introduced the following new #define in
gnulib's config.in:
| +/* Number of bits in a file offset, on hosts where this is settable. */
| +#undef _FILE_OFFSET_BITS
When defined to 64, it triggers an issue with procfs.h while trying
to build sparc-sol2-nat.c:
| #if !defined(_LP64) && _FILE_OFFSET_BITS == 64
| #error "Cannot use procfs in the large file compilation environment"
| #endif
As it turns out, this is a fairly familiar problem, and one of
the reasons behind ACX_LARGEFILE having been created. In that macro,
we have some code which disables largefile support on solaris hosts:
| sparc-*-solaris*|i[3-7]86-*-solaris*)
| changequote([,])dnl
| # On native 32bit sparc and ia32 solaris, large-file and procfs support
| # are mutually exclusive; and without procfs support, the bfd/ elf module
| # cannot provide certain routines such as elfcore_write_prpsinfo
| # or elfcore_write_prstatus. So unless the user explicitly requested
| # large-file support through the --enable-largefile switch, disable
| # large-file support in favor of procfs support.
| test "${target}" = "${host}" -a "x$plugins" = xno \
| && : ${enable_largefile="no"}
| ;;
But gnulib ignores this fact, and so tries to determine how to
enable large-file support irrespective of whether we want it or not.
This patch fixes the issue by passing --disable-largefile to gnulib's
configure when large-file support in GDB is disabled. This is done
by first enhancing ACX_CONFIGURE_DIR to allow us to pass extra
arguments to be passed to the configure command, and then by modifying
GDB's configure to pass --disable-largefile if large-file support
is disabled.
gdb/ChangeLog:
* acx_configure_dir.m4 (ACX_CONFIGURE_DIR): Add support for
new "EXTRA-ARGS" parameter.
* configure.ac: If large-file support is disabled in GDB,
pass --disable-largefile to ACX_CONFIGURE_DIR call for "gnulib".
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
* configure.ac: If large-file support is disabled in GDBserver,
pass --disable-largefile to ACX_CONFIGURE_DIR call for "gnulib".
* configure: Regenerate.
Tested by rebuilding on sparc-solaris and x86_64-linux (with gdbserver).
This fixes the build failure on sparc-solaris. I also verified in
gnulib's config.log file that we pass --disable-largefile in the solaris
case, while we do not in the GNU/Linux case.
2014-12-03 19:31:54 +08:00
|
|
|
gnulib_extra_configure_args=
|
|
|
|
# If large-file support is disabled, make sure gnulib does the same.
|
|
|
|
if test "$enable_largefile" = no; then
|
|
|
|
gnulib_extra_configure_args="$gnulib_extra_configure_args --disable-largefile"
|
|
|
|
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-20 03:34:52 +08: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.
|
configure gdb/gnulib with --disable-largefile if largefile support disabled.
This patch mostly aims at fixing a GDB build failure on 32bit Solaris
systems (Sparc and x86), due to a recent gnulib update adding the
readlink module. But it might also fix related issues when configuring
with --disable-largefile.
A side-effect of the gnulib readlink module addition is that it caused
largefile support to be added as well, and in particular
gnulib/import/m4/largefile.m4 introduced the following new #define in
gnulib's config.in:
| +/* Number of bits in a file offset, on hosts where this is settable. */
| +#undef _FILE_OFFSET_BITS
When defined to 64, it triggers an issue with procfs.h while trying
to build sparc-sol2-nat.c:
| #if !defined(_LP64) && _FILE_OFFSET_BITS == 64
| #error "Cannot use procfs in the large file compilation environment"
| #endif
As it turns out, this is a fairly familiar problem, and one of
the reasons behind ACX_LARGEFILE having been created. In that macro,
we have some code which disables largefile support on solaris hosts:
| sparc-*-solaris*|i[3-7]86-*-solaris*)
| changequote([,])dnl
| # On native 32bit sparc and ia32 solaris, large-file and procfs support
| # are mutually exclusive; and without procfs support, the bfd/ elf module
| # cannot provide certain routines such as elfcore_write_prpsinfo
| # or elfcore_write_prstatus. So unless the user explicitly requested
| # large-file support through the --enable-largefile switch, disable
| # large-file support in favor of procfs support.
| test "${target}" = "${host}" -a "x$plugins" = xno \
| && : ${enable_largefile="no"}
| ;;
But gnulib ignores this fact, and so tries to determine how to
enable large-file support irrespective of whether we want it or not.
This patch fixes the issue by passing --disable-largefile to gnulib's
configure when large-file support in GDB is disabled. This is done
by first enhancing ACX_CONFIGURE_DIR to allow us to pass extra
arguments to be passed to the configure command, and then by modifying
GDB's configure to pass --disable-largefile if large-file support
is disabled.
gdb/ChangeLog:
* acx_configure_dir.m4 (ACX_CONFIGURE_DIR): Add support for
new "EXTRA-ARGS" parameter.
* configure.ac: If large-file support is disabled in GDB,
pass --disable-largefile to ACX_CONFIGURE_DIR call for "gnulib".
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
* configure.ac: If large-file support is disabled in GDBserver,
pass --disable-largefile to ACX_CONFIGURE_DIR call for "gnulib".
* configure: Regenerate.
Tested by rebuilding on sparc-solaris and x86_64-linux (with gdbserver).
This fixes the build failure on sparc-solaris. I also verified in
gnulib's config.log file that we pass --disable-largefile in the solaris
case, while we do not in the GNU/Linux case.
2014-12-03 19:31:54 +08:00
|
|
|
ACX_CONFIGURE_DIR(["gnulib"], ["build-gnulib"],
|
|
|
|
["$gnulib_extra_configure_args"])
|
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-20 03:34:52 +08:00
|
|
|
|
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 22:30:08 +08: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 23:14:46 +08: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 22:30:08 +08:00
|
|
|
|
|
|
|
localedir='${datadir}/locale'
|
|
|
|
AC_SUBST(localedir)
|
|
|
|
|
2006-05-31 23:14:46 +08: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 22:30:08 +08:00
|
|
|
CONFIG_ALL="$CONFIG_ALL all-po"
|
2014-01-22 03:01:04 +08:00
|
|
|
CONFIG_CLEAN="$CONFIG_CLEAN clean-po"
|
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 22:30:08 +08:00
|
|
|
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-20 03:34:52 +08: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-15 02:04:00 +08: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 23:51:28 +08: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-20 03:34:52 +08: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 23:51:28 +08: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 22:30:08 +08:00
|
|
|
PACKAGE=gdb
|
|
|
|
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
|
|
|
|
AC_SUBST(PACKAGE)
|
2002-06-22 07:48:41 +08:00
|
|
|
|
2012-02-22 06:00:32 +08: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 23:55:04 +08: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-24 05:28:20 +08:00
|
|
|
GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir,
|
|
|
|
[look for global separate debug info in this path @<:@LIBDIR/debug@:>@],
|
|
|
|
[${libdir}/debug])
|
|
|
|
|
2012-01-19 02:35:43 +08: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-24 05:28:20 +08: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-10 05:34:30 +08:00
|
|
|
|
2009-04-21 18:13:05 +08:00
|
|
|
AC_ARG_WITH(relocated-sources,
|
2009-04-22 08:17:50 +08:00
|
|
|
AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this path for source files]),
|
2009-04-21 18:13:05 +08:00
|
|
|
[reloc_srcdir="${withval}"
|
|
|
|
AC_DEFINE_DIR(RELOC_SRCDIR, reloc_srcdir,
|
|
|
|
[Relocated directory for source files. ])
|
|
|
|
])
|
|
|
|
|
2012-05-12 02:20:26 +08: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-21 04:35:19 +08: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-12 02:20:26 +08: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 23:54:35 +08:00
|
|
|
AC_MSG_CHECKING([for default auto-load safe-path])
|
|
|
|
AC_ARG_WITH(auto-load-safe-path,
|
2012-05-12 02:13:26 +08:00
|
|
|
AS_HELP_STRING([--with-auto-load-safe-path=PATH],
|
2012-05-19 01:47:31 +08:00
|
|
|
[directories safe to hold auto-loaded files @<:@--with-auto-load-dir@:>@])
|
2012-05-12 02:13:26 +08: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-12 02:20:26 +08:00
|
|
|
[with_auto_load_safe_path="$with_auto_load_dir"])
|
2012-05-21 04:35:19 +08:00
|
|
|
escape_dir=`echo $with_auto_load_safe_path | sed 's/[[$]]\(datadir\|debugdir\)\>/\\\\\\\\\\\\&/g'`
|
2012-05-12 02:13:26 +08:00
|
|
|
AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escape_dir,
|
2012-04-17 23:54:35 +08:00
|
|
|
[Directories safe to hold auto-loaded files.])
|
|
|
|
AC_MSG_RESULT([$with_auto_load_safe_path])
|
|
|
|
|
2010-11-23 22:37:26 +08:00
|
|
|
AC_CONFIG_SUBDIRS(testsuite)
|
1999-08-10 05:36:23 +08:00
|
|
|
|
2007-11-17 09:02:01 +08:00
|
|
|
# Check whether to support alternative target configurations
|
|
|
|
AC_ARG_ENABLE(targets,
|
2009-04-22 08:17:50 +08:00
|
|
|
AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
|
2007-11-17 09:02:01 +08: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-28 01:06:12 +08:00
|
|
|
# Check whether to enable 64-bit support on 32-bit hosts
|
|
|
|
AC_ARG_ENABLE(64-bit-bfd,
|
2009-04-22 08:17:50 +08:00
|
|
|
AS_HELP_STRING([--enable-64-bit-bfd], [64-bit support (on hosts with narrower word sizes)]),
|
2007-11-28 01:06:12 +08: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-11 05:53:51 +08:00
|
|
|
# Provide defaults for some variables set by the per-host and per-target
|
|
|
|
# configuration.
|
|
|
|
gdb_host_obs=posix-hdep.o
|
|
|
|
|
2006-11-22 21:49:53 +08:00
|
|
|
if test "${target}" = "${host}"; then
|
|
|
|
gdb_native=yes
|
|
|
|
else
|
|
|
|
gdb_native=no
|
|
|
|
fi
|
|
|
|
|
2003-01-03 06:49:31 +08:00
|
|
|
. $srcdir/configure.host
|
1999-04-16 09:35:26 +08:00
|
|
|
|
2015-01-16 04:09:15 +08:00
|
|
|
# Add in the common host objects.
|
|
|
|
. $srcdir/common/common.host
|
|
|
|
gdb_host_obs="$gdb_host_obs $common_host_obs"
|
|
|
|
|
2007-11-17 09:02:01 +08:00
|
|
|
# Accumulate some settings from configure.tgt over all enabled targets
|
|
|
|
|
|
|
|
TARGET_OBS=
|
|
|
|
all_targets=
|
gdb/
* Makefile.in (HAVE_NATIVE_GCORE_TARGET): New.
(generated_files): Add gcore.
(install-only, uninstall): Add gcore if HAVE_NATIVE_GCORE_TARGET or
HAVE_NATIVE_GCORE_HOST.
(gcore): New.
* NEWS (Changes since GDB 7.6): Mention newly installed gcore.
* config/alpha/alpha-osf3.mh, config/i386/fbsd.mh,
config/i386/fbsd64.mh, config/i386/i386gnu.mh, config/i386/i386sol2.mh,
config/i386/sol2-64.mh, config/mips/irix5.mh, config/mips/irix6.mh,
config/powerpc/fbsd.mh, config/sparc/fbsd.mh, config/sparc/sol2.mh:
Add HAVE_NATIVE_GCORE_HOST.
* configure: Regenerate.
* configure.ac (HAVE_NATIVE_GCORE_TARGET): New, set it, AC_SUBST it.
New AC_SUBST fir GDB_TRANSFORM_NAME and GCORE_TRANSFORM_NAME. New
AC_CONFIG_FILES for gcore.
* configure.tgt: Add gdb_have_gcore to the initial comment. Set
gdb_have_gcore.
* gdb_gcore.sh: Rename to ...
* gcore.in: ... here. Remove gcore.sh comment. Use GDB_TRANSFORM_NAME
and GCORE_TRANSFORM_NAME substitutions.
gdb/doc/
* Makefile.in (MAN1S): Add gcore.1.
Remove "Host, target, and site specific Makefile fragments" comment.
(@host_makefile_frag@, HAVE_NATIVE_GCORE_TARGET): New.
(install-man1, uninstall-man1): Conditionalize gcore.1.
(gcore.1): New.
* gdb.texinfo (Man Pages): Add gcore man.
(gcore man): New node.
2013-04-11 22:13:44 +08:00
|
|
|
HAVE_NATIVE_GCORE_TARGET=
|
2007-11-17 09:02:01 +08:00
|
|
|
|
|
|
|
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-16 01:03:03 +08:00
|
|
|
AS_IF([test -z "${gdb_target_obs}"],
|
|
|
|
[AC_MSG_ERROR([configuration ${targ} is unsupported.])])
|
|
|
|
|
2007-11-17 09:02:01 +08: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-28 01:06:12 +08:00
|
|
|
|
|
|
|
# Check whether this target needs 64-bit CORE_ADDR
|
|
|
|
if test x${want64} = xfalse; then
|
|
|
|
. ${srcdir}/../bfd/config.bfd
|
|
|
|
fi
|
gdb/
* Makefile.in (HAVE_NATIVE_GCORE_TARGET): New.
(generated_files): Add gcore.
(install-only, uninstall): Add gcore if HAVE_NATIVE_GCORE_TARGET or
HAVE_NATIVE_GCORE_HOST.
(gcore): New.
* NEWS (Changes since GDB 7.6): Mention newly installed gcore.
* config/alpha/alpha-osf3.mh, config/i386/fbsd.mh,
config/i386/fbsd64.mh, config/i386/i386gnu.mh, config/i386/i386sol2.mh,
config/i386/sol2-64.mh, config/mips/irix5.mh, config/mips/irix6.mh,
config/powerpc/fbsd.mh, config/sparc/fbsd.mh, config/sparc/sol2.mh:
Add HAVE_NATIVE_GCORE_HOST.
* configure: Regenerate.
* configure.ac (HAVE_NATIVE_GCORE_TARGET): New, set it, AC_SUBST it.
New AC_SUBST fir GDB_TRANSFORM_NAME and GCORE_TRANSFORM_NAME. New
AC_CONFIG_FILES for gcore.
* configure.tgt: Add gdb_have_gcore to the initial comment. Set
gdb_have_gcore.
* gdb_gcore.sh: Rename to ...
* gcore.in: ... here. Remove gcore.sh comment. Use GDB_TRANSFORM_NAME
and GCORE_TRANSFORM_NAME substitutions.
gdb/doc/
* Makefile.in (MAN1S): Add gcore.1.
Remove "Host, target, and site specific Makefile fragments" comment.
(@host_makefile_frag@, HAVE_NATIVE_GCORE_TARGET): New.
(install-man1, uninstall-man1): Conditionalize gcore.1.
(gcore.1): New.
* gdb.texinfo (Man Pages): Add gcore man.
(gcore man): New node.
2013-04-11 22:13:44 +08:00
|
|
|
|
|
|
|
# Check whether this target is native and supports gcore.
|
|
|
|
if test $gdb_native = yes -a "$targ_alias" = "$target_alias" \
|
|
|
|
&& $gdb_have_gcore; then
|
|
|
|
HAVE_NATIVE_GCORE_TARGET=1
|
|
|
|
fi
|
2007-11-17 09:02:01 +08:00
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
if test x${all_targets} = xtrue; then
|
2007-11-28 01:06:12 +08: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 09:02:01 +08:00
|
|
|
fi
|
|
|
|
|
|
|
|
AC_SUBST(TARGET_OBS)
|
gdb/
* Makefile.in (HAVE_NATIVE_GCORE_TARGET): New.
(generated_files): Add gcore.
(install-only, uninstall): Add gcore if HAVE_NATIVE_GCORE_TARGET or
HAVE_NATIVE_GCORE_HOST.
(gcore): New.
* NEWS (Changes since GDB 7.6): Mention newly installed gcore.
* config/alpha/alpha-osf3.mh, config/i386/fbsd.mh,
config/i386/fbsd64.mh, config/i386/i386gnu.mh, config/i386/i386sol2.mh,
config/i386/sol2-64.mh, config/mips/irix5.mh, config/mips/irix6.mh,
config/powerpc/fbsd.mh, config/sparc/fbsd.mh, config/sparc/sol2.mh:
Add HAVE_NATIVE_GCORE_HOST.
* configure: Regenerate.
* configure.ac (HAVE_NATIVE_GCORE_TARGET): New, set it, AC_SUBST it.
New AC_SUBST fir GDB_TRANSFORM_NAME and GCORE_TRANSFORM_NAME. New
AC_CONFIG_FILES for gcore.
* configure.tgt: Add gdb_have_gcore to the initial comment. Set
gdb_have_gcore.
* gdb_gcore.sh: Rename to ...
* gcore.in: ... here. Remove gcore.sh comment. Use GDB_TRANSFORM_NAME
and GCORE_TRANSFORM_NAME substitutions.
gdb/doc/
* Makefile.in (MAN1S): Add gcore.1.
Remove "Host, target, and site specific Makefile fragments" comment.
(@host_makefile_frag@, HAVE_NATIVE_GCORE_TARGET): New.
(install-man1, uninstall-man1): Conditionalize gcore.1.
(gcore.1): New.
* gdb.texinfo (Man Pages): Add gcore man.
(gcore man): New node.
2013-04-11 22:13:44 +08:00
|
|
|
AC_SUBST(HAVE_NATIVE_GCORE_TARGET)
|
2007-11-17 09:02:01 +08:00
|
|
|
|
|
|
|
# For other settings, only the main target counts.
|
|
|
|
gdb_sim=
|
|
|
|
gdb_osabi=
|
|
|
|
build_gdbserver=
|
|
|
|
targ=$target; . ${srcdir}/configure.tgt
|
1999-04-16 09:35:26 +08:00
|
|
|
|
2003-01-03 06:49:31 +08:00
|
|
|
# Fetch the default architecture and default target vector from BFD.
|
|
|
|
targ=$target; . $srcdir/../bfd/config.bfd
|
2000-06-11 09:39:08 +08:00
|
|
|
|
2003-01-03 06:49:31 +08: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 09:39:08 +08:00
|
|
|
|
2003-01-03 06:49:31 +08: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 12:00:56 +08:00
|
|
|
fi
|
2003-01-03 06:49:31 +08: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 12:00:56 +08:00
|
|
|
fi
|
|
|
|
|
2003-01-03 04:12:29 +08:00
|
|
|
# The CLI cannot be disabled yet, but may be in the future.
|
|
|
|
|
|
|
|
# Enable CLI.
|
|
|
|
AC_ARG_ENABLE(gdbcli,
|
2009-04-22 08:17:50 +08:00
|
|
|
AS_HELP_STRING([--disable-gdbcli], [disable command-line interface (CLI)]),
|
2003-01-03 04:12:29 +08: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 08:17:50 +08:00
|
|
|
AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]),
|
2003-01-03 04:12:29 +08: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-03 00:54:56 +08:00
|
|
|
# Enable TUI.
|
|
|
|
AC_ARG_ENABLE(tui,
|
2009-04-22 08:17:50 +08:00
|
|
|
AS_HELP_STRING([--enable-tui], [enable full-screen terminal user interface (TUI)]),
|
2003-01-03 00:54:56 +08:00
|
|
|
[case $enableval in
|
2008-06-27 03:20:42 +08:00
|
|
|
yes | no | auto)
|
2003-01-03 00:54:56 +08:00
|
|
|
;;
|
|
|
|
*)
|
|
|
|
AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
|
2008-06-27 03:20:42 +08:00
|
|
|
esac],enable_tui=auto)
|
2003-01-03 00:54:56 +08:00
|
|
|
|
2003-01-04 09:03:41 +08:00
|
|
|
# Enable gdbtk.
|
|
|
|
AC_ARG_ENABLE(gdbtk,
|
2009-04-22 08:17:50 +08:00
|
|
|
AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)]),
|
2003-01-04 09:03:41 +08:00
|
|
|
[case $enableval in
|
|
|
|
yes | no)
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
|
|
|
|
esac],
|
2008-08-03 05:36:06 +08:00
|
|
|
[if test -d $srcdir/gdbtk; then
|
2003-01-04 09:03:41 +08: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-09 03:08:11 +08: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-15 05:17:51 +08:00
|
|
|
fi
|
2012-03-09 03:08:11 +08: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-22 03:39:32 +08:00
|
|
|
AC_CHECK_HEADERS(libunwind-ia64.h)
|
2012-03-09 03:08:11 +08: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-15 05:17:51 +08:00
|
|
|
fi
|
|
|
|
|
2009-03-24 09:19:27 +08:00
|
|
|
opt_curses=no
|
2009-04-22 08:17:50 +08: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 09:19:27 +08:00
|
|
|
|
2009-03-25 01:01:34 +08:00
|
|
|
prefer_curses=no
|
2009-03-24 09:19:27 +08:00
|
|
|
if test "$opt_curses" = "yes"; then
|
2009-03-25 01:01:34 +08:00
|
|
|
prefer_curses=yes
|
2009-03-24 09:19:27 +08:00
|
|
|
fi
|
|
|
|
|
2003-01-23 07:50:35 +08:00
|
|
|
# Profiling support.
|
|
|
|
AC_ARG_ENABLE(profiling,
|
2009-04-22 08:17:50 +08:00
|
|
|
AS_HELP_STRING([--enable-profiling], [enable profiling of GDB]),
|
2003-01-23 07:50:35 +08:00
|
|
|
[case $enableval in
|
|
|
|
yes | no)
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
|
|
|
|
esac],
|
|
|
|
[enable_profiling=no])
|
|
|
|
|
2003-01-27 22:36:56 +08:00
|
|
|
AC_CHECK_FUNCS(monstartup _mcleanup)
|
2003-02-15 04:07:00 +08: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 06:00:34 +08: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 07:50:35 +08:00
|
|
|
if test "$enable_profiling" = yes ; then
|
2003-01-27 22:36:56 +08: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 07:50:35 +08:00
|
|
|
PROFILE_CFLAGS=-pg
|
|
|
|
OLD_CFLAGS="$CFLAGS"
|
|
|
|
CFLAGS="$CFLAGS $PROFILE_CFLAGS"
|
|
|
|
|
2003-01-27 22:36:56 +08: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 07:50:35 +08:00
|
|
|
|
2003-01-27 22:36:56 +08: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 07:50:35 +08:00
|
|
|
|
|
|
|
CFLAGS="$OLD_CFLAGS"
|
|
|
|
fi
|
|
|
|
|
2008-06-06 06:36:57 +08: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 08:51:28 +08:00
|
|
|
# --------------------- #
|
|
|
|
# Checks for programs. #
|
|
|
|
# --------------------- #
|
|
|
|
|
1999-04-27 02:34:20 +08:00
|
|
|
AC_PROG_AWK
|
1999-04-16 09:35:26 +08:00
|
|
|
AC_PROG_INSTALL
|
2003-01-02 08:51:28 +08:00
|
|
|
AC_PROG_LN_S
|
|
|
|
AC_PROG_RANLIB
|
|
|
|
AC_PROG_YACC
|
|
|
|
|
1999-04-16 09:35:26 +08:00
|
|
|
AC_CHECK_TOOL(AR, ar)
|
2000-06-03 11:27:30 +08:00
|
|
|
AC_CHECK_TOOL(DLLTOOL, dlltool)
|
|
|
|
AC_CHECK_TOOL(WINDRES, windres)
|
1999-04-16 09:35:26 +08:00
|
|
|
|
2013-05-17 05:54:34 +08:00
|
|
|
case $host_os in
|
|
|
|
gnu*)
|
|
|
|
# Needed for GNU Hurd hosts.
|
|
|
|
AC_CHECK_TOOL(MIG, mig)
|
|
|
|
if test x"$MIG" = x; then
|
|
|
|
AC_MSG_ERROR([MIG not found but required for $host hosts])
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
2000-02-26 21:46:56 +08:00
|
|
|
|
2003-01-02 07:50:46 +08: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 08:06:22 +08:00
|
|
|
# Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
|
|
|
|
AC_SEARCH_LIBS(gethostbyname, nsl)
|
|
|
|
|
2003-01-02 07:50:46 +08:00
|
|
|
# Some systems (e.g. Solaris) have `socketpair' in libsocket.
|
|
|
|
AC_SEARCH_LIBS(socketpair, socket)
|
|
|
|
|
2008-04-19 13:06:54 +08:00
|
|
|
# Link in zlib if we can. This allows us to read compressed debug sections.
|
2009-11-25 06:59:53 +08:00
|
|
|
AM_ZLIB
|
2008-04-19 13:06:54 +08:00
|
|
|
|
2015-02-18 08:15:45 +08:00
|
|
|
# On FreeBSD we may need libutil for kinfo_getvmmap (used by fbsd-nat.c).
|
|
|
|
AC_SEARCH_LIBS(kinfo_getvmmap, util,
|
|
|
|
[AC_DEFINE(HAVE_KINFO_GETVMMAP, 1,
|
|
|
|
[Define to 1 if your system has the kinfo_getvmmap function. ])])
|
|
|
|
|
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 07:04:40 +08:00
|
|
|
AM_ICONV
|
|
|
|
|
2011-05-10 05:49:57 +08: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})
|
|
|
|
])
|
|
|
|
|
2009-03-24 09:19:27 +08:00
|
|
|
# For the TUI, we need enhanced curses functionality.
|
2009-03-25 00:54:35 +08:00
|
|
|
if test x"$enable_tui" != xno; then
|
2009-03-24 09:19:27 +08: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-23 04:22:01 +08: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 09:19:27 +08:00
|
|
|
if test "$curses_found" != no; then
|
2008-10-23 04:22:01 +08: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-19 02:45:57 +08: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-03 00:54:56 +08: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 15:35:35 +08:00
|
|
|
go32* | *djgpp*)
|
2003-01-03 00:54:56 +08:00
|
|
|
ac_cv_search_tgetent="none required"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2004-09-19 02:45:57 +08:00
|
|
|
# These are the libraries checked by Readline.
|
|
|
|
AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
|
2003-01-03 00:54:56 +08:00
|
|
|
|
|
|
|
if test "$ac_cv_search_tgetent" = no; then
|
Fallback to stub-termcap.c on all hosts
Currently building gdb is impossible without an installed termcap or
curses library. But, GDB already has a very minimal termcap in the
tree to handle this situation for Windows -- gdb/stub-termcap.c. This
patch makes that the fallback for all hosts.
Testing this on GNU/Linux (by simply hacking away the termcap/curses
detection in gdb/configure.ac), we trip on:
../readline/libreadline.a(terminal.o): In function `_rl_init_terminal_io':
/home/pedro/gdb/mygit/src/readline/terminal.c:527: undefined reference to `PC'
/home/pedro/gdb/mygit/src/readline/terminal.c:528: undefined reference to `BC'
/home/pedro/gdb/mygit/src/readline/terminal.c:529: undefined reference to `UP'
/home/pedro/gdb/mygit/src/readline/terminal.c:538: undefined reference to `PC'
/home/pedro/gdb/mygit/src/readline/terminal.c:539: undefined reference to `BC'
/home/pedro/gdb/mygit/src/readline/terminal.c:540: undefined reference to `UP'
These are globals that are normally defined by termcap (or ncurses'
termcap emulation).
Now, we could just define replacements in stub-termcap.c, but
readline/terminal.c (at least the copy in our tree) has this:
#if !defined (__linux__) && !defined (NCURSES_VERSION)
# if defined (__EMX__) || defined (NEED_EXTERN_PC)
extern
# endif /* __EMX__ || NEED_EXTERN_PC */
char PC, *BC, *UP;
#endif /* !__linux__ && !NCURSES_VERSION */
which can result in readline defining the globals too. That will
usually work out in C, given that "-fcommon" is usually the default
for C compilers, but that won't work for C++, or C with -fno-common
(link fails with "multiple definition" errors)...
Mirroring those #ifdef conditions in the stub termcap screams
"brittle" to me -- I can see them changing in latter readline
versions.
Work around that by simply using __attribute__((weak)).
Windows/PE/COFF's do support weak, but not on gcc 3.4 based toolchains
(4.8.x does work). Given the file never needed the variables while it
was Windows-only, just continue not defining them there. All other
supported hosts should support this.
gdb/ChangeLog:
2015-04-06 Pedro Alves <palves@redhat.com>
Bernd Edlinger <bernd.edlinger@hotmail.de>
* configure.ac: Remove the mingw32-specific stub-termcap.o
fallback, and instead fallback to the stub termcap on all hosts.
* configure: Regenerate.
* stub-termcap.c [!__MINGW32__] (PC, BC, UP): Define as weak
symbols.
2015-04-06 19:35:18 +08:00
|
|
|
CONFIG_OBS="$CONFIG_OBS stub-termcap.o"
|
2003-01-03 00:54:56 +08:00
|
|
|
fi
|
|
|
|
|
2007-09-04 03:00:16 +08: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 22:39:16 +08:00
|
|
|
READLINE_TEXI_INCFLAG=
|
2007-09-04 03:00:16 +08:00
|
|
|
else
|
|
|
|
READLINE='$(READLINE_DIR)/libreadline.a'
|
|
|
|
READLINE_DEPS='$(READLINE)'
|
|
|
|
READLINE_CFLAGS='-I$(READLINE_SRC)/..'
|
2010-11-23 22:39:16 +08:00
|
|
|
READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)'
|
2007-09-04 03:00:16 +08:00
|
|
|
fi
|
|
|
|
AC_SUBST(READLINE)
|
|
|
|
AC_SUBST(READLINE_DEPS)
|
|
|
|
AC_SUBST(READLINE_CFLAGS)
|
2010-11-23 22:39:16 +08:00
|
|
|
AC_SUBST(READLINE_TEXI_INCFLAG)
|
2007-09-04 03:00:16 +08:00
|
|
|
|
2011-11-20 16:30:59 +08: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 16:59:56 +08:00
|
|
|
AC_SEARCH_LIBS(dlopen, dl)
|
|
|
|
|
2011-11-20 16:53:25 +08:00
|
|
|
GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir],
|
|
|
|
[directory to load the JIT readers from],
|
|
|
|
[${libdir}/gdb])
|
|
|
|
|
2007-09-04 04:47:37 +08: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 22:58:57 +08:00
|
|
|
else
|
2007-09-04 04:47:37 +08: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-09 04:26:23 +08:00
|
|
|
fi
|
|
|
|
|
2013-11-29 06:30:59 +08:00
|
|
|
# --------------------- #
|
|
|
|
# Check for libpython. #
|
|
|
|
# --------------------- #
|
|
|
|
|
2008-08-07 03:41:33 +08:00
|
|
|
dnl Utility to simplify finding libpython.
|
2010-05-27 09:36:22 +08: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-07 03:41:33 +08:00
|
|
|
AC_DEFUN([AC_TRY_LIBPYTHON],
|
|
|
|
[
|
|
|
|
version=$1
|
|
|
|
define([have_libpython_var],$2)
|
2010-05-27 09:36:22 +08:00
|
|
|
new_CPPFLAGS=$3
|
|
|
|
new_LIBS=$4
|
2008-08-07 03:41:33 +08:00
|
|
|
AC_MSG_CHECKING([for ${version}])
|
2010-05-27 09:36:22 +08:00
|
|
|
save_CPPFLAGS=$CPPFLAGS
|
2008-08-07 03:41:33 +08:00
|
|
|
save_LIBS=$LIBS
|
2010-05-27 09:36:22 +08: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 12:41:27 +08:00
|
|
|
AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]],
|
2008-08-07 03:41:33 +08:00
|
|
|
[[Py_Initialize ();]]),
|
2010-05-27 09:36:22 +08: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 12:41:27 +08:00
|
|
|
found_usable_python=yes
|
|
|
|
PYTHON_CPPFLAGS=$new_CPPFLAGS
|
|
|
|
PYTHON_LIBS=$new_LIBS])
|
|
|
|
CPPFLAGS=$save_CPPFLAGS
|
|
|
|
LIBS=$save_LIBS
|
2010-05-27 09:36:22 +08:00
|
|
|
AC_MSG_RESULT([${found_usable_python}])
|
2008-08-07 03:41:33 +08:00
|
|
|
])
|
|
|
|
|
2010-05-27 11:40:45 +08: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 23:59:41 +08:00
|
|
|
dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
|
2010-05-27 11:40:45 +08: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 23:59:41 +08:00
|
|
|
dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
|
2010-05-27 11:40:45 +08: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-07 03:41:33 +08:00
|
|
|
AC_ARG_WITH(python,
|
2010-05-27 11:40:45 +08:00
|
|
|
AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]),
|
2008-08-07 03:41:33 +08: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-28 02:23:12 +08:00
|
|
|
[[\\/]]* | ?:[[\\/]]*)
|
2010-05-27 09:36:22 +08: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 11:40:45 +08: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 12:42:08 +08: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-04 02:58:39 +08:00
|
|
|
if test ! -x "${python_prog}"; then
|
2010-05-27 09:36:22 +08:00
|
|
|
# Fall back to gdb 7.0/7.1 behaviour.
|
|
|
|
python_prog=missing
|
2010-05-27 11:40:45 +08:00
|
|
|
python_prefix=${with_python}
|
2010-05-27 09:36:22 +08:00
|
|
|
fi
|
2010-06-04 02:58:39 +08:00
|
|
|
elif test -x "${with_python}"; then
|
2010-05-27 09:36:22 +08: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 11:40:45 +08:00
|
|
|
python_prefix=
|
2010-05-27 09:36:22 +08:00
|
|
|
else
|
|
|
|
AC_ERROR(invalid value for --with-python)
|
|
|
|
fi
|
2008-08-07 03:41:33 +08:00
|
|
|
;;
|
2010-05-27 09:36:22 +08:00
|
|
|
*/*)
|
|
|
|
# Disallow --with-python=foo/bar.
|
2008-08-07 03:41:33 +08:00
|
|
|
AC_ERROR(invalid value for --with-python)
|
|
|
|
;;
|
2010-05-27 09:36:22 +08: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-07 03:41:33 +08:00
|
|
|
esac
|
|
|
|
|
2010-05-27 09:36:22 +08:00
|
|
|
if test "${python_prog}" != missing; then
|
2010-06-04 02:58:39 +08: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 09:36:22 +08:00
|
|
|
python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
|
|
|
|
if test $? != 0; then
|
2010-06-04 02:58:39 +08:00
|
|
|
have_python_config=failed
|
|
|
|
if test "${with_python}" != auto; then
|
|
|
|
AC_ERROR(failure running python-config --includes)
|
|
|
|
fi
|
2008-08-07 03:41:33 +08:00
|
|
|
fi
|
2010-05-27 09:36:22 +08:00
|
|
|
python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
|
|
|
|
if test $? != 0; then
|
2010-06-04 02:58:39 +08:00
|
|
|
have_python_config=failed
|
|
|
|
if test "${with_python}" != auto; then
|
|
|
|
AC_ERROR(failure running python-config --ldflags)
|
|
|
|
fi
|
2010-05-27 09:36:22 +08:00
|
|
|
fi
|
2010-05-27 11:40:45 +08:00
|
|
|
python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
|
|
|
|
if test $? != 0; then
|
2010-06-04 02:58:39 +08:00
|
|
|
have_python_config=failed
|
|
|
|
if test "${with_python}" != auto; then
|
|
|
|
AC_ERROR(failure running python-config --exec-prefix)
|
|
|
|
fi
|
2010-05-27 11:40:45 +08:00
|
|
|
fi
|
2010-05-27 09:36:22 +08: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 12:41:27 +08: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 11:40:45 +08:00
|
|
|
have_python_config=no
|
2008-08-07 03:41:33 +08:00
|
|
|
fi
|
2010-05-27 09:36:22 +08: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 12:36:21 +08: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 09:36:22 +08:00
|
|
|
python_version=`echo " ${python_libs} " \
|
2011-02-02 12:36:21 +08:00
|
|
|
| sed -e 's,^.* -l\(python[[0-9]]*[[.]]*[[0-9]]*\).*$,\1,'`
|
2010-05-27 11:40:45 +08:00
|
|
|
case "${python_version}" in
|
|
|
|
python*)
|
2010-05-27 09:36:22 +08:00
|
|
|
AC_TRY_LIBPYTHON(${python_version}, have_libpython,
|
|
|
|
${python_includes}, ${python_libs})
|
2010-05-27 11:40:45 +08:00
|
|
|
;;
|
|
|
|
*)
|
2010-05-27 09:36:22 +08:00
|
|
|
AC_MSG_ERROR([unable to determine python version from ${python_libs}])
|
2010-05-27 11:40:45 +08:00
|
|
|
;;
|
|
|
|
esac
|
2010-06-04 02:58:39 +08:00
|
|
|
elif test "${have_python_config}" != failed; then
|
2010-07-30 23:59:41 +08:00
|
|
|
if test "${have_libpython}" = no; then
|
|
|
|
AC_TRY_LIBPYTHON(python2.7, have_libpython,
|
|
|
|
${python_includes}, "${python_libs} -lpython2.7")
|
|
|
|
fi
|
2010-05-27 09:36:22 +08: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-07 03:41:33 +08: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 12:42:08 +08:00
|
|
|
if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then
|
2010-07-07 03:03:12 +08: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 12:42:08 +08:00
|
|
|
elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then
|
2010-05-27 09:36:22 +08: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 12:42:08 +08:00
|
|
|
elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then
|
2010-05-27 09:36:22 +08: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 12:42:08 +08:00
|
|
|
elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then
|
2010-05-27 09:36:22 +08:00
|
|
|
AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.])
|
|
|
|
fi
|
|
|
|
|
|
|
|
if test "${have_libpython}" = no; then
|
2008-08-07 03:41:33 +08: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 11:40:45 +08: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-07 03:41:33 +08:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2010-05-27 09:36:22 +08:00
|
|
|
if test "${have_libpython}" != no; then
|
2008-08-07 03:41:33 +08: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 06:57:46 +08:00
|
|
|
CONFIG_INSTALL="$CONFIG_INSTALL install-python"
|
2008-08-07 03:41:33 +08: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 15:17:15 +08:00
|
|
|
|
2012-10-16 01:17:54 +08: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 15:17:15 +08:00
|
|
|
case "$gdb_host" in
|
2012-10-16 01:17:54 +08: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 15:17:15 +08:00
|
|
|
esac
|
2012-09-03 06:57:43 +08: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-07 03:41:33 +08:00
|
|
|
else
|
Extension Language API
* configure.ac (libpython checking): Remove all but python.o from
CONFIG_OBS. Remove all but python.c from CONFIG_SRCS.
* configure: Regenerate.
* Makefile.in (SFILES): Add extension.c.
(HFILES_NO_SRCDIR): Add extension.h, extension-priv.h
(COMMON_OBS): Add extension.o.
* extension.h: New file.
* extension-priv.h: New file.
* extension.c: New file.
* python/python-internal.h: #include "extension.h".
(gdbpy_auto_load_enabled): Declare.
(gdbpy_apply_val_pretty_printer): Declare.
(gdbpy_apply_frame_filter): Declare.
(gdbpy_preserve_values): Declare.
(gdbpy_breakpoint_cond_says_stop): Declare.
(gdbpy_breakpoint_has_cond): Declare.
(void source_python_script_for_objfile): Delete.
* python/python.c: #include "extension-priv.h".
Delete inclusion of "observer.h".
(extension_language_python): Moved here and renamed from
script_language_python in py-auto-load.c.
Redefined to be of type extension_language_defn.
(python_extension_script_ops): New global.
(python_extension_ops): New global.
(struct python_env): New member previous_active.
(restore_python_env): Call restore_active_ext_lang.
(ensure_python_env): Call set_active_ext_lang.
(gdbpy_clear_quit_flag): Renamed from clear_quit_flag, made static.
New arg extlang.
(gdbpy_set_quit_flag): Renamed from set_quit_flag, made static.
New arg extlang.
(gdbpy_check_quit_flag): Renamed from check_quit_flag, made static.
New arg extlang.
(gdbpy_eval_from_control_command): Renamed from
eval_python_from_control_command, made static. New arg extlang.
(gdbpy_source_script) Renamed from source_python_script, made static.
New arg extlang.
(gdbpy_before_prompt_hook): Renamed from before_prompt_hook. Change
result to int. New arg extlang.
(gdbpy_source_objfile_script): Renamed from
source_python_script_for_objfile, made static. New arg extlang.
(gdbpy_start_type_printers): Renamed from start_type_printers, made
static. New args extlang, extlang_printers. Change result type to
"void".
(gdbpy_apply_type_printers): Renamed from apply_type_printers, made
static. New arg extlang. Rename arg printers to extlang_printers
and change type to ext_lang_type_printers *.
(gdbpy_free_type_printers): Renamed from free_type_printers, made
static. Replace argument arg with extlang, extlang_printers.
(!HAVE_PYTHON, eval_python_from_control_command): Delete.
(!HAVE_PYTHON, source_python_script): Delete.
(!HAVE_PYTHON, gdbpy_should_stop): Delete.
(!HAVE_PYTHON, gdbpy_breakpoint_has_py_cond): Delete.
(!HAVE_PYTHON, start_type_printers): Delete.
(!HAVE_PYTHON, apply_type_printers): Delete.
(!HAVE_PYTHON, free_type_printers): Delete.
(_initialize_python): Delete call to observer_attach_before_prompt.
(finalize_python): Set/restore active extension language.
(gdbpy_finish_initialization) Renamed from
finish_python_initialization, made static. New arg extlang.
(gdbpy_initialized): New function.
* python/python.h: #include "extension.h". Delete #include
"value.h", "mi/mi-cmds.h".
(extension_language_python): Declare.
(GDBPY_AUTO_FILE_NAME): Delete.
(enum py_bt_status): Moved to extension.h and renamed to
ext_lang_bt_status.
(enum frame_filter_flags): Moved to extension.h.
(enum py_frame_args): Moved to extension.h and renamed to
ext_lang_frame_args.
(finish_python_initialization): Delete.
(eval_python_from_control_command): Delete.
(source_python_script): Delete.
(apply_val_pretty_printer): Delete.
(apply_frame_filter): Delete.
(preserve_python_values): Delete.
(gdbpy_script_language_defn): Delete.
(gdbpy_should_stop, gdbpy_breakpoint_has_py_cond): Delete.
(start_type_printers, apply_type_printers, free_type_printers): Delete.
* auto-load.c: #include "extension.h".
(GDB_AUTO_FILE_NAME): Delete.
(auto_load_gdb_scripts_enabled): Make public. New arg extlang.
(script_language_gdb): Delete, moved to extension.c and renamed to
extension_language_gdb.
(source_gdb_script_for_objfile): Delete.
(auto_load_pspace_info): New member unsupported_script_warning_printed.
(loaded_script): Change type of language member to
struct extension_language_defn *.
(init_loaded_scripts_info): Initialize
unsupported_script_warning_printed.
(maybe_add_script): Make static. Change type of language arg to
struct extension_language_defn *.
(clear_section_scripts): Reset unsupported_script_warning_printed.
(auto_load_objfile_script_1): Rewrite to use extension language API.
(auto_load_objfile_script): Make public. Remove support-compiled-in
and auto-load-enabled checks, moved to auto_load_scripts_for_objfile.
(source_section_scripts): Rewrite to use extension language API.
(load_auto_scripts_for_objfile): Rewrite to use
auto_load_scripts_for_objfile.
(collect_matching_scripts_data): Change type of language member to
struct extension_language_defn *.
(auto_load_info_scripts): Change type of language arg to
struct extension_language_defn *.
(unsupported_script_warning_print): New function.
(script_not_found_warning_print): Make static.
(_initialize_auto_load): Rewrite construction of scripts-directory
help.
* auto-load.h (struct objfile): Add forward decl.
(struct script_language): Delete.
(struct auto_load_pspace_info): Add forward decl.
(struct extension_language_defn): Add forward decl.
(maybe_add_script): Delete.
(auto_load_objfile_script): Declare.
(script_not_found_warning_print): Delete.
(auto_load_info_scripts): Update prototype.
(auto_load_gdb_scripts_enabled): Declare.
* python/py-auto-load.c (gdbpy_auto_load_enabled): Renamed from
auto_load_python_scripts_enabled and made public.
(script_language_python): Delete, moved to python.c.
(gdbpy_script_language_defn): Delete.
(info_auto_load_python_scripts): Update to use
extension_language_python.
* breakpoint.c (condition_command): Replace call to
gdbpy_breakpoint_has_py_cond with call to get_breakpoint_cond_ext_lang.
(bpstat_check_breakpoint_conditions): Replace call to gdbpy_should_stop
with call to breakpoint_ext_lang_cond_says_stop.
* python/py-breakpoint.c (gdbpy_breakpoint_cond_says_stop): Renamed
from gdbpy_should_stop. Change result type to enum scr_bp_stop.
New arg slang. Return SCR_BP_STOP_UNSET if py_bp_object is NULL.
(gdbpy_breakpoint_has_cond): Renamed from gdbpy_breakpoint_has_py_cond.
New arg slang.
(local_setattro): Print name of extension language with existing
stop condition.
* valprint.c (val_print, value_print): Update to call
apply_ext_lang_val_pretty_printer.
* cp-valprint.c (cp_print_value): Update call to
apply_ext_lang_val_pretty_printer.
* python/py-prettyprint.c: Remove #ifdef HAVE_PYTHON.
(gdbpy_apply_val_pretty_printer): Renamed from
apply_val_pretty_printer. New arg extlang.
(!HAVE_PYTHON, apply_val_pretty_printer): Delete.
* cli/cli-cmds.c (source_script_from_stream): Rewrite to use
extension language API.
* cli/cli-script.c (execute_control_command): Update to call
eval_ext_lang_from_control_command.
* mi/mi-cmd-stack.c (mi_cmd_stack_list_frames): Update to use
enum ext_lang_bt_status values. Update call to
apply_ext_lang_frame_filter.
(mi_cmd_stack_list_locals): Ditto.
(mi_cmd_stack_list_args): Ditto.
(mi_cmd_stack_list_variables): Ditto.
* mi/mi-main.c: Delete #include "python/python-internal.h".
Add #include "extension.h".
(mi_cmd_list_features): Replace reference to python internal variable
gdb_python_initialized with call to ext_lang_initialized_p.
* stack.c (backtrace_command_1): Update to use enum ext_lang_bt_status.
Update to use enum ext_lang_frame_args. Update to call
apply_ext_lang_frame_filter.
* python/py-framefilter.c (extract_sym): Update to use enum
ext_lang_bt_status.
(extract_value, py_print_type, py_print_value): Ditto.
(py_print_single_arg, enumerate_args, enumerate_locals): Ditto.
(py_mi_print_variables, py_print_locals, py_print_args): Ditto.
(py_print_frame): Ditto.
(gdbpy_apply_frame_filter): Renamed from apply_frame_filter.
New arg extlang. Update to use enum ext_lang_bt_status.
* top.c (gdb_init): Delete #ifdef HAVE_PYTHON call to
finish_python_initialization. Replace with call to
finish_ext_lang_initialization.
* typeprint.c (do_free_global_table): Update to call
free_ext_lang_type_printers.
(create_global_typedef_table): Update to call
start_ext_lang_type_printers.
(find_global_typedef): Update to call apply_ext_lang_type_printers.
* typeprint.h (struct ext_lang_type_printers): Add forward decl.
(type_print_options): Change type of global_printers from "void *"
to "struct ext_lang_type_printers *".
* value.c (preserve_values): Update to call preserve_ext_lang_values.
* python/py-value.c: Remove #ifdef HAVE_PYTHON.
(gdbpy_preserve_values): Renamed from preserve_python_values.
New arg extlang.
(!HAVE_PYTHON, preserve_python_values): Delete.
* utils.c (quit_flag): Delete, moved to extension.c.
(clear_quit_flag, set_quit_flag, check_quit_flag): Delete, moved to
extension.c.
* eval.c: Delete #include "python/python.h".
* main.c: Delete #include "python/python.h".
* defs.h: Update comment.
testsuite/
* gdb.python/py-breakpoint.exp (test_bkpt_eval_funcs): Update expected
output.
* gdb.gdb/python-interrupts.exp: New file.
2014-02-06 11:27:58 +08:00
|
|
|
# Even if Python support is not compiled in, we need to have this file
|
|
|
|
# included so that the "python" command, et.al., still exists.
|
|
|
|
CONFIG_OBS="$CONFIG_OBS python.o"
|
|
|
|
CONFIG_SRCS="$CONFIG_SRCS python/python.c"
|
2008-08-07 03:41:33 +08: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 12:41:27 +08:00
|
|
|
AC_SUBST(PYTHON_CPPFLAGS)
|
|
|
|
AC_SUBST(PYTHON_LIBS)
|
2014-07-27 07:41:29 +08:00
|
|
|
AM_CONDITIONAL(HAVE_PYTHON, test "${have_libpython}" != no)
|
2008-08-07 03:41:33 +08:00
|
|
|
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 11:40:01 +08:00
|
|
|
# -------------------- #
|
|
|
|
# Check for libguile. #
|
|
|
|
# -------------------- #
|
|
|
|
|
|
|
|
dnl Utility to simplify finding libguile.
|
|
|
|
dnl $1 = pkg-config-program
|
|
|
|
dnl $2 = space-separate list of guile versions to try
|
|
|
|
dnl $3 = yes|no, indicating whether to flag errors or ignore them
|
|
|
|
dnl $4 = the shell variable to assign the result to
|
|
|
|
dnl If libguile is found we store "yes" here.
|
|
|
|
|
|
|
|
AC_DEFUN([AC_TRY_LIBGUILE],
|
|
|
|
[
|
|
|
|
pkg_config=$1
|
|
|
|
guile_version_list=$2
|
|
|
|
flag_errors=$3
|
|
|
|
define([have_libguile_var],$4)
|
|
|
|
found_usable_guile=checking
|
|
|
|
AC_MSG_CHECKING([for usable guile from ${pkg_config}])
|
|
|
|
for guile_version in ${guile_version_list}; do
|
|
|
|
${pkg_config} --exists ${guile_version} 2>/dev/null
|
|
|
|
if test $? != 0; then
|
|
|
|
continue
|
|
|
|
fi
|
|
|
|
dnl pkg-config says the package exists, so if we get an error now,
|
|
|
|
dnl that's bad.
|
|
|
|
new_CPPFLAGS=`${pkg_config} --cflags ${guile_version}`
|
|
|
|
if test $? != 0; then
|
2014-02-11 15:04:38 +08:00
|
|
|
AC_MSG_ERROR([failure running pkg-config --cflags ${guile_version}])
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 11:40:01 +08:00
|
|
|
fi
|
|
|
|
new_LIBS=`${pkg_config} --libs ${guile_version}`
|
|
|
|
if test $? != 0; then
|
2014-02-11 15:04:38 +08:00
|
|
|
AC_MSG_ERROR([failure running pkg-config --libs ${guile_version}])
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 11:40:01 +08:00
|
|
|
fi
|
|
|
|
dnl If we get this far, great.
|
|
|
|
found_usable_guile=${guile_version}
|
|
|
|
break
|
|
|
|
done
|
|
|
|
if test "${found_usable_guile}" = "checking"; then
|
|
|
|
if test "${flag_errors}" = "yes"; then
|
2014-02-11 15:04:38 +08:00
|
|
|
AC_MSG_ERROR([unable to find usable guile version from "${guile_version_list}"])
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 11:40:01 +08:00
|
|
|
else
|
|
|
|
found_usable_guile=no
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
dnl One final sanity check.
|
|
|
|
dnl The user could have said --with-guile=python-2.7.
|
|
|
|
if test "${found_usable_guile}" != no; then
|
|
|
|
save_CPPFLAGS=$CPPFLAGS
|
|
|
|
save_LIBS=$LIBS
|
|
|
|
CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
|
|
|
|
LIBS="$LIBS $new_LIBS"
|
|
|
|
AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "libguile.h"]],
|
|
|
|
[[scm_init_guile ();]]),
|
|
|
|
[have_libguile_var=yes
|
|
|
|
GUILE_CPPFLAGS=$new_CPPFLAGS
|
|
|
|
GUILE_LIBS=$new_LIBS],
|
|
|
|
[found_usable_guile=no])
|
2015-03-11 20:07:53 +08:00
|
|
|
dnl scm_set_automatic_finalization_enabled added in Guile 2.2.
|
|
|
|
AC_CHECK_FUNC(scm_set_automatic_finalization_enabled,
|
|
|
|
AC_DEFINE(HAVE_GUILE_MANUAL_FINALIZATION, 1,
|
|
|
|
[Define if Guile supports manual finalization.])
|
|
|
|
)
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 11:40:01 +08:00
|
|
|
CPPFLAGS=$save_CPPFLAGS
|
|
|
|
LIBS=$save_LIBS
|
|
|
|
if test "${found_usable_guile}" = no; then
|
|
|
|
if test "${flag_errors}" = yes; then
|
2014-02-11 15:04:38 +08:00
|
|
|
AC_MSG_FAILURE([linking guile version ${guile_version} test program failed])
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 11:40:01 +08:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT([${found_usable_guile}])
|
|
|
|
])
|
|
|
|
|
|
|
|
dnl There are several different values for --with-guile:
|
|
|
|
dnl
|
|
|
|
dnl no - Don't include guile support.
|
|
|
|
dnl yes - Include guile support, error if it's missing.
|
|
|
|
dnl The pkg-config program must be in $PATH.
|
|
|
|
dnl auto - Same as "yes", but if guile is missing from the system,
|
|
|
|
dnl fall back to "no".
|
|
|
|
dnl guile-version [guile-version-choice-2 ...] -
|
|
|
|
dnl A space-separated list of guile package versions to try.
|
|
|
|
dnl These are passed to pkg-config as-is.
|
|
|
|
dnl E.g., guile-2.0 or guile-2.2-uninstalled
|
|
|
|
dnl This requires making sure PKG_CONFIG_PATH is set appropriately.
|
|
|
|
dnl /path/to/pkg-config -
|
|
|
|
dnl Use this pkg-config program.
|
|
|
|
dnl NOTE: This needn't be the "real" pkg-config program.
|
|
|
|
dnl It could be a shell script. It is invoked as:
|
|
|
|
dnl pkg-config --exists $version
|
|
|
|
dnl pkg-config --cflags $version
|
|
|
|
dnl pkg-config --libs $version
|
2014-09-10 12:18:25 +08:00
|
|
|
dnl pkg-config --variable guild $version
|
|
|
|
dnl The script will be called with $version having each value in
|
|
|
|
dnl $try_guile_versions until --exists indicates success.
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 11:40:01 +08:00
|
|
|
|
|
|
|
AC_ARG_WITH(guile,
|
|
|
|
AS_HELP_STRING([--with-guile@<:@=GUILE@:>@], [include guile support (auto/yes/no/<guile-version>/<pkg-config-program>)]),
|
|
|
|
[], [with_guile=auto])
|
|
|
|
AC_MSG_CHECKING([whether to use guile])
|
|
|
|
AC_MSG_RESULT([$with_guile])
|
|
|
|
|
2014-02-11 15:04:38 +08:00
|
|
|
dnl We check guile with pkg-config.
|
|
|
|
AC_PATH_PROG(pkg_config_prog_path, pkg-config, missing)
|
|
|
|
|
2014-05-27 03:45:13 +08:00
|
|
|
try_guile_versions="guile-2.2 guile-2.0"
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 11:40:01 +08:00
|
|
|
have_libguile=no
|
|
|
|
case "${with_guile}" in
|
|
|
|
no)
|
|
|
|
AC_MSG_WARN([guile support disabled; some features will be unavailable.])
|
|
|
|
;;
|
|
|
|
auto)
|
2014-02-11 15:04:38 +08:00
|
|
|
if test "${pkg_config_prog_path}" = "missing"; then
|
|
|
|
AC_MSG_WARN([pkg-config not found, guile support disabled])
|
|
|
|
else
|
|
|
|
AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, no, have_libguile)
|
|
|
|
fi
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 11:40:01 +08:00
|
|
|
;;
|
|
|
|
yes)
|
2014-02-11 15:04:38 +08:00
|
|
|
if test "${pkg_config_prog_path}" = "missing"; then
|
|
|
|
AC_MSG_ERROR([pkg-config not found])
|
|
|
|
fi
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 11:40:01 +08:00
|
|
|
AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, yes, have_libguile)
|
|
|
|
;;
|
|
|
|
[[\\/]]* | ?:[[\\/]]*)
|
2014-02-11 15:04:38 +08:00
|
|
|
if test -x "${with_guile}"; then
|
|
|
|
AC_TRY_LIBGUILE(${with_guile}, ${try_guile_versions}, yes, have_libguile)
|
|
|
|
else
|
|
|
|
AC_MSG_ERROR([Guile config program not executable: ${with_guile}])
|
|
|
|
fi
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 11:40:01 +08:00
|
|
|
;;
|
|
|
|
"" | */*)
|
|
|
|
# Disallow --with=guile="" and --with-guile=foo/bar.
|
2014-02-11 15:04:38 +08:00
|
|
|
AC_MSG_ERROR([invalid value for --with-guile])
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 11:40:01 +08:00
|
|
|
;;
|
|
|
|
*)
|
|
|
|
# A space separate list of guile versions to try, in order.
|
2014-02-11 15:04:38 +08:00
|
|
|
if test "${pkg_config_prog_path}" = "missing"; then
|
|
|
|
AC_MSG_ERROR([pkg-config not found])
|
|
|
|
fi
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 11:40:01 +08:00
|
|
|
AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${with_guile}, yes, have_libguile)
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2014-07-27 09:16:27 +08:00
|
|
|
if test "${have_libguile}" != no; then
|
|
|
|
dnl Get the name of the 'guild' program.
|
2014-09-10 12:18:25 +08:00
|
|
|
case "${with_guile}" in
|
|
|
|
[[\\/]]* | ?:[[\\/]]*)
|
|
|
|
GDB_GUILE_PROGRAM_NAMES(["${with_guile}"], ["${guile_version}"])
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"])
|
|
|
|
;;
|
|
|
|
esac
|
2014-07-27 09:16:27 +08:00
|
|
|
|
|
|
|
dnl Make sure guild can handle this host.
|
|
|
|
GDB_TRY_GUILD([$srcdir/guile/lib/gdb/support.scm])
|
|
|
|
dnl If not, disable guile support.
|
|
|
|
if test "$ac_cv_guild_ok" = no; then
|
|
|
|
have_libguile=no
|
|
|
|
AC_MSG_WARN(disabling guile support, $GUILD fails compiling for $host)
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 11:40:01 +08:00
|
|
|
if test "${have_libguile}" != no; then
|
|
|
|
AC_DEFINE(HAVE_GUILE, 1, [Define if Guile interpreter is being linked in.])
|
|
|
|
CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_GUILE_OBS)"
|
|
|
|
CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_GUILE_DEPS)"
|
|
|
|
CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_GUILE_SRCS)"
|
|
|
|
CONFIG_INSTALL="$CONFIG_INSTALL install-guile"
|
|
|
|
ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_GUILE_CFLAGS)"
|
2014-05-27 20:02:21 +08:00
|
|
|
|
|
|
|
dnl The 'scm_new_smob' function appeared in Guile 2.0.6.
|
|
|
|
save_LIBS="$LIBS"
|
|
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
|
|
LIBS="$GUILE_LIBS"
|
|
|
|
CPPFLAGS="$GUILE_CPPFLAGS"
|
|
|
|
AC_CHECK_FUNCS([scm_new_smob])
|
|
|
|
LIBS="$save_LIBS"
|
|
|
|
CPPFLAGS="$save_CPPFLAGS"
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 11:40:01 +08:00
|
|
|
else
|
|
|
|
# Even if Guile support is not compiled in, we need to have these files
|
|
|
|
# included.
|
|
|
|
CONFIG_OBS="$CONFIG_OBS guile.o"
|
|
|
|
CONFIG_SRCS="$CONFIG_SRCS guile/guile.c"
|
|
|
|
fi
|
|
|
|
AC_SUBST(GUILE_CPPFLAGS)
|
|
|
|
AC_SUBST(GUILE_LIBS)
|
2014-07-27 07:41:29 +08:00
|
|
|
AM_CONDITIONAL(HAVE_GUILE, test "${have_libguile}" != no)
|
Add Guile as an extension language.
* NEWS: Mention Guile scripting.
* Makefile.in (SUBDIR_GUILE_OBS): New variable.
(SUBDIR_GUILE_SRCS, SUBDIR_GUILE_DEPS): New variables
(SUBDIR_GUILE_LDFLAGS, SUBDIR_GUILE_CFLAGS): New variables.
(INTERNAL_CPPFLAGS): Add GUILE_CPPFLAGS.
(CLIBS): Add GUILE_LIBS.
(install-guile): New rule.
(guile.o): New rule.
(scm-arch.o, scm-auto-load.o, scm-block.o): New rules.
(scm-breakpoint.o, scm-disasm.o, scm-exception.o): New rules.
(scm-frame.o, scm-iterator.o, scm-lazy-string.o): New rules.
(scm-math.o, scm-objfile.o, scm-ports.o): New rules.
(scm-pretty-print.o, scm-safe-call.o, scm-gsmob.o): New rules.
(scm-string.o, scm-symbol.o, scm-symtab.o): New rules.
(scm-type.o, scm-utils.o, scm-value.o): New rules.
* configure.ac: New option --with-guile.
* configure: Regenerate.
* config.in: Regenerate.
* auto-load.c: Remove #include "python/python.h". Add #include
"gdb/section-scripts.h".
(source_section_scripts): Handle Guile scripts.
(_initialize_auto_load): Add name of Guile objfile script to
scripts-directory help text.
* breakpoint.c (condition_command): Tweak comment to include Scheme.
* breakpoint.h (gdbscm_breakpoint_object): Add forward decl.
(struct breakpoint): New member scm_bp_object.
* defs.h (enum command_control_type): New value guile_control.
* cli/cli-cmds.c: Remove #include "python/python.h". Add #include
"extension.h".
(show_user): Update comment.
(_initialize_cli_cmds): Update help text for "show user". Update help
text for max-user-call-depth.
* cli/cli-script.c: Remove #include "python/python.h". Add #include
"extension.h".
(multi_line_command_p): Add guile_control.
(print_command_lines): Handle guile_control.
(execute_control_command, recurse_read_control_structure): Ditto.
(process_next_line): Recognize "guile" commands.
* disasm.c (gdb_disassemble_info): Make non-static.
* disasm.h: #include "dis-asm.h".
(struct gdbarch): Add forward decl.
(gdb_disassemble_info): Declare.
* extension.c: #include "guile/guile.h".
(extension_languages): Add guile.
(get_ext_lang_defn): Handle EXT_LANG_GDB.
* extension.h (enum extension_language): New value EXT_LANG_GUILE.
* gdbtypes.c (get_unsigned_type_max): New function.
(get_signed_type_minmax): New function.
* gdbtypes.h (get_unsigned_type_max): Declare.
(get_signed_type_minmax): Declare.
* guile/README: New file.
* guile/guile-internal.h: New file.
* guile/guile.c: New file.
* guile/guile.h: New file.
* guile/scm-arch.c: New file.
* guile/scm-auto-load.c: New file.
* guile/scm-block.c: New file.
* guile/scm-breakpoint.c: New file.
* guile/scm-disasm.c: New file.
* guile/scm-exception.c: New file.
* guile/scm-frame.c: New file.
* guile/scm-gsmob.c: New file.
* guile/scm-iterator.c: New file.
* guile/scm-lazy-string.c: New file.
* guile/scm-math.c: New file.
* guile/scm-objfile.c: New file.
* guile/scm-ports.c: New file.
* guile/scm-pretty-print.c: New file.
* guile/scm-safe-call.c: New file.
* guile/scm-string.c: New file.
* guile/scm-symbol.c: New file.
* guile/scm-symtab.c: New file.
* guile/scm-type.c: New file.
* guile/scm-utils.c: New file.
* guile/scm-value.c: New file.
* guile/lib/gdb.scm: New file.
* guile/lib/gdb/boot.scm: New file.
* guile/lib/gdb/experimental.scm: New file.
* guile/lib/gdb/init.scm: New file.
* guile/lib/gdb/iterator.scm: New file.
* guile/lib/gdb/printing.scm: New file.
* guile/lib/gdb/types.scm: New file.
* data-directory/Makefile.in (GUILE_SRCDIR): New variable.
(VPATH): Add $(GUILE_SRCDIR).
(GUILE_DIR): New variable.
(GUILE_INSTALL_DIR, GUILE_FILES): New variables.
(all): Add stamp-guile dependency.
(stamp-guile): New rule.
(clean-guile, install-guile, uninstall-guile): New rules.
(install-only): Add install-guile dependency.
(uninstall): Add uninstall-guile dependency.
(clean): Add clean-guile dependency.
doc/
* Makefile.in (GDB_DOC_FILES): Add guile.texi.
* gdb.texinfo (Auto-loading): Add set/show auto-load guile-scripts.
(Extending GDB): New menu entries Guile, Multiple Extension Languages.
(Guile docs): Include guile.texi.
(objfile-gdbdotext file): Add objfile-gdb.scm.
(dotdebug_gdb_scripts section): Mention Guile scripts.
(Multiple Extension Languages): New node.
* guile.texi: New file.
testsuite/
* configure.ac (AC_OUTPUT): Add gdb.guile.
* configure: Regenerate.
* lib/gdb-guile.exp: New file.
* lib/gdb.exp (get_target_charset): New function.
* gdb.base/help.exp: Update expected output from "apropos apropos".
* gdb.guile/Makefile.in: New file.
* gdb.guile/guile.exp: New file.
* gdb.guile/scm-arch.c: New file.
* gdb.guile/scm-arch.exp: New file.
* gdb.guile/scm-block.c: New file.
* gdb.guile/scm-block.exp: New file.
* gdb.guile/scm-breakpoint.c: New file.
* gdb.guile/scm-breakpoint.exp: New file.
* gdb.guile/scm-disasm.c: New file.
* gdb.guile/scm-disasm.exp: New file.
* gdb.guile/scm-equal.c: New file.
* gdb.guile/scm-equal.exp: New file.
* gdb.guile/scm-error.exp: New file.
* gdb.guile/scm-error.scm: New file.
* gdb.guile/scm-frame-args.c: New file.
* gdb.guile/scm-frame-args.exp: New file.
* gdb.guile/scm-frame-args.scm: New file.
* gdb.guile/scm-frame-inline.c: New file.
* gdb.guile/scm-frame-inline.exp: New file.
* gdb.guile/scm-frame.c: New file.
* gdb.guile/scm-frame.exp: New file.
* gdb.guile/scm-generics.exp: New file.
* gdb.guile/scm-gsmob.exp: New file.
* gdb.guile/scm-iterator.c: New file.
* gdb.guile/scm-iterator.exp: New file.
* gdb.guile/scm-math.c: New file.
* gdb.guile/scm-math.exp: New file.
* gdb.guile/scm-objfile-script-gdb.in: New file.
* gdb.guile/scm-objfile-script.c: New file.
* gdb.guile/scm-objfile-script.exp: New file.
* gdb.guile/scm-objfile.c: New file.
* gdb.guile/scm-objfile.exp: New file.
* gdb.guile/scm-ports.exp: New file.
* gdb.guile/scm-pretty-print.c: New file.
* gdb.guile/scm-pretty-print.exp: New file.
* gdb.guile/scm-pretty-print.scm: New file.
* gdb.guile/scm-section-script.c: New file.
* gdb.guile/scm-section-script.exp: New file.
* gdb.guile/scm-section-script.scm: New file.
* gdb.guile/scm-symbol.c: New file.
* gdb.guile/scm-symbol.exp: New file.
* gdb.guile/scm-symtab-2.c: New file.
* gdb.guile/scm-symtab.c: New file.
* gdb.guile/scm-symtab.exp: New file.
* gdb.guile/scm-type.c: New file.
* gdb.guile/scm-type.exp: New file.
* gdb.guile/scm-value-cc.cc: New file.
* gdb.guile/scm-value-cc.exp: New file.
* gdb.guile/scm-value.c: New file.
* gdb.guile/scm-value.exp: New file.
* gdb.guile/source2.scm: New file.
* gdb.guile/types-module.cc: New file.
* gdb.guile/types-module.exp: New file.
2014-02-10 11:40:01 +08:00
|
|
|
|
2013-11-29 06:30:59 +08:00
|
|
|
# --------------------- #
|
|
|
|
# Check for libmcheck. #
|
|
|
|
# --------------------- #
|
|
|
|
|
2012-09-03 06:57:43 +08:00
|
|
|
# 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.
|
On mainline/development, also link GDBserver with -lmcheck.
This factors --enable-libmcheck related bits from GDB's configure.ac
and makes GDBserver use them too. Specifically, the 'development'
global is moved to a separate script to it can be sourced by both GDB
and GDBserver, and the --enable-libmcheck/--disable-libmcheck bits
proper are moved to a new m4 file.
I started out by defining 'development' in the m4 file, but in the end
decided against it, as a separate script has the advantage that
changing it in release branches does not require regenerating
configure, unlike today.
I had also started out by making the new GDB_AC_LIBMCHECK itself
handle the yes/no default fallback depending on release/developement,
but since I had split out 'development' to a separate script, and, GDB
needs the python checks anyway (hence we'd need to do the python
checks in gdb's configure.ac, and pass in a 'default lmcheck yes/no'
parameter to GDB_AC_LIBMCHECK anyway), I ended up keeping
GDB_AC_LIBMCHECK isolated from the 'development' global. IOW, it's
the caller's business to handle it.
Tested on x86_64 Fedora 17. Built GDB and GDBserver with and without
--enable-libmcheck, and observed --enable-libmcheck overrides the
disablement of -lmcheck caused by python supporting threads, and that
GDBserver links with -lmcheck when expected. Also observed that
changing the 'development' global, and issuing "make" triggers a
relink, and '-lmcheck' is included or not from the link accordingly.
gdb/
2013-07-03 Pedro Alves <palves@redhat.com>
* Makefile.in (config.status): Depend on development.sh.
(aclocal_m4_deps): Add libmcheck.m4.
* acinclude.m4: Include libmcheck.m4.
* configure.ac: Source development.sh instead of setting
'development' here. --enable-libmcheck/--disable-libmcheck code
factored out to GDB_AC_LIBMCHECK. Run it.
* development.sh: New file.
* libmcheck.m4: New file.
* configure: Regenerate.
gdb/gdbserver/
2013-07-03 Pedro Alves <palves@redhat.com>
* Makefile.in (config.status): Depend on development.sh.
* acinclude.m4: Include libmcheck.m4.
* configure: Regenerate.
2013-07-03 21:25:46 +08:00
|
|
|
if test \( "${have_libpython}" = "no" -o "${python_has_threads}" = "no" \) \
|
|
|
|
&& $development; then
|
|
|
|
libmcheck_default=yes
|
|
|
|
else
|
|
|
|
libmcheck_default=no
|
2012-09-03 06:57:43 +08:00
|
|
|
fi
|
On mainline/development, also link GDBserver with -lmcheck.
This factors --enable-libmcheck related bits from GDB's configure.ac
and makes GDBserver use them too. Specifically, the 'development'
global is moved to a separate script to it can be sourced by both GDB
and GDBserver, and the --enable-libmcheck/--disable-libmcheck bits
proper are moved to a new m4 file.
I started out by defining 'development' in the m4 file, but in the end
decided against it, as a separate script has the advantage that
changing it in release branches does not require regenerating
configure, unlike today.
I had also started out by making the new GDB_AC_LIBMCHECK itself
handle the yes/no default fallback depending on release/developement,
but since I had split out 'development' to a separate script, and, GDB
needs the python checks anyway (hence we'd need to do the python
checks in gdb's configure.ac, and pass in a 'default lmcheck yes/no'
parameter to GDB_AC_LIBMCHECK anyway), I ended up keeping
GDB_AC_LIBMCHECK isolated from the 'development' global. IOW, it's
the caller's business to handle it.
Tested on x86_64 Fedora 17. Built GDB and GDBserver with and without
--enable-libmcheck, and observed --enable-libmcheck overrides the
disablement of -lmcheck caused by python supporting threads, and that
GDBserver links with -lmcheck when expected. Also observed that
changing the 'development' global, and issuing "make" triggers a
relink, and '-lmcheck' is included or not from the link accordingly.
gdb/
2013-07-03 Pedro Alves <palves@redhat.com>
* Makefile.in (config.status): Depend on development.sh.
(aclocal_m4_deps): Add libmcheck.m4.
* acinclude.m4: Include libmcheck.m4.
* configure.ac: Source development.sh instead of setting
'development' here. --enable-libmcheck/--disable-libmcheck code
factored out to GDB_AC_LIBMCHECK. Run it.
* development.sh: New file.
* libmcheck.m4: New file.
* configure: Regenerate.
gdb/gdbserver/
2013-07-03 Pedro Alves <palves@redhat.com>
* Makefile.in (config.status): Depend on development.sh.
* acinclude.m4: Include libmcheck.m4.
* configure: Regenerate.
2013-07-03 21:25:46 +08:00
|
|
|
GDB_AC_LIBMCHECK(${libmcheck_default})
|
2012-09-03 06:57:43 +08:00
|
|
|
|
On mainline/development, also link GDBserver with -lmcheck.
This factors --enable-libmcheck related bits from GDB's configure.ac
and makes GDBserver use them too. Specifically, the 'development'
global is moved to a separate script to it can be sourced by both GDB
and GDBserver, and the --enable-libmcheck/--disable-libmcheck bits
proper are moved to a new m4 file.
I started out by defining 'development' in the m4 file, but in the end
decided against it, as a separate script has the advantage that
changing it in release branches does not require regenerating
configure, unlike today.
I had also started out by making the new GDB_AC_LIBMCHECK itself
handle the yes/no default fallback depending on release/developement,
but since I had split out 'development' to a separate script, and, GDB
needs the python checks anyway (hence we'd need to do the python
checks in gdb's configure.ac, and pass in a 'default lmcheck yes/no'
parameter to GDB_AC_LIBMCHECK anyway), I ended up keeping
GDB_AC_LIBMCHECK isolated from the 'development' global. IOW, it's
the caller's business to handle it.
Tested on x86_64 Fedora 17. Built GDB and GDBserver with and without
--enable-libmcheck, and observed --enable-libmcheck overrides the
disablement of -lmcheck caused by python supporting threads, and that
GDBserver links with -lmcheck when expected. Also observed that
changing the 'development' global, and issuing "make" triggers a
relink, and '-lmcheck' is included or not from the link accordingly.
gdb/
2013-07-03 Pedro Alves <palves@redhat.com>
* Makefile.in (config.status): Depend on development.sh.
(aclocal_m4_deps): Add libmcheck.m4.
* acinclude.m4: Include libmcheck.m4.
* configure.ac: Source development.sh instead of setting
'development' here. --enable-libmcheck/--disable-libmcheck code
factored out to GDB_AC_LIBMCHECK. Run it.
* development.sh: New file.
* libmcheck.m4: New file.
* configure: Regenerate.
gdb/gdbserver/
2013-07-03 Pedro Alves <palves@redhat.com>
* Makefile.in (config.status): Depend on development.sh.
* acinclude.m4: Include libmcheck.m4.
* configure: Regenerate.
2013-07-03 21:25:46 +08:00
|
|
|
if test "$ENABLE_LIBMCHECK" = "yes" \
|
|
|
|
-a "${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)
|
2012-09-03 06:57:43 +08:00
|
|
|
fi
|
|
|
|
|
2013-11-12 23:58:45 +08:00
|
|
|
AC_ARG_WITH(intel_pt,
|
|
|
|
AS_HELP_STRING([--with-intel-pt], [include Intel(R) Processor Trace support (auto/yes/no)]),
|
|
|
|
[], [with_intel_pt=auto])
|
|
|
|
AC_MSG_CHECKING([whether to use intel pt])
|
|
|
|
AC_MSG_RESULT([$with_intel_pt])
|
|
|
|
|
|
|
|
if test "${with_intel_pt}" = no; then
|
|
|
|
AC_MSG_WARN([Intel(R) Processor Trace support disabled; some features may be unavailable.])
|
|
|
|
HAVE_LIBIPT=no
|
|
|
|
else
|
|
|
|
AC_LIB_HAVE_LINKFLAGS([ipt], [], [#include "intel-pt.h"], [pt_insn_alloc_decoder (0);])
|
|
|
|
if test "$HAVE_LIBIPT" != yes; then
|
|
|
|
if test "$with_intel_pt" = yes; then
|
|
|
|
AC_MSG_ERROR([libipt is missing or unusable])
|
|
|
|
else
|
|
|
|
AC_MSG_WARN([libipt is missing or unusable; some features may be unavailable.])
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2003-01-02 19:14:33 +08:00
|
|
|
# ------------------------- #
|
|
|
|
# Checks for header files. #
|
|
|
|
# ------------------------- #
|
1999-04-16 09:35:26 +08:00
|
|
|
|
|
|
|
AC_HEADER_STDC
|
2008-11-22 06:35:58 +08:00
|
|
|
# elf_hp.h is for HP/UX 64-bit shared library support.
|
2013-11-06 00:54:03 +08:00
|
|
|
AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
|
2013-11-06 22:36:46 +08:00
|
|
|
thread_db.h \
|
2013-11-06 22:42:51 +08:00
|
|
|
sys/fault.h \
|
2008-11-22 06:35:58 +08:00
|
|
|
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 \
|
2013-11-06 00:54:03 +08:00
|
|
|
termios.h termio.h \
|
2013-11-06 22:46:09 +08:00
|
|
|
sgtty.h elf_hp.h \
|
2013-11-06 00:54:03 +08:00
|
|
|
dlfcn.h])
|
2005-01-10 02:02:50 +08:00
|
|
|
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 19:14:33 +08:00
|
|
|
|
2004-07-17 19:24:26 +08:00
|
|
|
# On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
|
2003-01-02 19:14:33 +08: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 19:24:26 +08:00
|
|
|
solaris2.[[789]])
|
2003-01-02 19:14:33 +08:00
|
|
|
if test "$GCC" = yes; then
|
|
|
|
AC_DEFINE(_MSE_INT_H, 1,
|
2005-05-21 02:17:47 +08:00
|
|
|
[Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
|
|
|
|
Solaris 2.[789] when using GCC. ])
|
2003-01-02 19:14:33 +08:00
|
|
|
fi ;;
|
|
|
|
esac
|
2008-11-22 06:35:58 +08:00
|
|
|
AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h)
|
2005-01-17 06:51:49 +08:00
|
|
|
AC_CHECK_HEADERS(term.h, [], [],
|
|
|
|
[#if HAVE_CURSES_H
|
|
|
|
# include <curses.h>
|
|
|
|
#endif
|
|
|
|
])
|
2003-01-02 19:14:33 +08: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-09 02:27:14 +08:00
|
|
|
# ------------------------- #
|
|
|
|
# Checks for declarations. #
|
|
|
|
# ------------------------- #
|
|
|
|
|
Create libiberty.m4, have GDB and GDBserver use it
Converting GDB to be a C++ program, I stumbled on 'basename' issues,
like:
src/gdb/../include/ansidecl.h:169:64: error: new declaration ‘char* basename(const char*)’
/usr/include/string.h:597:26: error: ambiguates old declaration ‘const char* basename(const char*)’
which I believe led to this bit in gold's configure.ac:
dnl We have to check these in C, not C++, because autoconf generates
dnl tests which have no type information, and current glibc provides
dnl multiple declarations of functions like basename when compiling
dnl with C++.
AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf, strverscmp])
These checks IIUC intend to generate all the HAVE_DECL_FOO symbols
that libiberty.h and ansidecl.h check.
GDB is missing these checks currently, which results in the conflict
shown above.
This adds an m4 file that both GDB and GDBserver's configury use to
pull in the autoconf checks that libiberty clients needs done in order
to use these libiberty.h/ansidecl.h.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* libiberty.m4: New file.
* acinclude.m4: Include libiberty.m4.
* configure.ac: Call libiberty_INIT.
* config.in, configure: Regenerate.
gdb/gdbserver/
2015-02-27 Pedro Alves <palves@redhat.com>
* acinclude.m4: Include libiberty.m4.
* configure.ac: Call libiberty_INIT.
* config.in, configure: Regenerate.
2015-02-27 23:52:02 +08:00
|
|
|
libiberty_INIT
|
|
|
|
|
2013-11-06 00:54:03 +08:00
|
|
|
AC_CHECK_DECLS([free, malloc, realloc, snprintf])
|
2008-12-10 01:18:30 +08: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-09 02:27:14 +08:00
|
|
|
|
2005-01-21 19:53:23 +08:00
|
|
|
# ----------------------- #
|
|
|
|
# Checks for structures. #
|
|
|
|
# ----------------------- #
|
|
|
|
|
2008-11-22 06:35:58 +08:00
|
|
|
AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize])
|
2005-01-21 19:53:23 +08:00
|
|
|
|
2003-01-02 19:14:33 +08:00
|
|
|
# ------------------ #
|
|
|
|
# Checks for types. #
|
|
|
|
# ------------------ #
|
1999-04-16 09:35:26 +08:00
|
|
|
|
2003-01-02 19:14:33 +08:00
|
|
|
AC_TYPE_SIGNAL
|
2005-06-14 05:32:01 +08:00
|
|
|
AC_CHECK_TYPES(socklen_t, [], [],
|
|
|
|
[#include <sys/types.h>
|
|
|
|
#include <sys/socket.h>
|
|
|
|
])
|
2003-01-02 19:14:33 +08:00
|
|
|
|
|
|
|
# ------------------------------------- #
|
|
|
|
# Checks for compiler characteristics. #
|
|
|
|
# ------------------------------------- #
|
1999-04-16 09:35:26 +08:00
|
|
|
|
|
|
|
AC_C_CONST
|
2002-04-04 08:12:41 +08:00
|
|
|
AC_C_INLINE
|
2007-10-26 01:52:32 +08:00
|
|
|
AC_C_BIGENDIAN
|
1999-04-16 09:35:26 +08:00
|
|
|
|
2003-01-02 19:14:33 +08:00
|
|
|
# ------------------------------ #
|
|
|
|
# Checks for library functions. #
|
|
|
|
# ------------------------------ #
|
|
|
|
|
2003-01-02 19:45:34 +08:00
|
|
|
AC_FUNC_MMAP
|
2001-08-28 06:39:56 +08:00
|
|
|
AC_FUNC_VFORK
|
2014-11-28 09:18:26 +08:00
|
|
|
AC_CHECK_FUNCS([getauxval getrusage getuid getgid \
|
2014-11-04 22:17:02 +08:00
|
|
|
pipe poll pread pread64 pwrite 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 17:45:51 +08:00
|
|
|
sbrk setpgid setpgrp setsid \
|
2013-11-06 00:54:03 +08:00
|
|
|
sigaction sigprocmask sigsetmask socketpair \
|
2010-07-29 07:24:57 +08:00
|
|
|
ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
|
2014-11-06 20:34:28 +08:00
|
|
|
setrlimit getrlimit posix_madvise waitpid \
|
2015-06-10 21:28:43 +08:00
|
|
|
ptrace64 sigaltstack mkdtemp setns])
|
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 07:04:40 +08:00
|
|
|
AM_LANGINFO_CODESET
|
2013-04-25 00:45:45 +08:00
|
|
|
GDB_AC_COMMON
|
2003-01-02 19:45:34 +08:00
|
|
|
|
2004-08-10 03:20:13 +08:00
|
|
|
# Check the return and argument types of ptrace. No canned test for
|
|
|
|
# this, so roll our own.
|
|
|
|
gdb_ptrace_headers='
|
2013-11-06 22:47:29 +08:00
|
|
|
#include <sys/types.h>
|
2004-08-10 03:20:13 +08:00
|
|
|
#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 21:14:02 +08:00
|
|
|
AC_CHECK_DECLS(ptrace, [], [
|
2004-08-10 03:20:13 +08:00
|
|
|
: ${gdb_cv_func_ptrace_ret='int'}
|
|
|
|
: ${gdb_cv_func_ptrace_args='int,int,long,long'}
|
|
|
|
], $gdb_ptrace_headers)
|
2008-07-28 05:18:50 +08:00
|
|
|
# Check return type. Varargs (used on GNU/Linux) conflict with the
|
|
|
|
# empty argument list, so check for that explicitly.
|
2004-08-10 03:20:13 +08:00
|
|
|
AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
|
|
|
|
AC_TRY_COMPILE($gdb_ptrace_headers,
|
2008-07-28 05:18:50 +08: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-10 03:20:13 +08: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-28 05:18:50 +08:00
|
|
|
AC_TRY_COMPILE($gdb_ptrace_headers,
|
|
|
|
[extern long ptrace (enum __ptrace_request, ...);],
|
|
|
|
[gdb_cv_func_ptrace_args='int,int,long,long'],[
|
2004-08-10 03:20:13 +08:00
|
|
|
for gdb_arg1 in 'int' 'long'; do
|
|
|
|
for gdb_arg2 in 'pid_t' 'int' 'long'; do
|
2008-01-13 20:23:05 +08:00
|
|
|
for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do
|
2013-08-23 07:46:30 +08:00
|
|
|
for gdb_arg4 in 'int' 'long' 'void *'; do
|
2004-08-10 03:20:13 +08:00
|
|
|
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-28 05:18:50 +08:00
|
|
|
])])
|
2004-08-10 03:20:13 +08:00
|
|
|
ac_save_IFS=$IFS; IFS=','
|
|
|
|
set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
|
|
|
|
IFS=$ac_save_IFS
|
|
|
|
shift
|
2004-08-14 04:16:46 +08:00
|
|
|
AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
|
2004-08-10 03:20:13 +08:00
|
|
|
[Define to the type of arg 3 for ptrace.])
|
2013-08-23 07:46:30 +08:00
|
|
|
AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG4, $[4],
|
|
|
|
[Define to the type of arg 4 for ptrace.])
|
2004-08-10 03:20:13 +08:00
|
|
|
if test -n "$[5]"; then
|
2004-08-14 04:16:46 +08:00
|
|
|
AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
|
2004-08-10 03:20:13 +08:00
|
|
|
[Define to the type of arg 5 for ptrace.])
|
|
|
|
fi
|
|
|
|
|
2001-07-31 06:08:41 +08: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 09:35:26 +08:00
|
|
|
|
2005-01-21 21:49:22 +08: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 17:23:18 +08:00
|
|
|
|
2004-08-08 05:52:15 +08: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 20:40:09 +08: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-04-01 02:09:03 +08:00
|
|
|
# See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
|
2000-05-26 01:18:01 +08:00
|
|
|
# Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
|
2005-01-21 21:49:22 +08:00
|
|
|
AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
|
|
|
|
[#include <machine/reg.h>])
|
2000-05-26 01:18:01 +08:00
|
|
|
|
2012-06-26 22:43:01 +08: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-04-01 02:09:03 +08: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-06 06:57:06 +08: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
|
2014-01-22 03:01:04 +08:00
|
|
|
AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
|
2005-07-04 00:05:11 +08:00
|
|
|
[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-06 06:57:06 +08: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-04-01 02:09:03 +08:00
|
|
|
# See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
|
2000-08-11 01:04:33 +08:00
|
|
|
AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
|
|
|
|
AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
|
1999-11-02 12:44:47 +08:00
|
|
|
[AC_TRY_COMPILE([#include <sys/ptrace.h>],
|
2000-08-11 01:04:33 +08: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-04 00:05:11 +08:00
|
|
|
AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
|
|
|
|
[Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
|
1999-11-02 12:44:47 +08: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-04-01 02:09:03 +08: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-04 00:05:11 +08: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-04-01 02:09:03 +08:00
|
|
|
fi
|
|
|
|
|
2002-01-06 02:36:32 +08: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-04 00:05:11 +08:00
|
|
|
AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
|
|
|
|
[Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
|
2002-01-06 02:36:32 +08:00
|
|
|
fi
|
|
|
|
|
2012-12-11 19:32:39 +08:00
|
|
|
# Detect which type of /proc is in use, such as for Solaris.
|
1999-04-16 09:35:26 +08:00
|
|
|
|
|
|
|
if test "${target}" = "${host}"; then
|
|
|
|
case "${host}" in
|
2013-09-03 07:07:07 +08:00
|
|
|
*-*-sysv4.2* | *-*-sysv5* )
|
2005-07-04 00:05:11 +08:00
|
|
|
AC_DEFINE(NEW_PROC_API, 1,
|
2013-11-06 00:54:13 +08:00
|
|
|
[Define if you want to use new multi-fd /proc interface.])
|
2000-01-06 11:07:20 +08:00
|
|
|
;;
|
2007-12-17 06:19:21 +08:00
|
|
|
*-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*)
|
2005-07-04 00:05:11 +08:00
|
|
|
AC_DEFINE(NEW_PROC_API, 1,
|
2013-11-06 00:54:13 +08:00
|
|
|
[Define if you want to use new multi-fd /proc interface.])
|
2000-01-06 11:07:20 +08:00
|
|
|
;;
|
2004-04-29 22:29:14 +08:00
|
|
|
mips-sgi-irix5*)
|
|
|
|
# Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
|
2005-07-04 00:05:11 +08: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 22:29:14 +08:00
|
|
|
;;
|
1999-04-16 09:35:26 +08:00
|
|
|
esac
|
|
|
|
fi
|
|
|
|
|
|
|
|
if test "$ac_cv_header_sys_procfs_h" = yes; then
|
|
|
|
BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
|
|
|
|
BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
|
2000-02-16 21:45:24 +08:00
|
|
|
BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
|
|
|
|
BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
|
2000-08-30 08:58:58 +08:00
|
|
|
BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
|
2000-02-16 21:45:24 +08:00
|
|
|
BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
|
|
|
|
BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
|
2001-03-06 08:52:31 +08: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 09:35:26 +08:00
|
|
|
|
2000-08-30 08:58:58 +08:00
|
|
|
|
2000-04-14 18:13:50 +08: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 12:31:13 +08:00
|
|
|
dnl around it in gdb_proc_service.h.
|
2000-04-14 18:13:50 +08: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-04 00:05:11 +08:00
|
|
|
AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
|
|
|
|
[Define if the prfpregset_t type is broken.])
|
2000-04-14 18:13:50 +08:00
|
|
|
fi
|
|
|
|
fi
|
1999-04-16 09:35:26 +08:00
|
|
|
fi
|
|
|
|
|
2005-01-21 07:57:27 +08: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-10 02:39:59 +08: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 09:35:26 +08:00
|
|
|
fi
|
|
|
|
|
2005-01-21 07:57:27 +08:00
|
|
|
# Check if the compiler and runtime support printing long longs.
|
1999-04-16 09:35:26 +08:00
|
|
|
|
2005-01-21 07:57:27 +08: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 09:35:26 +08: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 07:57:27 +08: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 09:35:26 +08:00
|
|
|
if test $gdb_cv_printf_has_long_long = yes; then
|
2005-01-21 07:57:27 +08:00
|
|
|
AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
|
|
|
|
[Define to 1 if the "%ll" format works to print long longs.])
|
1999-04-16 09:35:26 +08:00
|
|
|
fi
|
|
|
|
|
2007-11-05 19:32:31 +08: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 07:57:27 +08: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 09:35:26 +08:00
|
|
|
|
2005-01-21 07:57:27 +08: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 09:35:26 +08:00
|
|
|
fi
|
|
|
|
|
2005-01-21 07:57:27 +08:00
|
|
|
# Check if the compiler and runtime support printing long doubles.
|
1999-04-16 09:35:26 +08:00
|
|
|
|
2005-01-21 07:57:27 +08: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 09:35:26 +08:00
|
|
|
long double f = 3.141592653;
|
|
|
|
sprintf (buf, "%Lg", f);
|
2005-01-21 07:57:27 +08: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 09:35:26 +08:00
|
|
|
if test $gdb_cv_printf_has_long_double = yes; then
|
2005-01-21 07:57:27 +08:00
|
|
|
AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
|
|
|
|
[Define to 1 if the "%Lg" format works to print long doubles.])
|
1999-04-16 09:35:26 +08:00
|
|
|
fi
|
|
|
|
|
2005-01-21 07:57:27 +08:00
|
|
|
# Check if the compiler and runtime support scanning long doubles.
|
1999-04-16 09:35:26 +08:00
|
|
|
|
2014-01-22 03:01:04 +08:00
|
|
|
AC_CACHE_CHECK([for long double support in scanf],
|
2005-01-21 07:57:27 +08:00
|
|
|
gdb_cv_scanf_has_long_double,
|
|
|
|
[AC_RUN_IFELSE([AC_LANG_PROGRAM(
|
|
|
|
[[#include <stdio.h>]],
|
|
|
|
[[char *buf = "3.141592653";
|
1999-04-16 09:35:26 +08:00
|
|
|
long double f = 0;
|
|
|
|
sscanf (buf, "%Lg", &f);
|
2005-01-21 07:57:27 +08: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 09:35:26 +08:00
|
|
|
if test $gdb_cv_scanf_has_long_double = yes; then
|
2005-01-21 07:57:27 +08:00
|
|
|
AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
|
|
|
|
[Define to 1 if the "%Lg" format works to scan long doubles.])
|
1999-04-16 09:35:26 +08:00
|
|
|
fi
|
|
|
|
|
2002-03-07 05:16:00 +08: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 07:14:49 +08:00
|
|
|
LDFLAGS="${SAVE_LDFLAGS}"
|
2002-03-07 05:16:00 +08:00
|
|
|
])
|
|
|
|
CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2010-06-23 18:12:14 +08:00
|
|
|
AC_MSG_CHECKING(for the dynamic export flag)
|
|
|
|
dynamic_list=false
|
2010-06-16 02:37:18 +08:00
|
|
|
if test "${gdb_native}" = yes; then
|
2010-06-23 18:12:14 +08: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"
|
2013-03-12 02:49:37 +08:00
|
|
|
old_LIBS="$LIBS"
|
|
|
|
LIBS="$LIBS $PYTHON_LIBS"
|
2010-06-23 18:12:14 +08:00
|
|
|
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])
|
2013-03-12 02:49:37 +08:00
|
|
|
LIBS="$old_LIBS"
|
2010-06-23 18:12:14 +08:00
|
|
|
CFLAGS="$old_CFLAGS"
|
2010-05-29 02:50:35 +08:00
|
|
|
fi
|
2010-06-23 18:12:14 +08: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-16 02:37:18 +08:00
|
|
|
fi
|
2010-06-23 18:12:14 +08:00
|
|
|
AC_SUBST(RDYNAMIC)
|
|
|
|
AC_MSG_RESULT($found)
|
2010-06-16 02:37:18 +08: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-29 02:50:35 +08:00
|
|
|
|
2010-06-16 02:37:18 +08:00
|
|
|
if test ${build} = ${host} -a ${host} = ${target} ; then
|
1999-04-16 09:35:26 +08:00
|
|
|
case ${host_os} in
|
|
|
|
solaris*)
|
2002-11-29 08:30:06 +08: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 09:35:26 +08: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-04 00:05:11 +08:00
|
|
|
AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
|
|
|
|
[Define if using Solaris thread debugging.])
|
2004-02-09 01:53:08 +08:00
|
|
|
CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
|
1999-04-16 09:35:26 +08:00
|
|
|
CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
|
|
|
|
AC_CHECK_LIB(dl, dlopen)
|
2010-05-29 02:50:35 +08:00
|
|
|
CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC"
|
1999-04-16 09:35:26 +08: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-04 00:05:11 +08: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 09:35:26 +08:00
|
|
|
fi
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT(no)
|
|
|
|
fi
|
|
|
|
;;
|
2002-11-29 08:30:06 +08: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-09 01:53:08 +08:00
|
|
|
CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
|
2012-04-18 23:11:59 +08:00
|
|
|
LIBS="$LIBS -lpthdebug"
|
2011-03-17 21:19:10 +08: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 08:30:06 +08:00
|
|
|
fi
|
|
|
|
;;
|
1999-04-16 09:35:26 +08:00
|
|
|
esac
|
|
|
|
AC_SUBST(CONFIG_LDFLAGS)
|
|
|
|
fi
|
|
|
|
|
2007-01-01 04:20:13 +08:00
|
|
|
dnl See if we have a thread_db header file that has TD_NOTALLOC and
|
|
|
|
dnl other error codes.
|
2002-11-12 10:39:41 +08: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
|
|
|
|
)
|
|
|
|
)
|
2007-01-01 04:20:13 +08: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 10:39:41 +08: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
|
2007-01-01 04:20:13 +08: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 10:39:41 +08:00
|
|
|
|
2003-06-05 04:51:29 +08: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.
|
2013-11-11 22:35:57 +08:00
|
|
|
if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes"; then
|
|
|
|
AC_CHECK_FUNC(syscall,
|
|
|
|
AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
|
|
|
|
)
|
2003-06-05 04:51:29 +08:00
|
|
|
fi
|
|
|
|
|
2008-07-10 17:31:00 +08: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
|
|
|
|
|
2013-07-01 19:24:17 +08:00
|
|
|
dnl Set the host's .gdbinit filename.
|
|
|
|
case $host_os in
|
|
|
|
go32* | *djgpp*)
|
|
|
|
gdbinit=gdb.ini
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
gdbinit=.gdbinit
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
|
|
|
|
|
1999-04-16 09:35:26 +08:00
|
|
|
dnl Handle optional features that can be enabled.
|
2000-02-23 08:25:43 +08:00
|
|
|
|
2012-01-19 02:35:43 +08: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-14 02:00:16 +08:00
|
|
|
AC_ARG_WITH(sysroot,
|
2012-01-19 02:35:43 +08: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-14 02:00:16 +08:00
|
|
|
AC_SUBST(TARGET_SYSTEM_ROOT)
|
2012-01-19 02:35:43 +08:00
|
|
|
GDB_AC_DEFINE_RELOCATABLE(TARGET_SYSTEM_ROOT, sysroot, ${ac_define_dir})
|
2003-01-14 02:00:16 +08:00
|
|
|
|
2009-04-24 05:28:20 +08:00
|
|
|
GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit,
|
|
|
|
[automatically load a system-wide gdbinit file],
|
|
|
|
[])
|
2009-01-28 23:01:00 +08:00
|
|
|
|
2006-02-22 05:02:25 +08:00
|
|
|
AC_ARG_ENABLE(werror,
|
2009-04-22 08:17:50 +08:00
|
|
|
AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]),
|
2006-02-22 05:02:25 +08: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])
|
|
|
|
|
Add --enable-build-with-cxx configure switch
This new option, disabled by default for now, allows specifying
whether to build GDB, GDBserver, and friends with a C++ (98/03)
compiler.
The name of the switch should be familiar to those who followed GCC's
own C++ conversion process.
. Adding -fpermissive to COMPILER in C++ mode (see the new
build-with-cxx.m4 file) makes errors like these be warnings instead:
gdb/infrun.c:6597:1: error: initializing argument 1 of ‘void sig_print_info(gdb_signal)’ [-fpermissive]
sig_print_info (enum gdb_signal oursig)
^
gdb/infrun.c: In function ‘void do_restore_infcall_suspend_state_cleanup(void*)’:
gdb/infrun.c:7164:39: error: invalid conversion from ‘void*’ to ‘infcall_suspend_state*’ [-fpermissive]
restore_infcall_suspend_state (state);
^
so that the compiler carries on compiling the file. -Werror still
catches the warnings, so nothing is lost, only our lifes are made
easier by concentrating on getting other more important things out of
the way first.
There's no way to quiet those warnings. Until they're all fixed, when
building in C++ mode, -Werror is disabled by default.
. Adding -Wno-narrowing suppresses thousands of instances of this warning:
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1l’ from ‘LONGEST {aka long int}’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:450:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
We can defer handling those until we target C++11.
. Adding -Wno-sign-compare suppresses thousands of instances of this warning:
gdb/linux-record.c:1763:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (tmpulongest == tdep->fcntl_F_GETLK64)
^
. Adding -Wno-write-strings suppresses thousands of instances of this warning:
gdb/mi/mi-cmd-var.c: In function ‘void mi_cmd_var_show_attributes(char*, char**, int)’:
gdb/mi/mi-cmd-var.c:514:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "editable";
^
gdb/mi/mi-cmd-var.c:516:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "noneditable";
^
For now, it's best to hide these warnings from view until we're
'-fpermissive'-clean, and can thus start building with -Werror.
The C compiler has always managed to build working GDBs with these
issues in the code, so a C++ compiler should too.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(COMPILE.pre, CC_LD): Use COMPILER.
(CXX): Get from autoconf instead.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* build-with-cxx.m4: New file.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Only enable -Wpointer-sign in C mode.
Run supported-warning-flags tests with the C++ compiler.
Save/restore CXXFLAGS too.
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(CXX): Get from autoconf instead.
(COMPILE.pre): Use COMPILER.
(CC-LD): Rename to ...
(CC_LD): ... this. Use COMPILER.
(gdbserver$(EXEEXT), gdbreplay$(EXEEXT), $(IPA_LIB)): Adjust.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Run supported-warning-flags tests with
the C++ compiler. Save/restore CXXFLAGS too.
* configure: Regenerate.
2015-02-27 21:11:25 +08:00
|
|
|
# Enable -Werror by default when using gcc in C mode. Leave it off
|
|
|
|
# for C++ until we're warning clean. Turn it off for releases.
|
|
|
|
if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" \
|
|
|
|
&& test x"$enable_build_with_cxx" != x"yes" \
|
|
|
|
&& $development; then
|
2006-02-22 05:02:25 +08:00
|
|
|
ERROR_ON_WARNING=yes
|
|
|
|
fi
|
|
|
|
|
|
|
|
WERROR_CFLAGS=""
|
|
|
|
if test "${ERROR_ON_WARNING}" = yes ; then
|
|
|
|
WERROR_CFLAGS="-Werror"
|
|
|
|
fi
|
|
|
|
|
Add --enable-build-with-cxx configure switch
This new option, disabled by default for now, allows specifying
whether to build GDB, GDBserver, and friends with a C++ (98/03)
compiler.
The name of the switch should be familiar to those who followed GCC's
own C++ conversion process.
. Adding -fpermissive to COMPILER in C++ mode (see the new
build-with-cxx.m4 file) makes errors like these be warnings instead:
gdb/infrun.c:6597:1: error: initializing argument 1 of ‘void sig_print_info(gdb_signal)’ [-fpermissive]
sig_print_info (enum gdb_signal oursig)
^
gdb/infrun.c: In function ‘void do_restore_infcall_suspend_state_cleanup(void*)’:
gdb/infrun.c:7164:39: error: invalid conversion from ‘void*’ to ‘infcall_suspend_state*’ [-fpermissive]
restore_infcall_suspend_state (state);
^
so that the compiler carries on compiling the file. -Werror still
catches the warnings, so nothing is lost, only our lifes are made
easier by concentrating on getting other more important things out of
the way first.
There's no way to quiet those warnings. Until they're all fixed, when
building in C++ mode, -Werror is disabled by default.
. Adding -Wno-narrowing suppresses thousands of instances of this warning:
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1l’ from ‘LONGEST {aka long int}’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:450:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
We can defer handling those until we target C++11.
. Adding -Wno-sign-compare suppresses thousands of instances of this warning:
gdb/linux-record.c:1763:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (tmpulongest == tdep->fcntl_F_GETLK64)
^
. Adding -Wno-write-strings suppresses thousands of instances of this warning:
gdb/mi/mi-cmd-var.c: In function ‘void mi_cmd_var_show_attributes(char*, char**, int)’:
gdb/mi/mi-cmd-var.c:514:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "editable";
^
gdb/mi/mi-cmd-var.c:516:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "noneditable";
^
For now, it's best to hide these warnings from view until we're
'-fpermissive'-clean, and can thus start building with -Werror.
The C compiler has always managed to build working GDBs with these
issues in the code, so a C++ compiler should too.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(COMPILE.pre, CC_LD): Use COMPILER.
(CXX): Get from autoconf instead.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* build-with-cxx.m4: New file.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Only enable -Wpointer-sign in C mode.
Run supported-warning-flags tests with the C++ compiler.
Save/restore CXXFLAGS too.
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(CXX): Get from autoconf instead.
(COMPILE.pre): Use COMPILER.
(CC-LD): Rename to ...
(CC_LD): ... this. Use COMPILER.
(gdbserver$(EXEEXT), gdbreplay$(EXEEXT), $(IPA_LIB)): Adjust.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Run supported-warning-flags tests with
the C++ compiler. Save/restore CXXFLAGS too.
* configure: Regenerate.
2015-02-27 21:11:25 +08:00
|
|
|
# These options work in either C or C++ modes.
|
2015-03-01 03:11:10 +08:00
|
|
|
build_warnings="-Wall -Wpointer-arith \
|
2010-01-19 17:52:33 +08:00
|
|
|
-Wno-unused -Wunused-value -Wunused-function \
|
2015-03-01 03:11:10 +08:00
|
|
|
-Wno-switch -Wno-char-subscripts \
|
|
|
|
-Wempty-body"
|
2005-03-12 05:02:02 +08:00
|
|
|
|
Add --enable-build-with-cxx configure switch
This new option, disabled by default for now, allows specifying
whether to build GDB, GDBserver, and friends with a C++ (98/03)
compiler.
The name of the switch should be familiar to those who followed GCC's
own C++ conversion process.
. Adding -fpermissive to COMPILER in C++ mode (see the new
build-with-cxx.m4 file) makes errors like these be warnings instead:
gdb/infrun.c:6597:1: error: initializing argument 1 of ‘void sig_print_info(gdb_signal)’ [-fpermissive]
sig_print_info (enum gdb_signal oursig)
^
gdb/infrun.c: In function ‘void do_restore_infcall_suspend_state_cleanup(void*)’:
gdb/infrun.c:7164:39: error: invalid conversion from ‘void*’ to ‘infcall_suspend_state*’ [-fpermissive]
restore_infcall_suspend_state (state);
^
so that the compiler carries on compiling the file. -Werror still
catches the warnings, so nothing is lost, only our lifes are made
easier by concentrating on getting other more important things out of
the way first.
There's no way to quiet those warnings. Until they're all fixed, when
building in C++ mode, -Werror is disabled by default.
. Adding -Wno-narrowing suppresses thousands of instances of this warning:
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1l’ from ‘LONGEST {aka long int}’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:450:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
We can defer handling those until we target C++11.
. Adding -Wno-sign-compare suppresses thousands of instances of this warning:
gdb/linux-record.c:1763:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (tmpulongest == tdep->fcntl_F_GETLK64)
^
. Adding -Wno-write-strings suppresses thousands of instances of this warning:
gdb/mi/mi-cmd-var.c: In function ‘void mi_cmd_var_show_attributes(char*, char**, int)’:
gdb/mi/mi-cmd-var.c:514:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "editable";
^
gdb/mi/mi-cmd-var.c:516:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "noneditable";
^
For now, it's best to hide these warnings from view until we're
'-fpermissive'-clean, and can thus start building with -Werror.
The C compiler has always managed to build working GDBs with these
issues in the code, so a C++ compiler should too.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(COMPILE.pre, CC_LD): Use COMPILER.
(CXX): Get from autoconf instead.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* build-with-cxx.m4: New file.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Only enable -Wpointer-sign in C mode.
Run supported-warning-flags tests with the C++ compiler.
Save/restore CXXFLAGS too.
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(CXX): Get from autoconf instead.
(COMPILE.pre): Use COMPILER.
(CC-LD): Rename to ...
(CC_LD): ... this. Use COMPILER.
(gdbserver$(EXEEXT), gdbreplay$(EXEEXT), $(IPA_LIB)): Adjust.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Run supported-warning-flags tests with
the C++ compiler. Save/restore CXXFLAGS too.
* configure: Regenerate.
2015-02-27 21:11:25 +08:00
|
|
|
# Now add in C and C++ specific options, depending on mode.
|
|
|
|
if test "$enable_build_with_cxx" = "yes"; then
|
|
|
|
build_warnings="$build_warnings -Wno-sign-compare -Wno-write-strings \
|
|
|
|
-Wno-narrowing"
|
|
|
|
else
|
2015-03-01 03:11:10 +08:00
|
|
|
build_warnings="$build_warnings -Wpointer-sign -Wmissing-prototypes \
|
|
|
|
-Wdeclaration-after-statement -Wmissing-parameter-type \
|
|
|
|
-Wold-style-declaration -Wold-style-definition"
|
Add --enable-build-with-cxx configure switch
This new option, disabled by default for now, allows specifying
whether to build GDB, GDBserver, and friends with a C++ (98/03)
compiler.
The name of the switch should be familiar to those who followed GCC's
own C++ conversion process.
. Adding -fpermissive to COMPILER in C++ mode (see the new
build-with-cxx.m4 file) makes errors like these be warnings instead:
gdb/infrun.c:6597:1: error: initializing argument 1 of ‘void sig_print_info(gdb_signal)’ [-fpermissive]
sig_print_info (enum gdb_signal oursig)
^
gdb/infrun.c: In function ‘void do_restore_infcall_suspend_state_cleanup(void*)’:
gdb/infrun.c:7164:39: error: invalid conversion from ‘void*’ to ‘infcall_suspend_state*’ [-fpermissive]
restore_infcall_suspend_state (state);
^
so that the compiler carries on compiling the file. -Werror still
catches the warnings, so nothing is lost, only our lifes are made
easier by concentrating on getting other more important things out of
the way first.
There's no way to quiet those warnings. Until they're all fixed, when
building in C++ mode, -Werror is disabled by default.
. Adding -Wno-narrowing suppresses thousands of instances of this warning:
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1l’ from ‘LONGEST {aka long int}’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:450:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
We can defer handling those until we target C++11.
. Adding -Wno-sign-compare suppresses thousands of instances of this warning:
gdb/linux-record.c:1763:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (tmpulongest == tdep->fcntl_F_GETLK64)
^
. Adding -Wno-write-strings suppresses thousands of instances of this warning:
gdb/mi/mi-cmd-var.c: In function ‘void mi_cmd_var_show_attributes(char*, char**, int)’:
gdb/mi/mi-cmd-var.c:514:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "editable";
^
gdb/mi/mi-cmd-var.c:516:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "noneditable";
^
For now, it's best to hide these warnings from view until we're
'-fpermissive'-clean, and can thus start building with -Werror.
The C compiler has always managed to build working GDBs with these
issues in the code, so a C++ compiler should too.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(COMPILE.pre, CC_LD): Use COMPILER.
(CXX): Get from autoconf instead.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* build-with-cxx.m4: New file.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Only enable -Wpointer-sign in C mode.
Run supported-warning-flags tests with the C++ compiler.
Save/restore CXXFLAGS too.
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(CXX): Get from autoconf instead.
(COMPILE.pre): Use COMPILER.
(CC-LD): Rename to ...
(CC_LD): ... this. Use COMPILER.
(gdbserver$(EXEEXT), gdbreplay$(EXEEXT), $(IPA_LIB)): Adjust.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Run supported-warning-flags tests with
the C++ compiler. Save/restore CXXFLAGS too.
* configure: Regenerate.
2015-02-27 21:11:25 +08:00
|
|
|
fi
|
|
|
|
|
2008-06-09 23:03:59 +08: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" ;;
|
2013-05-11 00:10:40 +08:00
|
|
|
*) build_warnings="$build_warnings -Wformat-nonliteral" ;;
|
2008-06-09 23:03:59 +08:00
|
|
|
esac
|
|
|
|
|
1999-04-16 09:35:26 +08:00
|
|
|
AC_ARG_ENABLE(build-warnings,
|
2009-04-22 08:17:50 +08:00
|
|
|
AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]),
|
2000-04-07 16:57:39 +08:00
|
|
|
[case "${enableval}" in
|
1999-04-16 09:35:26 +08: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 08:02:17 +08:00
|
|
|
esac
|
|
|
|
if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
|
2000-05-12 12:37:00 +08:00
|
|
|
echo "Setting compiler warning flags = $build_warnings" 6>&1
|
2000-04-07 16:57:39 +08:00
|
|
|
fi])dnl
|
2000-11-24 19:02:59 +08:00
|
|
|
AC_ARG_ENABLE(gdb-build-warnings,
|
2009-04-22 08:17:50 +08:00
|
|
|
AS_HELP_STRING([--enable-gdb-build-warnings], [enable GDB specific build-time compiler warnings if gcc is used]),
|
2000-11-24 19:02:59 +08: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
|
Add --enable-build-with-cxx configure switch
This new option, disabled by default for now, allows specifying
whether to build GDB, GDBserver, and friends with a C++ (98/03)
compiler.
The name of the switch should be familiar to those who followed GCC's
own C++ conversion process.
. Adding -fpermissive to COMPILER in C++ mode (see the new
build-with-cxx.m4 file) makes errors like these be warnings instead:
gdb/infrun.c:6597:1: error: initializing argument 1 of ‘void sig_print_info(gdb_signal)’ [-fpermissive]
sig_print_info (enum gdb_signal oursig)
^
gdb/infrun.c: In function ‘void do_restore_infcall_suspend_state_cleanup(void*)’:
gdb/infrun.c:7164:39: error: invalid conversion from ‘void*’ to ‘infcall_suspend_state*’ [-fpermissive]
restore_infcall_suspend_state (state);
^
so that the compiler carries on compiling the file. -Werror still
catches the warnings, so nothing is lost, only our lifes are made
easier by concentrating on getting other more important things out of
the way first.
There's no way to quiet those warnings. Until they're all fixed, when
building in C++ mode, -Werror is disabled by default.
. Adding -Wno-narrowing suppresses thousands of instances of this warning:
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1l’ from ‘LONGEST {aka long int}’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:450:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
We can defer handling those until we target C++11.
. Adding -Wno-sign-compare suppresses thousands of instances of this warning:
gdb/linux-record.c:1763:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (tmpulongest == tdep->fcntl_F_GETLK64)
^
. Adding -Wno-write-strings suppresses thousands of instances of this warning:
gdb/mi/mi-cmd-var.c: In function ‘void mi_cmd_var_show_attributes(char*, char**, int)’:
gdb/mi/mi-cmd-var.c:514:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "editable";
^
gdb/mi/mi-cmd-var.c:516:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "noneditable";
^
For now, it's best to hide these warnings from view until we're
'-fpermissive'-clean, and can thus start building with -Werror.
The C compiler has always managed to build working GDBs with these
issues in the code, so a C++ compiler should too.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(COMPILE.pre, CC_LD): Use COMPILER.
(CXX): Get from autoconf instead.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* build-with-cxx.m4: New file.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Only enable -Wpointer-sign in C mode.
Run supported-warning-flags tests with the C++ compiler.
Save/restore CXXFLAGS too.
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(CXX): Get from autoconf instead.
(COMPILE.pre): Use COMPILER.
(CC-LD): Rename to ...
(CC_LD): ... this. Use COMPILER.
(gdbserver$(EXEEXT), gdbreplay$(EXEEXT), $(IPA_LIB)): Adjust.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Run supported-warning-flags tests with
the C++ compiler. Save/restore CXXFLAGS too.
* configure: Regenerate.
2015-02-27 21:11:25 +08:00
|
|
|
|
|
|
|
# The set of warnings supported by a C++ compiler is not the same as
|
|
|
|
# of the C compiler.
|
|
|
|
if test "$enable_build_with_cxx" = "yes"; then
|
|
|
|
AC_LANG_PUSH([C++])
|
|
|
|
fi
|
|
|
|
|
1999-08-31 09:14:27 +08:00
|
|
|
WARN_CFLAGS=""
|
1999-04-16 09:35:26 +08:00
|
|
|
if test "x${build_warnings}" != x -a "x$GCC" = xyes
|
|
|
|
then
|
2000-05-12 12:37:00 +08: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 ;;
|
Add --enable-build-with-cxx configure switch
This new option, disabled by default for now, allows specifying
whether to build GDB, GDBserver, and friends with a C++ (98/03)
compiler.
The name of the switch should be familiar to those who followed GCC's
own C++ conversion process.
. Adding -fpermissive to COMPILER in C++ mode (see the new
build-with-cxx.m4 file) makes errors like these be warnings instead:
gdb/infrun.c:6597:1: error: initializing argument 1 of ‘void sig_print_info(gdb_signal)’ [-fpermissive]
sig_print_info (enum gdb_signal oursig)
^
gdb/infrun.c: In function ‘void do_restore_infcall_suspend_state_cleanup(void*)’:
gdb/infrun.c:7164:39: error: invalid conversion from ‘void*’ to ‘infcall_suspend_state*’ [-fpermissive]
restore_infcall_suspend_state (state);
^
so that the compiler carries on compiling the file. -Werror still
catches the warnings, so nothing is lost, only our lifes are made
easier by concentrating on getting other more important things out of
the way first.
There's no way to quiet those warnings. Until they're all fixed, when
building in C++ mode, -Werror is disabled by default.
. Adding -Wno-narrowing suppresses thousands of instances of this warning:
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1l’ from ‘LONGEST {aka long int}’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:450:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
We can defer handling those until we target C++11.
. Adding -Wno-sign-compare suppresses thousands of instances of this warning:
gdb/linux-record.c:1763:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (tmpulongest == tdep->fcntl_F_GETLK64)
^
. Adding -Wno-write-strings suppresses thousands of instances of this warning:
gdb/mi/mi-cmd-var.c: In function ‘void mi_cmd_var_show_attributes(char*, char**, int)’:
gdb/mi/mi-cmd-var.c:514:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "editable";
^
gdb/mi/mi-cmd-var.c:516:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "noneditable";
^
For now, it's best to hide these warnings from view until we're
'-fpermissive'-clean, and can thus start building with -Werror.
The C compiler has always managed to build working GDBs with these
issues in the code, so a C++ compiler should too.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(COMPILE.pre, CC_LD): Use COMPILER.
(CXX): Get from autoconf instead.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* build-with-cxx.m4: New file.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Only enable -Wpointer-sign in C mode.
Run supported-warning-flags tests with the C++ compiler.
Save/restore CXXFLAGS too.
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(CXX): Get from autoconf instead.
(COMPILE.pre): Use COMPILER.
(CC-LD): Rename to ...
(CC_LD): ... this. Use COMPILER.
(gdbserver$(EXEEXT), gdbreplay$(EXEEXT), $(IPA_LIB)): Adjust.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Run supported-warning-flags tests with
the C++ compiler. Save/restore CXXFLAGS too.
* configure: Regenerate.
2015-02-27 21:11:25 +08:00
|
|
|
*)
|
|
|
|
# Check whether GCC accepts it.
|
2001-10-31 09:57:04 +08:00
|
|
|
saved_CFLAGS="$CFLAGS"
|
|
|
|
CFLAGS="$CFLAGS $w"
|
Add --enable-build-with-cxx configure switch
This new option, disabled by default for now, allows specifying
whether to build GDB, GDBserver, and friends with a C++ (98/03)
compiler.
The name of the switch should be familiar to those who followed GCC's
own C++ conversion process.
. Adding -fpermissive to COMPILER in C++ mode (see the new
build-with-cxx.m4 file) makes errors like these be warnings instead:
gdb/infrun.c:6597:1: error: initializing argument 1 of ‘void sig_print_info(gdb_signal)’ [-fpermissive]
sig_print_info (enum gdb_signal oursig)
^
gdb/infrun.c: In function ‘void do_restore_infcall_suspend_state_cleanup(void*)’:
gdb/infrun.c:7164:39: error: invalid conversion from ‘void*’ to ‘infcall_suspend_state*’ [-fpermissive]
restore_infcall_suspend_state (state);
^
so that the compiler carries on compiling the file. -Werror still
catches the warnings, so nothing is lost, only our lifes are made
easier by concentrating on getting other more important things out of
the way first.
There's no way to quiet those warnings. Until they're all fixed, when
building in C++ mode, -Werror is disabled by default.
. Adding -Wno-narrowing suppresses thousands of instances of this warning:
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1l’ from ‘LONGEST {aka long int}’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:450:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
We can defer handling those until we target C++11.
. Adding -Wno-sign-compare suppresses thousands of instances of this warning:
gdb/linux-record.c:1763:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (tmpulongest == tdep->fcntl_F_GETLK64)
^
. Adding -Wno-write-strings suppresses thousands of instances of this warning:
gdb/mi/mi-cmd-var.c: In function ‘void mi_cmd_var_show_attributes(char*, char**, int)’:
gdb/mi/mi-cmd-var.c:514:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "editable";
^
gdb/mi/mi-cmd-var.c:516:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "noneditable";
^
For now, it's best to hide these warnings from view until we're
'-fpermissive'-clean, and can thus start building with -Werror.
The C compiler has always managed to build working GDBs with these
issues in the code, so a C++ compiler should too.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(COMPILE.pre, CC_LD): Use COMPILER.
(CXX): Get from autoconf instead.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* build-with-cxx.m4: New file.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Only enable -Wpointer-sign in C mode.
Run supported-warning-flags tests with the C++ compiler.
Save/restore CXXFLAGS too.
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(CXX): Get from autoconf instead.
(COMPILE.pre): Use COMPILER.
(CC-LD): Rename to ...
(CC_LD): ... this. Use COMPILER.
(gdbserver$(EXEEXT), gdbreplay$(EXEEXT), $(IPA_LIB)): Adjust.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Run supported-warning-flags tests with
the C++ compiler. Save/restore CXXFLAGS too.
* configure: Regenerate.
2015-02-27 21:11:25 +08:00
|
|
|
saved_CXXFLAGS="$CXXFLAGS"
|
|
|
|
CXXFLAGS="$CXXFLAGS $w"
|
2001-10-31 09:57:04 +08:00
|
|
|
AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
|
|
|
|
CFLAGS="$saved_CFLAGS"
|
Add --enable-build-with-cxx configure switch
This new option, disabled by default for now, allows specifying
whether to build GDB, GDBserver, and friends with a C++ (98/03)
compiler.
The name of the switch should be familiar to those who followed GCC's
own C++ conversion process.
. Adding -fpermissive to COMPILER in C++ mode (see the new
build-with-cxx.m4 file) makes errors like these be warnings instead:
gdb/infrun.c:6597:1: error: initializing argument 1 of ‘void sig_print_info(gdb_signal)’ [-fpermissive]
sig_print_info (enum gdb_signal oursig)
^
gdb/infrun.c: In function ‘void do_restore_infcall_suspend_state_cleanup(void*)’:
gdb/infrun.c:7164:39: error: invalid conversion from ‘void*’ to ‘infcall_suspend_state*’ [-fpermissive]
restore_infcall_suspend_state (state);
^
so that the compiler carries on compiling the file. -Werror still
catches the warnings, so nothing is lost, only our lifes are made
easier by concentrating on getting other more important things out of
the way first.
There's no way to quiet those warnings. Until they're all fixed, when
building in C++ mode, -Werror is disabled by default.
. Adding -Wno-narrowing suppresses thousands of instances of this warning:
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1l’ from ‘LONGEST {aka long int}’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:450:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
We can defer handling those until we target C++11.
. Adding -Wno-sign-compare suppresses thousands of instances of this warning:
gdb/linux-record.c:1763:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (tmpulongest == tdep->fcntl_F_GETLK64)
^
. Adding -Wno-write-strings suppresses thousands of instances of this warning:
gdb/mi/mi-cmd-var.c: In function ‘void mi_cmd_var_show_attributes(char*, char**, int)’:
gdb/mi/mi-cmd-var.c:514:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "editable";
^
gdb/mi/mi-cmd-var.c:516:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "noneditable";
^
For now, it's best to hide these warnings from view until we're
'-fpermissive'-clean, and can thus start building with -Werror.
The C compiler has always managed to build working GDBs with these
issues in the code, so a C++ compiler should too.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(COMPILE.pre, CC_LD): Use COMPILER.
(CXX): Get from autoconf instead.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* build-with-cxx.m4: New file.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Only enable -Wpointer-sign in C mode.
Run supported-warning-flags tests with the C++ compiler.
Save/restore CXXFLAGS too.
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(CXX): Get from autoconf instead.
(COMPILE.pre): Use COMPILER.
(CC-LD): Rename to ...
(CC_LD): ... this. Use COMPILER.
(gdbserver$(EXEEXT), gdbreplay$(EXEEXT), $(IPA_LIB)): Adjust.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Run supported-warning-flags tests with
the C++ compiler. Save/restore CXXFLAGS too.
* configure: Regenerate.
2015-02-27 21:11:25 +08:00
|
|
|
CXXFLAGS="$saved_CXXFLAGS"
|
2000-05-12 12:37:00 +08:00
|
|
|
esac
|
|
|
|
done
|
2007-01-05 03:42:10 +08:00
|
|
|
AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
|
2000-04-07 16:57:39 +08:00
|
|
|
fi
|
1999-04-16 09:35:26 +08:00
|
|
|
AC_SUBST(WARN_CFLAGS)
|
1999-08-31 09:14:27 +08:00
|
|
|
AC_SUBST(WERROR_CFLAGS)
|
1999-04-16 09:35:26 +08:00
|
|
|
|
Add --enable-build-with-cxx configure switch
This new option, disabled by default for now, allows specifying
whether to build GDB, GDBserver, and friends with a C++ (98/03)
compiler.
The name of the switch should be familiar to those who followed GCC's
own C++ conversion process.
. Adding -fpermissive to COMPILER in C++ mode (see the new
build-with-cxx.m4 file) makes errors like these be warnings instead:
gdb/infrun.c:6597:1: error: initializing argument 1 of ‘void sig_print_info(gdb_signal)’ [-fpermissive]
sig_print_info (enum gdb_signal oursig)
^
gdb/infrun.c: In function ‘void do_restore_infcall_suspend_state_cleanup(void*)’:
gdb/infrun.c:7164:39: error: invalid conversion from ‘void*’ to ‘infcall_suspend_state*’ [-fpermissive]
restore_infcall_suspend_state (state);
^
so that the compiler carries on compiling the file. -Werror still
catches the warnings, so nothing is lost, only our lifes are made
easier by concentrating on getting other more important things out of
the way first.
There's no way to quiet those warnings. Until they're all fixed, when
building in C++ mode, -Werror is disabled by default.
. Adding -Wno-narrowing suppresses thousands of instances of this warning:
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of ‘-1l’ from ‘LONGEST {aka long int}’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:450:1: error: narrowing conversion of ‘-1’ from ‘int’ to ‘ULONGEST {aka long unsigned int}’ inside { } is ill-formed in C++11 [-Werror=narrowing]
We can defer handling those until we target C++11.
. Adding -Wno-sign-compare suppresses thousands of instances of this warning:
gdb/linux-record.c:1763:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (tmpulongest == tdep->fcntl_F_GETLK64)
^
. Adding -Wno-write-strings suppresses thousands of instances of this warning:
gdb/mi/mi-cmd-var.c: In function ‘void mi_cmd_var_show_attributes(char*, char**, int)’:
gdb/mi/mi-cmd-var.c:514:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "editable";
^
gdb/mi/mi-cmd-var.c:516:12: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
attstr = "noneditable";
^
For now, it's best to hide these warnings from view until we're
'-fpermissive'-clean, and can thus start building with -Werror.
The C compiler has always managed to build working GDBs with these
issues in the code, so a C++ compiler should too.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(COMPILE.pre, CC_LD): Use COMPILER.
(CXX): Get from autoconf instead.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* build-with-cxx.m4: New file.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Only enable -Wpointer-sign in C mode.
Run supported-warning-flags tests with the C++ compiler.
Save/restore CXXFLAGS too.
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(CXX): Get from autoconf instead.
(COMPILE.pre): Use COMPILER.
(CC-LD): Rename to ...
(CC_LD): ... this. Use COMPILER.
(gdbserver$(EXEEXT), gdbreplay$(EXEEXT), $(IPA_LIB)): Adjust.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Run supported-warning-flags tests with
the C++ compiler. Save/restore CXXFLAGS too.
* configure: Regenerate.
2015-02-27 21:11:25 +08:00
|
|
|
if test "$enable_build_with_cxx" = "yes"; then
|
|
|
|
AC_LANG_POP([C++])
|
|
|
|
fi
|
|
|
|
|
1999-04-27 02:34:20 +08:00
|
|
|
# In the Cygwin environment, we need some additional flags.
|
|
|
|
AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
|
2013-11-28 02:51:49 +08:00
|
|
|
[AC_EGREP_CPP(^lose$, [
|
1999-04-27 02:34:20 +08:00
|
|
|
#if defined (__CYGWIN__) || defined (__CYGWIN32__)
|
|
|
|
lose
|
|
|
|
#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
|
|
|
|
|
2000-06-12 14:09:06 +08:00
|
|
|
|
|
|
|
dnl Figure out which of the many generic ser-*.c files the _host_ supports.
|
2005-03-26 03:47:23 +08:00
|
|
|
SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
|
2000-06-12 14:09:06 +08:00
|
|
|
case ${host} in
|
2000-07-05 18:55:17 +08: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-11 06:01:43 +08:00
|
|
|
*mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
|
2000-06-12 14:09:06 +08:00
|
|
|
esac
|
|
|
|
AC_SUBST(SER_HARDWIRE)
|
|
|
|
|
1999-05-11 21:35:55 +08:00
|
|
|
# libreadline needs libuser32.a in a cygwin environment
|
|
|
|
WIN32LIBS=
|
|
|
|
if test x$gdb_cv_os_cygwin = xyes; then
|
2000-01-18 08:55:13 +08:00
|
|
|
WIN32LIBS="-luser32"
|
|
|
|
case "${target}" in
|
|
|
|
*cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
|
|
|
|
;;
|
|
|
|
esac
|
1999-05-11 21:35:55 +08:00
|
|
|
fi
|
2005-04-21 13:34:33 +08:00
|
|
|
|
|
|
|
# The ser-tcp.c module requires sockets.
|
|
|
|
case ${host} in
|
|
|
|
*mingw32*)
|
|
|
|
AC_DEFINE(USE_WIN32API, 1,
|
2014-01-22 03:01:04 +08:00
|
|
|
[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
|
2005-04-21 13:34:33 +08:00
|
|
|
for Cygwin.])
|
|
|
|
WIN32LIBS="$WIN32LIBS -lws2_32"
|
|
|
|
;;
|
2014-01-22 03:01:04 +08:00
|
|
|
esac
|
1999-05-11 21:35:55 +08:00
|
|
|
AC_SUBST(WIN32LIBS)
|
1999-04-27 02:34:20 +08:00
|
|
|
|
2007-06-18 23:46:38 +08:00
|
|
|
# Add ELF support to GDB, but only if BFD includes ELF support.
|
2013-01-02 22:54:17 +08: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 23:46:38 +08:00
|
|
|
if test $gdb_cv_var_elf = yes; then
|
2015-02-17 23:03:22 +08:00
|
|
|
CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o dtrace-probe.o"
|
2007-06-18 23:46:38 +08:00
|
|
|
AC_DEFINE(HAVE_ELF, 1,
|
|
|
|
[Define if ELF support should be included.])
|
2010-11-05 09:50:18 +08:00
|
|
|
# -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
|
|
|
|
if test "$plugins" = "yes"; then
|
2013-05-18 00:24:21 +08:00
|
|
|
AC_SEARCH_LIBS(dlopen, dl)
|
2010-11-05 09:50:18 +08:00
|
|
|
fi
|
2007-06-18 23:46:38 +08:00
|
|
|
fi
|
|
|
|
|
2013-01-02 22:58:15 +08: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-11 05:53:51 +08:00
|
|
|
# Add any host-specific objects to GDB.
|
|
|
|
CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
|
|
|
|
|
2012-11-27 03:23:56 +08: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 08:19:45 +08:00
|
|
|
LIBGUI="../libgui/src/libgui.a"
|
|
|
|
GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
|
|
|
|
AC_SUBST(LIBGUI)
|
|
|
|
AC_SUBST(GUI_CFLAGS_X)
|
1999-04-27 02:34:20 +08:00
|
|
|
|
2000-02-07 08:19:45 +08:00
|
|
|
WIN32LDAPP=
|
|
|
|
AC_SUBST(WIN32LIBS)
|
|
|
|
AC_SUBST(WIN32LDAPP)
|
|
|
|
|
2004-06-09 00:29:30 +08:00
|
|
|
case "${host}" in
|
2008-03-04 07:24:22 +08:00
|
|
|
*-*-cygwin* | *-*-mingw* )
|
2004-06-09 00:29:30 +08:00
|
|
|
configdir="win"
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
configdir="unix"
|
|
|
|
;;
|
|
|
|
esac
|
2000-02-07 08:19:45 +08:00
|
|
|
|
|
|
|
GDBTKLIBS=
|
|
|
|
if test "${enable_gdbtk}" = "yes"; then
|
|
|
|
|
2001-08-17 06:47:00 +08: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-03 05:36:06 +08:00
|
|
|
SC_PATH_TCLCONFIG
|
2009-02-03 07:18:05 +08: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-03 05:36:06 +08: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
|
2014-01-22 03:01:04 +08:00
|
|
|
TCL_INCLUDE="-I${TCL_SRC_DIR}/generic"
|
2008-08-03 05:36:06 +08:00
|
|
|
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-28 00:35:27 +08:00
|
|
|
|
2009-02-03 07:18:05 +08:00
|
|
|
SC_LOAD_TKCONFIG
|
|
|
|
|
|
|
|
# Check for in-tree Tk
|
|
|
|
intree="no"
|
|
|
|
if test "${TK_SRC_DIR}" = "${topdir}/tk"; then
|
2014-01-22 03:01:04 +08:00
|
|
|
intree="yes"
|
2009-02-03 07:18:05 +08:00
|
|
|
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 08:19:45 +08:00
|
|
|
fi
|
2002-08-15 01:43:16 +08:00
|
|
|
|
2009-02-03 07:18:05 +08:00
|
|
|
AC_CONFIG_SUBDIRS(gdbtk)
|
|
|
|
fi
|
2000-02-07 08:19:45 +08:00
|
|
|
fi
|
|
|
|
|
|
|
|
AC_SUBST(X_CFLAGS)
|
|
|
|
AC_SUBST(X_LDFLAGS)
|
|
|
|
AC_SUBST(X_LIBS)
|
|
|
|
AC_SUBST(GDBTKLIBS)
|
|
|
|
AC_SUBST(GDBTK_CFLAGS)
|
2001-08-17 06:47:00 +08:00
|
|
|
AC_SUBST(GDBTK_SRC_DIR)
|
2000-02-03 12:14:45 +08:00
|
|
|
|
1999-04-16 09:35:26 +08:00
|
|
|
AC_PATH_X
|
|
|
|
|
2014-01-22 03:01:04 +08:00
|
|
|
# Unlike the sim directory, whether a simulator is linked is controlled by
|
|
|
|
# presence of a gdb_sim definition in the target configure.tgt entry.
|
1999-04-27 02:34:20 +08: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-24 00:05:29 +08:00
|
|
|
# not part of the source tree.
|
1999-04-27 02:34:20 +08:00
|
|
|
#
|
|
|
|
AC_ARG_ENABLE(sim,
|
2009-04-22 08:17:50 +08:00
|
|
|
AS_HELP_STRING([--enable-sim], [link gdb with simulator]),
|
1999-04-27 02:34:20 +08: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 08:44:38 +08: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-04 00:05:11 +08: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 08:44:38 +08:00
|
|
|
fi
|
1999-04-27 02:34:20 +08: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 08:44:38 +08:00
|
|
|
AC_SUBST(SIM)
|
|
|
|
AC_SUBST(SIM_OBS)
|
1999-04-27 02:34:20 +08:00
|
|
|
|
1999-04-16 09:35:26 +08:00
|
|
|
AC_SUBST(ENABLE_CFLAGS)
|
2003-01-23 07:50:35 +08:00
|
|
|
AC_SUBST(PROFILE_CFLAGS)
|
1999-04-16 09:35:26 +08:00
|
|
|
|
|
|
|
AC_SUBST(CONFIG_OBS)
|
|
|
|
AC_SUBST(CONFIG_DEPS)
|
|
|
|
AC_SUBST(CONFIG_SRCS)
|
2000-03-03 13:44:39 +08:00
|
|
|
AC_SUBST(CONFIG_ALL)
|
|
|
|
AC_SUBST(CONFIG_CLEAN)
|
2000-02-24 16:16:26 +08:00
|
|
|
AC_SUBST(CONFIG_INSTALL)
|
|
|
|
AC_SUBST(CONFIG_UNINSTALL)
|
1999-04-16 09:35:26 +08:00
|
|
|
|
2004-07-30 03:33:22 +08: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 09:35:26 +08: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 21:49:53 +08:00
|
|
|
if test "${gdb_native}" = "yes"; then
|
2004-09-29 04:17:32 +08: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 09:35:26 +08:00
|
|
|
fi
|
|
|
|
|
|
|
|
AC_SUBST_FILE(host_makefile_frag)
|
|
|
|
AC_SUBST(frags)
|
|
|
|
|
|
|
|
changequote(,)dnl
|
2006-11-22 21:49:53 +08:00
|
|
|
if test "${gdb_native}" = "yes"; then
|
2002-02-14 13:31:46 +08:00
|
|
|
# We pick this up from the host configuration file (.mh) because we
|
|
|
|
# do not have a native configuration Makefile fragment.
|
1999-04-16 09:35:26 +08:00
|
|
|
nativefile=`sed -n '
|
|
|
|
s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
|
|
|
|
' ${host_makefile_frag}`
|
|
|
|
fi
|
|
|
|
changequote([,])
|
|
|
|
|
2003-01-05 07:47:13 +08: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 07:19:28 +08:00
|
|
|
# Enable multi-ice-gdb-server.
|
|
|
|
AC_ARG_ENABLE(multi-ice,
|
2009-04-22 08:17:50 +08:00
|
|
|
AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]),
|
2003-01-04 07:19:28 +08: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 23:17:01 +08:00
|
|
|
AC_CONFIG_SUBDIRS(multi-ice)
|
1999-08-10 05:36:23 +08:00
|
|
|
fi
|
|
|
|
|
2010-09-23 00:15:01 +08: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 07:19:28 +08: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 23:17:01 +08:00
|
|
|
AC_CONFIG_SUBDIRS(gdbserver)
|
2010-09-23 00:15:01 +08:00
|
|
|
gdbserver_build_enabled=yes
|
2003-01-04 07:19:28 +08:00
|
|
|
else
|
|
|
|
AC_MSG_RESULT(no)
|
|
|
|
fi
|
2002-02-14 13:31:46 +08:00
|
|
|
fi
|
|
|
|
|
2010-09-23 00:15:01 +08: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
|
|
|
|
|
gdb/
2013-04-10 Hui Zhu <hui@codesourcery.com>
Yao Qi <yao@codesourcery.com>
* configure.ac: Check libbabeltrace is installed.
* config.in: Regenerate.
* configure: Regenerate.
* Makefile.in (LIBBABELTRACE): New.
(CLIBS): Add LIBBABELTRACE.
* ctf.c: Include "exec.h".
(CTF_EVENT_ID_STATUS, CTF_EVENT_ID_TSV_DEF): New macros.
(CTF_EVENT_ID_TP_DEF, ctf_save_write_int32): New macros.
(ctf_save_metadata_header): Define new type aliases in
metadata.
(ctf_write_header): Define event type "tsv_def" and "tp_def"
in metadata. Start a new faked packet for trace status.
(ctf_write_status): Write trace status to CTF.
(ctf_write_uploaded_tsv): Write TSV to CTF.
(ctf_write_uploaded_tp): Write tracepoint definition to CTF.
(ctf_write_definition_end): End the faked packet.
(ctx, ctf_iter, trace_dirname): New.
(start_pos): New variable.
(ctf_destroy, ctf_open_dir, ctf_open): New.
(SET_INT32_FIELD, SET_ARRAY_FIELD, SET_STRING_FIELD): New
macros.
(ctf_read_tsv, ctf_read_tp, ctf_close, ctf_files_info): New.
(ctf_fetch_registers, ctf_xfer_partial): New.
(ctf_get_trace_state_variable_value): New.
(ctf_get_tpnum_from_frame_event): New.
(ctf_get_traceframe_address): New.
(ctf_trace_find, ctf_has_stack): New.
(ctf_has_registers, ctf_traceframe_info, init_ctf_ops): New.
(ctf_get_trace_status, ctf_read_status): New.
(_initialize_ctf): New.
* tracepoint.c (get_tracepoint_number): New
(get_uploaded_tsv): Remove 'static'.
(struct traceframe_info, trace_regblock_size): Move it to ...
* tracepoint.h: ... here.
(get_tracepoint_number): Declare it.
(get_uploaded_tsv): Declare it.
* NEWS: Mention new configure option.
gdb/doc/
2013-04-10 Yao Qi <yao@codesourcery.com>
* gdb.texinfo (Trace Files): Add "target ctf".
gdb/testsuite/
2013-04-10 Yao Qi <yao@codesourcery.com>
* gdb.trace/actions.exp: Save trace data to CTF.
Change to ctf target if GDB supports, read CTF data in ctf
target, and check the actions of tracepoints.
* gdb.trace/while-stepping.exp: Likewise.
* gdb.trace/report.exp: Test GDB saves trace data to CTF
format and read CTF trace file if GDB supports.
* gdb.trace/tstatus.exp: Save trace data to CTF. If ctf
target is supported, change to ctf target, read trace data and
check output of command "tstatus".
* gdb.trace/tsv.exp: Save trace frame to CTF. If GDB supports,
read CTF data by target ctf and call check_tsv.
2013-04-10 17:42:57 +08:00
|
|
|
# Check for babeltrace and babeltrace-ctf
|
|
|
|
AC_ARG_WITH(babeltrace,
|
|
|
|
AC_HELP_STRING([--with-babeltrace], [include babeltrace support (auto/yes/no)]),
|
|
|
|
[], [with_babeltrace=auto])
|
|
|
|
AC_MSG_CHECKING([whether to use babeltrace])
|
|
|
|
AC_MSG_RESULT([$with_babeltrace])
|
|
|
|
|
|
|
|
if test "x$with_babeltrace" = "xno"; then
|
|
|
|
AC_MSG_WARN([babletrace support disabled; GDB is unable to read CTF data.])
|
|
|
|
else
|
|
|
|
# Append -Werror to CFLAGS so that configure can catch the warning
|
|
|
|
# "assignment from incompatible pointer type", which is related to
|
|
|
|
# the babeltrace change from 1.0.3 to 1.1.0. Babeltrace 1.1.0 works
|
|
|
|
# in GDB, while babeltrace 1.0.3 is broken.
|
|
|
|
# AC_LIB_HAVE_LINKFLAGS may modify CPPFLAGS in it, so it should be
|
|
|
|
# safe to save and restore CFLAGS here.
|
|
|
|
saved_CFLAGS=$CFLAGS
|
|
|
|
CFLAGS="$CFLAGS -Werror"
|
|
|
|
AC_LIB_HAVE_LINKFLAGS([babeltrace], [babeltrace-ctf],
|
|
|
|
[#include <babeltrace/babeltrace.h>
|
|
|
|
#include <babeltrace/ctf/events.h>
|
|
|
|
#include <babeltrace/ctf/iterator.h>],
|
|
|
|
[struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL));
|
|
|
|
struct bt_ctf_event *event = NULL;
|
|
|
|
const struct bt_definition *scope;
|
|
|
|
|
2014-07-01 08:53:41 +08:00
|
|
|
bt_iter_set_pos (bt_ctf_get_iter (NULL), pos);
|
2014-01-22 03:01:04 +08:00
|
|
|
scope = bt_ctf_get_top_level_scope (event,
|
gdb/
2013-04-10 Hui Zhu <hui@codesourcery.com>
Yao Qi <yao@codesourcery.com>
* configure.ac: Check libbabeltrace is installed.
* config.in: Regenerate.
* configure: Regenerate.
* Makefile.in (LIBBABELTRACE): New.
(CLIBS): Add LIBBABELTRACE.
* ctf.c: Include "exec.h".
(CTF_EVENT_ID_STATUS, CTF_EVENT_ID_TSV_DEF): New macros.
(CTF_EVENT_ID_TP_DEF, ctf_save_write_int32): New macros.
(ctf_save_metadata_header): Define new type aliases in
metadata.
(ctf_write_header): Define event type "tsv_def" and "tp_def"
in metadata. Start a new faked packet for trace status.
(ctf_write_status): Write trace status to CTF.
(ctf_write_uploaded_tsv): Write TSV to CTF.
(ctf_write_uploaded_tp): Write tracepoint definition to CTF.
(ctf_write_definition_end): End the faked packet.
(ctx, ctf_iter, trace_dirname): New.
(start_pos): New variable.
(ctf_destroy, ctf_open_dir, ctf_open): New.
(SET_INT32_FIELD, SET_ARRAY_FIELD, SET_STRING_FIELD): New
macros.
(ctf_read_tsv, ctf_read_tp, ctf_close, ctf_files_info): New.
(ctf_fetch_registers, ctf_xfer_partial): New.
(ctf_get_trace_state_variable_value): New.
(ctf_get_tpnum_from_frame_event): New.
(ctf_get_traceframe_address): New.
(ctf_trace_find, ctf_has_stack): New.
(ctf_has_registers, ctf_traceframe_info, init_ctf_ops): New.
(ctf_get_trace_status, ctf_read_status): New.
(_initialize_ctf): New.
* tracepoint.c (get_tracepoint_number): New
(get_uploaded_tsv): Remove 'static'.
(struct traceframe_info, trace_regblock_size): Move it to ...
* tracepoint.h: ... here.
(get_tracepoint_number): Declare it.
(get_uploaded_tsv): Declare it.
* NEWS: Mention new configure option.
gdb/doc/
2013-04-10 Yao Qi <yao@codesourcery.com>
* gdb.texinfo (Trace Files): Add "target ctf".
gdb/testsuite/
2013-04-10 Yao Qi <yao@codesourcery.com>
* gdb.trace/actions.exp: Save trace data to CTF.
Change to ctf target if GDB supports, read CTF data in ctf
target, and check the actions of tracepoints.
* gdb.trace/while-stepping.exp: Likewise.
* gdb.trace/report.exp: Test GDB saves trace data to CTF
format and read CTF trace file if GDB supports.
* gdb.trace/tstatus.exp: Save trace data to CTF. If ctf
target is supported, change to ctf target, read trace data and
check output of command "tstatus".
* gdb.trace/tsv.exp: Save trace frame to CTF. If GDB supports,
read CTF data by target ctf and call check_tsv.
2013-04-10 17:42:57 +08:00
|
|
|
BT_STREAM_EVENT_HEADER);
|
|
|
|
bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
|
|
|
|
])
|
|
|
|
CFLAGS=$saved_CFLAGS
|
|
|
|
|
|
|
|
if test "$HAVE_LIBBABELTRACE" != yes; then
|
|
|
|
if test "$with_babeltrace" = yes; then
|
|
|
|
AC_MSG_ERROR([babeltrace is missing or unusable])
|
|
|
|
else
|
|
|
|
AC_MSG_WARN([babeltrace is missing or unusable; GDB is unable to read CTF data.])
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2007-11-17 08:41:17 +08:00
|
|
|
# If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
|
2004-09-14 04:55:42 +08:00
|
|
|
# to an empty version.
|
1999-04-16 09:35:26 +08: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 19:11:47 +08:00
|
|
|
|
1999-04-16 09:35:26 +08:00
|
|
|
rm -f nm.h
|
|
|
|
if test "${nativefile}" != ""; then
|
2004-09-03 06:14:33 +08: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 19:11:47 +08:00
|
|
|
files="${files} ${GDB_NM_FILE}"
|
|
|
|
links="${links} nm.h"
|
2005-07-04 00:05:11 +08:00
|
|
|
AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
|
1999-04-16 09:35:26 +08:00
|
|
|
fi
|
2009-04-22 04:19:13 +08: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 19:11:47 +08:00
|
|
|
|
1999-04-16 09:35:26 +08:00
|
|
|
AC_LINK_FILES($files, $links)
|
|
|
|
|
|
|
|
dnl Check for exe extension set on certain hosts (e.g. Win32)
|
|
|
|
AC_EXEEXT
|
|
|
|
|
2002-09-20 08:24:01 +08: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 07:04:40 +08:00
|
|
|
dnl At the moment, we just assume it's UTF-8.
|
|
|
|
AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
|
2002-09-20 08:24:01 +08:00
|
|
|
[Define to be a string naming the default host character set.])
|
|
|
|
|
2015-02-18 20:52:53 +08:00
|
|
|
GDB_AC_TRANSFORM([gdb], [GDB_TRANSFORM_NAME])
|
|
|
|
GDB_AC_TRANSFORM([gcore], [GCORE_TRANSFORM_NAME])
|
gdb/
* Makefile.in (HAVE_NATIVE_GCORE_TARGET): New.
(generated_files): Add gcore.
(install-only, uninstall): Add gcore if HAVE_NATIVE_GCORE_TARGET or
HAVE_NATIVE_GCORE_HOST.
(gcore): New.
* NEWS (Changes since GDB 7.6): Mention newly installed gcore.
* config/alpha/alpha-osf3.mh, config/i386/fbsd.mh,
config/i386/fbsd64.mh, config/i386/i386gnu.mh, config/i386/i386sol2.mh,
config/i386/sol2-64.mh, config/mips/irix5.mh, config/mips/irix6.mh,
config/powerpc/fbsd.mh, config/sparc/fbsd.mh, config/sparc/sol2.mh:
Add HAVE_NATIVE_GCORE_HOST.
* configure: Regenerate.
* configure.ac (HAVE_NATIVE_GCORE_TARGET): New, set it, AC_SUBST it.
New AC_SUBST fir GDB_TRANSFORM_NAME and GCORE_TRANSFORM_NAME. New
AC_CONFIG_FILES for gcore.
* configure.tgt: Add gdb_have_gcore to the initial comment. Set
gdb_have_gcore.
* gdb_gcore.sh: Rename to ...
* gcore.in: ... here. Remove gcore.sh comment. Use GDB_TRANSFORM_NAME
and GCORE_TRANSFORM_NAME substitutions.
gdb/doc/
* Makefile.in (MAN1S): Add gcore.1.
Remove "Host, target, and site specific Makefile fragments" comment.
(@host_makefile_frag@, HAVE_NATIVE_GCORE_TARGET): New.
(install-man1, uninstall-man1): Conditionalize gcore.1.
(gcore.1): New.
* gdb.texinfo (Man Pages): Add gcore man.
(gcore man): New node.
2013-04-11 22:13:44 +08:00
|
|
|
AC_CONFIG_FILES([gcore], [chmod +x gcore])
|
|
|
|
|
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-20 03:34:52 +08:00
|
|
|
AC_OUTPUT(Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile,
|
1999-04-16 09:35:26 +08:00
|
|
|
[
|
|
|
|
case x$CONFIG_HEADERS in
|
|
|
|
xconfig.h:config.in)
|
|
|
|
echo > stamp-h ;;
|
|
|
|
esac
|
|
|
|
])
|
|
|
|
|
|
|
|
exit 0
|