HP OpenVMS Systemsask the wizard |
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.
|