HP-UX Reference (11i v1 00/12) - 4 File Formats (vol 8)

__________________________________________________________________________________________________________________________________________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________
STANDARD Printed by: Nora Chuang [nchuang] STANDARD
/build/1111/BRICK/man4/!!!intro.4
________________________________________________________________
___ ___
a
a.out(4) a.out(4)
unsigned int unloadable_sp_location; /* file ptr to debug info */
unsigned int unloadable_sp_size; /* size of debug info */
unsigned int checksum; /* header checksum */
};
The timestamp is a two-word structure as shown below. If unused, both fields are zero.
struct sys_clock {
unsigned int secs;
unsigned int nanosecs;
};
Auxiliary Headers
The auxiliary headers are contained in a single contiguous area in the file, and are located by a pointer in
the file header. Auxiliary headers are used for two purposes: to attach users version and copyright strings
to an object le, and to contain the information needed to load an executable program. In an executable
program, the HP-UX auxiliary header must precede all other auxiliary headers. The following declarations
are found in <aouthdr.h> .
struct aux_id {
unsigned int mandatory : 1; /* linker must understand aux hdr info */
unsigned int copy : 1; /* copy aux hdr without modification */
unsigned int append : 1; /* merge multiple entries of same type */
unsigned int ignore : 1; /* ignore aux hdr if type unknown */
unsigned int reserved : 12; /* reserved */
unsigned int type : 16; /* aux hdr type */
unsigned int length; /* sizeof rest of aux hdr */
};
/* Values for the aux_id.type field */
#define HPUX_AUX_ID 4
#define VERSION_AUX_ID 6
#define COPYRIGHT_AUX_ID 9
#define SHLIB_VERSION_AUX_ID 10
struct som_exec_auxhdr { /* HP-UX auxiliary header */
struct aux_id som_auxhdr; /* aux header id */
long exec_tsize; /* text size */
long exec_tmem; /* start address of text */
long exec_tfile; /* file ptr to text */
long exec_dsize; /* data size */
long exec_dmem; /* start address of data */
long exec_dfile; /* file ptr to data */
long exec_bsize; /* bss size */
long exec_entry; /* address of entry point */
long exec_flags; /* loader flags */
long exec_bfill; /* bss initialization value */
};
/* Values for exec_flags */
#define TRAP_NIL_PTRS 01
struct user_string_aux_hdr { /* Version string auxiliary header */
struct aux_id header_id; /* aux header id */
unsigned int string_length; /* strlen(user_string) */
char user_string[1]; /* user-defined string */
};
struct copyright_aux_hdr { /* Copyright string auxiliary header */
struct aux_id header_id; /* aux header id */
unsigned int string_length; /* strlen(user_string) */
char copyright[1]; /* user-defined string */
};
struct shlib_version_aux_hdr {
struct aux_id header_id; /* aux header id */
short version; /* version number */
Section 44 3 HP-UX Release 11i: December 2000
___
___