Operating System - OpenVMS
cancel
Showing results for 
Search instead for 
Did you mean: 

GNV make: error trying to re-execute

 
SOLVED
Go to solution
Maxy2
Advisor

GNV make: error trying to re-execute

I have a makefile (invoked from bash) that includes another file (a list of dependencies). The make process itself can update the dependencies file.

When the dependencies file changes, make is supposed to detect this and re-execute itself including the updated dependencies.

Instead, make attempts to re-execute, but does this instead:
make: execve(ec): make: no such file or directory

Here is a simple test makefile that ought to re-execute:

SHELL=/gnu/bin/bash
MAKE=/gnu/bin/make
.PHONY: dummy
makefile: dummy
touch $@


Here's what I get (output with debug flag included too):

bash$ make
touch Makefile
make: execve(ec): make: no such file or directory

bash$ make -d
GNU Make version 3.78.1, by Richard Stallman and Roland McGrath.
Built for VMS
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

Report bugs to .

Reading makefiles...
Reading makefile `Makefile'...
Updating makefiles....
Considering target file `Makefile'.
Considering target file `dummy'.
File `dummy' does not exist.
Finished prerequisites of target file `dummy'.
Must remake target `dummy'.
Successfully remade target file `dummy'.
Finished prerequisites of target file `Makefile'.
Prerequisite `dummy' does not exist.
Must remake target `Makefile'.
touch Makefile
Putting child 0x0012fc40 (Makefile) PID 55986 on the chain.
Live child 0x0012fc40 (Makefile) PID 55986
Got a SIGCHLD; 1 unreaped children.
Reaping winning child 0x0012fc40 PID 55986
Removing child 0x0012fc40 PID 55986 from chain.
Successfully remade target file `Makefile'.
Re-executing: make -d
make: execve(ec): make: no such file or directory
bash$


It looks like maybe make is having trouble invoking itself. Either it can't start the shell, or it isn't finding /gnu/bin/make.
4 REPLIES
Steven Schweda
Honored Contributor

Re: GNV make: error trying to re-execute

I know nothing, but if, as seems likely,
execve() expects a real path to "make", and
not just a name which lies somewhere on PATH,
then you might be able to work around the
problem by creating a link from "./make" to
the real thing.

> Either it can't start the shell, or it
> isn't finding /gnu/bin/make.

I read that complaint as execve() being
unable to find "make".

Knowing nothing, I'd guess that it's a bug in
some VMS-specific part of this "make" program.
Maxy2
Advisor

Re: GNV make: error trying to re-execute

Seems that the place to start is to have the newest GNV Version 2.1-2 installed on our system.
H.Becker
Honored Contributor
Solution

Re: GNV make: error trying to re-execute

Try /bin/make or /gnu/bin/make.or create an alias like
alias make=/bin/make

If you just use make, it looks like make doesn't correctly set up the path to the found make utility and then execve fails.

Whethere this is a bug in the GNV version of make or the make beats me. At least 3.78.1 is old and I wouldn't try to ccontact RMS because of this.
Maxy2
Advisor

Re: GNV make: error trying to re-execute

Yes, an alias fixed that issue