On 3/31/2014 12:48 PM, h.becker wrote:
On 03/31/2014 06:46 AM, John E. Malmberg wrote:This has the makefile changes needed to build from master and on VAX/VMS.In addition, vms_progname.c that is compatible as a VMS specific replacement for the progname.c that is used for several GNU projects. This variant of vms_progname.c has an additional feature that it temporarily creates a foreign command that make uses for a macro to represent the command that invoked make. This foreign command has no embedded spaces or dollar sign characters which could cause unexpected results if further string processing is done. The vms_exit() is similar to the /DEFINE=_POSIX_EXIT, except that it allows pass-through of VMS exit statuses of 8 or higher, and allows setting the SEVERITY and message inhibit settings for the encoded Posix status. The message inhibit bits prevents the DCL shell from re-displaying status messages that have already been displayed. Additional work needs to be done to convert POSIX encoded child exit statuses back to the original Unix status internally. This is usually handled by the /DEFINE=_POSIX_EXIT. We are not simply using the /DEFINE=_POSIX_EXIT as it does not support mixing the VMS exit codes and Unix exit codes, along with setting special VMS status bits.It seems I need more than this patch to compile a test version. It seems this needs to be applied on top of a previous patch, or?
I was missing the changed main.c and makeint.h. New patch includes them. This patch was based on a branch made directly from master.
Again, this looks like a lot of code to set the program name and to handle the exit code. And I'm still not convinced that defining a DCL symbol and deleting it at image exit is the right thing to do. As far as I can see, it can be simpler than that.
If you have the make variable be a MCR command, it has a space which can have side effects when if the resulting string is processed by other strings or macros.
With ODS-5 format filenames, the sys$filescan system service is the most reliable way detect and parse a VMS filename. This adds to the complexity. The other complexity is working around some bugs in how the C pre-main function renders the Unix format filenames.
Regards, -John
0001-VMS-progname-and-exit-handling-take-5.patch.gz
Description: application/gzip
_______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make