Re: [Fink-users] setting number of CPUs for compilation
On 04/11/2009, at 17:36, Nathaniel Echols wrote: > On Wed, Nov 4, 2009 at 11:58 AM, Daniel Macks > wrote: >> Fink has an internal setting to allow propagation of the MAKEFLAGS >> shell environment variable into the build process (fink usually >> blanks >> this field as part of its environment-consistency policy). That way a >> user can decide what to do, but has to do it explicitly (and with >> knowledge that some packages may have build problems (but if they are >> reported, those packages can expliticly re-set -j1)). There's info on >> Fink Wiki I think. > > The first reply I got said that Fink wipes out all environment > variables. > Whether or not this is the case, setting MAKEFLAGS has no impact on > the > compilation of gcc44. Hello, Nathaniel. Fink's development branch now reads a user configurable fink.conf entry that specifies the maximum number of simultaneous build jobs, i.e., the N in MAKEFLAGS=-jN. This is an opt- in feature: package maintainers will have to change their package descriptions in order to enable that setting – some of the maintainers are already testing it and we've got positive feedback, so it's quite probable that it will be available in fink's next release. Cheers, -- monipol http://finkers.wordpress.com Submitting a Fink bug report? Read this: http://www.finkproject.org/doc/netiquette/index.php http://finkers.wordpress.com/2009/06/03/bug-reports/ -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july ___ Fink-users mailing list Fink-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fink-users
Re: [Fink-users] setting number of CPUs for compilation
On Wed, Nov 04, 2009 at 12:36:01PM -0700, Nathaniel Echols wrote: > On Wed, Nov 4, 2009 at 11:58 AM, Daniel Macks wrote: > > > Fink has an internal setting to allow propagation of the MAKEFLAGS > > shell environment variable into the build process (fink usually blanks > > this field as part of its environment-consistency policy). That way a > > user can decide what to do, but has to do it explicitly (and with > > knowledge that some packages may have build problems (but if they are > > reported, those packages can expliticly re-set -j1)). There's info on > > Fink Wiki I think. > > > > The first reply I got said that Fink wipes out all environment variables. > Whether or not this is the case, setting MAKEFLAGS has no impact on the > compilation of gcc44. Yes, that's exactly what I said: you have to tweak the internal "wipe env vars" setting to allow MAKEFLAGS to propagate. First google hit for: fink makeflags tells you all about it (check the cached copy). However, IIRC, gcc* is a little special in its build system, not sure it's the best test case. dan -- Daniel Macks dma...@netspace.org http://www.netspace.org/~dmacks -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july ___ Fink-users mailing list Fink-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fink-users
Re: [Fink-users] setting number of CPUs for compilation
On Wed, Nov 4, 2009 at 11:58 AM, Daniel Macks wrote: > Fink has an internal setting to allow propagation of the MAKEFLAGS > shell environment variable into the build process (fink usually blanks > this field as part of its environment-consistency policy). That way a > user can decide what to do, but has to do it explicitly (and with > knowledge that some packages may have build problems (but if they are > reported, those packages can expliticly re-set -j1)). There's info on > Fink Wiki I think. > The first reply I got said that Fink wipes out all environment variables. Whether or not this is the case, setting MAKEFLAGS has no impact on the compilation of gcc44. -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july___ Fink-users mailing list Fink-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fink-users
Re: [Fink-users] setting number of CPUs for compilation
On Nov 4, 2009, at 10:58 AM, Daniel Macks wrote: > There's info on > Fink Wiki I think. Or there would be, if the fink wiki was functional right now. -- Dave -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july ___ Fink-users mailing list Fink-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fink-users
Re: [Fink-users] setting number of CPUs for compilation
On Wed, Nov 04, 2009 at 11:55:10AM -0700, Nathaniel Echols wrote: > On Wed, Nov 4, 2009 at 11:43 AM, monipol wrote: > > > Fink itself does not set -j in MAKEFLAGS because, as Jack has explained, > > parallel make is not supported by every package. Fink does use -j1 in make > > install, though. Packagers are free to test -j in their packages and enable > > it via SetMAKEFLAGS in package descriptions. It is also possible that some > > packages enable -j by default without the intervention or knowledge of the > > package maintainer. > > > > In summary, building with make -j is currently a package dependent feature > > and, if the maintainer intentionally enabled it, the package description > > (.info) file or patch (.patch) file will tell you that. Are you seeing this > > behaviour in every package or only a few of them? > > > > I don't think it's every package, but I know for sure that gcc44 does this. Fink has an internal setting to allow propagation of the MAKEFLAGS shell environment variable into the build process (fink usually blanks this field as part of its environment-consistency policy). That way a user can decide what to do, but has to do it explicitly (and with knowledge that some packages may have build problems (but if they are reported, those packages can expliticly re-set -j1)). There's info on Fink Wiki I think. dan -- Daniel Macks dma...@netspace.org http://www.netspace.org/~dmacks -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july ___ Fink-users mailing list Fink-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fink-users
Re: [Fink-users] setting number of CPUs for compilation
On Wed, Nov 4, 2009 at 11:43 AM, monipol wrote: > Fink itself does not set -j in MAKEFLAGS because, as Jack has explained, > parallel make is not supported by every package. Fink does use -j1 in make > install, though. Packagers are free to test -j in their packages and enable > it via SetMAKEFLAGS in package descriptions. It is also possible that some > packages enable -j by default without the intervention or knowledge of the > package maintainer. > > In summary, building with make -j is currently a package dependent feature > and, if the maintainer intentionally enabled it, the package description > (.info) file or patch (.patch) file will tell you that. Are you seeing this > behaviour in every package or only a few of them? > I don't think it's every package, but I know for sure that gcc44 does this. -Nat -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july___ Fink-users mailing list Fink-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fink-users
Re: [Fink-users] setting number of CPUs for compilation
On 04/11/2009, at 16:27, Nathaniel Echols wrote: > On Wed, Nov 4, 2009 at 7:34 AM, Jack Howarth > wrote: > >> Keep in mind that not all source packages support >> a parallel make. If I recall correctly, openmotif for >> example has issues. It would be better to encourage >> package maintainers to simply enable the parallel >> make in their info files by using something like... >> >> num_cpu=$(echo `sysctl -n hw.ncpu`) >> make -j $num_cpu > > Automatically using every CPU as a default behavior is fine (I'm > adding > something similar at work for installers we distribute), but it's > obnoxious > to be unable to override this, and that code snippet has this > problem. It > isn't at all clear to me where the instruction is coming from in the > current > setup - I looked at the code in /sw/lib/perl5/Fink and the only > lines that > call 'make' do so either with '-j1' or no extra flags, and I didn't > see > anything else setting MAKEFLAGS. So are individual packages doing > this > already, or has GNU make changed to parallelize automatically, or am I > missing something? Any mechanism for setting the max. # of CPUs is > fine - > config file, command-line argument, environment variable - would be > acceptable. Fink itself does not set -j in MAKEFLAGS because, as Jack has explained, parallel make is not supported by every package. Fink does use -j1 in make install, though. Packagers are free to test -j in their packages and enable it via SetMAKEFLAGS in package descriptions. It is also possible that some packages enable -j by default without the intervention or knowledge of the package maintainer. In summary, building with make -j is currently a package dependent feature and, if the maintainer intentionally enabled it, the package description (.info) file or patch (.patch) file will tell you that. Are you seeing this behaviour in every package or only a few of them? Cheers, -- monipol http://finkers.wordpress.com Submitting a Fink bug report? Read this: http://www.finkproject.org/doc/netiquette/index.php http://finkers.wordpress.com/2009/06/03/bug-reports/ -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july ___ Fink-users mailing list Fink-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fink-users
Re: [Fink-users] setting number of CPUs for compilation
On Wed, Nov 4, 2009 at 7:34 AM, Jack Howarth wrote: > Keep in mind that not all source packages support > a parallel make. If I recall correctly, openmotif for > example has issues. It would be better to encourage > package maintainers to simply enable the parallel > make in their info files by using something like... > > num_cpu=$(echo `sysctl -n hw.ncpu`) > make -j $num_cpu > Automatically using every CPU as a default behavior is fine (I'm adding something similar at work for installers we distribute), but it's obnoxious to be unable to override this, and that code snippet has this problem. It isn't at all clear to me where the instruction is coming from in the current setup - I looked at the code in /sw/lib/perl5/Fink and the only lines that call 'make' do so either with '-j1' or no extra flags, and I didn't see anything else setting MAKEFLAGS. So are individual packages doing this already, or has GNU make changed to parallelize automatically, or am I missing something? Any mechanism for setting the max. # of CPUs is fine - config file, command-line argument, environment variable - would be acceptable. -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july___ Fink-users mailing list Fink-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fink-users
Re: [Fink-users] setting number of CPUs for compilation
Keep in mind that not all source packages support a parallel make. If I recall correctly, openmotif for example has issues. It would be better to encourage package maintainers to simply enable the parallel make in their info files by using something like... num_cpu=$(echo `sysctl -n hw.ncpu`) make -j $num_cpu after testing that this form of build is supported for their sources. -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july ___ Fink-users mailing list Fink-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fink-users
Re: [Fink-users] setting number of CPUs for compilation
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Nathaniel Echols wrote: > Is there any way to do this? It is automatically using every core on my > workstation, and it gets a little sluggish when this happens. I'd > prefer to limit it to 6 or 7, but setting MAKEFLAGS="-j6" didn't work, > and Google hasn't turned up any more ideas so far. > > thanks, > Nat > > Fink deliberately turns off your environment settings. There's a way to turn this on which involves a bit of tweaking in the fink code itself; unfortunately the wiki's down and I don't remember exactly what is needed, but hopefully someone here will have that information. - -- Alexander Hansen Fink User Liaison -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkrwCh0ACgkQB8UpO3rKjQ9nVgCgoOTcKTUneGULJBKCF2XRACor Ee8AnjJJ19/GW4KjLkQYIxVLWBEd4x/5 =OHFV -END PGP SIGNATURE- -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference ___ Fink-users mailing list Fink-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fink-users