Discussion:
External References Not resolved to any User/System Library
(too old to reply)
Mia Oreskovic
2021-02-25 09:33:58 UTC
Permalink
I compiled with C compiler in Guardian environment on NSX-H program that is using following functions connect_nw, recv_nw, send_nw, socket_nw and socket_set_inet_name.
NonStop TCP/IP Programming Manual says to use those functions you need to include "in.h", "netdb.h" and "socket.h" which I did.
For example from manual:
socket_set_inet_name
The socket_set_inet_name function specifies the name of the NonStop TCP/IP or TCP6SAM process that thesocket library is going to open.
C Synopsis
#include "netdb.h"
void socket_set_inet_name (name_ptr);
char *name_ptr;

But after compiling when I try to run it I get this:

External References Not Resolved to Any User/System Library:
Prg: \TANDEM.$CERT.CPMN.HSM002 -> connect_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> recv_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> send_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> socket_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> socket_set_inet_name (PROC)
and program abends on calling
socket_set_inet_name(ip_process);

\TANDEM.$:1:108:1283121772 - *** Run-time Error 003 ***
\TANDEM.$:1:108:1283121772 - Instruction failure
\TANDEM.$:1:108:1283121772 - From main + %353, UC.00
\TANDEM.$:1:108:1283121772 - _MAIN + %31, UC.00

Has anyone had this problem and idea how to solve it ? I'm new to this and I would appreciate every help I get.
Keith Dick
2021-02-25 18:06:56 UTC
Permalink
I compiled with C compiler in Guardian environment on NSX-H program that is using following functions connect_nw, recv_nw, send_nw, socket_nw and socket_set_inet_name.
NonStop TCP/IP Programming Manual says to use those functions you need to include "in.h", "netdb.h" and "socket.h" which I did.
socket_set_inet_name
The socket_set_inet_name function specifies the name of the NonStop TCP/IP or TCP6SAM process that thesocket library is going to open.
C Synopsis
#include "netdb.h"
void socket_set_inet_name (name_ptr);
char *name_ptr;
External References Not Resolved to Any User/System Library: Di
Prg: \TANDEM.$CERT.CPMN.HSM002 -> connect_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> recv_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> send_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> socket_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> socket_set_inet_name (PROC)
and program abends on calling
socket_set_inet_name(ip_process);
\TANDEM.$:1:108:1283121772 - *** Run-time Error 003 ***
\TANDEM.$:1:108:1283121772 - Instruction failure
\TANDEM.$:1:108:1283121772 - From main + %353, UC.00
\TANDEM.$:1:108:1283121772 - _MAIN + %31, UC.00
Has anyone had this problem and idea how to solve it ? I'm new to this and I would appreciate every help I get.
Did you include directions in your compile or link commands to use one of the libraries specified in the Library Routines part of the TCP/IP Programming Manual? The problem clearly is that the linker was not told to use a library that contains the functions your are calling.

I guess an NSX-H system refers to some model of the NonStop X system, and the copy of the TCP/IP Programming Manual I have does not seem to mention the proper name for any system that recent. I see that you said you used the C compiler. Do you mean the old TNS C compiler (that produces code 100 object files), or did you really use the native C compiler CCOMP (that produces code 500 object files)? The library to use will depend on which compiler.

If you used the native mode CCOMP on a NonStop X system, I believe you should link with $SYSTEM.ZTCPIP.LNETINDN. That is a static linking library. If you want to use the DLL instead, I don't know off the top of my head how to tell the linker that. Maybe someone else will answer with that detail.

