[an error occurred while processing this directive]
![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: I am trying to compile a program using TCPIP 5.0a and VAX C. (Compaq C will not compile the program, even in VAX C compatibility mode.) I am getting undefined symbol errors on all of the TCPIP socket routines (connect, gethostbyname, socket,etc). The TCPIP examples in TCPIP$EXAMPLES reference a library call SYS$LIBRARY:TCPIP$IPC.OLB. This library does not exist on my system. (The older UCX 4.2 does have a UCX$IPC.OLB, but TCPIP 5.0a does not.) Here is the options file I am using for linking.: tcpip$library:tcpip$lib.olb/lib (included just because I could not find TCPIP$IPC.OLB) sys$share:tcpip$ipc_shr.exe/share sys$share:vaxcrtl.exe/share I have searched through manuals, newsgroups, FAQs, etc. to no avail. It seems to me that support of VAX C was dropped with TCPIP 5.0a. Is this true? Mark The Answer is : Support for the VAX C compiler ended many years ago; the most recent version of the VAX C compiler (V3.2) was released back in early 1991. The VAX C compiler was not included in any Y2K investigations, nor has it been tested on any recent OpenVMS VAX releases -- the last OpenVMS VAX release where the VAX C compiler was typically expected to be in common use was circa OpenVMS VAX V5.5-2. The references to the object libraries in the comments of those TCP/IP programming examples clearly refers to their use in conjunction with VAX C, and the text further appears to be an erroneous (direct) translation of the older VAX C and UCX programming environments. (The OpenVMS Wizard has passed this problem report along to the TCP/IP Engineering team.) The OpenVMS Wizard encourages the use of the provided shareable images, and the use of the Compaq C build directions in the comments. The unspecified undefined symbol errors -- please remember to provide the full and unedited text of the error message(s) reported -- will typically result from a failure to include the necessary header files for the routine(s) in use during the source compilation, or (when a similar set of errors arises during the LINK operation), from a failure to use the appropriate /PREFIX setting on the source compilation. Information on the use of /PREFIX is included in the OpenVMS FAQ. An example of a build of one of the TCP/IP Services modules -- as the following module expressly and deliberately contains an ioctl routine, the function is explicitly excluded from the symbol prefixing that is normally performed: $ cc TCPIP$IOCTL_ROUTINE.C/prefix=except=ioctl $ link TCPIP$IOCTL_ROUTINE $ cc/vers Compaq C V6.2-006 on OpenVMS Alpha V7.2-1 $ And please note that an ioctl call exists in the current C libraries.
|