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

Group
 
 

bug #9445: makefiles not safe for parallel build

Submitter:  Riccardo Mottola <rmottola>
Submitted:  Thu 24 Jun 2004 01:13:26 PM UTC
   
 
Category:  Makefiles Severity:  3 - Normal
Item Group:  Change Request Status:  Fixed
Privacy:  Public Assigned to:  None
Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

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>
Group 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>
Group 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>
Group 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>
Group 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>
Group 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>
Group 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>
Group Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by nico (Posted a comment)
  • -email is unavailable- added by gcasa (Posted a comment)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 5 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2009-02-23 nico StatusPostponed Fixed
    2009-02-16 nico Open/ClosedIn Test Closed
    2009-02-09 nico Open/ClosedOpen In Test
    2008-02-17 gcasa Item GroupBug Change Request
    2005-04-06 nico StatusNone Postponed

    Back to the top

    Powered by Savane 3.13-4448.
    Corresponding source code