$SYSTEM.ZTCPIP.LNETINDN might only be appropriate for a CRE-independent program. I believe that is the default for the native mode C compiler on NonStop X, but I did not check to see whether that is true.
Mia Oreskovic
2021-03-08 18:18:34 UTC
Permalink
I compiled with C compiler in Guardian environment on NSX-H program that is using following functions connect_nw, recv_nw, send_nw, socket_nw and socket_set_inet_name.
NonStop TCP/IP Programming Manual says to use those functions you need to include "in.h", "netdb.h" and "socket.h" which I did.
socket_set_inet_name
The socket_set_inet_name function specifies the name of the NonStop TCP/IP or TCP6SAM process that thesocket library is going to open.
C Synopsis
#include "netdb.h"
void socket_set_inet_name (name_ptr);
char *name_ptr;
External References Not Resolved to Any User/System Library: Di
Prg: \TANDEM.$CERT.CPMN.HSM002 -> connect_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> recv_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> send_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> socket_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> socket_set_inet_name (PROC)
and program abends on calling
socket_set_inet_name(ip_process);
\TANDEM.$:1:108:1283121772 - *** Run-time Error 003 ***
\TANDEM.$:1:108:1283121772 - Instruction failure
\TANDEM.$:1:108:1283121772 - From main + %353, UC.00
\TANDEM.$:1:108:1283121772 - _MAIN + %31, UC.00
Has anyone had this problem and idea how to solve it ? I'm new to this and I would appreciate every help I get.
Did you include directions in your compile or link commands to use one of the libraries specified in the Library Routines part of the TCP/IP Programming Manual? The problem clearly is that the linker was not told to use a library that contains the functions your are calling.
I guess an NSX-H system refers to some model of the NonStop X system, and the copy of the TCP/IP Programming Manual I have does not seem to mention the proper name for any system that recent. I see that you said you used the C compiler. Do you mean the old TNS C compiler (that produces code 100 object files), or did you really use the native C compiler CCOMP (that produces code 500 object files)? The library to use will depend on which compiler.
If you used the native mode CCOMP on a NonStop X system, I believe you should link with $SYSTEM.ZTCPIP.LNETINDN. That is a static linking library. If you want to use the DLL instead, I don't know off the top of my head how to tell the linker that. Maybe someone else will answer with that detail.
$SYSTEM.ZTCPIP.LNETINDN might only be appropriate for a CRE-independent program. I believe that is the default for the native mode C compiler on NonStop X, but I did not check to see whether that is true.
I didn't include link command, but I did include pragme directive (extensions) a per TCP/IP manual( command C /IN in_source_file/ object file, extensions, symbols, runnable ). I'm using old TNS C compiler, which I regulary use to compile others C programs. I believe that H in NSX-H represents series of Non Stop X system. Can you give me examples of how to use $SYSTEM.ZTCPIP.LNETINDN to link libraries correctly?
Keith Dick
2021-03-08 19:47:46 UTC
Permalink
Post by Mia Oreskovic
I compiled with C compiler in Guardian environment on NSX-H program that is using following functions connect_nw, recv_nw, send_nw, socket_nw and socket_set_inet_name.
NonStop TCP/IP Programming Manual says to use those functions you need to include "in.h", "netdb.h" and "socket.h" which I did.
socket_set_inet_name
The socket_set_inet_name function specifies the name of the NonStop TCP/IP or TCP6SAM process that thesocket library is going to open.
C Synopsis
#include "netdb.h"
void socket_set_inet_name (name_ptr);
char *name_ptr;
External References Not Resolved to Any User/System Library: Di
Prg: \TANDEM.$CERT.CPMN.HSM002 -> connect_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> recv_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> send_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> socket_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> socket_set_inet_name (PROC)
and program abends on calling
socket_set_inet_name(ip_process);
\TANDEM.$:1:108:1283121772 - *** Run-time Error 003 ***
\TANDEM.$:1:108:1283121772 - Instruction failure
\TANDEM.$:1:108:1283121772 - From main + %353, UC.00
\TANDEM.$:1:108:1283121772 - _MAIN + %31, UC.00
Has anyone had this problem and idea how to solve it ? I'm new to this and I would appreciate every help I get.
Did you include directions in your compile or link commands to use one of the libraries specified in the Library Routines part of the TCP/IP Programming Manual? The problem clearly is that the linker was not told to use a library that contains the functions your are calling.
I guess an NSX-H system refers to some model of the NonStop X system, and the copy of the TCP/IP Programming Manual I have does not seem to mention the proper name for any system that recent. I see that you said you used the C compiler. Do you mean the old TNS C compiler (that produces code 100 object files), or did you really use the native C compiler CCOMP (that produces code 500 object files)? The library to use will depend on which compiler.
If you used the native mode CCOMP on a NonStop X system, I believe you should link with $SYSTEM.ZTCPIP.LNETINDN. That is a static linking library. If you want to use the DLL instead, I don't know off the top of my head how to tell the linker that. Maybe someone else will answer with that detail.
$SYSTEM.ZTCPIP.LNETINDN might only be appropriate for a CRE-independent program. I believe that is the default for the native mode C compiler on NonStop X, but I did not check to see whether that is true.
I didn't include link command, but I did include pragme directive (extensions) a per TCP/IP manual( command C /IN in_source_file/ object file, extensions, symbols, runnable ). I'm using old TNS C compiler, which I regulary use to compile others C programs. I believe that H in NSX-H represents series of Non Stop X system. Can you give me examples of how to use $SYSTEM.ZTCPIP.LNETINDN to link libraries correctly?
You can use the NETINDN library by adding a SEARCH pragma to the C compiler command line. It could look like this:

