[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #23286] Frameworks being rebuilt when there's not need to
From: |
Nicola Pero |
Subject: |
[bug #23286] Frameworks being rebuilt when there's not need to |
Date: |
Sun, 18 May 2008 17:48:21 +0000 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7 |
URL:
<http://savannah.gnu.org/bugs/?23286>
Summary: Frameworks being rebuilt when there's not need to
Project: GNUstep
Submitted by: nico
Submitted on: Sunday 05/18/2008 at 17:48
Category: Makefiles
Severity: 3 - Normal
Item Group: Bug
Status: None
Privacy: Public
Assigned to: nico
Open/Closed: Open
Discussion Lock: Any
_______________________________________________________
Details:
I found this fascinating bug while compiling StepTalk. I'm
recording it here as I don't have time to fix it now, but
it needs fixing. :-)
What happened is that some header files got stored in the
framework Headers directly at 18:33 and the following ones
at 18:34. I guess I was unlucky and the headers were being
installed just as the clock was changing ?
Anyway, the directory containing the headers then is reported
as being last modified at 18:34.
When everything is built, and you type 'make', make will detect
that some header files are older than the directory that contains
them. And they depend on that directory! So, it will
rebuild them all :-)
To clarify, this is the dependency triggering the rebuild --
Prerequisite `StepTalk.framework/Versions/0/Headers' is newer than target
`StepTalk.framework/Versions/0/Headers/STRemoteConversation.h'.
And that obviously then triggers a recompilation of the framework.
Now the fascinating bit is that this new (and pointless) rebuild
rewrites the 'old' header files to update them. And that
implicitly changes the last modified date of the directory
to now.
So the next time you type 'make', the *other* header files are
now older than the directory, so make does yet another
pointless rebuild to rebuild them - and yet another
compilation gets triggered.
And so on ... now the other half of the header files are
older than the directory ... and so on, for ever. ;-)
As an end result, every type you type 'make' you trigger
a rebuild, which is obviously wrong. :-(
Thanks
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?23286>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
- [bug #23286] Frameworks being rebuilt when there's not need to,
Nicola Pero <=