NAME
crt0.o — execution startup routines
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(1)
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 program 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 initialized before the libraries that depend on them.
Terminators,
on the other hand, are invoked in the forward 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 program.
- __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.
AUTHOR
The features described in this entry originated from
AT*T UNIX
System III.
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