C / IN in_source_file / object_file; extensions, symbols, runnable, search $system.ztcpip.lnetindn

If I remember correctly, the TCP/IP manual named several libraries, and the correct one to use depends on whether you are using the CRE and which memory model you are using. Make sure you match all those things properly. If you have trouble understanding what combinations are suitable, ask again and we'll be happy to try to help.

It also is possible to compile the program without RUNNABLE and use the BIND utility to create a runnable program from the object file created by the compile. In that case, you would specify the library to use with one of the BIND commands, but if you are happy creating the runnable program directly from the C command, what I show above should be all you need.
Mia Oreskovic
2021-04-02 12:12:07 UTC
Permalink
Post by Keith Dick
Post by Mia Oreskovic
I compiled with C compiler in Guardian environment on NSX-H program that is using following functions connect_nw, recv_nw, send_nw, socket_nw and socket_set_inet_name.
NonStop TCP/IP Programming Manual says to use those functions you need to include "in.h", "netdb.h" and "socket.h" which I did.
socket_set_inet_name
The socket_set_inet_name function specifies the name of the NonStop TCP/IP or TCP6SAM process that thesocket library is going to open.
C Synopsis
#include "netdb.h"
void socket_set_inet_name (name_ptr);
char *name_ptr;
External References Not Resolved to Any User/System Library: Di
Prg: \TANDEM.$CERT.CPMN.HSM002 -> connect_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> recv_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> send_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> socket_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> socket_set_inet_name (PROC)
and program abends on calling
socket_set_inet_name(ip_process);
\TANDEM.$:1:108:1283121772 - *** Run-time Error 003 ***
\TANDEM.$:1:108:1283121772 - Instruction failure
\TANDEM.$:1:108:1283121772 - From main + %353, UC.00
\TANDEM.$:1:108:1283121772 - _MAIN + %31, UC.00
Has anyone had this problem and idea how to solve it ? I'm new to this and I would appreciate every help I get.
Did you include directions in your compile or link commands to use one of the libraries specified in the Library Routines part of the TCP/IP Programming Manual? The problem clearly is that the linker was not told to use a library that contains the functions your are calling.
I guess an NSX-H system refers to some model of the NonStop X system, and the copy of the TCP/IP Programming Manual I have does not seem to mention the proper name for any system that recent. I see that you said you used the C compiler. Do you mean the old TNS C compiler (that produces code 100 object files), or did you really use the native C compiler CCOMP (that produces code 500 object files)? The library to use will depend on which compiler.
If you used the native mode CCOMP on a NonStop X system, I believe you should link with $SYSTEM.ZTCPIP.LNETINDN. That is a static linking library. If you want to use the DLL instead, I don't know off the top of my head how to tell the linker that. Maybe someone else will answer with that detail.
$SYSTEM.ZTCPIP.LNETINDN might only be appropriate for a CRE-independent program. I believe that is the default for the native mode C compiler on NonStop X, but I did not check to see whether that is true.
I didn't include link command, but I did include pragme directive (extensions) a per TCP/IP manual( command C /IN in_source_file/ object file, extensions, symbols, runnable ). I'm using old TNS C compiler, which I regulary use to compile others C programs. I believe that H in NSX-H represents series of Non Stop X system. Can you give me examples of how to use $SYSTEM.ZTCPIP.LNETINDN to link libraries correctly?
C / IN in_source_file / object_file; extensions, symbols, runnable, search $system.ztcpip.lnetindn
If I remember correctly, the TCP/IP manual named several libraries, and the correct one to use depends on whether you are using the CRE and which memory model you are using. Make sure you match all those things properly. If you have trouble understanding what combinations are suitable, ask again and we'll be happy to try to help.
It also is possible to compile the program without RUNNABLE and use the BIND utility to create a runnable program from the object file created by the compile. In that case, you would specify the library to use with one of the BIND commands, but if you are happy creating the runnable program directly from the C command, what I show above should be all you need.
Thanks for the advice to use bind utiliy. I've managed to solve the issue.

