From aa2e2d8d772c0ece5b6c4685228c159979841a5d Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Wed, 6 Oct 2010 16:02:45 +0000 Subject: [PATCH] Create subdir data-directory. * Makefile.in (XML_SYSCALL_DIR, XML_SYSCALL_FILES): Moved to data-directory/Makefile.in. (SUBDIRS): Add data-directory. (all): Remove xml-syscall-copy dependency. (xml-syscall-copy): Moved to data-directory/Makefile.in as stamp-syscalls. (xml-syscall-install): Moved to data-directory/Makefile.in as install-syscalls. (install-only): Remove xml-syscall-install dependency. (all-data-directory): New rule. (data-directory/Makefile): New rule. * configure.ac (AC_OUTPUT): Add data-directory/Makefile. * configure: Regenerate. * data-directory/Makefile.in: New file. * python/lib/gdb/__init__.py: New file. testsuite/ * gdb.base/catch-syscall.exp (do_syscall_tests): Update location of syscall staging area. --- gdb/ChangeLog | 19 +++ gdb/Makefile.in | 57 ++----- gdb/configure | 3 +- gdb/configure.ac | 2 +- gdb/data-directory/Makefile.in | 186 +++++++++++++++++++++++ gdb/python/lib/gdb/__init__.py | 14 ++ gdb/testsuite/ChangeLog | 5 + gdb/testsuite/gdb.base/catch-syscall.exp | 2 +- 8 files changed, 243 insertions(+), 45 deletions(-) create mode 100644 gdb/data-directory/Makefile.in create mode 100644 gdb/python/lib/gdb/__init__.py diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8bfa6bfdcf..3031dc4bc6 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,22 @@ +2010-10-06 Doug Evans + + Create subdir data-directory. + * Makefile.in (XML_SYSCALL_DIR, XML_SYSCALL_FILES): Moved to + data-directory/Makefile.in. + (SUBDIRS): Add data-directory. + (all): Remove xml-syscall-copy dependency. + (xml-syscall-copy): Moved to data-directory/Makefile.in as + stamp-syscalls. + (xml-syscall-install): Moved to data-directory/Makefile.in as + install-syscalls. + (install-only): Remove xml-syscall-install dependency. + (all-data-directory): New rule. + (data-directory/Makefile): New rule. + * configure.ac (AC_OUTPUT): Add data-directory/Makefile. + * configure: Regenerate. + * data-directory/Makefile.in: New file. + * python/lib/gdb/__init__.py: New file. + 2010-10-06 Joel Brobecker Fix ARI warnings in advance_wild_match. diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 21354764e4..bfb4b59634 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -870,16 +870,9 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \ inferior.o osdata.o gdb_usleep.o record.o gcore.o \ jit.o progspace.o -# Definitions for the syscall's XML files and dir -XML_SYSCALLS_DIR = syscalls/ -XML_SYSCALLS_FILES = gdb-syscalls.dtd \ - ppc-linux.xml ppc64-linux.xml \ - i386-linux.xml amd64-linux.xml \ - sparc-linux.xml sparc64-linux.xml - TSOBS = inflow.o -SUBDIRS = @subdirs@ +SUBDIRS = @subdirs@ data-directory CLEANDIRS = $(SUBDIRS) gnulib # For now, shortcut the "configure GDB for fewer languages" stuff. @@ -910,41 +903,11 @@ generated_files = config.h observer.h observer.inc ada-lex.c \ $(COMPILE) $< $(POSTCOMPILE) -all: gdb$(EXEEXT) $(CONFIG_ALL) xml-syscall-copy +all: gdb$(EXEEXT) $(CONFIG_ALL) @$(MAKE) $(FLAGS_TO_PASS) DO=all "DODIRS=`echo $(SUBDIRS) | sed 's/testsuite//'`" subdir_do .PHONY: all-tui all-tui: $(TUI)$(EXEEXT) -# This is needed for running GDB from the build directory -.PHONY: xml-syscall-copy -xml-syscall-copy: - if [ "`cd $(srcdir) && pwd`" != "`pwd`" ] ; then \ - mkdir -p ./$(XML_SYSCALLS_DIR) ; \ - list='$(XML_SYSCALLS_FILES)' ; \ - for file in $$list ; do \ - f=$(srcdir)/$(XML_SYSCALLS_DIR)/$$file ; \ - if test -f $$f ; then \ - $(INSTALL_DATA) $$f \ - ./$(XML_SYSCALLS_DIR) ; \ - fi ; \ - done ; \ - fi ; - -# This target is responsible for properly installing the syscalls' -# XML files in the system. -.PHONY: xml-syscall-install -xml-syscall-install: - $(SHELL) $(srcdir)/../mkinstalldirs \ - $(DESTDIR)$(GDB_DATADIR)/$(XML_SYSCALLS_DIR) ; \ - list='$(XML_SYSCALLS_FILES)' ; \ - for file in $$list ; do \ - f=$(srcdir)/$(XML_SYSCALLS_DIR)/$$file ; \ - if test -f $$f ; then \ - $(INSTALL_DATA) $$f \ - $(DESTDIR)$(GDB_DATADIR)/$(XML_SYSCALLS_DIR) ; \ - fi ; \ - done ; - installcheck: # The check target can not use subdir_do, because subdir_do does not @@ -1003,9 +966,7 @@ gdb.z:gdb.1 # install-only is intended to address that need. install: all install-only -# The "install-only" target also installs the syscalls' XML files in -# the system. -install-only: $(CONFIG_INSTALL) xml-syscall-install +install-only: $(CONFIG_INSTALL) transformed_name=`t='$(program_transform_name)'; \ echo gdb | sed -e "$$t"` ; \ if test "x$$transformed_name" = x; then \ @@ -1178,6 +1139,11 @@ all-lib: gnulib/Makefile @$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=gnulib subdir_do .PHONY: all-lib +# Convenience rule to handle recursion. +.PHONY: all-data-directory +all-data-directory: data-directory/Makefile + @$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=data-directory subdir_do + # Create a library of the gdb object files and build GDB by linking # against that. # @@ -1294,6 +1260,13 @@ gnulib/Makefile: gnulib/Makefile.in gnulib/Makefile.in config.status @frags@ CONFIG_LINKS= \ $(SHELL) config.status +data-directory/Makefile: data-directory/Makefile.in config.status @frags@ + CONFIG_FILES="data-directory/Makefile" \ + CONFIG_COMMANDS="depfiles" \ + CONFIG_HEADERS= \ + CONFIG_LINKS= \ + $(SHELL) config.status + config.h: stamp-h ; @true stamp-h: $(srcdir)/config.in config.status CONFIG_HEADERS=config.h:config.in \ diff --git a/gdb/configure b/gdb/configure index bee391d7c7..dd3d04cf93 100755 --- a/gdb/configure +++ b/gdb/configure @@ -15891,7 +15891,7 @@ ac_config_links="$ac_config_links $ac_config_links_1" $as_echo "#define GDB_DEFAULT_HOST_CHARSET \"UTF-8\"" >>confdefs.h -ac_config_files="$ac_config_files Makefile .gdbinit:gdbinit.in gnulib/Makefile" +ac_config_files="$ac_config_files Makefile .gdbinit:gdbinit.in gnulib/Makefile data-directory/Makefile" ac_config_commands="$ac_config_commands default" @@ -16658,6 +16658,7 @@ do "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; ".gdbinit") CONFIG_FILES="$CONFIG_FILES .gdbinit:gdbinit.in" ;; "gnulib/Makefile") CONFIG_FILES="$CONFIG_FILES gnulib/Makefile" ;; + "data-directory/Makefile") CONFIG_FILES="$CONFIG_FILES data-directory/Makefile" ;; "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; diff --git a/gdb/configure.ac b/gdb/configure.ac index e462274a09..1f00c924be 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -2140,7 +2140,7 @@ dnl At the moment, we just assume it's UTF-8. AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8", [Define to be a string naming the default host character set.]) -AC_OUTPUT(Makefile .gdbinit:gdbinit.in gnulib/Makefile, +AC_OUTPUT(Makefile .gdbinit:gdbinit.in gnulib/Makefile data-directory/Makefile, [ case x$CONFIG_HEADERS in xconfig.h:config.in) diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in new file mode 100644 index 0000000000..92a690be60 --- /dev/null +++ b/gdb/data-directory/Makefile.in @@ -0,0 +1,186 @@ +# Copyright (C) 2010 Free Software Foundation, Inc. + +# Makefile for building a staged copy of the data-directory. +# This file is part of GDB. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +srcdir = @srcdir@ +SYSCALLS_SRCDIR = $(srcdir)/../syscalls +PYTHON_SRCDIR = $(srcdir)/../python/lib +VPATH = $(srcdir):$(SYSCALLS_SRCDIR):$(PYTHON_SRCDIR) + +top_srcdir = @top_srcdir@ +top_builddir = @top_builddir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +datarootdir = @datarootdir@ +datadir = @datadir@ + +SHELL = @SHELL@ + +LN_S = @LN_S@ + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_DIR = $(SHELL) $(srcdir)/../../mkinstalldirs + +GDB_DATADIR = @GDB_DATADIR@ + +SYSCALLS_DIR = syscalls +SYSCALLS_INSTALL_DIR = $(DESTDIR)/$(GDB_DATADIR)/$(SYSCALLS_DIR) +SYSCALLS_FILES = \ + gdb-syscalls.dtd \ + ppc-linux.xml ppc64-linux.xml \ + i386-linux.xml amd64-linux.xml \ + sparc-linux.xml sparc64-linux.xml + +PYTHON_DIR = python +PYTHON_INSTALL_DIR = $(DESTDIR)/$(GDB_DATADIR)/$(PYTHON_DIR) +PYTHON_FILES = \ + gdb/__init__.py + +# Host-dependent makefile fragment comes in here. +@host_makefile_frag@ +# End of host-dependent makefile fragment + +.PHONY: all +all: stamp-syscalls stamp-python + +# For portability's sake, we need to handle systems that don't have +# symbolic links. +stamp-syscalls: Makefile $(SYSCALLS_FILES) + rm -rf ./$(SYSCALLS_DIR) + mkdir ./$(SYSCALLS_DIR) + files='$(SYSCALLS_FILES)' ; \ + for file in $$files ; do \ + f=$(SYSCALLS_SRCDIR)/$$file ; \ + if test -f $$f ; then \ + $(INSTALL_DATA) $$f ./$(SYSCALLS_DIR) ; \ + fi ; \ + done + touch $@ + +.PHONY: clean-syscalls +clean-syscalls: + rm -rf $(SYSCALLS_DIR) + rm -f stamp-syscalls + +# This target is responsible for properly installing the syscalls' +# XML files in the system. +.PHONY: install-syscalls +install-syscalls: + $(INSTALL_DIR) $(SYSCALLS_INSTALL_DIR) + files='$(SYSCALLS_FILES)' ; \ + for file in $$files; do \ + f=$(SYSCALLS_SRCDIR)/$$file ; \ + if test -f $$f ; then \ + $(INSTALL_DATA) $$f $(SYSCALLS_INSTALL_DIR) ; \ + fi ; \ + done + +.PHONY: uninstall-syscalls +uninstall-syscalls: + files='$(SYSCALLS_FILES)' ; \ + for file in $$files ; do \ + slashdir=`echo "/$$file" | sed 's,/[^/]*$$,,'` ; \ + rm -f $(SYSCALLS_INSTALL_DIR)/$$file ; \ + while test "x$$file" != "x$$slashdir" ; do \ + rmdir 2>/dev/null "$(SYSCALLS_INSTALL_DIR)$$slashdir" ; \ + file="$$slashdir" ; \ + slashdir=`echo "$$file" | sed 's,/[^/]*$$,,'` ; \ + done \ + done + +stamp-python: Makefile $(PYTHON_FILES) + rm -rf ./$(PYTHON_DIR) + files='$(PYTHON_FILES)' ; \ + for file in $$files ; do \ + dir=`echo "$$file" | sed 's,/[^/]*$$,,'` ; \ + $(INSTALL_DIR) ./$(PYTHON_DIR)/$$dir ; \ + $(INSTALL_DATA) $(PYTHON_SRCDIR)/$$file ./$(PYTHON_DIR)/$$dir ; \ + done + touch $@ + +.PHONY: clean-python +clean-python: + rm -rf $(PYTHON_DIR) + rm -f stamp-python + +.PHONY: install-python +install-python: + files='$(PYTHON_FILES)' ; \ + for file in $$files ; do \ + dir=`echo "$$file" | sed 's,/[^/]*$$,,'` ; \ + $(INSTALL_DIR) $(PYTHON_INSTALL_DIR)/$$dir ; \ + $(INSTALL_DATA) ./$(PYTHON_DIR)/$$file $(PYTHON_INSTALL_DIR)/$$dir ; \ + done + +.PHONY: uninstall-python +uninstall-python: + files='$(PYTHON_FILES)' ; \ + for file in $$files ; do \ + slashdir=`echo "/$$file" | sed 's,/[^/]*$$,,'` ; \ + rm -f $(PYTHON_INSTALL_DIR)/$$file ; \ + while test "x$$file" != "x$$slashdir" ; do \ + rmdir 2>/dev/null "$(PYTHON_INSTALL_DIR)$$slashdir" ; \ + file="$$slashdir" ; \ + slashdir=`echo "$$file" | sed 's,/[^/]*$$,,'` ; \ + done \ + done + +# Traditionally "install" depends on "all". But it may be useful +# not to; for example, if the user has made some trivial change to a +# source file and doesn't care about rebuilding or just wants to save the +# time it takes for make to check that all is up to date. +# install-only is intended to address that need. +.PHONY: install +install: all + $(MAKE) install-only + +.PHONY: install-only +install-only: install-syscalls install-python + +.PHONY: uninstall +uninstall: uninstall-syscalls uninstall-python + +.PHONY: clean +clean: clean-syscalls clean-python + +.PHONY: maintainer-clean realclean distclean +maintainer-clean realclean distclean: clean + rm -f Makefile + +.PHONY: check installcheck info dvi pdf html +.PHONY: install-info install-pdf install-html clean-info +check installcheck: +info dvi pdf html: +install-info install-pdf install-html: +clean-info: + +# GNU Make has an annoying habit of putting *all* the Makefile variables +# into the environment, unless you include this target as a circumvention. +# Rumor is that this will be fixed (and this target can be removed) +# in GNU Make 4.0. +.NOEXPORT: + +# GNU Make 3.63 has a different problem: it keeps tacking command line +# overrides onto the definition of $(MAKE). This variable setting +# will remove them. +MAKEOVERRIDES= + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @frags@ + cd $(top_builddir) && $(MAKE) data-directory/Makefile diff --git a/gdb/python/lib/gdb/__init__.py b/gdb/python/lib/gdb/__init__.py new file mode 100644 index 0000000000..102939be32 --- /dev/null +++ b/gdb/python/lib/gdb/__init__.py @@ -0,0 +1,14 @@ +# Copyright (C) 2010 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index f7d3eb5c25..ded8355d92 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-10-06 Doug Evans + + * gdb.base/catch-syscall.exp (do_syscall_tests): Update location + of syscall staging area. + 2010-10-06 Ken Werner * gdb.base/gnu_vector.c: Add variable c4. diff --git a/gdb/testsuite/gdb.base/catch-syscall.exp b/gdb/testsuite/gdb.base/catch-syscall.exp index 2d9cad4200..7845655c9e 100644 --- a/gdb/testsuite/gdb.base/catch-syscall.exp +++ b/gdb/testsuite/gdb.base/catch-syscall.exp @@ -278,7 +278,7 @@ proc do_syscall_tests {} { global gdb_prompt srcdir # First, we need to set GDB datadir. - gdb_test_no_output "set data-directory $srcdir/.." + gdb_test_no_output "set data-directory [pwd]/../data-directory" # Verify that the 'catch syscall' help is available set thistest "help catch syscall" -- 2.34.1