From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 957 invoked by alias); 23 Feb 2011 17:24:26 -0000 Received: (qmail 947 invoked by uid 22791); 23 Feb 2011 17:24:23 -0000 X-SWARE-Spam-Status: No, hits=-6.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 23 Feb 2011 17:24:09 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p1NHO0u5030520 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 23 Feb 2011 12:24:01 -0500 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p1NHO0Oh016010; Wed, 23 Feb 2011 12:24:00 -0500 Received: from opsy.redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id p1NHNxbZ032470; Wed, 23 Feb 2011 12:24:00 -0500 Received: by opsy.redhat.com (Postfix, from userid 500) id 2BDE23784FF; Wed, 23 Feb 2011 10:23:58 -0700 (MST) From: Tom Tromey To: Yao Qi Cc: Pedro Alves , gdb-patches@sourceware.org Subject: Re: [rfa/rfc] Build libcommon.a for gdb and gdbserver References: <4D30E23F.3080103@codesourcery.com> <4D375F44.70504@codesourcery.com> <201101281504.38962.pedro@codesourcery.com> <4D550834.6080807@codesourcery.com> <4D55FAB4.7090001@codesourcery.com> <4D648A5F.8050607@codesourcery.com> Date: Wed, 23 Feb 2011 17:42:00 -0000 In-Reply-To: (Tom Tromey's message of "Wed, 23 Feb 2011 09:33:33 -0700") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-02/txt/msg00645.txt.bz2 >>>>> "Tom" == Tom Tromey writes: Tom> What do you think of that? I may write a patch to do it. It was simpler than I thought. The downside of this approach is that changes in common/ mean updating two Makefiles, not just one. I think this is an ok tradeoff for getting rid of a configure script plus the associated rules. Tom 2011-02-23 Tom Tromey * configure: Rebuild. * configure.ac: Don't configure in common. * Makefile.in (LIBCOMMON_DIR, LIBCOMMON, LIBCOMMON_SRC): Remove. (CLIBS, CDEPS): Don't use LIBCOMMON. (COMMON_OBS): Add signals.o. ($(LIBCOMMON), configure-common, common/Makefile): Remove. (signals.o): New target. * common/Makefile.in: Remove. * common/configure.ac: Remove. * common/configure: Remove. * common/aclocal.m4: Remove. 2011-02-23 Tom Tromey * Makefile.in (SFILES): Add signals.c. (LIBCOMMON, LIBCOMMON_DIR, LIBCOMMON_SRC): Remove. (OBS): Add signals.o. ($(LIBCOMMON), common/Makefile, configure-common): Remove. (gdbserver$(EXEEXT)): Don't use LIBCOMMON. (COMMON_CFLAGS): New variable. (signals.o): New target. diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 6363773..5e1c5c8 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -142,10 +142,6 @@ LIBDECNUMBER = $(LIBDECNUMBER_DIR)/libdecnumber.a LIBDECNUMBER_SRC = $(srcdir)/$(LIBDECNUMBER_DIR) LIBDECNUMBER_CFLAGS = -I$(LIBDECNUMBER_DIR) -I$(LIBDECNUMBER_SRC) -LIBCOMMON_DIR = common -LIBCOMMON = $(LIBCOMMON_DIR)/libcommon.a -LIBCOMMON_SRC = $(srcdir)/$(LIBCOMMON_DIR) - # Where is the READLINE library? Typically in ../readline. READLINE_DIR = ../readline READLINE_SRC = $(srcdir)/$(READLINE_DIR) @@ -473,10 +469,9 @@ INTERNAL_LDFLAGS = $(CFLAGS) $(GLOBAL_CFLAGS) $(MH_LDFLAGS) $(LDFLAGS) $(CONFIG_ CLIBS = $(SIM) $(READLINE) $(OPCODES) $(BFD) $(INTL) $(LIBIBERTY) $(LIBDECNUMBER) \ $(XM_CLIBS) $(NAT_CLIBS) $(GDBTKLIBS) @LIBS@ @PYTHON_LIBS@ \ $(LIBEXPAT) \ - $(LIBIBERTY) $(WIN32LIBS) $(LIBGNU) $(LIBCOMMON) + $(LIBIBERTY) $(WIN32LIBS) $(LIBGNU) CDEPS = $(XM_CDEPS) $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE_DEPS) \ - $(OPCODES) $(INTL_DEPS) $(LIBIBERTY) $(CONFIG_DEPS) $(LIBGNU) \ - $(LIBCOMMON) + $(OPCODES) $(INTL_DEPS) $(LIBIBERTY) $(CONFIG_DEPS) $(LIBGNU) ADD_FILES = $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES) ADD_DEPS = $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES) @@ -892,7 +887,8 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \ prologue-value.o memory-map.o memrange.o xml-support.o xml-syscall.o \ target-descriptions.o target-memory.o xml-tdesc.o xml-builtin.o \ inferior.o osdata.o gdb_usleep.o record.o gcore.o \ - jit.o progspace.o + jit.o progspace.o \ + signals.o TSOBS = inflow.o @@ -1170,26 +1166,6 @@ all-lib: gnulib/Makefile @$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=gnulib subdir_do .PHONY: all-lib -# -$(LIBCOMMON): $(LIBCOMMON_DIR)/Makefile - @$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=common subdir_do - -configure-common: - @: $(MAKE); $(unstage) - @r=`${PWD_COMMAND}`; export r; \ - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ - test ! -f common/Makefile || exit 0; \ - $(SHELL) $(srcdir)/../mkinstalldirs common ; \ - $(HOST_EXPORTS) \ - echo Configuring in common; \ - cd "common" || exit 1; \ - commondir="$$s/common"; \ - srcdiroption="--srcdir=$${commondir}"; \ - $(SHELL) $${commondir}/configure --enable-gdbserver=no \ - $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \ - --target=${target_alias} $${srcdiroption} \ - || exit 1 - # Convenience rule to handle recursion. .PHONY: all-data-directory all-data-directory: data-directory/Makefile @@ -1325,13 +1301,6 @@ data-directory/Makefile: data-directory/Makefile.in config.status @frags@ CONFIG_LINKS= \ $(SHELL) config.status -common/Makefile: configure-common common/Makefile.in config.status @frags@ - CONFIG_FILES="common/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 \ @@ -2136,6 +2105,16 @@ py-value.o: $(srcdir)/python/py-value.c $(POSTCOMPILE) # +# gdb/common/ dependencies. +# +# Need to explicitly specify the compile rule as make will do nothing +# or try to compile the object file into the sub-directory. + +signals.o: $(srcdir)/common/signals.c + $(COMPILE) $(srcdir)/common/signals.c + $(POSTCOMPILE) + +# # Dependency tracking. Most of this is conditional on GNU Make being # found by configure; if GNU Make is not found, we fall back to a # simpler scheme. diff --git a/gdb/configure.ac b/gdb/configure.ac index f31ef2a..d2b75f6 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -109,7 +109,6 @@ AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this pat ]) AC_CONFIG_SUBDIRS(testsuite) -AC_CONFIG_SUBDIRS(common) # Check whether to support alternative target configurations AC_ARG_ENABLE(targets, diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in index 352f4f1..f2daaac 100644 --- a/gdb/gdbserver/Makefile.in +++ b/gdb/gdbserver/Makefile.in @@ -126,22 +126,20 @@ SFILES= $(srcdir)/gdbreplay.c $(srcdir)/inferiors.c \ $(srcdir)/linux-xtensa-low.c \ $(srcdir)/win32-arm-low.c $(srcdir)/win32-i386-low.c \ $(srcdir)/win32-low.c $(srcdir)/wincecompat.c \ - $(srcdir)/hostio.c $(srcdir)/hostio-errno.c + $(srcdir)/hostio.c $(srcdir)/hostio-errno.c \ + $(srcdir)/../common/signals.c DEPFILES = @GDBSERVER_DEPFILES@ LIBOBJS = @LIBOBJS@ -LIBCOMMON_DIR = common -LIBCOMMON = $(LIBCOMMON_DIR)/libcommon.a -LIBCOMMON_SRC = $(srcdir)/$(LIBCOMMON_DIR) - SOURCES = $(SFILES) TAGFILES = $(SOURCES) ${HFILES} ${ALLPARAM} ${POSSLIBS} OBS = inferiors.o regcache.o remote-utils.o server.o target.o \ utils.o version.o \ mem-break.o hostio.o event-loop.o tracepoint.o \ + signals.o \ $(XML_BUILTIN) \ $(DEPFILES) $(LIBOBJS) GDBREPLAY_OBS = gdbreplay.o version.o @@ -196,32 +194,6 @@ FLAGS_TO_PASS = \ all: gdbserver$(EXEEXT) gdbreplay$(EXEEXT) $(extra_libraries) -$(LIBCOMMON): $(LIBCOMMON_DIR)/Makefile - @$(MAKE) $(FLAGS_TO_PASS) DO=all --directory=common - -common/Makefile: configure-common config.status - CONFIG_FILES="common/Makefile" \ - CONFIG_COMMANDS="depfiles" \ - CONFIG_HEADERS= \ - CONFIG_LINKS= \ - $(SHELL) config.status - -configure-common: - @: $(MAKE); $(unstage) - @r=`${PWD_COMMAND}`; export r; \ - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ - test ! -f common/Makefile || exit 0; \ - $(SHELL) $(srcdir)/../../mkinstalldirs common ; \ - $(HOST_EXPORTS) \ - echo Configuring in common; \ - cd "common" || exit 1; \ - commondir="$$s/../common"; \ - srcdiroption="--srcdir=$${commondir}"; \ - $(SHELL) $${commondir}/configure --enable-gdbserver=yes \ - $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \ - --target=${target_alias} $${srcdiroption} \ - || exit 1 - # 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 @@ -256,10 +228,10 @@ html: install-html: clean-info: -gdbserver$(EXEEXT): $(OBS) ${ADD_DEPS} ${CDEPS} $(LIBCOMMON) +gdbserver$(EXEEXT): $(OBS) ${ADD_DEPS} ${CDEPS} rm -f gdbserver$(EXEEXT) ${CC-LD} $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) -o gdbserver$(EXEEXT) $(OBS) \ - $(LIBCOMMON) $(GDBSERVER_LIBS) $(XM_CLIBS) + $(GDBSERVER_LIBS) $(XM_CLIBS) gdbreplay$(EXEEXT): $(GDBREPLAY_OBS) rm -f gdbreplay$(EXEEXT) @@ -414,6 +386,11 @@ tracepoint.o: tracepoint.c $(server_h) $(srcdir)/../common/ax.def utils.o: utils.c $(server_h) gdbreplay.o: gdbreplay.c config.h +COMMON_CFLAGS = $(CPPFLAGS) $(INTERNAL_CFLAGS) -DGDBSERVER + +signals.o: $(srcdir)/../common/signals.c $(server_h) $(signals_h) + $(CC) -c $(COMMON_CFLAGS) $< -o signals.o + # We build memmem.c without -Werror because this file is not under # our control. On LynxOS, the compiler generates some warnings # because str-two-way.h uses a constant (MAX_SIZE) whose definition