This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
[binutils-gdb] Fix dependency tracking for objects in subdirectories
- From: Tom Tromey <tromey at sourceware dot org>
- To: gdb-cvs at sourceware dot org
- Date: 1 Dec 2017 14:56:49 -0000
- Subject: [binutils-gdb] Fix dependency tracking for objects in subdirectories
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d0df06af9b70c5a6a2aa496437364f219e669067
commit d0df06af9b70c5a6a2aa496437364f219e669067
Author: Tom Tromey <tom@tromey.com>
Date: Thu Nov 30 11:49:27 2017 -0700
Fix dependency tracking for objects in subdirectories
On irc, Pedro pointed out that dependencies for objects in
subdirectories didn't seem to be working.
The bug was that the "-include" for .deps files was using the wrong file
name for subdirectory objects; e.g., for cli/cli-decode.o it was trying
to open .deps/cli/cli-decode.o, whereas the correct file is
cli/.deps/cli-decode.o.
This patch changes how the dep files are found. Tested by touching a
source file and rebuilding cli/cli-decode.o.
2017-12-01 Tom Tromey <tom@tromey.com>
* Makefile.in (all_deps_files): New variable.
Include .Po files using all_deps_files.
Diff:
---
gdb/ChangeLog | 5 +++++
gdb/Makefile.in | 6 +++++-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 6e6b4a6..a51b0f7 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2017-12-01 Tom Tromey <tom@tromey.com>
+
+ * Makefile.in (all_deps_files): New variable.
+ Include .Po files using all_deps_files.
+
2017-12-01 Joel Brobecker <brobecker@adacore.com>
* MAINTAINERS: Update list of maintainers, moving those who
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 284559b..5823098 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -2644,6 +2644,10 @@ endif
all_object_files = gdb.o $(LIBGDB_OBS) gdbtk-main.o \
test-cp-name-parser.o
+# All the .deps files to include.
+all_deps_files = $(foreach dep,$(patsubst %.o,%.Po,$(all_object_files)),\
+ $(dir $(dep))/$(DEPDIR)/$(notdir $(dep)))
+
# 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.
@@ -2654,7 +2658,7 @@ $(all_object_files) : $(generated_files)
endif
# Dependencies.
--include $(patsubst %.o, $(DEPDIR)/%.Po, $(all_object_files))
+-include $(all_deps_files)
# Disable implicit make rules.
include $(srcdir)/disable-implicit-rules.mk