[RFA] Fix automatic dependency tracking
Commit Message
This fixes the automatic dependency tracking bug I pointed out
eariler. It restores the $(basename) wrapper so that the dependency
files are named "file.Po" rather than "file.o.Po".
I also tested the non-gcc3 dependency mode, which pointed out that
this case hadn't been working since the switch to C++. This is also
fixed in this patch.
Tested by rebuilding.
gdb/ChangeLog
2017-10-08 Tom Tromey <tom@tromey.com>
* Makefile.in (COMPILE.post, POSTCOMPILE): Restore $(basename).
(COMPILE.pre): Use $(CXX).
---
gdb/ChangeLog | 5 +++++
gdb/Makefile.in | 9 +++++----
2 files changed, 10 insertions(+), 4 deletions(-)
Comments
On 10/09/2017 12:16 AM, Tom Tromey wrote:
> This fixes the automatic dependency tracking bug I pointed out
> eariler.
This sentence won't make as much sense in isolation in the
commit log. Please include the fuller description you had
in the other email here. OK with that fix. Please push.
Thanks!
Pedro Alves
> It restores the $(basename) wrapper so that the dependency
> files are named "file.Po" rather than "file.o.Po".
>
> I also tested the non-gcc3 dependency mode, which pointed out that
> this case hadn't been working since the switch to C++. This is also
> fixed in this patch.
>
> Tested by rebuilding.
@@ -2952,12 +2952,13 @@ ifeq ($(DEPMODE),depmode=gcc3)
# into place if the compile succeeds. We need this because gcc does
# not atomically write the dependency output file.
override COMPILE.post = -c -o $@ -MT $@ -MMD -MP \
- -MF $(@D)/$(DEPDIR)/$(@F).Tpo
-override POSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(@F).Tpo \
- $(@D)/$(DEPDIR)/$(@F).Po
+ -MF $(@D)/$(DEPDIR)/$(basename $(@F)).Tpo
+override POSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(basename $(@F)).Tpo \
+ $(@D)/$(DEPDIR)/$(basename $(@F)).Po
else
override COMPILE.pre = source='$<' object='$@' libtool=no \
- DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC)
+ DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) \
+ $(CXX) -x c++ $(CXX_DIALECT)
# depcomp handles atomicity for us, so we don't need a postcompile
# step.
override POSTCOMPILE =