This is the mail archive of the gdb-patches@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]

Re: [PATCH v2] gdbserver: Suffix generated C files with -generated


On 2017-03-31 14:46, Simon Marchi wrote:
Note that when updating past this commit and rebuilding, or in general
hopping back and forth between branches that have this commit and
branches that don't and rebuilding, you may stumble on errors like:

make: *** No rule to make target `version.c', needed by `version.o'. Stop.

It's the same issue some people had when environ.c was moved to
common/environ.c, and it will happen every time we move a source file.
 The reason is the leftover dependency file in .deps, containing
something like:

  version.o: version.c

These files are automatically generated by gcc and state all the files
that went into creating version.o during the last build.  That rule
states that version.c should exist when for version.o to be built, and
that version.o should be rebuilt if version.c is more recent.  But
version.c was moved and no longer exists, hence the error.

One thing I see we could do to mitigate the problem is clear the .deps
directory when doing a "make clean".  After all, when doing a clean,
all objects are deleted and are going to be rebuilt, so we don't care
about the dependencies anymore.  So if somebody stumbles on that
problem, there's a chance they'll try to clean and build again, which
would fix the problem.

Do you have any better idea?

Simon

Huh, I've just noticed that gdb does this already:

  rm -f $(DEPDIR)/*

which translates to:

  rm -f .deps/*

So I guess it'd make sense to do it as well in gdbserver.


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