This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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: Create common hooks structure shared between driver and cc1


On Wed, 25 May 2011, Tom Tromey wrote:

> I believe the bugs referenced here were the problem:
> 
>     http://gcc.gnu.org/ml/gcc-patches/2008-03/msg01680.html
> 
> Both these bugs use .INTERMEDIATE in their test cases, but it isn't
> clear to me that this is a sufficient condition.

The problem is that the reversion commit (r133652) doesn't mention 
.INTERMEDIATE or .SECONDARY, so I can't identify the particular feature 
that's causing the problems.  But the problem feature isn't the includes 
of the dependency files, since the hang still occurs with those includes 
commented out.

I think a new attempt at this should be more incremental: separate pieces 
might include:

* Changes to the names under which files are built (to go in the relevant 
subdirectories).

* Changes to avoid the need for so many compilation rules (setting 
variables for the relevant targets in one way or another).

* Changes to the compilation rules to use $(COMPILE).

* Changes to make $(COMPILE) generate automatic dependency files.

* Changes to actually use those files.

* Changes to ensure that, when the old manual dependencies are removed, 
generated headers still get built in time.

* Changes to remove the old manual dependencies.

With each patch tested against the reliable reproducer in 
<http://gcc.gnu.org/ml/gcc-patches/2008-03/msg01663.html>, it should 
hopefully be possible to get the benefits of some of the above changes 
without triggering the bug - and to understand better when the bug appears 
just what the cause is and whether it can be worked around or not.

-- 
Joseph S. Myers
joseph@codesourcery.com


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