bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bug #41758] VMS Make incorrectly reports archives support present.


From: John E. Malmberg
Subject: Re: [bug #41758] VMS Make incorrectly reports archives support present.
Date: Wed, 14 May 2014 07:35:32 -0500
User-agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20130215 Thunderbird/17.0.3

On 5/3/2014 4:30 AM, h.becker wrote:
On 05/02/2014 03:17 PM, John E. Malmberg wrote:
Sounds reasonable.  I have not used image libraries in user mode code so
was not aware that they were also .olb.

Hmm, the VMS linker uses imagelib.olb and you probably linked against
shareable images from that library. So you may talk about something
else. To me it seems convenient to use image libraries.

I meant explicit use, not the implicit use where the linker handles things automatically.

Anyway, appended is a patch to the suggested patch for default.c. It
implements checking for the VMS libraries within make, using make functions.

Some notes:

To me it looks OK to use this complex make function calls. Maybe it can
be simplified. The other option is to write a new VMS specific function,
like $(vms_create_library LIBRARY,MEMBER), which expands to the "if
f$search ...".

That seems like a valid optimization. Because process creation on VMS is more expensive than on Unix, anytime a process creation can be avoided can be a significant optimization.

I'm not sure I understand why the previous code has the
'f$edit(...,"LOWERCASE")'. My change doesn't really LOWERCASE the
suffix, but it works on all lower- and uppercase suffixes.

The lowercase was needed to do the compare. I have switched to your functions and they are passing the test case after revising the image library to be an .OLB.

My local [.vms]library test script is now testing image libraries in addition to the other types as I have incorporated your examples into it.

I have the wildcard library processing coded and now all 10 [.features]archive tests are usually passing on VMS, including the one that uses a VPATH.

A few of them are intermittently failing, so I am not posting the patch yet until I isolate it and come up with a fix.

The test script is passing about 3 times in a row, and then fails either because an object module is replaced when it should not be, or is not replaced when it should be.

It appears that there is a problem somewhere in comparing of the library insertion timestamp and the VMS object module timestamp. Most of the time it works, but occasionally it fails.

I have instrumented the test makefile to log the timestamps that VMS sees, since that was trivial, and those timestamps are all as expected.

The next step is to have a test version of arscan.c start printing out the timestamps before and after the VMS local time to UNIX UTC conversion and build it as a standalone executable.

Unfortunately none of the built in make debug options will display the timestamps of the files as it considers the rules.

Regards,
-John





reply via email to

[Prev in Thread] Current Thread [Next in Thread]