This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]