Fix dependency tracking in gdbserver subdirectories
authorSimon Marchi <simon.marchi@ericsson.com>
Thu, 19 Apr 2018 17:19:41 +0000 (13:19 -0400)
committerSimon Marchi <simon.marchi@ericsson.com>
Thu, 19 Apr 2018 17:23:32 +0000 (13:23 -0400)
commitf31c089e788f7b45c9030ac399cd34eb3ccdb9c1
tree16d1978a261b8c1f89afe3dde7d402ec8be69e34
parentd83d54033545c0e7b668950b127753c88a33f950
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.
gdb/gdbserver/ChangeLog
gdb/gdbserver/Makefile.in