*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> elf (4)              
Title
Content
Arch
Section
 

Contents


ELF(4)									ELF(4)


NAME    [Toc]    [Back]

     elf - Executable and Linking Format (ELF) files

SYNOPSIS    [Toc]    [Back]

     #include <elf.h>

DESCRIPTION    [Toc]    [Back]

     The file name a.out is the	default	ELF-format output file name from the
     link editor ld(1).	 The link editor will make an a.out executable if
     there were	no errors and no unresolved external references.

     Programs that manipulate ELF files	may use	the library described in
     elf(3E).  An overview of the file format follows.	For more complete
     information, see the references given below.

	       Linking View	      Execution	View

	       ELF header	      ELF header
	       Program header table   Program header table
	       (optional)
	       Section 1	      Segment 1
		...		       ...
	       Section n	      Segment n
	       Section header table   Section header table
				      (optional)

     An	ELF header resides at the beginning and	holds a	``road map''
     describing	the file's organization.  Sections hold	the bulk of object
     file information for the linking view:  instructions, data, symbol	table,
     relocation	information, and so on.	 Segments hold the object file
     information for the program execution view.  A segment may	contain	one or
     more sections.

     A program header table, if	present, tells the system how to create	a
     process image.  Files used	to build a process image (execute a program)
     must have a program header	table; relocatable files do not	need one.  A
     section header table contains information describing the file's sections.
     Every section has an entry	in the table; each entry gives information
     such as the section name, the section size, etc.  Files used during
     linking must have a section header	table; other object files may or may
     not have one.  SGI	executables and	DSO files will be created with section
     header tables, so their absence in	an object file,	while not prohibited,
     may disable various tools.

     Although the table	above shows the	program	header table immediately after
     the ELF header, and the section header table following the	sections,
     actual files may differ.  Moreover, sections and segments have no
     specified order.  Only the	ELF header has a fixed position	in the file.

     When an a.out file	is loaded into memory for execution, three kinds of
     logical segments are set up:  the text segment, the data segment
     (initialized data followed	by uninitialized, the latter actually being
     initialized to all	0's), and a stack.  A program can have multiple	text


									Page 1






ELF(4)									ELF(4)



     and data segments but only	one stack segment.  The	text segments are not
     writable by the program; if other processes are executing the same	a.out
     file, the processes will share the	same text segments.

     The first data segment generally starts at	the next maximal page boundary
     past the last text	address.  If the system	supports more than one page
     size, the ``maximal page''	is the largest supported size.	When the
     process image is created, the part	of the file holding the	end of text
     and the beginning of data may appear twice.  The duplicated chunk of text
     that appears at the beginning of data is never executed; it is duplicated
     so	that the operating system may bring in pieces of the file in multiples
     of	the actual page	size without having to realign the beginning of	the
     data section to a page boundary.  Therefore, the first data address is
     the sum of	the next maximal page boundary past the	end of text plus the
     remainder of the last text	address	divided	by the maximal page size.  If
     the last text address is a	multiple of the	maximal	page size, no
     duplication is necessary.	The stack is extended automatically as
     required.	The last data segment is extended as requested by the brk(2)
     system call.

SEE ALSO    [Toc]    [Back]

      
      
     as(1), cc(1), ld(1), brk(2), a.out(4)
     IRIX System Programmer's Guide

NOTES    [Toc]    [Back]

     ELF is the	executable and object file format used on IRIX 5 and later
     systems.


									PPPPaaaaggggeeee 2222
[ Back ]
 Similar pages
Name OS Title
elf FreeBSD format of ELF executable binary files
elf OpenBSD format of ELF executable binary files
a.out OpenBSD format of executable binary files
a.out FreeBSD format of executable binary files
elf2ecoff NetBSD convert a NetBSD ELF-format executable to NetBSD ECOFF format
gzexe FreeBSD compress executable files in place
gzexe Linux compress executable files in place
gzexe IRIX compress executable files in place
elf2aout NetBSD convert a NetBSD ELF-format executable to NetBSD a.out format
ldd Tru64 List dynamic dependencies of executable files or shared objects
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service