MAKE_JOBS_UNSAFE (some more ports)

David Naylor naylor.b.david at gmail.com
Tue May 26 06:19:05 UTC 2009


On Tuesday 26 May 2009 04:13:43 Maho NAKATA wrote:
> Hi David,
>
> Thanks kudos for tough works and discussions!

:-)

> David, is this the final patch which I should test?

This should make OOo* work.  

This should be final for OOo3 and the second part of the bsd.ports.mk patch 
however the rest of bsd.ports.mk may need discussion.  

pav: ${_MAKE_JOBS:C/-j//} won't work with DISABLE_MAKE_JOBS (or 
MAKE_JOBS_UNSAFE) since it needs to always be a positive number, secondly it 
still cannot be used for conditional code (since it is defined in the post 
section, but the whole code could always be moved to the pre section). 

> Best,
>
> From: David Naylor <naylor.b.david at gmail.com>
> Subject: Re: MAKE_JOBS_UNSAFE (some more ports)
> Date: Mon, 25 May 2009 22:47:29 +0200
>
> > On Monday 25 May 2009 20:01:25 Ion-Mihai Tetcu wrote:
> >> On Mon, 25 May 2009 10:03:12 +0200
> >>
> >> David Naylor <naylor.b.david at gmail.com> wrote:
> >> > On Sunday 24 May 2009 21:37:45 Ion-Mihai Tetcu wrote:
> >> > > On Sun, 24 May 2009 10:26:23 +0200
> >> > >
> >> > > David Naylor <naylor.b.david at gmail.com> wrote:
> >> > > > On Sunday 24 May 2009 00:16:37 Maho NAKATA wrote:
> >> > > > > Hi I tested it yesterday,
> >> > > > >
> >> > > > > 1.
> >> > > > > I need
> >> > > > >
> >> > > > > > MAKE_JOBS_SAFE=        yes
> >> > > > >
> >> > > > > in the Makefile.
> >> > > >
> >> > > > Yes, you would need that.  I believe that will be default.
> >> > > >
> >> > > > > 2. with above patch, ooo2 doesn't launch parallele jobs.
> >> > > >
> >> > > > I spotted that problem after submitting the patch, if you
> >> > > > explicitly set MAKE_JOBS_NUMBER to something it will work.
> >> > > >
> >> > > > The problem is that ooo2 does (in effect):
> >> > > > .if (${MAKE_JOBS_NUMBER} > 1)
> >> > > > # Stuff
> >> > > > .else
> >> > > > # Other stuff
> >> > > > .endif
> >> > > > and that doesn't work as expected with MAKE_JOBS_NUMBER=`sysctl
> >> > > > kern.smp.cpus` as the command is not resolved.
> >> > >
> >> > > w/o patch
> >> > > editors/openoffice.org-3	openoffice.org-3.1.0	4:53:27
> >> > >
> >> > > with patch:
> >> > > + MAKE_JOBS_SAFE=	yes
> >> > > + MAKE_JOBS_NUMBER=	4
> >> > > + MAXPROCESSES?=	${MAKE_JOBS_NUMBER}
> >> > > + MAXMODULES?=		${MAKE_JOBS_NUMBER}
> >> > >
> >> > > editors/openoffice.org-3	openoffice.org-3.1.0	48:51
> >> > >
> >> > > The build is done in
> >> > > /dev/md0 on /usr/local/tinderbox/7-STABLE-FPT-NPD (ufs,
> >> > > asynchronous, local, noatime)
> >> >
> >> > Wow, that is quite a speedup.  Is it even possible (4 * 60 + 53)/4 =
> >> > 73, and you get 48 (that is 152% scaling efficiency).  This would
> >> > mean a serious performance problem with the ooo3 build script and
> >> > MAX* =1.
> >> >
> >> > I'll make a patch tonight (+10 hours) that will fix ooo2 in the
> >> > default case. You can test ooo2 with patch and MAKE_JOBS_NUMBER
> >> > preset (not using default value) and MAKE_JOBS_SAFE=yes.
> >>
> >> BTW, what about using the same vars for parallel building in all OOo
> >> port?
> >
> > Done, the following patch uses MAKE_JOBS_NUMBER for all the variables in
> > OOo.
> >
> > It also tries to be efficient when resolving the MAKE_JOBS_NUMBER to a
> > value (only done when a port sets USE_MAKE_JOBS, as in the OOo2-RC and
> > OOo2 case).
> >
> > This should fix OOo2* builds and support such use cases for other
> > ports...


-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part.
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20090526/4f3c97fa/attachment.pgp


More information about the freebsd-ports mailing list