From 4869db5e97b2062a3adf81158577171990248ef3 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 21 Jan 2014 11:01:04 -0800 Subject: [PATCH] gdb: Support install-strip target gdb/ * configure.ac: Call AM_PROG_INSTALL_STRIP. * configure: Regenerate. * aclocal.m4: Regenerate. * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM, STRIP): New substituted variables. (install-strip): New target. (INSTALL_SCRIPT): New substituted variable. (FLAGS_TO_PASS): Add it. (install-only): Use $(INSTALL_SCRIPT) rather than $(INSTALL_PROGRAM) for gcore. --- gdb/ChangeLog | 13 ++++++ gdb/Makefile.in | 14 +++++- gdb/aclocal.m4 | 102 +++++++++++++++++++++++++++++++++++++++++ gdb/configure | 115 +++++++++++++++++++++++++++++++++++++++++++++++ gdb/configure.ac | 31 ++++++------- 5 files changed, 259 insertions(+), 16 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8093be3a243..66f040b7f83 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,16 @@ +2014-01-21 Roland McGrath + + * configure.ac: Call AM_PROG_INSTALL_STRIP. + * configure: Regenerate. + * aclocal.m4: Regenerate. + * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM, STRIP): + New substituted variables. + (install-strip): New target. + (INSTALL_SCRIPT): New substituted variable. + (FLAGS_TO_PASS): Add it. + (install-only): Use $(INSTALL_SCRIPT) rather than + $(INSTALL_PROGRAM) for gcore. + 2014-01-20 Tom Tromey * cli/cli-decode.h (struct cmd_list_element): Move all bitfields diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 0fbaaa32ed9..ed84e35e225 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -44,6 +44,8 @@ htmldir = @htmldir@ pdfdir = @pdfdir@ includedir = @includedir@ +install_sh = @install_sh@ + # This can be referenced by `LIBINTL' as computed by # ZW_GNU_GETTEXT_SISTER_DIR. top_builddir = . @@ -56,6 +58,8 @@ LN_S = @LN_S@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ DESTDIR = @@ -66,6 +70,7 @@ RANLIB = @RANLIB@ DLLTOOL = @DLLTOOL@ WINDRES = @WINDRES@ MIG = @MIG@ +STRIP = @STRIP@ XGETTEXT = @XGETTEXT@ GMSGFMT = @GMSGFMT@ @@ -648,6 +653,7 @@ FLAGS_TO_PASS = \ "MAKEHTMLFLAGS=$(MAKEHTMLFLAGS)" \ "INSTALL=$(INSTALL)" \ "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ + "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ "INSTALL_DATA=$(INSTALL_DATA)" \ "RUNTEST=$(RUNTEST)" \ "RUNTESTFLAGS=$(RUNTESTFLAGS)" @@ -1107,11 +1113,17 @@ install-only: $(CONFIG_INSTALL) true ; \ fi ; \ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir) ; \ - $(INSTALL_PROGRAM) gcore \ + $(INSTALL_SCRIPT) gcore \ $(DESTDIR)$(bindir)/$$transformed_name; \ fi @$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do +install-strip: + $(MAKE) $(FLAGS_TO_PASS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install-only + install-python: $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(GDB_DATADIR)/python/gdb diff --git a/gdb/aclocal.m4 b/gdb/aclocal.m4 index 7b546b75e9b..68a98d10e9e 100644 --- a/gdb/aclocal.m4 +++ b/gdb/aclocal.m4 @@ -11,6 +11,59 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 @@ -47,6 +100,27 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) +# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST(install_sh)]) + # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering @@ -87,6 +161,34 @@ AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation diff --git a/gdb/configure b/gdb/configure index 5300b5ac455..9349917fb95 100755 --- a/gdb/configure +++ b/gdb/configure @@ -715,6 +715,9 @@ MAKE CCDEPMODE DEPDIR am__leading_dot +INSTALL_STRIP_PROGRAM +STRIP +install_sh target_os target_vendor target_cpu @@ -4382,6 +4385,118 @@ case "x$am_cv_prog_cc_stdc" in *) CC="$CC $am_cv_prog_cc_stdc" ;; esac +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + ac_aux_dir= for ac_dir in .. "$srcdir"/..; do diff --git a/gdb/configure.ac b/gdb/configure.ac index a0e1284f7d4..55f37d21452 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -2,7 +2,7 @@ dnl Autoconf configure script for GDB, the GNU debugger. dnl Copyright (C) 1995-2014 Free Software Foundation, Inc. dnl dnl This file is part of GDB. -dnl +dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 3 of the License, or @@ -30,6 +30,7 @@ AC_PROG_CC AC_USE_SYSTEM_EXTENSIONS ACX_LARGEFILE AM_PROG_CC_STDC +AM_PROG_INSTALL_STRIP AC_CONFIG_AUX_DIR(..) AC_CANONICAL_SYSTEM @@ -76,7 +77,7 @@ AC_SUBST(localedir) if test x"$USE_NLS" = xyes; then CONFIG_ALL="$CONFIG_ALL all-po" - CONFIG_CLEAN="$CONFIG_CLEAN clean-po" + CONFIG_CLEAN="$CONFIG_CLEAN clean-po" CONFIG_INSTALL="$CONFIG_INSTALL install-po" CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po" fi @@ -548,7 +549,7 @@ AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program # On alpha-osf, it appears that libtermcap and libcurses are not compatible. # There is a very specific comment in /usr/include/curses.h explaining that # termcap routines built into libcurses must not be used. -# +# # The symptoms we observed so far is GDB unexpectedly changing # the terminal settings when tgetent is called - this is particularly # visible as the output is missing carriage returns, and so rapidly @@ -625,7 +626,7 @@ case $host_os in go32* | *djgpp*) ac_cv_search_tgetent="none required" ;; - *mingw32*) + *mingw32*) ac_cv_search_tgetent="none required" CONFIG_OBS="$CONFIG_OBS windows-termcap.o" ;; @@ -1343,7 +1344,7 @@ AC_CACHE_VAL(gdb_cv_have_ptrace_getregs, [gdb_cv_have_ptrace_getregs=no])]) AC_MSG_RESULT($gdb_cv_have_ptrace_getregs) if test $gdb_cv_have_ptrace_getregs = yes; then - AC_DEFINE(HAVE_PTRACE_GETREGS, 1, + AC_DEFINE(HAVE_PTRACE_GETREGS, 1, [Define if sys/ptrace.h defines the PTRACE_GETREGS request.]) fi @@ -1537,7 +1538,7 @@ fi # Check if the compiler and runtime support scanning long doubles. -AC_CACHE_CHECK([for long double support in scanf], +AC_CACHE_CHECK([for long double support in scanf], gdb_cv_scanf_has_long_double, [AC_RUN_IFELSE([AC_LANG_PROGRAM( [[#include ]], @@ -1914,13 +1915,13 @@ fi case ${host} in *mingw32*) AC_DEFINE(USE_WIN32API, 1, - [Define if we should use the Windows API, instead of the - POSIX API. On Windows, we use the Windows API when - building for MinGW, but the POSIX API when building + [Define if we should use the Windows API, instead of the + POSIX API. On Windows, we use the Windows API when + building for MinGW, but the POSIX API when building for Cygwin.]) WIN32LIBS="$WIN32LIBS -lws2_32" ;; -esac +esac AC_SUBST(WIN32LIBS) # Add ELF support to GDB, but only if BFD includes ELF support. @@ -2032,7 +2033,7 @@ if test "${enable_gdbtk}" = "yes"; then # If building tcl in the same src tree, private headers # are not needed, but we need to be sure to use the right # headers library - TCL_INCLUDE="-I${TCL_SRC_DIR}/generic" + TCL_INCLUDE="-I${TCL_SRC_DIR}/generic" TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}" TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}" fi @@ -2045,7 +2046,7 @@ if test "${enable_gdbtk}" = "yes"; then # Check for in-tree Tk intree="no" if test "${TK_SRC_DIR}" = "${topdir}/tk"; then - intree="yes" + intree="yes" fi # Find Tk private headers @@ -2102,8 +2103,8 @@ AC_SUBST(GDBTK_SRC_DIR) AC_PATH_X -# Unlike the sim directory, whether a simulator is linked is controlled by -# presence of a gdb_sim definition in the target configure.tgt entry. +# Unlike the sim directory, whether a simulator is linked is controlled by +# presence of a gdb_sim definition in the target configure.tgt entry. # 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 @@ -2253,7 +2254,7 @@ else struct bt_ctf_event *event = NULL; const struct bt_definition *scope; - scope = bt_ctf_get_top_level_scope (event, + scope = bt_ctf_get_top_level_scope (event, BT_STREAM_EVENT_HEADER); bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id")); ]) -- 2.30.2