bugGNUstep - Bugs: bug #9445, makefiles not safe for parallel...

 
 

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

bug #9445: makefiles not safe for parallel build

Submitted by:  Riccardo Mottola <rmottola>
Submitted on:  Thu 24 Jun 2004 01:13:26 PM UTC  
 
Category: MakefilesSeverity: 3 - Normal
Item Group: Change RequestStatus: Fixed
Privacy: PublicAssigned to: None
Open/Closed: Closed

(Jump to the original submission Jump to the original submission)

Mon 16 Feb 2009 01:07:33 PM UTC, comment #6:

I implemented parallel build stuff

Thanks

Nicola Pero <nico>
Project Member
Mon 09 Feb 2009 11:30:27 AM UTC, comment #5:

OK ... I experimentally implemented my idea for tools and
libraries. Once that works for the core libraries we can
move on and extend it to all project types. :-)

Please test ... to test this, configure gnustep-make with

./configure --enable-parallel-building

and then go wild with

make -j 4

when compiling libraries or tools.

Thanks

Nicola Pero <nico>
Project Member
Mon 02 Feb 2009 01:32:36 PM UTC, comment #4:

I have been thinking for a while about the new .NOTPARALLEL
target in GNU make ... :-)

... maybe we could move all the file compilations into a separate
recursive make invocation, then let make go wild with
parallelization on that sub-make invocation only. :-)

So, we keep all our "serial" features such as support for
before-all::, after-libgnustep-base-install:: targets, but
we parallelize the actual compilation.

The Instance invocation would do all the usual stuff, but
we'd replace the rule to build OBJ_FILES with a phony target
'compile-obj-files', which itself would fire up another
make instance. That make instance would only execute the
rules to build OBJ_FILES and could be safely parallelized
(by omitting the .NOTPARALLEL: target).

Now this would allow parallel compilation (eg, if you
compile gnustep-base, which contains something like 100+
Objective-C files to compile, the compilation would happen
in parallel) which would presumably be faster on modern
machines; but it would add a make invocation per Instance,
which would make things a little bit slower on older
machines. I suppose it might be worth it ... if people
then actually use 'make -j4' to take advantage of it.

When I have a bit of time, I'll play with this.

Thanks

Nicola Pero <nico>
Project Member
Sun 17 Feb 2008 02:12:25 AM UTC, comment #3:

This is a "nice to have" I'm moving it to the Change Request category.

Gregory John Casamento <gcasa>
Project Administrator
Wed 06 Apr 2005 11:31:01 AM UTC, comment #2:

Currently, there is no easy way to do implement parallel builds because gnustep-make supports 'before-all' and 'after-all' rules and it's not clear how to support parallelization and still keep this feature. More details can be found in mailing list discussions.

Maybe once advanced GNU make releases start to be more widespread we might find a way to work around this problem by using some new advanced GNU make features.

So I'll leave the bug open, just mark it as Postponed.

Thanks

Nicola Pero <nico>
Project Member
Thu 24 Jun 2004 08:03:44 PM UTC, comment #1:

It would be nice if this could be made to work, as GNUstep-make would then work with DistCC, which I use for other things all the time.

Alex Perez <aperez>
Project Member
Thu 24 Jun 2004 01:13:26 PM UTC, original submission:

I verified this on -gui especially

making a "make -j 2" (to use SMP systems) fails

Creating GSspell.service/Resources/Info-gnustep.plist...
/bin/sh: ././shared_obj/make_services: not found
make[2]: *** [GSspell.service/Resources/Info-gnustep.plist] Error 255
make[1]: *** [GSspell.all.service.variables] Error 2
make[1]: *** Waiting for unfinished jobs....

retyping a simple "make" makes the compile finish.

Riccardo Mottola <rmottola>
Project Member

 

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 (Posted a comment)
  • -unavailable- added by gcasa (Posted a comment)
  •  

    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):

     

     

    Follow 5 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Mon 23 Feb 2009 11:22:29 AM UTCnicoStatusPostponed=>Fixed
    Mon 16 Feb 2009 01:07:33 PM UTCnicoOpen/ClosedIn Test=>Closed
    Mon 09 Feb 2009 11:30:27 AM UTCnicoOpen/ClosedOpen=>In Test
    Sun 17 Feb 2008 02:12:25 AM UTCgcasaItem GroupBug=>Change Request
    Wed 06 Apr 2005 11:31:01 AM UTCnicoStatusNone=>Postponed

    Back to the top


    Powered by Savane 3.1-cleanup1