Operating System - OpenVMS
1832872 Members
2631 Online
110048 Solutions
New Discussion

Re: VMS version 8.2 and VAXCRTL

 
SOLVED
Go to solution
Doug Stracey
Occasional Advisor

VMS version 8.2 and VAXCRTL

Afternoon,
This may have changed many years ago but I can't find the references. We link to a number of routines (strlen, Strcpy, ATOI etc) that were in the VAXCRTL.OLB.
Since we migrated to an integrity box running vms version 8.2 they seem to have "dispappeared".
Clues please ?

thanks
8 REPLIES 8
Arch_Muthiah
Honored Contributor

Re: VMS version 8.2 and VAXCRTL

Doug,

The shareable images VAXCRTL.EXE and VAXCRTLG.EXE do not exist on OpenVMS Alpha and I64 systems.

The only C RTL shareable image is in OpenVMS/IA64 is LIBRARY:DECC$SHR.EXE
and
ALPHA$LIBRARY:DECC$SHR.EXE (ALPHA ONLY) which the linker automatically finds through IMAGELIB.OLB.

The complete HP C Run-Time Library (C RTL) needed for use with the HP C and C++ compilers is distributed with the OpenVMS Alpha and I64 operating systems in both shared image and object module library form.

Archunan

Regards
Archie
Doug Stracey
Occasional Advisor

Re: VMS version 8.2 and VAXCRTL


Thanks for the reply - are you saying I should have the vaxcrtl.olb ?
Steven Schweda
Honored Contributor

Re: VMS version 8.2 and VAXCRTL

Using DEC/Compaq/HP C, one doesn't normally
link with any VAXC*.OLB libraries. A bare
LINK command normally does the job (using
SYS$LIBRARY:DECC$CRTL.EXE, I assume).

How are you compiling and linking?
Doug Stracey
Occasional Advisor

Re: VMS version 8.2 and VAXCRTL

Afternoon,
The program is written in VAX Basic and macro - no C code at all. So in the link command was a "sys$library:vaxcrtl.olb/lib"

Thanks
Arch_Muthiah
Honored Contributor

Re: VMS version 8.2 and VAXCRTL

Doug,

No VAXCRTL comes with I64/openVMS. You don't need to VAXCRTL.OLB.

I hope you have latest C/C++ compiler (v7.1) . With these compiler. Just the
$ LINK CProg -- command will automatically searches IMAGELIB.OLB to find DECC$SHR.EXE and resolves all C RTL references in your C code.

Even you can deassign LNK$LIBRARY logicals, because linking with the shareable image is more convenient than linking with the HP C RTL object libraries.

Archunan
Regards
Archie
Doug Stracey
Occasional Advisor

Re: VMS version 8.2 and VAXCRTL

Imagelib.olb has a number of modules all with the name starting with DECC$... for example DECC$STRLEN - the old VAXCRTL had names like "strlen" (no decc$). Do I assume these are the same routines and we have to change all our call to DECC$...
Arch_Muthiah
Honored Contributor
Solution

Re: VMS version 8.2 and VAXCRTL

Hi Doug,

you did not mention about that you are using BASIC. sys$library:vaxcrtl.olb is for old version of OS and C compiler.

Anyway as I mentioned earlier that OpenVMS 8.2 comes with IMAGELIB.OLB, which has all RTL functions defined.

I would suggest you can go ahead compile and link, no need to specify any *.OLB seperately.

Also, the new RTL comesup with new and modified RTL routines (arguments), you will have to change modify all those RTL your program calls.

Archunan
Regards
Archie
Doug Stracey
Occasional Advisor

Re: VMS version 8.2 and VAXCRTL


This works