bugGNUstep - Bugs: bug #23286, Frameworks being rebuilt when...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #23286: Frameworks being rebuilt when there's not need to

Submitted by:  Nicola Pero <nico>
Submitted on:  Sun 18 May 2008 05:48:19 PM UTC  
 
Category: MakefilesSeverity: 3 - Normal
Item Group: BugStatus: None
Privacy: PublicAssigned to: Nicola Pero <nico>
Open/Closed: Closed

Sat 24 May 2008 01:30:44 PM UTC, comment #1:

I fixed this problem both with framework headers and framework
subproject headers

Thanks

Nicola Pero <nico>
Project MemberIn charge of this item.
Sun 18 May 2008 05:48:19 PM UTC, original submission:

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

Nicola Pero <nico>
Project MemberIn charge of this item.

 

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by nico (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follows 1 latest change.

    Date Changed By Updated Field Previous Value => Replaced By
    Sat 24 May 2008 01:30:44 PM UTCnicoOpen/ClosedOpen=>Closed

    Back to the top


    Powered by Savane 3.1-cleanup1