[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#499251: marked as done ([fixed in 4.5] gcc -MMD erroneously regards missing #includes as)



Your message dated Sun, 05 Jul 2015 16:18:22 +0000
with message-id <E1ZBmcY-0006gk-9d@franck.debian.org>
and subject line Bug#707276: Removed package(s) from unstable
has caused the Debian Bug report #499251,
regarding [fixed in 4.5] gcc -MMD erroneously regards missing #includes as
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
499251: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=499251
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: cpp-4.1
Version: 4.1.1-21

mariner:~/junk> cat t.c
#include <nonexistent.h>
int x;
mariner:~/junk> gcc-4.1 -c -MD t.c && echo hi
t.c:1:25: error: nonexistent.h: No such file or directory
mariner:~/junk> gcc-4.1 -c -MMD t.c && echo hi
t.c:1:25: warning: nonexistent.h: No such file or directory
hi
mariner:~/junk>

There is probably confusion because gcc -M needs to regard missing
#includes as only warnings because otherwise in systems with a
separate dependency generation step that step can fail if the .c files
include .h's which are autogenerated.

However when we're actually compiling, with dependency generation
being a side effect (-MD and -MMD), missing headers need to be
reported as actual errors, just as they would be if -MMD wasn't
specified - ie, just as if the dependency generation side effect was
not requested.

As you can see -MD works correctly. The documentation for -MMD says
     Like `-MD' except mention only user header files, not system
     header files.
so I think it's just an oversight that the fix for the -MD special
case is not applied to -MMD.


This bug existed at least as early as etch's gcc-3.4 (in cpp-3.4
3.4.6-5) and also affects lenny's gcc-4.2 (in cpp-4.2 4.2.4-1).
At least some old GCC versions supporting -MMD do not have the bug but
I haven't investigated in detail which ones and I don't know whether
that's true of any Debian GCCs.


I would strongly suggest that this bug NOT be fixed in lenny.
It will almost certainly reveal latent but harmless build system bugs
in existing packages and cause disruption.

It is of course a shame not to fix it straight away - and it's a
pretty surprising bug - but it has remained like this for some years
now and I think the collateral damage inflicted (including delays to
the lenny release) would outweigh the benefits.

Ian.



--- End Message ---
--- Begin Message ---
Version: 1:4.4.7-8+rm

Dear submitter,

as the package gcc-4.4 has just been removed from the Debian archive
unstable we hereby close the associated bug reports.  We are sorry
that we couldn't deal with your issue properly.

For details on the removal, please see https://bugs.debian.org/707276

The version of this package that was in Debian prior to this removal
can still be found using http://snapshot.debian.org/.

This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
ftpmaster@ftp-master.debian.org.

Debian distribution maintenance software
pp.
Luca Falavigna (the ftpmaster behind the curtain)

--- End Message ---

Reply to: