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:
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:
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:
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
all of which I was getting (at least on vax/vms/vaxc)from a library
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.
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.