Regards,
Mia

Kannan MJ
2021-02-26 05:12:36 UTC
Permalink
I compiled with C compiler in Guardian environment on NSX-H program that is using following functions connect_nw, recv_nw, send_nw, socket_nw and socket_set_inet_name.
NonStop TCP/IP Programming Manual says to use those functions you need to include "in.h", "netdb.h" and "socket.h" which I did.
socket_set_inet_name
The socket_set_inet_name function specifies the name of the NonStop TCP/IP or TCP6SAM process that thesocket library is going to open.
C Synopsis
#include "netdb.h"
void socket_set_inet_name (name_ptr);
char *name_ptr;
Prg: \TANDEM.$CERT.CPMN.HSM002 -> connect_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> recv_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> send_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> socket_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> socket_set_inet_name (PROC)
and program abends on calling
socket_set_inet_name(ip_process);
\TANDEM.$:1:108:1283121772 - *** Run-time Error 003 ***
\TANDEM.$:1:108:1283121772 - Instruction failure
\TANDEM.$:1:108:1283121772 - From main + %353, UC.00
\TANDEM.$:1:108:1283121772 - _MAIN + %31, UC.00
Has anyone had this problem and idea how to solve it ? I'm new to this and I would appreciate every help I get.
Please check the bind command that makes this executable to confirm that it includes one of the following libraries depending on large or wide mode of compilation:

Large: LIBINETL
Wide: LIBINETW
Large: LNETINDL
Wide: LNETINDW

These libraries contains the above unsatisfied symbols in it. Use the appropriate one.

Regards,
Kannan.MJ
Mia Oreskovic
2021-04-02 12:11:01 UTC
Permalink
Post by Kannan MJ
I compiled with C compiler in Guardian environment on NSX-H program that is using following functions connect_nw, recv_nw, send_nw, socket_nw and socket_set_inet_name.
NonStop TCP/IP Programming Manual says to use those functions you need to include "in.h", "netdb.h" and "socket.h" which I did.
socket_set_inet_name
The socket_set_inet_name function specifies the name of the NonStop TCP/IP or TCP6SAM process that thesocket library is going to open.
C Synopsis
#include "netdb.h"
void socket_set_inet_name (name_ptr);
char *name_ptr;
Prg: \TANDEM.$CERT.CPMN.HSM002 -> connect_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> recv_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> send_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> socket_nw (PROC)
Prg: \TANDEM.$CERT.CPMN.HSM002 -> socket_set_inet_name (PROC)
and program abends on calling
socket_set_inet_name(ip_process);
\TANDEM.$:1:108:1283121772 - *** Run-time Error 003 ***
\TANDEM.$:1:108:1283121772 - Instruction failure
\TANDEM.$:1:108:1283121772 - From main + %353, UC.00
\TANDEM.$:1:108:1283121772 - _MAIN + %31, UC.00
Has anyone had this problem and idea how to solve it ? I'm new to this and I would appreciate every help I get.
Large: LIBINETL
Wide: LIBINETW
Large: LNETINDL
Wide: LNETINDW
These libraries contains the above unsatisfied symbols in it. Use the appropriate one.
Regards,
Kannan.MJ
This was very helpful. Using: LNETINDL with bind solved the problem with externals. Thank you.

Regards,
Mia
Continue reading on narkive:
Loading...