Re: Make recursion does not appear working in VMS
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
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
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