Re: need help on "make -j" parameter, it will let the system hung easily.

2012-12-15 Thread Eli Zaretskii
> Date: Fri, 14 Dec 2012 20:37:54 +0400
> From: "Dmitry V. Levin" 
> 
> > > make: More parallel jobs (-jN) than this platform can handle 
> > > requested.
> > > make: Resetting to single job (-j1) mode.
> > 
> > I see no message like this in the current Make sources.  Maybe I'm
> > missing something.
> 
> That message comes from a vendor patched make, see
> http://pkgs.fedoraproject.org/cgit/make.git/plain/make-3.82-j8k.patch
> http://pkgs.fedoraproject.org/cgit/make.git/tree/make.spec#n291
> https://bugzilla.redhat.com/show_bug.cgi?id=142691
> https://bugzilla.redhat.com/show_bug.cgi?id=17374

Thanks.

I'd say this is a subtle bug in Make that should be solved in some
better way.  There's no relation whatsoever between the maximum length
of a pipe and the maximum number of parallel jobs that can be run on a
system, except an implementation detail of the GNU Make jobserver.
OTOH, I can easily imagine a system with more than 4K cores, where
such a limitation will really hurt.

___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: need help on "make -j" parameter, it will let the system hung easily.

2012-12-15 Thread Paul Smith
On Fri, 2012-12-14 at 17:07 +0200, Eli Zaretskii wrote:
> Does it even make sense to use -j with no arguments?  Should we
> perhaps remove that possibility, or have some internal sane limit,
> like twice the number of cores, say?

In general I'd say no, the current behavior is not ideal.  However I
don't want to remove the behavior.  I'd rather have the default, if
given no argument, choose a "sane" limit.  However, how does one detect
the number of cores on a system in a portable way?  It's easy enough on
Linux but...


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: need help on "make -j" parameter, it will let the system hung easily.

2012-12-15 Thread Dmitry V. Levin
On Sat, Dec 15, 2012 at 09:35:18AM -0500, Paul Smith wrote:
> On Fri, 2012-12-14 at 17:07 +0200, Eli Zaretskii wrote:
> > Does it even make sense to use -j with no arguments?  Should we
> > perhaps remove that possibility, or have some internal sane limit,
> > like twice the number of cores, say?
> 
> In general I'd say no, the current behavior is not ideal.  However I
> don't want to remove the behavior.  I'd rather have the default, if
> given no argument, choose a "sane" limit.  However, how does one detect
> the number of cores on a system in a portable way?  It's easy enough on
> Linux but...

gnulib has a nproc module that can "detect the number of processors":
http://git.savannah.gnu.org/cgit/gnulib.git/tree/modules/nproc
Judging from the number of #if's in its implementation it must be quite
portable. :)


-- 
ldv


pgp0F7IV2U4pb.pgp
Description: PGP signature
___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: need help on "make -j" parameter, it will let the system hung easily.

2012-12-15 Thread Eli Zaretskii
> From: Paul Smith 
> Cc: warner.w...@hp.com, Bug-make@gnu.org
> Date: Sat, 15 Dec 2012 09:35:18 -0500
> 
> On Fri, 2012-12-14 at 17:07 +0200, Eli Zaretskii wrote:
> > Does it even make sense to use -j with no arguments?  Should we
> > perhaps remove that possibility, or have some internal sane limit,
> > like twice the number of cores, say?
> 
> In general I'd say no, the current behavior is not ideal.  However I
> don't want to remove the behavior.  I'd rather have the default, if
> given no argument, choose a "sane" limit.  However, how does one detect
> the number of cores on a system in a portable way?  It's easy enough on
> Linux but...

It's also easy enough on MS-Windows.

___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: need help on "make -j" parameter, it will let the system hung easily.

2012-12-15 Thread Eli Zaretskii
> Date: Sat, 15 Dec 2012 19:08:06 +0400
> From: "Dmitry V. Levin" 
> 
> gnulib has a nproc module that can "detect the number of processors":
> http://git.savannah.gnu.org/cgit/gnulib.git/tree/modules/nproc
> Judging from the number of #if's in its implementation it must be quite
> portable. :)

But doesn't DTRT on Windows systems with more than 64 processors.

___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Possible bug with $(eval) and :=

2012-12-15 Thread Victor Shih
I've been using this thunk implementation as described
http://www.cakoose.com/wiki/gnu_make_thunks, but recently came upon an
anomaly on a different operating system.  Here's an example Makefile:


A = abcdefghijklmnop
B = $(eval B := $A)$B

test:
@echo [$B]
@echo [$B]


On cygwin it seems to work fine:
[abcdefghijklmnopqr]
[abcdefghijklmnopqr]


But on Mac 10.6 as well as Ubuntu 12.04, it returns:
[p]
[abcdefghijklmnop]


All of these environments are running make 3.82.

The length of the definitions of A and B matter, too.  Basically the first
expansion of $B truncates as many characters as the $(eval ...) definition
is long.  Very strange.

Am I missing something?


-- 
Victor Shih
blog.vicshih.com
___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: Possible bug with $(eval) and :=

2012-12-15 Thread Eldar Abusalimov
Victor,

A similar question was asked some time ago:
http://lists.gnu.org/archive/html/bug-make/2012-05/msg00014.html
Short answer: Yes, this is a bug, see here:
https://savannah.gnu.org/patch/?7534

Accordingly to the difference between Cygwin and other versions: I believe
the former has a newer version of Make (3.82.90 maybe), which doesn't have
this bug anymore.



2012/12/16 Victor Shih 

>
> I've been using this thunk implementation as described
> http://www.cakoose.com/wiki/gnu_make_thunks, but recently came upon an
> anomaly on a different operating system.  Here's an example Makefile:
>
>
> A = abcdefghijklmnop
> B = $(eval B := $A)$B
>
> test:
> @echo [$B]
> @echo [$B]
>
>
> On cygwin it seems to work fine:
> [abcdefghijklmnopqr]
> [abcdefghijklmnopqr]
>
>
> But on Mac 10.6 as well as Ubuntu 12.04, it returns:
> [p]
> [abcdefghijklmnop]
>
>
> All of these environments are running make 3.82.
>
> The length of the definitions of A and B matter, too.  Basically the first
> expansion of $B truncates as many characters as the $(eval ...) definition
> is long.  Very strange.
>
> Am I missing something?
>
>
> --
> Victor Shih
> blog.vicshih.com
>
> ___
> Bug-make mailing list
> Bug-make@gnu.org
> https://lists.gnu.org/mailman/listinfo/bug-make
>
>


-- 
Best regards,
Eldar Sh. Abusalimov
___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make