From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30341 invoked by alias); 3 Dec 2012 21:18:18 -0000 Received: (qmail 30320 invoked by uid 22791); 3 Dec 2012 21:18:16 -0000 X-SWARE-Spam-Status: No, hits=-6.4 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_SPAMHAUS_DROP,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,RP_MATCHES_RCVD,SPF_HELO_PASS,TW_AV,TW_EG 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; Mon, 03 Dec 2012 21:18:02 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id qB3LI1JA004553 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 3 Dec 2012 16:18:01 -0500 Received: from barimba (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id qB3LHwTJ017117 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Mon, 3 Dec 2012 16:17:59 -0500 From: Tom Tromey To: gdb-patches@sourceware.org Subject: RFC: automatic dependency tracking for gdbserver Date: Mon, 03 Dec 2012 21:18:00 -0000 Message-ID: <87r4n6vnqx.fsf@fleche.redhat.com> MIME-Version: 1.0 Content-Type: text/plain 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: 2012-12/txt/msg00043.txt.bz2 This patch applies the same automatic dependency tracking logic that gdb uses to gdbserver. The downside of this patch is that gdbserver dependencies will not be tracked unless the developer is using GNU make. On the other hand, we've had this same code in gdb for several years without any complaints. Comments? Tom 2012-12-03 Tom Tromey * Makefile.in (DEPMODE, DEPDIR, depcomp, COMPILE.pre) (COMPILE.post, COMPILE, POSTCOMPILE, IPAGENT_COMPILE): New macros. (.c.o): Rewrite. (ax-ipa.o, tracepoint-ipa.o, utils-ipa.o, format-ipa.o) (common-utils-ipa.o, remote-utils-ipa.o, regcache-ipa.o) (i386-linux-ipa.o, linux-i386-ipa.o, linux-amd64-ipa.o) (amd64-linux-ipa.o, ax.o): Rewrite. (event-loop.o, hostio.o, hostio-errno.o, inferiors.o, mem-break.o) (proc-service.o, regcache.o, remote-utils.o, server.o, target.o) (thread-db.o, tracepoint.o, utils.o, gdbreplay.o, dll.o): Remove. (signals.o, linux-procfs.o, linux-ptrace.o, common-utils.o, vec.o) (gdb_vecs.o, xml-utils.o, linux-osdata.o, ptid.o, buffer.o) (format.o, agent.o, vasprintf.o, vsnprintf.o): Rewrite. (i386-low.o, i387-fp.o, linux-low.o, linux-arm-low.o) (linux-bfin-low.o, linux-cris-low.o, linux-crisv32-low.o) (linux-ia64-low.o, linux-m32r-low.o, linux-mips-low.o) (linux-ppc-low.o, linux-s390-low.o, linux-sh-low.o) (linux-tic6x-low.o, linux-x86-low.o, linux-xtensa-low.o) (linux-tile-low.o, lynx-low.o, lynx-ppc-low.o, nto-low.o) (nto-x86-low.o, linux-low.o, win32-low.o, win32-arm-low.o) (win32-i386-low.o, spu-low.o, reg-arm.o, arm-with-iwmmxt.o) (arm-with-vfpv2.o, arm-with-vfpv3.o, arm-with-neon.o, reg-bfin.o) (reg-cris.o, reg-crisv32.o, i386.o, i386-linux.o, i386-avx.o) (i386-avx-linux.o, i386-mmx.o, i386-mmx-linux.o, reg-ia64.o) (reg-m32r.o, reg-m68k.o, reg-cf.o, mips-linux.o, mips-dsp-linux.o) (mips64-linux.o, mips64-dsp-linux.o, powerpc-32.o, powerpc-32l.o) (powerpc-altivec32l.o, powerpc-cell32l.o, powerpc-vsx32l.o) (powerpc-isa205-32l.o, powerpc-isa205-altivec32l.o) (powerpc-isa205-vsx32l.o, powerpc-e500l.o, powerpc-64l.o) (powerpc-altivec64l.o, powerpc-cell64l.o, powerpc-vsx64l.o) (powerpc-isa205-64l.o, powerpc-isa205-altivec64l.o) (powerpc-isa205-vsx64l.o, s390-linux32.o, s390-linux32v1.o) (s390-linux32v2.o, s390-linux64.o, s390-linux64v1.o) (s390-linux64v2.o, s390x-linux64.o, s390x-linux64v1.o) (s390x-linux64v2.o, tic6x-c64xp-linux.o, tic6x-c64x-linux.o) (tic6x-c62x-linux.o, reg-sh.o, reg-sparc64.o, reg-spu.o, amd64.o) (amd64-linux.o, amd64-avx.o, amd64-avx-linux.o, x32.o) (x32-linux.o, x32-avx.o, x32-avx-linux.o, reg-xtensa.o) (reg-tilegx.o): Remove. (all_object_files): New macro. Include .deps files. * aclocal.m4, configure: Rebuild. * configure.ac: Invoke ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES. Compute GMAKE condition. diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in index fc4fd1d..872202e 100644 --- a/gdb/gdbserver/Makefile.in +++ b/gdb/gdbserver/Makefile.in @@ -51,6 +51,18 @@ RANLIB = @RANLIB@ CC = @CC@ +# Dependency tracking information. +DEPMODE = @CCDEPMODE@ +DEPDIR = @DEPDIR@ +depcomp = $(SHELL) $(srcdir)/../depcomp + +# Note that these are overridden by GNU make-specific code below if +# GNU make is used. The overrides implement dependency tracking. +COMPILE.pre = $(CC) +COMPILE.post = -c -o $@ +COMPILE = $(COMPILE.pre) $(INTERNAL_CFLAGS) $(COMPILE.post) +POSTCOMPILE = @true + # Directory containing source files. Don't clean up the spacing, # this exact string is matched for by the "configure" script. srcdir = @srcdir@ @@ -216,10 +228,9 @@ FLAGS_TO_PASS = \ # All generated files which can be included by another file. generated_files = config.h $(GNULIB_H) -# Prevent Sun make from putting in the machine type. Setting -# TARGET_ARCH to nothing works for SunOS 3, 4.0, but not for 4.1. .c.o: - ${CC} -c ${INTERNAL_CFLAGS} $< + $(COMPILE) $< + $(POSTCOMPILE) all: gdbserver$(EXEEXT) gdbreplay$(EXEEXT) $(extra_libraries) @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do @@ -453,325 +464,268 @@ IPAGENT_CFLAGS = $(CPPFLAGS) $(INTERNAL_CFLAGS) $(UST_CFLAGS) \ -fPIC -DIN_PROCESS_AGENT \ -fvisibility=hidden +IPAGENT_COMPILE = $(COMPILE.pre) $(IPAGENT_CFLAGS) $(COMPILE.post) + # In-process agent object rules -ax-ipa.o: ax.c $(server_h) $(ax_h) $(srcdir)/../common/ax.def - $(CC) -c $(IPAGENT_CFLAGS) $(WARN_CFLAGS_NO_FORMAT) $< -o ax-ipa.o -tracepoint-ipa.o: tracepoint.c $(server_h) ${ax_h} - $(CC) -c $(IPAGENT_CFLAGS) $< -o tracepoint-ipa.o -utils-ipa.o: utils.c $(server_h) - $(CC) -c $(IPAGENT_CFLAGS) $< -o utils-ipa.o -format-ipa.o: ../common/format.c $(server_h) ${ax_h} - $(CC) -c $(IPAGENT_CFLAGS) $< -o format-ipa.o -common-utils-ipa.o: ../common/common-utils.c $(server_h) - $(CC) -c $(IPAGENT_CFLAGS) $< -o common-utils-ipa.o -remote-utils-ipa.o: remote-utils.c $(server_h) - $(CC) -c $(IPAGENT_CFLAGS) $< -o remote-utils-ipa.o -regcache-ipa.o: regcache.c $(server_h) - $(CC) -c $(IPAGENT_CFLAGS) $< -o regcache-ipa.o -i386-linux-ipa.o : i386-linux.c $(regdef_h) - $(CC) -c $(IPAGENT_CFLAGS) $< -o i386-linux-ipa.o -linux-i386-ipa.o: linux-i386-ipa.c $(server_h) - $(CC) -c $(IPAGENT_CFLAGS) $< -o linux-i386-ipa.o -linux-amd64-ipa.o: linux-amd64-ipa.c $(server_h) - $(CC) -c $(IPAGENT_CFLAGS) $< -o linux-amd64-ipa.o -amd64-linux-ipa.o : amd64-linux.c $(regdef_h) - $(CC) -c $(IPAGENT_CFLAGS) $< -o amd64-linux-ipa.o - -ax.o: ax.c $(server_h) $(ax_h) $(srcdir)/../common/ax.def - $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $(WARN_CFLAGS_NO_FORMAT) $< -event-loop.o: event-loop.c $(server_h) -hostio.o: hostio.c $(server_h) -hostio-errno.o: hostio-errno.c $(server_h) -inferiors.o: inferiors.c $(server_h) $(gdbthread_h) -mem-break.o: mem-break.c $(server_h) $(ax_h) -proc-service.o: proc-service.c $(server_h) $(gdb_proc_service_h) -regcache.o: regcache.c $(server_h) $(regdef_h) $(gdbthread_h) -remote-utils.o: remote-utils.c terminal.h $(server_h) $(gdbthread_h) -server.o: server.c $(server_h) $(agent_h) $(gdbthread_h) -target.o: target.c $(server_h) -thread-db.o: thread-db.c $(server_h) $(linux_low_h) $(gdb_proc_service_h) \ - $(gdb_thread_db_h) $(gdb_vecs_h) -tracepoint.o: tracepoint.c $(server_h) $(ax_h) $(agent_h) $(gdbthread_h) -utils.o: utils.c $(server_h) -gdbreplay.o: gdbreplay.c config.h -dll.o: dll.c $(server_h) - -signals.o: ../common/signals.c $(server_h) $(signals_def) - $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< - -linux-procfs.o: ../common/linux-procfs.c $(server_h) - $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< - -linux-ptrace.o: ../common/linux-ptrace.c $(server_h) - $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< - -common-utils.o: ../common/common-utils.c $(server_h) - $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< - -vec.o: ../common/vec.c $(vec_h) - $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< - -gdb_vecs.o: ../common/gdb_vecs.c $(vec_h) $(gdb_vecs_h) $(host_defs_h) - $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< - -xml-utils.o: ../common/xml-utils.c $(server_h) - $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< - -linux-osdata.o: ../common/linux-osdata.c $(server_h) $(linux_osdata_h) ../common/gdb_dirent.h - $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< - -ptid.o: ../common/ptid.c $(ptid_h) - $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< - -buffer.o: ../common/buffer.c $(server_h) - $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< - -format.o: ../common/format.c $(server_h) - $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< - -agent.o: ../common/agent.c $(server_h) $(agent_h) - $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< +ax-ipa.o: ax.c + $(IPAGENT_COMPILE) $(WARN_CFLAGS_NO_FORMAT) $< + $(POSTCOMPILE) +tracepoint-ipa.o: tracepoint.c + $(IPAGENT_COMPILE) $< + $(POSTCOMPILE) +utils-ipa.o: utils.c + $(IPAGENT_COMPILE) $< + $(POSTCOMPILE) +format-ipa.o: ../common/format.c + $(IPAGENT_COMPILE) $< + $(POSTCOMPILE) +common-utils-ipa.o: ../common/common-utils.c + $(IPAGENT_COMPILE) $< + $(POSTCOMPILE) +remote-utils-ipa.o: remote-utils.c + $(IPAGENT_COMPILE) $< + $(POSTCOMPILE) +regcache-ipa.o: regcache.c + $(IPAGENT_COMPILE) $< + $(POSTCOMPILE) +i386-linux-ipa.o : i386-linux.c + $(IPAGENT_COMPILE) $< + $(POSTCOMPILE) +linux-i386-ipa.o: linux-i386-ipa.c + $(IPAGENT_COMPILE) $< + $(POSTCOMPILE) +linux-amd64-ipa.o: linux-amd64-ipa.c + $(IPAGENT_COMPILE) $< + $(POSTCOMPILE) +amd64-linux-ipa.o : amd64-linux.c + $(IPAGENT_COMPILE) $< + $(POSTCOMPILE) + +ax.o: ax.c + $(COMPILE) $(WARN_CFLAGS_NO_FORMAT) $< + $(POSTCOMPILE) + +signals.o: ../common/signals.c + $(COMPILE) $< + $(POSTCOMPILE) +linux-procfs.o: ../common/linux-procfs.c + $(COMPILE) $< + $(POSTCOMPILE) +linux-ptrace.o: ../common/linux-ptrace.c + $(COMPILE) $< + $(POSTCOMPILE) +common-utils.o: ../common/common-utils.c + $(COMPILE) $< + $(POSTCOMPILE) +vec.o: ../common/vec.c + $(COMPILE) $< + $(POSTCOMPILE) +gdb_vecs.o: ../common/gdb_vecs.c + $(COMPILE) $< + $(POSTCOMPILE) +xml-utils.o: ../common/xml-utils.c + $(COMPILE) $< + $(POSTCOMPILE) +linux-osdata.o: ../common/linux-osdata.c + $(COMPILE) $< + $(POSTCOMPILE) +ptid.o: ../common/ptid.c + $(COMPILE) $< + $(POSTCOMPILE) +buffer.o: ../common/buffer.c + $(COMPILE) $< + $(POSTCOMPILE) +format.o: ../common/format.c + $(COMPILE) $< + $(POSTCOMPILE) +agent.o: ../common/agent.c + $(COMPILE) $< + $(POSTCOMPILE) # We build vasprintf with -DHAVE_CONFIG_H because we want that unit to # include our config.h file. Otherwise, some system headers do not get # included, and the compiler emits a warning about implicitly defined # functions (missing declaration). vasprintf.o: $(srcdir)/../../libiberty/vasprintf.c - $(CC) -o vasprintf.o -c $(CPPFLAGS) $(INTERNAL_CFLAGS) -DHAVE_CONFIG_H $< + $(COMPILE) $< -DHAVE_CONFIG_H + $(POSTCOMPILE) vsnprintf.o: $(srcdir)/../../libiberty/vsnprintf.c - $(CC) -o vsnprintf.o -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< + $(COMPILE) $< + $(POSTCOMPILE) i386_low_h = $(srcdir)/i386-low.h -i386-low.o: i386-low.c $(i386_low_h) $(server_h) $(target_h) - -i387-fp.o: i387-fp.c $(server_h) - -linux-low.o: linux-low.c $(linux_low_h) $(linux_ptrace_h) $(linux_procfs_h) \ - $(server_h) $(linux_osdata_h) $(agent_h) - $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< @USE_THREAD_DB@ - -linux-arm-low.o: linux-arm-low.c $(linux_low_h) $(server_h) \ - $(gdb_proc_service_h) -linux-bfin-low.o: linux-bfin-low.c $(linux_low_h) $(server_h) $(libiberty_h) -linux-cris-low.o: linux-cris-low.c $(linux_low_h) $(server_h) -linux-crisv32-low.o: linux-crisv32-low.c $(linux_low_h) $(server_h) -linux-ia64-low.o: linux-ia64-low.c $(linux_low_h) $(server_h) -linux-m32r-low.o: linux-m32r-low.c $(linux_low_h) $(server_h) -linux-mips-low.o: linux-mips-low.c $(linux_low_h) $(server_h) \ - $(gdb_proc_service_h) -linux-ppc-low.o: linux-ppc-low.c $(linux_low_h) $(server_h) -linux-s390-low.o: linux-s390-low.c $(linux_low_h) $(server_h) -linux-sh-low.o: linux-sh-low.c $(linux_low_h) $(server_h) -linux-tic6x-low.o: linux-tic6x-low.c $(linux_low_h) $(server_h) -linux-x86-low.o: linux-x86-low.c $(linux_low_h) $(server_h) \ - $(gdb_proc_service_h) $(i386_low_h) $(agent_h) -linux-xtensa-low.o: linux-xtensa-low.c xtensa-xtregs.c $(linux_low_h) $(server_h) -linux-tile-low.o: linux-tile-low.c $(linux_low_h) $(server_h) - -lynx-low.o: lynx-low.c $(server_h) $(target_h) $(lynx_low_h) -lynx-ppc-low.o: lynx-ppc-low.c $(server_h) $(lynx_low_h) -nto-low.o: nto-low.c $(server_h) $(nto_low_h) $(gdbthread_h) -nto-x86-low.o: nto-x86-low.c $(server_h) $(nto_low_h) $(regdef_h) $(regcache_h) +linux-low.o: linux-low.c + $(COMPILE) $< @USE_THREAD_DB@ + $(POSTCOMPILE) win32_low_h = $(srcdir)/win32-low.h -win32-low.o: win32-low.c $(win32_low_h) $(server_h) $(regdef_h) $(regcache_h) $(gdbthread_h) - -win32-arm-low.o: win32-arm-low.c $(win32_low_h) $(server_h) -win32-i386-low.o: win32-i386-low.c $(win32_low_h) $(server_h) $(i386_low_h) - -spu-low.o: spu-low.c $(server_h) - -reg-arm.o : reg-arm.c $(regdef_h) reg-arm.c : $(srcdir)/../regformats/reg-arm.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-arm.dat reg-arm.c -arm-with-iwmmxt.o : arm-with-iwmmxt.c $(regdef_h) arm-with-iwmmxt.c : $(srcdir)/../regformats/arm-with-iwmmxt.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/arm-with-iwmmxt.dat arm-with-iwmmxt.c -arm-with-vfpv2.o : arm-with-vfpv2.c $(regdef_h) arm-with-vfpv2.c : $(srcdir)/../regformats/arm-with-vfpv2.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/arm-with-vfpv2.dat arm-with-vfpv2.c -arm-with-vfpv3.o : arm-with-vfpv3.c $(regdef_h) arm-with-vfpv3.c : $(srcdir)/../regformats/arm-with-vfpv3.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/arm-with-vfpv3.dat arm-with-vfpv3.c -arm-with-neon.o : arm-with-neon.c $(regdef_h) arm-with-neon.c : $(srcdir)/../regformats/arm-with-neon.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/arm-with-neon.dat arm-with-neon.c -reg-bfin.o : reg-bfin.c $(regdef_h) reg-bfin.c : $(srcdir)/../regformats/reg-bfin.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-bfin.dat reg-bfin.c -reg-cris.o : reg-cris.c $(regdef_h) reg-cris.c : $(srcdir)/../regformats/reg-cris.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-cris.dat reg-cris.c -reg-crisv32.o : reg-crisv32.c $(regdef_h) reg-crisv32.c : $(srcdir)/../regformats/reg-crisv32.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-crisv32.dat reg-crisv32.c -i386.o : i386.c $(regdef_h) i386.c : $(srcdir)/../regformats/i386/i386.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386.dat i386.c -i386-linux.o : i386-linux.c $(regdef_h) i386-linux.c : $(srcdir)/../regformats/i386/i386-linux.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-linux.dat i386-linux.c -i386-avx.o : i386-avx.c $(regdef_h) i386-avx.c : $(srcdir)/../regformats/i386/i386-avx.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx.dat i386-avx.c -i386-avx-linux.o : i386-avx-linux.c $(regdef_h) i386-avx-linux.c : $(srcdir)/../regformats/i386/i386-avx-linux.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx-linux.dat i386-avx-linux.c -i386-mmx.o : i386-mmx.c $(regdef_h) i386-mmx.c : $(srcdir)/../regformats/i386/i386-mmx.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-mmx.dat i386-mmx.c -i386-mmx-linux.o : i386-mmx-linux.c $(regdef_h) i386-mmx-linux.c : $(srcdir)/../regformats/i386/i386-mmx-linux.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-mmx-linux.dat i386-mmx-linux.c -reg-ia64.o : reg-ia64.c $(regdef_h) reg-ia64.c : $(srcdir)/../regformats/reg-ia64.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-ia64.dat reg-ia64.c -reg-m32r.o : reg-m32r.c $(regdef_h) reg-m32r.c : $(srcdir)/../regformats/reg-m32r.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-m32r.dat reg-m32r.c -reg-m68k.o : reg-m68k.c $(regdef_h) reg-m68k.c : $(srcdir)/../regformats/reg-m68k.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-m68k.dat reg-m68k.c -reg-cf.o : reg-cf.c $(regdef_h) reg-cf.c : $(srcdir)/../regformats/reg-cf.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-cf.dat reg-cf.c -mips-linux.o : mips-linux.c $(regdef_h) mips-linux.c : $(srcdir)/../regformats/mips-linux.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/mips-linux.dat mips-linux.c -mips-dsp-linux.o : mips-dsp-linux.c $(regdef_h) mips-dsp-linux.c : $(srcdir)/../regformats/mips-dsp-linux.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/mips-dsp-linux.dat mips-dsp-linux.c -mips64-linux.o : mips64-linux.c $(regdef_h) mips64-linux.c : $(srcdir)/../regformats/mips64-linux.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/mips64-linux.dat mips64-linux.c -mips64-dsp-linux.o : mips64-dsp-linux.c $(regdef_h) mips64-dsp-linux.c : $(srcdir)/../regformats/mips64-dsp-linux.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/mips64-dsp-linux.dat mips64-dsp-linux.c -powerpc-32.o : powerpc-32.c $(regdef_h) powerpc-32.c : $(srcdir)/../regformats/rs6000/powerpc-32.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-32.dat powerpc-32.c -powerpc-32l.o : powerpc-32l.c $(regdef_h) powerpc-32l.c : $(srcdir)/../regformats/rs6000/powerpc-32l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-32l.dat powerpc-32l.c -powerpc-altivec32l.o : powerpc-altivec32l.c $(regdef_h) powerpc-altivec32l.c : $(srcdir)/../regformats/rs6000/powerpc-altivec32l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-altivec32l.dat powerpc-altivec32l.c -powerpc-cell32l.o : powerpc-cell32l.c $(regdef_h) powerpc-cell32l.c : $(srcdir)/../regformats/rs6000/powerpc-cell32l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-cell32l.dat powerpc-cell32l.c -powerpc-vsx32l.o : powerpc-vsx32l.c $(regdef_h) powerpc-vsx32l.c : $(srcdir)/../regformats/rs6000/powerpc-vsx32l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-vsx32l.dat powerpc-vsx32l.c -powerpc-isa205-32l.o : powerpc-isa205-32l.c $(regdef_h) powerpc-isa205-32l.c : $(srcdir)/../regformats/rs6000/powerpc-isa205-32l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-isa205-32l.dat powerpc-isa205-32l.c -powerpc-isa205-altivec32l.o : powerpc-isa205-altivec32l.c $(regdef_h) powerpc-isa205-altivec32l.c : $(srcdir)/../regformats/rs6000/powerpc-isa205-altivec32l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-isa205-altivec32l.dat powerpc-isa205-altivec32l.c -powerpc-isa205-vsx32l.o : powerpc-isa205-vsx32l.c $(regdef_h) powerpc-isa205-vsx32l.c : $(srcdir)/../regformats/rs6000/powerpc-isa205-vsx32l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-isa205-vsx32l.dat powerpc-isa205-vsx32l.c -powerpc-e500l.o : powerpc-e500l.c $(regdef_h) powerpc-e500l.c : $(srcdir)/../regformats/rs6000/powerpc-e500l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-e500l.dat powerpc-e500l.c -powerpc-64l.o : powerpc-64l.c $(regdef_h) powerpc-64l.c : $(srcdir)/../regformats/rs6000/powerpc-64l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-64l.dat powerpc-64l.c -powerpc-altivec64l.o : powerpc-altivec64l.c $(regdef_h) powerpc-altivec64l.c : $(srcdir)/../regformats/rs6000/powerpc-altivec64l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-altivec64l.dat powerpc-altivec64l.c -powerpc-cell64l.o : powerpc-cell64l.c $(regdef_h) powerpc-cell64l.c : $(srcdir)/../regformats/rs6000/powerpc-cell64l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-cell64l.dat powerpc-cell64l.c -powerpc-vsx64l.o : powerpc-vsx64l.c $(regdef_h) powerpc-vsx64l.c : $(srcdir)/../regformats/rs6000/powerpc-vsx64l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-vsx64l.dat powerpc-vsx64l.c -powerpc-isa205-64l.o : powerpc-isa205-64l.c $(regdef_h) powerpc-isa205-64l.c : $(srcdir)/../regformats/rs6000/powerpc-isa205-64l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-isa205-64l.dat powerpc-isa205-64l.c -powerpc-isa205-altivec64l.o : powerpc-isa205-altivec64l.c $(regdef_h) powerpc-isa205-altivec64l.c : $(srcdir)/../regformats/rs6000/powerpc-isa205-altivec64l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-isa205-altivec64l.dat powerpc-isa205-altivec64l.c -powerpc-isa205-vsx64l.o : powerpc-isa205-vsx64l.c $(regdef_h) powerpc-isa205-vsx64l.c : $(srcdir)/../regformats/rs6000/powerpc-isa205-vsx64l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-isa205-vsx64l.dat powerpc-isa205-vsx64l.c -s390-linux32.o : s390-linux32.c $(regdef_h) s390-linux32.c : $(srcdir)/../regformats/s390-linux32.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390-linux32.dat s390-linux32.c -s390-linux32v1.o : s390-linux32v1.c $(regdef_h) s390-linux32v1.c : $(srcdir)/../regformats/s390-linux32v1.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390-linux32v1.dat s390-linux32v1.c -s390-linux32v2.o : s390-linux32v2.c $(regdef_h) s390-linux32v2.c : $(srcdir)/../regformats/s390-linux32v2.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390-linux32v2.dat s390-linux32v2.c -s390-linux64.o : s390-linux64.c $(regdef_h) s390-linux64.c : $(srcdir)/../regformats/s390-linux64.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390-linux64.dat s390-linux64.c -s390-linux64v1.o : s390-linux64v1.c $(regdef_h) s390-linux64v1.c : $(srcdir)/../regformats/s390-linux64v1.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390-linux64v1.dat s390-linux64v1.c -s390-linux64v2.o : s390-linux64v2.c $(regdef_h) s390-linux64v2.c : $(srcdir)/../regformats/s390-linux64v2.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390-linux64v2.dat s390-linux64v2.c -s390x-linux64.o : s390x-linux64.c $(regdef_h) s390x-linux64.c : $(srcdir)/../regformats/s390x-linux64.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390x-linux64.dat s390x-linux64.c -s390x-linux64v1.o : s390x-linux64v1.c $(regdef_h) s390x-linux64v1.c : $(srcdir)/../regformats/s390x-linux64v1.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390x-linux64v1.dat s390x-linux64v1.c -s390x-linux64v2.o : s390x-linux64v2.c $(regdef_h) s390x-linux64v2.c : $(srcdir)/../regformats/s390x-linux64v2.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390x-linux64v2.dat s390x-linux64v2.c -tic6x-c64xp-linux.o : tic6x-c64xp-linux.c $(regdef_h) tic6x-c64xp-linux.c : $(srcdir)/../regformats/tic6x-c64xp-linux.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/tic6x-c64xp-linux.dat tic6x-c64xp-linux.c -tic6x-c64x-linux.o : tic6x-c64x-linux.c $(regdef_h) tic6x-c64x-linux.c : $(srcdir)/../regformats/tic6x-c64x-linux.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/tic6x-c64x-linux.dat tic6x-c64x-linux.c -tic6x-c62x-linux.o : tic6x-c62x-linux.c $(regdef_h) tic6x-c62x-linux.c : $(srcdir)/../regformats/tic6x-c62x-linux.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/tic6x-c62x-linux.dat tic6x-c62x-linux.c -reg-sh.o : reg-sh.c $(regdef_h) reg-sh.c : $(srcdir)/../regformats/reg-sh.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-sh.dat reg-sh.c -reg-sparc64.o : reg-sparc64.c $(regdef_h) reg-sparc64.c : $(srcdir)/../regformats/reg-sparc64.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-sparc64.dat reg-sparc64.c -reg-spu.o : reg-spu.c $(regdef_h) reg-spu.c : $(srcdir)/../regformats/reg-spu.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-spu.dat reg-spu.c -amd64.o : amd64.c $(regdef_h) amd64.c : $(srcdir)/../regformats/i386/amd64.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64.dat amd64.c -amd64-linux.o : amd64-linux.c $(regdef_h) amd64-linux.c : $(srcdir)/../regformats/i386/amd64-linux.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-linux.dat amd64-linux.c -amd64-avx.o : amd64-avx.c $(regdef_h) amd64-avx.c : $(srcdir)/../regformats/i386/amd64-avx.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx.dat amd64-avx.c -amd64-avx-linux.o : amd64-avx-linux.c $(regdef_h) amd64-avx-linux.c : $(srcdir)/../regformats/i386/amd64-avx-linux.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx-linux.dat amd64-avx-linux.c -x32.o : x32.c $(regdef_h) x32.c : $(srcdir)/../regformats/i386/x32.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32.dat x32.c -x32-linux.o : x32-linux.c $(regdef_h) x32-linux.c : $(srcdir)/../regformats/i386/x32-linux.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-linux.dat x32-linux.c -x32-avx.o : x32-avx.c $(regdef_h) x32-avx.c : $(srcdir)/../regformats/i386/x32-avx.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-avx.dat x32-avx.c -x32-avx-linux.o : x32-avx-linux.c $(regdef_h) x32-avx-linux.c : $(srcdir)/../regformats/i386/x32-avx-linux.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-avx-linux.dat x32-avx-linux.c -reg-xtensa.o : reg-xtensa.c $(regdef_h) reg-xtensa.c : $(srcdir)/../regformats/reg-xtensa.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-xtensa.dat reg-xtensa.c -reg-tilegx.o : reg-tilegx.c $(regdef_h) reg-tilegx.c : $(srcdir)/../regformats/reg-tilegx.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-tilegx.dat reg-tilegx.c + +# +# 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. +# + +@GMAKE_TRUE@ifeq ($(DEPMODE),depmode=gcc3) +# Note that we put the dependencies into a .Tpo file, then move them +# into place if the compile succeeds. We need this because gcc does +# not atomically write the dependency output file. +@GMAKE_TRUE@override COMPILE.post = -c -o $@ -MT $@ -MMD -MP \ +@GMAKE_TRUE@ -MF $(DEPDIR)/$(basename $(@F)).Tpo +@GMAKE_TRUE@override POSTCOMPILE = @mv $(DEPDIR)/$(basename $(@F)).Tpo \ +@GMAKE_TRUE@ $(DEPDIR)/$(basename $(@F)).Po +@GMAKE_TRUE@else +@GMAKE_TRUE@override COMPILE.pre = source='$<' object='$@' libtool=no \ +@GMAKE_TRUE@ DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC) +# depcomp handles atomicity for us, so we don't need a postcompile +# step. +@GMAKE_TRUE@override POSTCOMPILE = +@GMAKE_TRUE@endif + +# A list of all the objects we might care about in this build, for +# dependency tracking. +all_object_files = $(OBS) $(GDBREPLAY_OBS) + +# Ensure that generated files are created early. Use order-only +# dependencies if available. They require GNU make 3.80 or newer, +# and the .VARIABLES variable was introduced at the same time. +@GMAKE_TRUE@ifdef .VARIABLES +@GMAKE_TRUE@$(all_object_files): | $(generated_files) +@GMAKE_TRUE@else +$(all_object_files) : $(generated_files) +@GMAKE_TRUE@endif + +# Dependencies. +@GMAKE_TRUE@-include $(patsubst %.o, $(DEPDIR)/%.Po, $(all_object_files)) + # This is the end of "Makefile.in". diff --git a/gdb/gdbserver/aclocal.m4 b/gdb/gdbserver/aclocal.m4 index 7b546b7..55bf0d8 100644 --- a/gdb/gdbserver/aclocal.m4 +++ b/gdb/gdbserver/aclocal.m4 @@ -106,4 +106,6 @@ AC_DEFUN([_AM_SUBST_NOTMAKE]) # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) +m4_include([../../config/depstand.m4]) +m4_include([../../config/lead-dot.m4]) m4_include([acinclude.m4]) diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac index 35da28b..6493c0f 100644 --- a/gdb/gdbserver/configure.ac +++ b/gdb/gdbserver/configure.ac @@ -40,8 +40,20 @@ AC_HEADER_DIRENT AC_FUNC_ALLOCA +# 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 gnulib. We can't use AC_CONFIG_SUBDIRS as that'd expect # to find the the source subdir to be configured directly under