HP OpenVMS Systems

ask the wizard
Content starts here

Migrating from VAX C to Compaq C? VAXCRTL?

» close window

The Question is:

 
At my work we have an Alpha computer running OpenVMS 6.2.
 
I had a C program that worked and was running on an older VAX computer
running VMS version 5.5-2. It was compiled using VaxC and linked with
the following 2 libraries:
 
                       sys$library:vaxcrtl/lib
                       tcpware:ucx$ipc.olb/lib
 
I tried to bring this program onto the Alpha; I compiled with the
following line : cc/standard=vaxc filename    So far so good.
 
When I attempted to link, however, I ran into an error
 
%LINK-W-NUDFSYMS, 1 undefined symbol:
%LINK-I-UDFSYM,         SOCK
 
This has to be referring to the socket functions that I use in the code.
 
Under Alpha's Dec C I am using only one library to link:
 
        sys$library:vaxcrtl/lib
 
 
I went back to my vax and included the qualifiers /MAP=mapfile.map/FULL in the
 link command. This generated a mapping file. I then searched within the MAP
 file for the symbol SOCK. It did not appear on the vax/vms side but did appear
 as an unresolved symb
ol on the Alpha side.
 
The information that I got was nothing different than that which I knew before,
 namely that when I called various tcpip socket functions such as
socket()
socket_read()
socket_write()
socket_close()
 
all of which I was getting  (at least on vax/vms/vaxc)from a library
 tcpware:ucx$ipc.olb.
 
On the Alpha/openVMS/DecC system, I seem to need only the library
 sys$library:vaxcrtl for all these socket related symbols - that is all except
 SOCK which mysteriously appeared out of nowwhere.
 
I don't use the symbol SOCK and I don't know how to get rid of this
error. I've even tried to put in as dummy code :
 
#define SOCK 1
 
but the error persists. Any ideas? I appreciate you taking the time to read
 this. Thanks in advance.
 
 
Marv
 
 


The Answer is :

 
  Specification of the language RTL is not necessary with Compaq C.
  The specification of the VAX C RTL is particularly not necessary
  with Compaq C.
 
  Please see the OpenVMS FAQ, section SOFT5.  Also please see the
  Compaq C for OpenVMS VAX application migration documentation.
 
  The OpenVMS Wizard encourages an upgrade to Compaq C on the OpenVMS
  VAX system.  Compaq C can coexist with VAX C, and can -- with the
  installation of the C RTL kit provided with the compiler kit -- be
  installed on OpenVMS VAX V5.5-2.  (The RTL kit is necessary only
  on releases V5.5-2, V5.5-2H4, and V6.0.  The Compaq C RTL is included
  in OpenVMS VAX V6.1 and later, and ECO kits are available separately.)
 
  Please contact the maintainers of TCPware for information on the TCPware
  product and TCPware LINK specifications and requirements.
 

answer written or last revised on ( 4-MAY-2000 )

» close window