|
|
The file header contains the 20 bytes of information shown in ``File header contents''. The last 2 bytes are flags that are used by ld and object file utilities.
File header contents
Bytes | Declaration | Name | Description |
---|---|---|---|
0-1 | unsigned short | f_magic | Magic number |
2-3 | unsigned short | f_nscns | Number of sections |
4-7 | long int | f_timdat | Time and date stamp indicating when the file was created, expressed as the number of elapsed seconds since 00:00:00 GMT, January 1, 1970 |
8-11 | long int | f_symptr | File pointer containing the starting address of the symbol table |
12-15 | long int | f_nsyms | Number of entries in the symbol table |
16-17 | unsigned short | f_opthdr | Number of bytes in the optional header |
18-19 | unsigned short | f_flags | Flags (see ``File header flags'') |
The magic number specifies the target machine on which the object file is executable.
The last 2 bytes of the file header are flags that
describe the type of the object file.
Currently defined flags are found in the header file filehdr.h
and are shown in
``File header flags''.
File header flags
Mnemonic | Flag | Meaning |
---|---|---|
F_RELFLG | 00001 | Relocation information stripped from the file |
F_EXEC | 00002 | File is executable (i.e., no unresolved external references) |
F_LNNO | 00004 | Line numbers stripped from the file |
F_LSYMS | 00010 | Local symbols stripped from the file |
F_AR16WR | 0000200 | 16-bit byte reversed word |
F_AR32WR | 0000400 | 32-bit byte reversed word |
The C structure declaration for the file header is shown below. This declaration may be found in the header file filehdr.h.
struct filehdr { unsigned short f_magic; /* magic number */ unsigned short f_nscns; /* number of section */long f_timdat; /* time and date stamp */
long f_symptr; /* file ptr to symbol table */
long f_nsyms; /* number entries in the symbol table */
unsigned short f_opthdr; /* size of optional header */
unsigned short f_flags; /* flags */ };
#define FILHDR struct filehdr #define FILHSZ sizeof(FILHDR)