Date: Sat, 28 Aug 2010 14:30:22 -0700 From: Greg Lewis <glewis@eyesbeyond.com> To: Anonymous <swell.k@gmail.com> Cc: Greg Lewis <glewis@freebsd.org>, David Naylor <naylor.b.david@gmail.com>, freebsd-ports@freebsd.org Subject: Re: MAKE_JOBS and openjdk6 Message-ID: <20100828213022.GA78573@misty.eyesbeyond.com> In-Reply-To: <86lj7q31s8.fsf@gmail.com> References: <201006251808.29467.naylor.b.david@gmail.com> <861vazh881.fsf@gmail.com> <8662z58gid.fsf@gmail.com> <201008281428.06609.naylor.b.david@gmail.com> <20100828184017.GA78278@misty.eyesbeyond.com> <86lj7q31s8.fsf@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Aug 29, 2010 at 12:44:39AM +0400, Anonymous wrote: > Greg Lewis <glewis@eyesbeyond.com> writes: > > I would argue that overriding a private variable is a hack (other ports > > doing it doesn't make it not a hack). > > You could've spoke up in ports/148754 about your concern in order for > portmgr@ to notice. The PR strived to be less intrusive than divorcing > build jobs from make jobs. Besides, I think adding more clutter to > Makefiles defeats purpose of having stuff in bsd.port.mk. In that case, whichever way you cut it, we're deliberately trying to circumvent what is in bsd.port.mk. > > Alternative patch attached which seems to achieve the same result from > > my perspective without overriding _MAKE_JOBS. > > Hardcoding kern.smp.cpus and ignoring MAKE_JOBS_SAFE/UNSAFE doesn't seem > like a less hacky solution. I'd argue that it's more confusing because > MAKE_JOBS_UNSAFE is not equal to DISABLE_MAKE_JOBS. The patch I attached (a) does not ignore MAKE_JOBS_{SAFE,UNSAFE} and (b) the first patch similarly uses DISABLE_MAKE_JOBS. The first patch does the following: 1. Sets MAKE_JOBS_SAFE _erroneously_ (the port is _not_ MAKE_JOBS_SAFE) purely so it can force the setting of MAKE_JOBS_NUMBER. 2. Overrides passing of -j to the make invocation by fiddling the private variable _MAKE_JOBS, which it has to do because of (1). The one I just provided 1. Leaves the port correctly marked as MAKE_JOBS_UNSAFE and doesn't mess with any private variables. 2. Respects MAKE_JOB_NUMBER if it is set and otherwise uses the sysctl kern.smp.cpus, the latter being what the port _already_ does. > > Index: Makefile > > =================================================================== > > RCS file: /var/fcvs/ports/java/openjdk6/Makefile,v > > retrieving revision 1.28 > > diff -u -r1.28 Makefile > > --- Makefile 15 Aug 2010 05:23:06 -0000 1.28 > > +++ Makefile 28 Aug 2010 18:27:44 -0000 > > @@ -147,8 +147,14 @@ > > USE_DISPLAY= yes > > .endif > > > -BUILD_JOBS_NUMBER!= ${SYSCTL} -n kern.smp.cpus > > +.if !defined(DISABLE_MAKE_JOBS) > > +.if defined(MAKE_JOBS_NUMBER) > > +BUILD_JOBS_NUMBER= ${MAKE_JOBS_NUMBER} > > +.else > > +BUILD_JOBS_NUMBER= `${SYSCTL} -n kern.smp.cpus` > > +.endif > > MAKE_ENV+= HOTSPOT_BUILD_JOBS=${BUILD_JOBS_NUMBER} > > +.endif > > > COPYDIRS= \ > > hotspot/src/os/linux/launcher \ -- Greg Lewis Email : glewis@eyesbeyond.com Eyes Beyond Web : http://www.eyesbeyond.com Information Technology FreeBSD : glewis@FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100828213022.GA78573>