Guardian Procedure Calls Reference Manual
Table 37 error-detail Codes for Process Creation Errors 12, 13, 70, 76, 84, and 3xx (continued)
Descriptionerror-detail
The p_flags in the ELF header for the resident text header are not as expected; the file may be corrupt.73
The loadfile has resident text, but no data constant segment, and is not marked data_resident. This
combination is not supported.
74
The DLL has callable functions but also has unprotected data. This is not supported.75
An address to be stored into a relocation site does not fit in 32 bits.76
The loadfile uses the 64-bit data model. The 64-bit data model is not supported on this system.77
The loadfile is an import library or implicit DLL, not a program, ordinary DLL, or public DLL.78
General Considerations
• Partially qualified file names are resolved using the contents of the caller's =_DEFAULTS
DEFINE. If a node name is not present in either the file name or the appropriate attribute of
the DEFINE, the resolved name will include the caller's node.
See below for details on resolution of specific file-name parameters.
• Creation of the backup of a named process pair
If the backup of a named process pair is created, the backup process becomes the "creator"
or mom of the primary (that is, of the caller to PROCESS_LAUNCH_) and the primary becomes
the mom of the newly created backup process. See the discussions of mom process and
ancestor process in the Guardian Programmer's Guide.
• Library considerations
A "user library" is an object file containing one or more procedures. Unlike a program, it
contains no main procedure (no program entry point). Native user libraries can contain global
instance data; TNS user libraries cannot.
In a TNS process, unresolved symbols in the program are resolved first in the user library, if
any, and then in the system library.
In a non-PIC native process (TNS/R only), a user library is a shared runtime library (SRL);
unresolved symbols in the program are resolved first in the user library, if any, then in any
other SRLs loaded with the program, and finally in the native system library. Symbols bound
at link time to a specific named SRL will be resolved only in that SRLs at load time.
In a PIC process, a user library is a dynamic-link library (DLL); unresolved symbols in the
program are resolved first in the user library, if any, then in any other DLLs loaded with the
program, and finally in the native system library. On TNS/E systems, the “native system
library” is the set of implicit DLLs. At load time, symbols are bound to the first definition found
in the search list of the program.
If no library specification is provided (or Z^LIBRARY^NAME is 0), the process runs with
whatever library file, if any, is specified in the program file. Z^LIBRARY^NAME and positive
Z^LIBARARY^NAME^LEN specify a library file name. Z^LIBRARY^NAME^LEN of -1 specifies
that no library is used. If the library specification differs from what is recorded in the program
file, the process must have write access to the program file. For a TNS or non-PIC native
process, a different library specification used in a successful PROCESS_LAUNCH_ invocation
replaces the one in the program file; if an instance of the program is already running that
replacement cannot occur and a library conflict error is reported. For a PIC process, the library
specification in the program file is not altered, so multiple processes can be running the same
program with different libraries simultaneously.
The association of a library with a program file can be recorded in the program file by the
Binder or linker.
PROCESS_LAUNCH_ Procedure 1073