Fix dependency tracking in gdbserver subdirectories
The dependency tracking (the thing that knows which source file included which other source file during last build to know what to rebuild when an included file changes) is broken for gdbserver subdirectories (arch and common). The dependency tracking files are created in the form arch/.deps/i386.Po but we try to include .deps/arch/i386.Po An easy smoke test is too "touch" the gdb/features/i386/32bit-core.c file in the source directory and try to rebuild gdbserver. This file is included by gdb/arch/i386.c, so it should cause gdb/gdbserver/arch/i386.o in the build directory to be rebuilt. It currently isn't rebuilt, but is with this patch applied. This patch copies the technique used in GDB to transform the dep file paths to the proper form. Also, while testing using the depcomp method of dependency tracking (by just hacking the condition), I noticed that depcomp was not found. The path to depcomp seems to be missing a "..". gdb/gdbserver/ChangeLog: * Makefile.in (depcomp): Add "..". (all_deps_files): New and use it.
This commit is contained in:
parent
d83d540335
commit
f31c089e78
|
@ -1,3 +1,8 @@
|
|||
2018-04-19 Simon Marchi <simon.marchi@ericsson.com>
|
||||
|
||||
* Makefile.in (depcomp): Add "..".
|
||||
(all_deps_files): New and use it.
|
||||
|
||||
2018-04-18 Alan Hayward <alan.hayward@arm.com>
|
||||
|
||||
* configure.srv (aarch64*-*-linux*): Don't include xml.
|
||||
|
|
|
@ -62,7 +62,7 @@ AR_FLAGS = rc
|
|||
# Dependency tracking information.
|
||||
DEPMODE = @CCDEPMODE@
|
||||
DEPDIR = @DEPDIR@
|
||||
depcomp = $(SHELL) $(srcdir)/../depcomp
|
||||
depcomp = $(SHELL) $(srcdir)/../../depcomp
|
||||
|
||||
# Directory containing source files. Don't clean up the spacing,
|
||||
# this exact string is matched for by the "configure" script.
|
||||
|
@ -652,8 +652,12 @@ else
|
|||
$(all_object_files) : $(generated_files)
|
||||
endif
|
||||
|
||||
# All the .deps files to include.
|
||||
all_deps_files = $(foreach dep,$(patsubst %.o,%.Po,$(all_object_files)),\
|
||||
$(dir $(dep))/$(DEPDIR)/$(notdir $(dep)))
|
||||
|
||||
# Dependencies.
|
||||
-include $(patsubst %.o, $(DEPDIR)/%.Po, $(all_object_files))
|
||||
-include $(all_deps_files)
|
||||
|
||||
# Disable implicit make rules.
|
||||
include $(srcdir)/../disable-implicit-rules.mk
|
||||
|
|
Loading…
Reference in New Issue