Re: Make recursion does not appear working in VMS

2014-03-13 Thread h.becker
On 03/13/2014 05:29 AM, John E. Malmberg wrote:
 Further tests show that the parallelism is not fully working on VMS, or
 not working as a Unix program would expect.

As far as I know, --jobs is not implemented for VMS, unfortunately I
can't point to an obvious line in the sources. It seems to be hidden in
#if[n]def VMS in job.c and vmsjobs.c. Silently explicitly or implicitly
reseting jobs to 1 isn't good.

To look at this, can you post or send (one of) the modified makefiles
for VMS?

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


Re: Make recursion does not appear working in VMS

2014-03-13 Thread John E. Malmberg

On 3/13/2014 4:19 AM, h.becker wrote:

On 03/13/2014 05:29 AM, John E. Malmberg wrote:

Further tests show that the parallelism is not fully working on VMS, or
not working as a Unix program would expect.


As far as I know, --jobs is not implemented for VMS, unfortunately I
can't point to an obvious line in the sources. It seems to be hidden in
#if[n]def VMS in job.c and vmsjobs.c. Silently explicitly or implicitly
reseting jobs to 1 isn't good.

To look at this, can you post or send (one of) the modified makefiles
for VMS?



Sorry for long lines, only a seconds before I have to run.

recurse line is wrapped in the e-mail client.
1.inc and 2.inc lines are wrapped in the e-mail client.

This is one of the files that fails for recursion.  I will have to send 
one that shows the parallelism failures later.



EAGLE del 1.inc;,2.inc;
EAGLE
EAGLE
EAGLE make -f /lcl_root/make/tests/work/features/parallelism.mk_2 -j4
THREE.inc
ONE.inc
TWO.inc
make: execve: make: no such file or directory
/lcl_root/make/tests/work/features/parallelism.mk_2:2: recipe for target 
'recurse' failed

make: *** [recurse] Error 0xbf2bffbc

Or if you prefer:

EAGLE del 1.inc;,2.inc;
EAGLE make -f [.work.features]parallelism.mk_2 -j4
THREE.inc
ONE.inc
TWO.inc
make: execve: make: no such file or directory
[.work.features]parallelism.mk_2:2: recipe for target 'recurse' failed
make: *** [recurse] Error 0xbf2bffbc


Directory LCL_ROOT:[make.tests.work.features]

parallelism.log_2;1 parallelism.mk_2;1

Total of 2 files.
EAGLE type LCL_ROOT:[make.tests.work.features]parallelism.mk_2

recurse : ; @$(MAKE) --no-print-directory -f 
/lcl_root/make/tests/work/features/

parallelism.mk_2 INC=yes all
all : 1 2 ; @echo success

INC = no
ifeq ($(INC),yes)
-include 1.inc 2.inc
endif
1.inc : ; @pipe echo ONE.inc ; sleep 2 ; echo TWO.inc ; define/user 
sys$$output $@ ; echo 1 : ; @pipe echo ONE ; sleep 2 ; echo TWO ; 
close sys$$output
2.inc : ; @pipe sleep 1 ; echo THREE.inc ; define/user sys$$output $@ ; 
echo 2: ; @pipe sleep 1 ; echo THREE ; close sys$$output



Regards,
-John


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


Re: Make recursion does not appear working in VMS

2014-03-13 Thread h.becker
On 03/13/2014 01:17 PM, John E. Malmberg wrote:
 EAGLE del 1.inc;,2.inc;
 EAGLE
 EAGLE
 EAGLE make -f /lcl_root/make/tests/work/features/parallelism.mk_2 -j4
 THREE.inc
 ONE.inc
 TWO.inc
 make: execve: make: no such file or directory
 /lcl_root/make/tests/work/features/parallelism.mk_2:2: recipe for target
 'recurse' failed
 make: *** [recurse] Error 0xbf2bffbc
 
 Or if you prefer:
 
 EAGLE del 1.inc;,2.inc;
 EAGLE make -f [.work.features]parallelism.mk_2 -j4
 THREE.inc
 ONE.inc
 TWO.inc
 make: execve: make: no such file or directory
 [.work.features]parallelism.mk_2:2: recipe for target 'recurse' failed
 make: *** [recurse] Error 0xbf2bffbc

It looks like execve uses argv[0] to run make.

With a VMS/DCL-style version of the Makefile and my mcr version of make
it seems to work:

$ del %.inc;*
$ mc [.make]mcr -f parallelism.mk_2 -j4
THREE.inc
ONE.inc
TWO.inc
ONE
TWO
THREE
success
$
$ del %.inc;*
$ mc [.make]mcr -nf parallelism.mk_2 -j4
mcr eisner$lda2:[usr_ods5.][becker_h.make.make]mcr.exe;1
--no-print-directory -f parallelism.mk_2 INC=yes all
THREE.inc
ONE.inc
TWO.inc
ONE
TWO
THREE
success
$

$ type parallelism.mk_2
recurse : ; @$(MAKE) --no-print-directory -f parallelism.mk_2 INC=yes all
all : 1 2 ; @write sys$$output success 

INC = no
ifeq ($(INC),yes)
-include 1.inc 2.inc
endif

1.inc : ; @pipe write sys$$output ONE.inc ; wait 0:0:2 ; write
sys$$output TWO.inc ; define sys$$output $@ ; write sys$$output 1 : ;
@pipe write sysoutput ONE ; wait 0:0:2 ; write sysoutput
TWO ; close sys$$output
2.inc : ; @pipe wait 0:0:1 ; write sys$$output THREE.inc ; define
sys$$output $@ ; write sys$$output 2: ; @pipe wait 0:0:1 ; write
sysoutput THREE ; close sys$$output

$


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