.\"Copyright (c) 1999 Jeroen Ruigrok van der Werven
.\"All rights reserved.
.\"
+.\" %%%LICENSE_START(PERMISSIVE_MISC)
.\"Redistribution and use in source and binary forms, with or without
.\"modification, are permitted provided that the following conditions
.\"are met:
.\"LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\"OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\"SUCH DAMAGE.
+.\" %%%LICENSE_END
.\"
.\" $FreeBSD: src/share/man/man5/elf.5,v 1.21 2001/10/01 16:09:23 ru Exp $
.\"
.\" 2007-10-11, Mike Frysinger <vapier@gentoo.org>, various fixes
.\" 2007-12-08, mtk, Converted from mdoc to man macros
.\"
-.TH ELF 5 2010-06-19 "Linux" "Linux Programmer's Manual"
+.TH ELF 5 2013-04-17 "Linux" "Linux Programmer's Manual"
.SH NAME
elf \- format of Executable and Linking Format (ELF) files
.SH SYNOPSIS
size and alignment guidelines for the relevant class.
If necessary,
data structures contain explicit padding to ensure 4-byte alignment
-for 4-byte objects, to force structure sizes to a multiple of 4, etc.
+for 4-byte objects, to force structure sizes to a multiple of 4, and so on.
.PP
The ELF header is described by the type
.I Elf32_Ehdr
.TP
.PD 0
.BR EI_VERSION
-The version number of the ELF specification:
+The seventh byte is the version number of the ELF specification:
.\" .Bl -tag -width "EV_CURRENT" -compact
.RS 12
.TP 14
.\".El
.TP
.BR EI_OSABI
-This byte identifies the operating system
+The eighth byte identifies the operating system
and ABI to which the object is targeted.
Some fields in other ELF structures have flags
and values that have platform-specific meanings;
the interpretation of those fields is determined by the value of this byte.
-E.g.:
+For example:
.\" .Bl -tag -width "ELFOSABI_STANDALONE" -compact
.RS 12
.TP 20
.RE
.TP
.BR EI_ABIVERSION
-This byte identifies the version of the ABI
+The ninth byte identifies the version of the ABI
to which the object is targeted.
This field is used to distinguish among incompatible versions of an ABI.
The interpretation of this version number
.TP
.IR e_machine
This member specifies the required architecture for an individual file.
-E.g.:
+For example:
.RS 12
.\" .Bl -tag -width "EM_MIPS_RS4_BE" -compact
.TP 12
.IR e_shoff
This member holds the section header table's file offset in bytes.
If the
-file has no section header table this member holds zero.
+file has no section header table, this member holds zero.
.TP
.IR e_flags
This member holds processor-specific flags associated with the file.
header table itself, both in the file and in the memory image of the program.
This segment type may not occur more than once in a file.
Moreover, it may
-only occur if the program header table is part of the memory image of the
+occur only if the program header table is part of the memory image of the
program.
If it is present, it must precede any loadable segment entry.
.TP
It may be zero.
.TP
.IR p_flags
-This member holds a bitmask of flags relevant to the segment:
+This member holds a bit mask of flags relevant to the segment:
.\" .Bl -tag -width "PF_X" -compact
.RS 12
.TP
.RS
.TP 14
.BR SHN_UNDEF
-This value marks an undefined, missing, irrelevant or otherwise meaningless
+This value marks an undefined, missing, irrelevant, or otherwise meaningless
section reference.
.TP
.BR SHN_LORESERVE
This section holds the global offset table.
This section is of type
.BR SHT_PROGBITS .
-The attributes are processor specific.
+The attributes are processor-specific.
.TP
.IR .hash
This section holds a symbol hash table.
This section holds the procedure linkage table.
This section is of type
.BR SHT_PROGBITS .
-The attributes are processor specific.
+The attributes are processor-specific.
.TP
.IR .relNAME
This section holds relocation information as described below.
will include the
.BR SHF_ALLOC
bit.
-Otherwise the bit will be off.
+Otherwise, the bit will be off.
By convention,
"NAME"
is supplied by the section to which the relocations apply.
will include the
.BR SHF_ALLOC
bit.
-Otherwise the bit will be off.
+Otherwise, the bit will be off.
By convention,
"NAME"
is supplied by the section to which the relocations apply.
will include the
.BR SHF_ALLOC
bit.
-Otherwise the bit will be off.
+Otherwise, the bit will be off.
This section is of type
.BR SHT_STRTAB .
.TP
the
.BR SHF_ALLOC
bit.
-Otherwise the bit will be off.
+Otherwise, the bit will be off.
This section is of type
.BR SHT_SYMTAB .
.TP
This member gives both the symbol table index with respect to which the
relocation must be made and the type of relocation to apply.
Relocation
-types are processor specific.
+types are processor-specific.
When the text refers to a relocation
entry's relocation type or symbol table index, it means the result of
applying
-.BR ELF_[32|64]_R_TYPE
+.BR ELF[32|64]_R_TYPE
or
.BR ELF[32|64]_R_SYM ,
respectively, to the entry's
AMD64 ABI Draft,
.IR "System V Application Binary Interface AMD64 Architecture Processor Supplement" .
.PP
+.SH COLOPHON
+This page is part of release 3.68 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%http://www.kernel.org/doc/man\-pages/.