crt0_ia.3 (2010 09)

c
crt0_ia(3)
Integrity Systems Only
crt0_ia(3)
NAME
crt0_ia: crt0.o - execution startup routines for Integrity systems
SYNOPSIS
Remarks
This manpage describes
crt0.o for Integrity systems. For
crt0.o on PA-RISC systems, see
crt0_pa (3).
DESCRIPTION
The C, aC++, and FORTRAN compilers link in the object file
crt0.o for statically-bound programs to
provide startup capabilities and environments for program execution. It contains startup code that must
be linked using
ld to every statically-bound program. In a dynamically linked program (the default
method), the crt0.o object file is not used, and all actions normally associated with it are instead done
by the dynamic loader dld.so (5).
crt0.o processes initializers and terminators . Initializers are routines that are called before the pro-
gram entry point and terminators are routines that are called when the program terminates via the
exit
routine. Initializers are invoked in reverse order of the link line so that dependent libraries are initial-
ized before the libraries that depend on them. Terminators, on the other hand, are invoked in the for-
ward order.
crt0.o does not define any variables. It, however, sets the following global variables:
_ _argc A variable of type long containing the number of arguments.
_ _argv An array of character pointers to the arguments themselves.
_environ, __envp
An array of character pointers to the environment in which the program will
run. This array is terminated by a null pointer.
_SYSTEM_ID A variable of type long containing the system id value for an executable pro-
gram.
__tls_size A variable of type long containing the requested thread local storage size.
This variable is initialized with data from the kernel.
__load_info A variable of type void * containing load information passed from the kernel.
__gp A variable of type void * whose value equals to the global pointer.
A symbol named
__gp is also declared in <machine/sys/uregs.h>
as an
enumeration constant, and is incompatible with the declaration in
<crt0.h>.
In order to include both header files, it is necessary to define the macro
__UREGS_SKIP__GP
before including <machine/sys/uregs.h>. This
will force the
<machine/sys/uregs.h>
header file to omit the conflicting
definition of
__gp. The enumeration constant __r1 is equivalent to __gp in
that context, and may be used instead. See ttrace (2).
AUTHOR
The features described in this entry originated from AT&T UNIX System III.
FILES
crt0.h
SEE ALSO
System Tools
aCC(1) invoke the HP-UX aC++ compiler
cc(1) invoke the HP-UX C compiler
dld.so (5) the dynamic loader
exec(2) execute a file
f90(1) invoke the HP-UX FORTRAN compiler
ld(1) invoke the link editor
Miscellaneous
end(3C) symbol of the last locations in program
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (2 pages)