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

OpenVMS V7.3 & Dec ADA V3. 5A-23

Fridrik Marteinsson
Occasional Contributor

OpenVMS V7.3 & Dec ADA V3. 5A-23

We at Kogun hf. Iceland are migrating from old Vax-es to Alpha platform for a big military system.

We have the following problem in the new ACS (Dec ADA V3. 5A-23 with the Profess Devel. Option) on Alpha which works fine on the old ACS (Dec ADA V3.0A-9 without the Porfess. Devel. Option) on VAX. The old VMS is VAX/VMS V6.1 and the new one is VAX/VMS V7.3-1

The final thing done when creating a ADA library the system (our build tools) gather all .obj packets into a object libary
under subdirectory called BLD$OLB.DIR in a file called OBJLIB.OLB. This is done to get a faster linking process. The other methode (Slow) uses the .obj files directly.
On the Alpha system this fails because the Linker does not recognize the pakage names in the OBJLIB.OLB.
Whe I we look into the name list with the Librarian utility there is a significant difference, hence the old VAX system creates generatet names which the Linker recognizes but the Alpha system creates names using the real packages names from the Ada library above and the Linker does not find anything.

Slow linking works fine on the Alpha system, but we would like to know what is happening.

The first 3 lines from Library OBJLIB.OLB /list on the old VAX system and on the new Aplha are following





I notice in the heading of the list â Max. Key Length: is 31 for VAX but 128 for Alpha.

Regards F. Marteins
John Gillings
Honored Contributor

Re: OpenVMS V7.3 & Dec ADA V3. 5A-23


The difference in names is due to the change in maximum key length. The shorter limit meant that long names needed to be hashed ("mangled" to borrow the C++ term) in order to guarantee uniqueness. That is no longer necessary, so they are stored in clear text.

This difference should be transparent, provided all packages have been compiled with the same version.

I'm a bit puzzled by your assertion that linking is faster using an object library than directly linking all the object modules. Logic would say that using a library involves extra processing to search for symbol names, and therefore should take longer than simple "include this object file" operations. Also note that ADA object files can contain multiple object modules. Inserting the file into a library will decouple the modules, and may result in critical code missing from the final image because there are no link time references.

This kind of issue doesn't work well in this forum because it requires too much question/answer to diagnose the cause. Please log a case with your customer support centre, with a prepared example. Expect to be asked for the complete transcript of the compile and link commands, including the complete text of all error messages.
A crucible of informative mistakes